diff options
Diffstat (limited to 'lib/ansible/modules/cloud/google/gcp_compute_url_map_info.py')
-rw-r--r-- | lib/ansible/modules/cloud/google/gcp_compute_url_map_info.py | 1659 |
1 files changed, 0 insertions, 1659 deletions
diff --git a/lib/ansible/modules/cloud/google/gcp_compute_url_map_info.py b/lib/ansible/modules/cloud/google/gcp_compute_url_map_info.py deleted file mode 100644 index f1965b33c5..0000000000 --- a/lib/ansible/modules/cloud/google/gcp_compute_url_map_info.py +++ /dev/null @@ -1,1659 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# Copyright (C) 2017 Google -# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) -# ---------------------------------------------------------------------------- -# -# *** AUTO GENERATED CODE *** AUTO GENERATED CODE *** -# -# ---------------------------------------------------------------------------- -# -# This file is automatically generated by Magic Modules and manual -# changes will be clobbered when the file is regenerated. -# -# Please read more about how to change this file at -# https://www.github.com/GoogleCloudPlatform/magic-modules -# -# ---------------------------------------------------------------------------- - -from __future__ import absolute_import, division, print_function - -__metaclass__ = type - -################################################################################ -# Documentation -################################################################################ - -ANSIBLE_METADATA = {'metadata_version': '1.1', 'status': ["preview"], 'supported_by': 'community'} - -DOCUMENTATION = ''' ---- -module: gcp_compute_url_map_info -description: -- Gather info for GCP UrlMap -short_description: Gather info for GCP UrlMap -version_added: '2.7' -author: Google Inc. (@googlecloudplatform) -requirements: -- python >= 2.6 -- requests >= 2.18.4 -- google-auth >= 1.3.0 -options: - filters: - description: - - A list of filter value pairs. Available filters are listed here U(https://cloud.google.com/sdk/gcloud/reference/topic/filters). - - Each additional filter in the list will act be added as an AND condition (filter1 - and filter2) . - type: list - project: - description: - - The Google Cloud Platform project to use. - type: str - auth_kind: - description: - - The type of credential used. - type: str - required: true - choices: - - application - - machineaccount - - serviceaccount - service_account_contents: - description: - - The contents of a Service Account JSON file, either in a dictionary or as a - JSON string that represents it. - type: jsonarg - service_account_file: - description: - - The path of a Service Account JSON file if serviceaccount is selected as type. - type: path - service_account_email: - description: - - An optional service account email address if machineaccount is selected and - the user does not wish to use the default email. - type: str - scopes: - description: - - Array of scopes to be used - type: list - env_type: - description: - - Specifies which Ansible environment you're running this module within. - - This should not be set unless you know what you're doing. - - This only alters the User Agent string for any API requests. - type: str -notes: -- for authentication, you can set service_account_file using the C(gcp_service_account_file) - env variable. -- for authentication, you can set service_account_contents using the C(GCP_SERVICE_ACCOUNT_CONTENTS) - env variable. -- For authentication, you can set service_account_email using the C(GCP_SERVICE_ACCOUNT_EMAIL) - env variable. -- For authentication, you can set auth_kind using the C(GCP_AUTH_KIND) env variable. -- For authentication, you can set scopes using the C(GCP_SCOPES) env variable. -- Environment variables values will only be used if the playbook values are not set. -- The I(service_account_email) and I(service_account_file) options are mutually exclusive. -''' - -EXAMPLES = ''' -- name: get info on an URL map - gcp_compute_url_map_info: - filters: - - name = test_object - project: test_project - auth_kind: serviceaccount - service_account_file: "/tmp/auth.pem" -''' - -RETURN = ''' -resources: - description: List of resources - returned: always - type: complex - contains: - creationTimestamp: - description: - - Creation timestamp in RFC3339 text format. - returned: success - type: str - defaultService: - description: - - The BackendService resource to which traffic is directed if none of the hostRules - match. If defaultRouteAction is additionally specified, advanced routing actions - like URL Rewrites, etc. take effect prior to sending the request to the backend. - However, if defaultService is specified, defaultRouteAction cannot contain - any weightedBackendServices. Conversely, if routeAction specifies any weightedBackendServices, - service must not be specified. Only one of defaultService, defaultUrlRedirect - or defaultRouteAction.weightedBackendService must be set. - returned: success - type: dict - description: - description: - - An optional description of this resource. Provide this property when you create - the resource. - returned: success - type: str - id: - description: - - The unique identifier for the resource. - returned: success - type: int - fingerprint: - description: - - Fingerprint of this resource. A hash of the contents stored in this object. - This field is used in optimistic locking. - returned: success - type: str - headerAction: - description: - - Specifies changes to request and response headers that need to take effect - for the selected backendService. The headerAction specified here take effect - after headerAction specified under pathMatcher. - returned: success - type: complex - contains: - requestHeadersToAdd: - description: - - Headers to add to a matching request prior to forwarding the request to - the backendService. - returned: success - type: complex - contains: - headerName: - description: - - The name of the header. - returned: success - type: str - headerValue: - description: - - The value of the header to add. - returned: success - type: str - replace: - description: - - If false, headerValue is appended to any values that already exist - for the header. If true, headerValue is set for the header, discarding - any values that were set for that header. - returned: success - type: bool - requestHeadersToRemove: - description: - - A list of header names for headers that need to be removed from the request - prior to forwarding the request to the backendService. - returned: success - type: list - responseHeadersToAdd: - description: - - Headers to add the response prior to sending the response back to the - client. - returned: success - type: complex - contains: - headerName: - description: - - The name of the header. - returned: success - type: str - headerValue: - description: - - The value of the header to add. - returned: success - type: str - replace: - description: - - If false, headerValue is appended to any values that already exist - for the header. If true, headerValue is set for the header, discarding - any values that were set for that header. - returned: success - type: bool - responseHeadersToRemove: - description: - - A list of header names for headers that need to be removed from the response - prior to sending the response back to the client. - returned: success - type: list - hostRules: - description: - - The list of HostRules to use against the URL. - returned: success - type: complex - contains: - description: - description: - - An optional description of this resource. Provide this property when you - create the resource. - returned: success - type: str - hosts: - description: - - The list of host patterns to match. They must be valid hostnames, except - * will match any string of ([a-z0-9-.]*). In that case, * must be the - first character and must be followed in the pattern by either - or . - returned: success - type: list - pathMatcher: - description: - - The name of the PathMatcher to use to match the path portion of the URL - if the hostRule matches the URL's host portion. - returned: success - type: str - name: - description: - - Name of the resource. Provided by the client when the resource is created. - The name must be 1-63 characters long, and comply with RFC1035. Specifically, - the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` - which means the first character must be a lowercase letter, and all following - characters must be a dash, lowercase letter, or digit, except the last character, - which cannot be a dash. - returned: success - type: str - pathMatchers: - description: - - The list of named PathMatchers to use against the URL. - returned: success - type: complex - contains: - defaultService: - description: - - 'The BackendService resource. This will be used if none of the pathRules - or routeRules defined by this PathMatcher are matched. For example, the - following are all valid URLs to a BackendService resource: - U(https://www.googleapis.com/compute/v1/projects/project/global/backendServices/backen) - dService - compute/v1/projects/project/global/backendServices/backendService - - global/backendServices/backendService If defaultRouteAction is additionally - specified, advanced routing actions like URL Rewrites, etc. take effect - prior to sending the request to the backend. However, if defaultService - is specified, defaultRouteAction cannot contain any weightedBackendServices. - Conversely, if defaultRouteAction specifies any weightedBackendServices, - defaultService must not be specified. Only one of defaultService, defaultUrlRedirect - or defaultRouteAction.weightedBackendService must be set. Authorization - requires one or more of the following Google IAM permissions on the specified - resource default_service: - compute.backendBuckets.use - compute.backendServices.use - .' - returned: success - type: dict - description: - description: - - An optional description of this resource. Provide this property when you - create the resource. - returned: success - type: str - headerAction: - description: - - Specifies changes to request and response headers that need to take effect - for the selected backendService. HeaderAction specified here are applied - after the matching HttpRouteRule HeaderAction and before the HeaderAction - in the UrlMap . - returned: success - type: complex - contains: - requestHeadersToAdd: - description: - - Headers to add to a matching request prior to forwarding the request - to the backendService. - returned: success - type: complex - contains: - headerName: - description: - - The name of the header. - returned: success - type: str - headerValue: - description: - - The value of the header to add. - returned: success - type: str - replace: - description: - - If false, headerValue is appended to any values that already exist - for the header. If true, headerValue is set for the header, discarding - any values that were set for that header. - returned: success - type: bool - requestHeadersToRemove: - description: - - A list of header names for headers that need to be removed from the - request prior to forwarding the request to the backendService. - returned: success - type: list - responseHeadersToAdd: - description: - - Headers to add the response prior to sending the response back to - the client. - returned: success - type: complex - contains: - headerName: - description: - - The name of the header. - returned: success - type: str - headerValue: - description: - - The value of the header to add. - returned: success - type: str - replace: - description: - - If false, headerValue is appended to any values that already exist - for the header. If true, headerValue is set for the header, discarding - any values that were set for that header. - returned: success - type: bool - responseHeadersToRemove: - description: - - A list of header names for headers that need to be removed from the - response prior to sending the response back to the client. - returned: success - type: list - name: - description: - - The name to which this PathMatcher is referred by the HostRule. - returned: success - type: str - pathRules: - description: - - 'The list of path rules. Use this list instead of routeRules when routing - based on simple path matching is all that''s required. The order by which - path rules are specified does not matter. Matches are always done on the - longest-path-first basis. For example: a pathRule with a path /a/b/c/* - will match before /a/b/* irrespective of the order in which those paths - appear in this list. Within a given pathMatcher, only one of pathRules - or routeRules must be set.' - returned: success - type: complex - contains: - service: - description: - - The backend service resource to which traffic is directed if this - rule is matched. If routeAction is additionally specified, advanced - routing actions like URL Rewrites, etc. take effect prior to sending - the request to the backend. However, if service is specified, routeAction - cannot contain any weightedBackendService s. Conversely, if routeAction - specifies any weightedBackendServices, service must not be specified. - Only one of urlRedirect, service or routeAction.weightedBackendService - must be set. - returned: success - type: dict - paths: - description: - - 'The list of path patterns to match. Each must start with / and the - only place a * is allowed is at the end following a /. The string - fed to the path matcher does not include any text after the first - ? or #, and those chars are not allowed here.' - returned: success - type: list - routeAction: - description: - - In response to a matching path, the load balancer performs advanced - routing actions like URL rewrites, header transformations, etc. prior - to forwarding the request to the selected backend. If routeAction - specifies any weightedBackendServices, service must not be set. Conversely - if service is set, routeAction cannot contain any weightedBackendServices. - Only one of routeAction or urlRedirect must be set. - returned: success - type: complex - contains: - corsPolicy: - description: - - The specification for allowing client side cross-origin requests. - Please see W3C Recommendation for Cross Origin Resource Sharing - . - returned: success - type: complex - contains: - allowCredentials: - description: - - In response to a preflight request, setting this to true indicates - that the actual request can include user credentials. This - translates to the Access- Control-Allow-Credentials header. - Defaults to false. - returned: success - type: bool - allowHeaders: - description: - - Specifies the content for the Access-Control-Allow-Headers - header. - returned: success - type: list - allowMethods: - description: - - Specifies the content for the Access-Control-Allow-Methods - header. - returned: success - type: list - allowOriginRegexes: - description: - - Specifies the regualar expression patterns that match allowed - origins. For regular expression grammar please see en.cppreference.com/w/cpp/regex/ecmascript - An origin is allowed if it matches either allow_origins or - allow_origin_regex. - returned: success - type: list - allowOrigins: - description: - - Specifies the list of origins that will be allowed to do CORS - requests. An origin is allowed if it matches either allow_origins - or allow_origin_regex. - returned: success - type: list - disabled: - description: - - If true, specifies the CORS policy is disabled. - returned: success - type: bool - exposeHeaders: - description: - - Specifies the content for the Access-Control-Expose-Headers - header. - returned: success - type: list - maxAge: - description: - - Specifies how long the results of a preflight request can - be cached. This translates to the content for the Access-Control-Max-Age - header. - returned: success - type: int - faultInjectionPolicy: - description: - - The specification for fault injection introduced into traffic - to test the resiliency of clients to backend service failure. - As part of fault injection, when clients send requests to a backend - service, delays can be introduced by Loadbalancer on a percentage - of requests before sending those request to the backend service. - Similarly requests from clients can be aborted by the Loadbalancer - for a percentage of requests. timeout and retry_policy will be - ignored by clients that are configured with a fault_injection_policy. - returned: success - type: complex - contains: - abort: - description: - - The specification for how client requests are aborted as part - of fault injection. - returned: success - type: complex - contains: - httpStatus: - description: - - The HTTP status code used to abort the request. The value - must be between 200 and 599 inclusive. - returned: success - type: int - percentage: - description: - - The percentage of traffic (connections/operations/requests) - which will be aborted as part of fault injection. The - value must be between 0.0 and 100.0 inclusive. - returned: success - type: str - delay: - description: - - The specification for how client requests are delayed as part - of fault injection, before being sent to a backend service. - returned: success - type: complex - contains: - fixedDelay: - description: - - Specifies the value of the fixed delay interval. - returned: success - type: complex - contains: - nanos: - description: - - Span of time that's a fraction of a second at nanosecond - resolution. Durations less than one second are represented - with a 0 `seconds` field and a positive `nanos` field. - Must be from 0 to 999,999,999 inclusive. - returned: success - type: int - seconds: - description: - - Span of time at a resolution of a second. Must be - from 0 to 315,576,000,000 inclusive. - returned: success - type: str - percentage: - description: - - The percentage of traffic (connections/operations/requests) - on which delay will be introduced as part of fault injection. - The value must be between 0.0 and 100.0 inclusive. - returned: success - type: str - requestMirrorPolicy: - description: - - Specifies the policy on how requests intended for the route's - backends are shadowed to a separate mirrored backend service. - Loadbalancer does not wait for responses from the shadow service. - Prior to sending traffic to the shadow service, the host / authority - header is suffixed with -shadow. - returned: success - type: complex - contains: - backendService: - description: - - The BackendService resource being mirrored to. - returned: success - type: dict - retryPolicy: - description: - - Specifies the retry policy associated with this route. - returned: success - type: complex - contains: - numRetries: - description: - - Specifies the allowed number retries. This number must be - > 0. - returned: success - type: int - perTryTimeout: - description: - - Specifies a non-zero timeout per retry attempt. - returned: success - type: complex - contains: - nanos: - description: - - Span of time that's a fraction of a second at nanosecond - resolution. Durations less than one second are represented - with a 0 `seconds` field and a positive `nanos` field. - Must be from 0 to 999,999,999 inclusive. - returned: success - type: int - seconds: - description: - - Span of time at a resolution of a second. Must be from - 0 to 315,576,000,000 inclusive. - returned: success - type: str - retryConditions: - description: - - 'Specifies one or more conditions when this retry rule applies. - Valid values are: - 5xx: Loadbalancer will attempt a retry - if the backend service responds with any 5xx response code, - or if the backend service does not respond at all, example: - disconnects, reset, read timeout, connection failure, and - refused streams.' - - "- gateway-error: Similar to 5xx, but only applies to response - codes 502, 503 or 504." - - "- connect-failure: Loadbalancer will retry on failures connecting - to backend services, for example due to connection timeouts." - - "- retriable-4xx: Loadbalancer will retry for retriable 4xx - response codes." - - Currently the only retriable error supported is 409. - - "- refused-stream: Loadbalancer will retry if the backend - service resets the stream with a REFUSED_STREAM error code. - This reset type indicates that it is safe to retry." - - "- cancelled: Loadbalancer will retry if the gRPC status code - in the response header is set to cancelled - deadline-exceeded: - Loadbalancer will retry if the gRPC status code in the response - header is set to deadline-exceeded - resource-exhausted: Loadbalancer - will retry if the gRPC status code in the response header - is set to resource-exhausted - unavailable: Loadbalancer will - retry if the gRPC status code in the response header is set - to unavailable ." - returned: success - type: list - timeout: - description: - - Specifies the timeout for the selected route. Timeout is computed - from the time the request is has been fully processed (i.e. end-of-stream) - up until the response has been completely processed. Timeout includes - all retries. If not specified, the default value is 15 seconds. - returned: success - type: complex - contains: - nanos: - description: - - Span of time that's a fraction of a second at nanosecond resolution. - Durations less than one second are represented with a 0 `seconds` - field and a positive `nanos` field. Must be from 0 to 999,999,999 - inclusive. - returned: success - type: int - seconds: - description: - - Span of time at a resolution of a second. Must be from 0 to - 315,576,000,000 inclusive. - returned: success - type: str - urlRewrite: - description: - - The spec to modify the URL of the request, prior to forwarding - the request to the matched service . - returned: success - type: complex - contains: - hostRewrite: - description: - - Prior to forwarding the request to the selected service, the - request's host header is replaced with contents of hostRewrite. - The value must be between 1 and 255 characters. - returned: success - type: str - pathPrefixRewrite: - description: - - Prior to forwarding the request to the selected backend service, - the matching portion of the request's path is replaced by - pathPrefixRewrite. The value must be between 1 and 1024 characters. - returned: success - type: str - weightedBackendServices: - description: - - A list of weighted backend services to send traffic to when a - route match occurs. The weights determine the fraction of traffic - that flows to their corresponding backend service. If all traffic - needs to go to a single backend service, there must be one weightedBackendService - with weight set to a non 0 number. Once a backendService is identified - and before forwarding the request to the backend service, advanced - routing actions like Url rewrites and header transformations are - applied depending on additional settings specified in this HttpRouteAction. - returned: success - type: complex - contains: - backendService: - description: - - The default BackendService resource. Before forwarding the - request to backendService, the loadbalancer applies any relevant - headerActions specified as part of this backendServiceWeight. - returned: success - type: dict - headerAction: - description: - - Specifies changes to request and response headers that need - to take effect for the selected backendService. headerAction - specified here take effect before headerAction in the enclosing - HttpRouteRule, PathMatcher and UrlMap. - returned: success - type: complex - contains: - requestHeadersToAdd: - description: - - Headers to add to a matching request prior to forwarding - the request to the backendService. - returned: success - type: complex - contains: - headerName: - description: - - The name of the header. - returned: success - type: str - headerValue: - description: - - The value of the header to add. - returned: success - type: str - replace: - description: - - If false, headerValue is appended to any values that - already exist for the header. If true, headerValue - is set for the header, discarding any values that - were set for that header. - returned: success - type: bool - requestHeadersToRemove: - description: - - A list of header names for headers that need to be removed - from the request prior to forwarding the request to the - backendService. - returned: success - type: list - responseHeadersToAdd: - description: - - Headers to add the response prior to sending the response - back to the client. - returned: success - type: complex - contains: - headerName: - description: - - The name of the header. - returned: success - type: str - headerValue: - description: - - The value of the header to add. - returned: success - type: str - replace: - description: - - If false, headerValue is appended to any values that - already exist for the header. If true, headerValue - is set for the header, discarding any values that - were set for that header. - returned: success - type: bool - responseHeadersToRemove: - description: - - A list of header names for headers that need to be removed - from the response prior to sending the response back to - the client. - returned: success - type: list - weight: - description: - - Specifies the fraction of traffic sent to backendService, - computed as weight / (sum of all weightedBackendService weights - in routeAction) . The selection of a backend service is determined - only for new traffic. Once a user's request has been directed - to a backendService, subsequent requests will be sent to the - same backendService as determined by the BackendService's - session affinity policy. - - The value must be between 0 and 1000 . - returned: success - type: int - urlRedirect: - description: - - When a path pattern is matched, the request is redirected to a URL - specified by urlRedirect. If urlRedirect is specified, service or - routeAction must not be set. - returned: success - type: complex - contains: - hostRedirect: - description: - - The host that will be used in the redirect response instead of - the one that was supplied in the request. The value must be between - 1 and 255 characters. - returned: success - type: str - httpsRedirect: - description: - - If set to true, the URL scheme in the redirected request is set - to https. If set to false, the URL scheme of the redirected request - will remain the same as that of the request. This must only be - set for UrlMaps used in TargetHttpProxys. - - Setting this true for TargetHttpsProxy is not permitted. Defaults - to false. - returned: success - type: bool - pathRedirect: - description: - - The path that will be used in the redirect response instead of - the one that was supplied in the request. Only one of pathRedirect - or prefixRedirect must be specified. The value must be between - 1 and 1024 characters. - returned: success - type: str - prefixRedirect: - description: - - The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, - retaining the remaining portion of the URL before redirecting - the request. - returned: success - type: str - redirectResponseCode: - description: - - 'The HTTP Status code to use for this RedirectAction. Supported - values are: - MOVED_PERMANENTLY_DEFAULT, which is the default - value and corresponds to 301.' - - "- FOUND, which corresponds to 302." - - "- SEE_OTHER which corresponds to 303." - - "- TEMPORARY_REDIRECT, which corresponds to 307. In this case, - the request method will be retained." - - "- PERMANENT_REDIRECT, which corresponds to 308. In this case, - the request method will be retained." - returned: success - type: str - stripQuery: - description: - - If set to true, any accompanying query portion of the original - URL is removed prior to redirecting the request. If set to false, - the query portion of the original URL is retained. - returned: success - type: bool - routeRules: - description: - - 'The list of ordered HTTP route rules. Use this list instead of pathRules - when advanced route matching and routing actions are desired. The order - of specifying routeRules matters: the first rule that matches will cause - its specified routing action to take effect. Within a given pathMatcher, - only one of pathRules or routeRules must be set. routeRules are not supported - in UrlMaps intended for External load balancers.' - returned: success - type: complex - contains: - priority: - description: - - For routeRules within a given pathMatcher, priority determines the - order in which load balancer will interpret routeRules. RouteRules - are evaluated in order of priority, from the lowest to highest number. - The priority of a rule decreases as its number increases (1, 2, 3, - N+1). The first rule that matches the request is applied. - - You cannot configure two or more routeRules with the same priority. - - Priority for each rule must be set to a number between 0 and 2147483647 - inclusive. - - Priority numbers can have gaps, which enable you to add or remove - rules in the future without affecting the rest of the rules. For example, - 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to - which you could add rules numbered from 6 to 8, 10 to 11, and 13 to - 15 in the future without any impact on existing rules. - returned: success - type: int - service: - description: - - The backend service resource to which traffic is directed if this - rule is matched. If routeAction is additionally specified, advanced - routing actions like URL Rewrites, etc. take effect prior to sending - the request to the backend. However, if service is specified, routeAction - cannot contain any weightedBackendService s. Conversely, if routeAction - specifies any weightedBackendServices, service must not be specified. - Only one of urlRedirect, service or routeAction.weightedBackendService - must be set. - returned: success - type: dict - headerAction: - description: - - Specifies changes to request and response headers that need to take - effect for the selected backendService. The headerAction specified - here are applied before the matching pathMatchers[].headerAction and - after pathMatchers[].routeRules[].r outeAction.weightedBackendService.backendServiceWeightAction[].headerAction - . - returned: success - type: complex - contains: - requestHeadersToAdd: - description: - - Headers to add to a matching request prior to forwarding the request - to the backendService. - returned: success - type: complex - contains: - headerName: - description: - - The name of the header. - returned: success - type: str - headerValue: - description: - - The value of the header to add. - returned: success - type: str - replace: - description: - - If false, headerValue is appended to any values that already - exist for the header. If true, headerValue is set for the - header, discarding any values that were set for that header. - returned: success - type: bool - requestHeadersToRemove: - description: - - A list of header names for headers that need to be removed from - the request prior to forwarding the request to the backendService. - returned: success - type: list - responseHeadersToAdd: - description: - - Headers to add the response prior to sending the response back - to the client. - returned: success - type: complex - contains: - headerName: - description: - - The name of the header. - returned: success - type: str - headerValue: - description: - - The value of the header to add. - returned: success - type: str - replace: - description: - - If false, headerValue is appended to any values that already - exist for the header. If true, headerValue is set for the - header, discarding any values that were set for that header. - returned: success - type: bool - responseHeadersToRemove: - description: - - A list of header names for headers that need to be removed from - the response prior to sending the response back to the client. - returned: success - type: list - matchRules: - description: - - The rules for determining a match. - returned: success - type: complex - contains: - fullPathMatch: - description: - - For satifying the matchRule condition, the path of the request - must exactly match the value specified in fullPathMatch after - removing any query parameters and anchor that may be part of the - original URL. FullPathMatch must be between 1 and 1024 characters. - Only one of prefixMatch, fullPathMatch or regexMatch must be specified. - returned: success - type: str - headerMatches: - description: - - Specifies a list of header match criteria, all of which must match - corresponding headers in the request. - returned: success - type: complex - contains: - exactMatch: - description: - - The value should exactly match contents of exactMatch. Only - one of exactMatch, prefixMatch, suffixMatch, regexMatch, presentMatch - or rangeMatch must be set. - returned: success - type: str - headerName: - description: - - The name of the HTTP header to match. For matching against - the HTTP request's authority, use a headerMatch with the header - name ":authority". For matching a request's method, use the - headerName ":method". - returned: success - type: str - invertMatch: - description: - - If set to false, the headerMatch is considered a match if - the match criteria above are met. If set to true, the headerMatch - is considered a match if the match criteria above are NOT - met. Defaults to false. - returned: success - type: bool - prefixMatch: - description: - - The value of the header must start with the contents of prefixMatch. - Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, - presentMatch or rangeMatch must be set. - returned: success - type: str - presentMatch: - description: - - A header with the contents of headerName must exist. The match - takes place whether or not the request's header has a value - or not. Only one of exactMatch, prefixMatch, suffixMatch, - regexMatch, presentMatch or rangeMatch must be set. - returned: success - type: bool - rangeMatch: - description: - - The header value must be an integer and its value must be - in the range specified in rangeMatch. If the header does not - contain an integer, number or is empty, the match fails. For - example for a range [-5, 0] - -3 will match. - 0 will not - match. - 0.25 will not match. - -3someString will not match. - Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, - presentMatch or rangeMatch must be set. - returned: success - type: complex - contains: - rangeEnd: - description: - - The end of the range (exclusive). - returned: success - type: int - rangeStart: - description: - - The start of the range (inclusive). - returned: success - type: int - regexMatch: - description: - - 'The value of the header must match the regualar expression - specified in regexMatch. For regular expression grammar, please - see: en.cppreference.com/w/cpp/regex/ecmascript For matching - against a port specified in the HTTP request, use a headerMatch - with headerName set to PORT and a regular expression that - satisfies the RFC2616 Host header''s port specifier.' - - Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, - presentMatch or rangeMatch must be set. - returned: success - type: str - suffixMatch: - description: - - The value of the header must end with the contents of suffixMatch. - Only one of exactMatch, prefixMatch, suffixMatch, regexMatch, - presentMatch or rangeMatch must be set. - returned: success - type: str - ignoreCase: - description: - - Specifies that prefixMatch and fullPathMatch matches are case - sensitive. - - Defaults to false. - returned: success - type: bool - metadataFilters: - description: - - Opaque filter criteria used by Loadbalancer to restrict routing - configuration to a limited set xDS compliant clients. In their - xDS requests to Loadbalancer, xDS clients present node metadata. - If a match takes place, the relevant routing configuration is - made available to those proxies. For each metadataFilter in this - list, if its filterMatchCriteria is set to MATCH_ANY, at least - one of the filterLabels must match the corresponding label provided - in the metadata. If its filterMatchCriteria is set to MATCH_ALL, - then all of its filterLabels must match with corresponding labels - in the provided metadata. metadataFilters specified here can be - overrides those specified in ForwardingRule that refers to this - UrlMap. metadataFilters only applies to Loadbalancers that have - their loadBalancingScheme set to INTERNAL_SELF_MANAGED. - returned: success - type: complex - contains: - filterLabels: - description: - - The list of label value pairs that must match labels in the - provided metadata based on filterMatchCriteria This list must - not be empty and can have at the most 64 entries. - returned: success - type: complex - contains: - name: - description: - - Name of metadata label. The name can have a maximum length - of 1024 characters and must be at least 1 character long. - returned: success - type: str - value: - description: - - The value of the label must match the specified value. - value can have a maximum length of 1024 characters. - returned: success - type: str - filterMatchCriteria: - description: - - 'Specifies how individual filterLabel matches within the list - of filterLabels contribute towards the overall metadataFilter - match. Supported values are: - MATCH_ANY: At least one of - the filterLabels must have a matching label in the provided - metadata.' - - "- MATCH_ALL: All filterLabels must have matching labels in - the provided metadata." - returned: success - type: str - prefixMatch: - description: - - For satifying the matchRule condition, the request's path must - begin with the specified prefixMatch. prefixMatch must begin with - a /. The value must be between 1 and 1024 characters. Only one - of prefixMatch, fullPathMatch or regexMatch must be specified. - returned: success - type: str - queryParameterMatches: - description: - - Specifies a list of query parameter match criteria, all of which - must match corresponding query parameters in the request. - returned: success - type: complex - contains: - exactMatch: - description: - - The queryParameterMatch matches if the value of the parameter - exactly matches the contents of exactMatch. Only one of presentMatch, - exactMatch and regexMatch must be set. - returned: success - type: str - name: - description: - - The name of the query parameter to match. The query parameter - must exist in the request, in the absence of which the request - match fails. - returned: success - type: str - presentMatch: - description: - - Specifies that the queryParameterMatch matches if the request - contains the query parameter, irrespective of whether the - parameter has a value or not. Only one of presentMatch, exactMatch - and regexMatch must be set. - returned: success - type: bool - regexMatch: - description: - - The queryParameterMatch matches if the value of the parameter - matches the regular expression specified by regexMatch. For - the regular expression grammar, please see en.cppreference.com/w/cpp/regex/ecmascript - Only one of presentMatch, exactMatch and regexMatch must be - set. - returned: success - type: str - regexMatch: - description: - - For satifying the matchRule condition, the path of the request - must satisfy the regular expression specified in regexMatch after - removing any query parameters and anchor supplied with the original - URL. For regular expression grammar please see en.cppreference.com/w/cpp/regex/ecmascript - Only one of prefixMatch, fullPathMatch or regexMatch must be specified. - returned: success - type: str - routeAction: - description: - - In response to a matching matchRule, the load balancer performs advanced - routing actions like URL rewrites, header transformations, etc. prior - to forwarding the request to the selected backend. If routeAction - specifies any weightedBackendServices, service must not be set. Conversely - if service is set, routeAction cannot contain any weightedBackendServices. - Only one of routeAction or urlRedirect must be set. - returned: success - type: complex - contains: - corsPolicy: - description: - - The specification for allowing client side cross-origin requests. - Please see W3C Recommendation for Cross Origin Resource Sharing - . - returned: success - type: complex - contains: - allowCredentials: - description: - - In response to a preflight request, setting this to true indicates - that the actual request can include user credentials. This - translates to the Access- Control-Allow-Credentials header. - Defaults to false. - returned: success - type: bool - allowHeaders: - description: - - Specifies the content for the Access-Control-Allow-Headers - header. - returned: success - type: list - allowMethods: - description: - - Specifies the content for the Access-Control-Allow-Methods - header. - returned: success - type: list - allowOriginRegexes: - description: - - Specifies the regualar expression patterns that match allowed - origins. For regular expression grammar please see en.cppreference.com/w/cpp/regex/ecmascript - An origin is allowed if it matches either allow_origins or - allow_origin_regex. - returned: success - type: list - allowOrigins: - description: - - Specifies the list of origins that will be allowed to do CORS - requests. An origin is allowed if it matches either allow_origins - or allow_origin_regex. - returned: success - type: list - disabled: - description: - - If true, specifies the CORS policy is disabled. - - which indicates that the CORS policy is in effect. Defaults - to false. - returned: success - type: bool - exposeHeaders: - description: - - Specifies the content for the Access-Control-Expose-Headers - header. - returned: success - type: list - maxAge: - description: - - Specifies how long the results of a preflight request can - be cached. This translates to the content for the Access-Control-Max-Age - header. - returned: success - type: int - faultInjectionPolicy: - description: - - The specification for fault injection introduced into traffic - to test the resiliency of clients to backend service failure. - As part of fault injection, when clients send requests to a backend - service, delays can be introduced by Loadbalancer on a percentage - of requests before sending those request to the backend service. - Similarly requests from clients can be aborted by the Loadbalancer - for a percentage of requests. timeout and retry_policy will be - ignored by clients that are configured with a fault_injection_policy. - returned: success - type: complex - contains: - abort: - description: - - The specification for how client requests are aborted as part - of fault injection. - returned: success - type: complex - contains: - httpStatus: - description: - - The HTTP status code used to abort the request. The value - must be between 200 and 599 inclusive. - returned: success - type: int - percentage: - description: - - The percentage of traffic (connections/operations/requests) - which will be aborted as part of fault injection. The - value must be between 0.0 and 100.0 inclusive. - returned: success - type: str - delay: - description: - - The specification for how client requests are delayed as part - of fault injection, before being sent to a backend service. - returned: success - type: complex - contains: - fixedDelay: - description: - - Specifies the value of the fixed delay interval. - returned: success - type: complex - contains: - nanos: - description: - - Span of time that's a fraction of a second at nanosecond - resolution. Durations less than one second are represented - with a 0 `seconds` field and a positive `nanos` field. - Must be from 0 to 999,999,999 inclusive. - returned: success - type: int - seconds: - description: - - Span of time at a resolution of a second. Must be - from 0 to 315,576,000,000 inclusive. - returned: success - type: str - percentage: - description: - - The percentage of traffic (connections/operations/requests) - on which delay will be introduced as part of fault injection. - The value must be between 0.0 and 100.0 inclusive. - returned: success - type: str - requestMirrorPolicy: - description: - - Specifies the policy on how requests intended for the route's - backends are shadowed to a separate mirrored backend service. - Loadbalancer does not wait for responses from the shadow service. - Prior to sending traffic to the shadow service, the host / authority - header is suffixed with -shadow. - returned: success - type: complex - contains: - backendService: - description: - - The BackendService resource being mirrored to. - returned: success - type: dict - retryPolicy: - description: - - Specifies the retry policy associated with this route. - returned: success - type: complex - contains: - numRetries: - description: - - Specifies the allowed number retries. This number must be - > 0. - returned: success - type: int - perTryTimeout: - description: - - Specifies a non-zero timeout per retry attempt. - - If not specified, will use the timeout set in HttpRouteAction. - If timeout in HttpRouteAction is not set, will use the largest - timeout among all backend services associated with the route. - returned: success - type: complex - contains: - nanos: - description: - - Span of time that's a fraction of a second at nanosecond - resolution. Durations less than one second are represented - with a 0 `seconds` field and a positive `nanos` field. - Must be from 0 to 999,999,999 inclusive. - returned: success - type: int - seconds: - description: - - Span of time at a resolution of a second. Must be from - 0 to 315,576,000,000 inclusive. - returned: success - type: str - retryConditions: - description: - - 'Specfies one or more conditions when this retry rule applies. - Valid values are: - 5xx: Loadbalancer will attempt a retry - if the backend service responds with any 5xx response code, - or if the backend service does not respond at all, example: - disconnects, reset, read timeout, connection failure, and - refused streams.' - - "- gateway-error: Similar to 5xx, but only applies to response - codes 502, 503 or 504." - - "- connect-failure: Loadbalancer will retry on failures connecting - to backend services, for example due to connection timeouts." - - "- retriable-4xx: Loadbalancer will retry for retriable 4xx - response codes." - - Currently the only retriable error supported is 409. - - "- refused-stream: Loadbalancer will retry if the backend - service resets the stream with a REFUSED_STREAM error code. - This reset type indicates that it is safe to retry." - - "- cancelled: Loadbalancer will retry if the gRPC status code - in the response header is set to cancelled - deadline-exceeded: - Loadbalancer will retry if the gRPC status code in the response - header is set to deadline-exceeded - resource-exhausted: Loadbalancer - will retry if the gRPC status code in the response header - is set to resource-exhausted - unavailable: Loadbalancer will - retry if the gRPC status code in the response header is set - to unavailable ." - returned: success - type: list - timeout: - description: - - Specifies the timeout for the selected route. Timeout is computed - from the time the request is has been fully processed (i.e. end-of-stream) - up until the response has been completely processed. Timeout includes - all retries. If not specified, the default value is 15 seconds. - returned: success - type: complex - contains: - nanos: - description: - - Span of time that's a fraction of a second at nanosecond resolution. - Durations less than one second are represented with a 0 `seconds` - field and a positive `nanos` field. Must be from 0 to 999,999,999 - inclusive. - returned: success - type: int - seconds: - description: - - Span of time at a resolution of a second. Must be from 0 to - 315,576,000,000 inclusive. - returned: success - type: str - urlRewrite: - description: - - The spec to modify the URL of the request, prior to forwarding - the request to the matched service . - returned: success - type: complex - contains: - hostRewrite: - description: - - Prior to forwarding the request to the selected service, the - request's host header is replaced with contents of hostRewrite. - The value must be between 1 and 255 characters. - returned: success - type: str - pathPrefixRewrite: - description: - - Prior to forwarding the request to the selected backend service, - the matching portion of the request's path is replaced by - pathPrefixRewrite. The value must be between 1 and 1024 characters. - returned: success - type: str - weightedBackendServices: - description: - - A list of weighted backend services to send traffic to when a - route match occurs. The weights determine the fraction of traffic - that flows to their corresponding backend service. If all traffic - needs to go to a single backend service, there must be one weightedBackendService - with weight set to a non 0 number. Once a backendService is identified - and before forwarding the request to the backend service, advanced - routing actions like Url rewrites and header transformations are - applied depending on additional settings specified in this HttpRouteAction. - returned: success - type: complex - contains: - backendService: - description: - - The default BackendService resource. Before forwarding the - request to backendService, the loadbalancer applies any relevant - headerActions specified as part of this backendServiceWeight. - returned: success - type: dict - headerAction: - description: - - Specifies changes to request and response headers that need - to take effect for the selected backendService. headerAction - specified here take effect before headerAction in the enclosing - HttpRouteRule, PathMatcher and UrlMap. - returned: success - type: complex - contains: - requestHeadersToAdd: - description: - - Headers to add to a matching request prior to forwarding - the request to the backendService. - returned: success - type: complex - contains: - headerName: - description: - - The name of the header. - returned: success - type: str - headerValue: - description: - - The value of the header to add. - returned: success - type: str - replace: - description: - - If false, headerValue is appended to any values that - already exist for the header. If true, headerValue - is set for the header, discarding any values that - were set for that header. - returned: success - type: bool - requestHeadersToRemove: - description: - - A list of header names for headers that need to be removed - from the request prior to forwarding the request to the - backendService. - returned: success - type: list - responseHeadersToAdd: - description: - - Headers to add the response prior to sending the response - back to the client. - returned: success - type: complex - contains: - headerName: - description: - - The name of the header. - returned: success - type: str - headerValue: - description: - - The value of the header to add. - returned: success - type: str - replace: - description: - - If false, headerValue is appended to any values that - already exist for the header. If true, headerValue - is set for the header, discarding any values that - were set for that header. - returned: success - type: bool - responseHeadersToRemove: - description: - - A list of header names for headers that need to be removed - from the response prior to sending the response back to - the client. - returned: success - type: list - weight: - description: - - Specifies the fraction of traffic sent to backendService, - computed as weight / (sum of all weightedBackendService weights - in routeAction) . The selection of a backend service is determined - only for new traffic. Once a user's request has been directed - to a backendService, subsequent requests will be sent to the - same backendService as determined by the BackendService's - session affinity policy. - - The value must be between 0 and 1000 . - returned: success - type: int - urlRedirect: - description: - - When this rule is matched, the request is redirected to a URL specified - by urlRedirect. If urlRedirect is specified, service or routeAction - must not be set. - returned: success - type: complex - contains: - hostRedirect: - description: - - The host that will be used in the redirect response instead of - the one that was supplied in the request. The value must be between - 1 and 255 characters. - returned: success - type: str - httpsRedirect: - description: - - If set to true, the URL scheme in the redirected request is set - to https. If set to false, the URL scheme of the redirected request - will remain the same as that of the request. This must only be - set for UrlMaps used in TargetHttpProxys. - - Setting this true for TargetHttpsProxy is not permitted. Defaults - to false. - returned: success - type: bool - pathRedirect: - description: - - The path that will be used in the redirect response instead of - the one that was supplied in the request. Only one of pathRedirect - or prefixRedirect must be specified. The value must be between - 1 and 1024 characters. - returned: success - type: str - prefixRedirect: - description: - - The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch, - retaining the remaining portion of the URL before redirecting - the request. - returned: success - type: str - redirectResponseCode: - description: - - 'The HTTP Status code to use for this RedirectAction. Supported - values are: - MOVED_PERMANENTLY_DEFAULT, which is the default - value and corresponds to 301. - FOUND, which corresponds to 302. - - SEE_OTHER which corresponds to 303. - TEMPORARY_REDIRECT, which - corresponds to 307. In this case, the request method will be retained. - - PERMANENT_REDIRECT, which corresponds to 308. In this case, - the request method will be retained.' - returned: success - type: str - stripQuery: - description: - - If set to true, any accompanying query portion of the original - URL is removed prior to redirecting the request. If set to false, - the query portion of the original URL is retained. Defaults to - false. - returned: success - type: bool - tests: - description: - - The list of expected URL mapping tests. Request to update this UrlMap will - succeed only if all of the test cases pass. You can specify a maximum of 100 - tests per UrlMap. - returned: success - type: complex - contains: - description: - description: - - Description of this test case. - returned: success - type: str - host: - description: - - Host portion of the URL. - returned: success - type: str - path: - description: - - Path portion of the URL. - returned: success - type: str - service: - description: - - Expected BackendService resource the given URL should be mapped to. - returned: success - type: dict -''' - -################################################################################ -# Imports -################################################################################ -from ansible.module_utils.gcp_utils import navigate_hash, GcpSession, GcpModule, GcpRequest -import json - -################################################################################ -# Main -################################################################################ - - -def main(): - module = GcpModule(argument_spec=dict(filters=dict(type='list', elements='str'))) - - if not module.params['scopes']: - module.params['scopes'] = ['https://www.googleapis.com/auth/compute'] - - return_value = {'resources': fetch_list(module, collection(module), query_options(module.params['filters']))} - module.exit_json(**return_value) - - -def collection(module): - return "https://www.googleapis.com/compute/v1/projects/{project}/global/urlMaps".format(**module.params) - - -def fetch_list(module, link, query): - auth = GcpSession(module, 'compute') - return auth.list(link, return_if_object, array_name='items', params={'filter': query}) - - -def query_options(filters): - if not filters: - return '' - - if len(filters) == 1: - return filters[0] - else: - queries = [] - for f in filters: - # For multiple queries, all queries should have () - if f[0] != '(' and f[-1] != ')': - queries.append("(%s)" % ''.join(f)) - else: - queries.append(f) - - return ' '.join(queries) - - -def return_if_object(module, response): - # If not found, return nothing. - if response.status_code == 404: - return None - - # If no content, return nothing. - if response.status_code == 204: - return None - - try: - module.raise_for_status(response) - result = response.json() - except getattr(json.decoder, 'JSONDecodeError', ValueError) as inst: - module.fail_json(msg="Invalid JSON response with error: %s" % inst) - - if navigate_hash(result, ['error', 'errors']): - module.fail_json(msg=navigate_hash(result, ['error', 'errors'])) - - return result - - -if __name__ == "__main__": - main() |