# Compute Engine API . globalForwardingRules

## Instance Methods

Close httplib2 connections.

Deletes the specified GlobalForwardingRule resource.

Returns the specified GlobalForwardingRule resource. Gets a list of

Creates a GlobalForwardingRule resource in the specified project using

Retrieves a list of GlobalForwardingRule resources available to the

Retrieves the next page of results.

Updates the specified forwarding rule with the data included in the

Sets the labels on the specified resource. To learn more about labels,

Changes target URL for the GlobalForwardingRule resource. The new target

### Method Details

`close()`

    Close httplib2 connections.

`delete(project, forwardingRule, requestId=None, x__xgafv=None)`

    Deletes the specified GlobalForwardingRule resource.

    Args:
      project: string, Project ID for this request. (required)
      forwardingRule: string, Name of the ForwardingRule resource to delete. (required)
      requestId: string, An optional request ID to identify requests. Specify a unique request ID so
    that if you must retry your request, the server will know to ignore the
    request if it has already been completed.

    For example, consider a situation where you make an initial request and
    the request times out. If you make the request again with the same
    request ID, the server can check if original operation with the same
    request ID was received, and if so, will ignore the second request. This
    prevents clients from accidentally creating duplicate commitments.

    The request ID must be
    a valid UUID with the exception that zero UUID is not supported
    (00000000-0000-0000-0000-000000000000).
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Represents an Operation resource.
        #
        # Google Compute Engine has three Operation resources:
        #
        # * [Global](/compute/docs/reference/rest/v1/globalOperations)
        # * [Regional](/compute/docs/reference/rest/v1/regionOperations)
        # * [Zonal](/compute/docs/reference/rest/v1/zoneOperations)
        #
        # You can use an operation resource to manage asynchronous API requests.
        # For more information, readHandling
        # API responses.
        #
        # Operations can be global, regional or zonal.
        #
        #    - For global operations, use the `globalOperations`
        #    resource.
        #    - For regional operations, use the
        #    `regionOperations` resource.
        #    - For zonal operations, use
        #    the `zoneOperations` resource.
        #
        #
        #
        # For more information, read
        # Global, Regional, and Zonal Resources.
        #
        # Note that completed Operation resources have a limited
        # retention period.
      "clientOperationId": "A String", # [Output Only] The value of `requestId` if you provided it in the request.
          # Not present otherwise.
      "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
      "description": "A String", # [Output Only] A textual description of the operation, which is
          # set when the operation is created.
      "endTime": "A String", # [Output Only] The time that this operation was completed. This value is inRFC3339
          # text format.
      "error": { # [Output Only] If errors are generated during processing of the operation,
          # this field will be populated.
        "errors": [ # [Output Only] The array of errors encountered while processing this
            # operation.
          {
            "code": "A String", # [Output Only] The error type identifier for this error.
            "errorDetails": [ # [Output Only] An optional list of messages that contain the error
                # details. There is a set of defined message types to use for providing
                # details.The syntax depends on the error code. For example,
                # QuotaExceededInfo will have details when the error code is
                # QUOTA_EXCEEDED.
              {
                "errorInfo": { # Describes the cause of the error with structured details.
                    #
                    # Example of an error when contacting the "pubsub.googleapis.com" API when it
                    # is not enabled:
                    #
                    #     { "reason": "API_DISABLED"
                    #       "domain": "googleapis.com"
                    #       "metadata": {
                    #         "resource": "projects/123",
                    #         "service": "pubsub.googleapis.com"
                    #       }
                    #     }
                    #
                    # This response indicates that the pubsub.googleapis.com API is not enabled.
                    #
                    # Example of an error that is returned when attempting to create a Spanner
                    # instance in a region that is out of stock:
                    #
                    #     { "reason": "STOCKOUT"
                    #       "domain": "spanner.googleapis.com",
                    #       "metadata": {
                    #         "availableRegions": "us-central1,us-east2"
                    #       }
                    #     }
                  "domain": "A String", # The logical grouping to which the "reason" belongs. The error domain
                      # is typically the registered service name of the tool or product that
                      # generates the error. Example: "pubsub.googleapis.com". If the error is
                      # generated by some common infrastructure, the error domain must be a
                      # globally unique value that identifies the infrastructure. For Google API
                      # infrastructure, the error domain is "googleapis.com".
                  "metadatas": { # Additional structured details about this error.
                      #
                      # Keys must match a regular expression of `a-z+` but should
                      # ideally be lowerCamelCase. Also, they must be limited to 64 characters in
                      # length. When identifying the current value of an exceeded limit, the units
                      # should be contained in the key, not the value.  For example, rather than
                      # `{"instanceLimit": "100/request"}`, should be returned as,
                      # `{"instanceLimitPerRequest": "100"}`, if the client exceeds the number of
                      # instances that can be created in a single (batch) request.
                    "a_key": "A String",
                  },
                  "reason": "A String", # The reason of the error. This is a constant value that identifies the
                      # proximate cause of the error. Error reasons are unique within a particular
                      # domain of errors. This should be at most 63 characters and match a
                      # regular expression of `A-Z+[A-Z0-9]`, which represents
                      # UPPER_SNAKE_CASE.
                },
                "help": { # Provides links to documentation or for performing an out of band action.
                    #
                    # For example, if a quota check failed with an error indicating the calling
                    # project hasn't enabled the accessed service, this can contain a URL pointing
                    # directly to the right place in the developer console to flip the bit.
                  "links": [ # URL(s) pointing to additional information on handling the current error.
                    { # Describes a URL link.
                      "description": "A String", # Describes what the link offers.
                      "url": "A String", # The URL of the link.
                    },
                  ],
                },
                "localizedMessage": { # Provides a localized error message that is safe to return to the user
                    # which can be attached to an RPC error.
                  "locale": "A String", # The locale used following the specification defined at
                      # https://www.rfc-editor.org/rfc/bcp/bcp47.txt.
                      # Examples are: "en-US", "fr-CH", "es-MX"
                  "message": "A String", # The localized error message in the above locale.
                },
                "quotaInfo": { # Additional details for quota exceeded error for resource quota.
                  "dimensions": { # The map holding related quota dimensions.
                    "a_key": "A String",
                  },
                  "futureLimit": 3.14, # Future quota limit being rolled out. The limit's unit depends on the quota
                      #  type or metric.
                  "limit": 3.14, # Current effective quota limit. The limit's unit depends on the quota type
                      # or metric.
                  "limitName": "A String", # The name of the quota limit.
                  "metricName": "A String", # The Compute Engine quota metric name.
                  "rolloutStatus": "A String", # Rollout status of the future quota limit.
                },
              },
            ],
            "location": "A String", # [Output Only] Indicates the field in the request that caused the error.
                # This property is optional.
            "message": "A String", # [Output Only] An optional, human-readable error message.
          },
        ],
      },
      "getVersionOperationMetadata": {
        "inlineSbomInfo": {
          "currentComponentVersions": { # A mapping of components to their currently-applied versions or other
              # appropriate identifiers.
            "a_key": "A String",
          },
          "targetComponentVersions": { # A mapping of components to their target versions or other appropriate
              # identifiers.
            "a_key": "A String",
          },
        },
      },
      "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error
          # message that was returned, such as `NOT FOUND`.
      "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error
          # status code that was returned. For example, a `404` means the
          # resource was not found.
      "id": "A String", # [Output Only] The unique identifier for the operation. This identifier is
          # defined by the server.
      "insertTime": "A String", # [Output Only] The time that this operation was requested.
          # This value is inRFC3339
          # text format.
      "instancesBulkInsertOperationMetadata": {
        "perLocationStatus": { # Status information per location (location name is key).
            # Example key: zones/us-central1-a
          "a_key": {
            "createdVmCount": 42, # [Output Only] Count of VMs successfully created so far.
            "deletedVmCount": 42, # [Output Only] Count of VMs that got deleted during rollback.
            "failedToCreateVmCount": 42, # [Output Only] Count of VMs that started creating but encountered an
                # error.
            "status": "A String", # [Output Only] Creation status of BulkInsert operation - information
                # if the flow is rolling forward or rolling back.
            "targetVmCount": 42, # [Output Only] Count of VMs originally planned to be created.
          },
        },
      },
      "kind": "compute#operation", # Output only. [Output Only] Type of the resource. Always `compute#operation` for
          # Operation resources.
      "name": "A String", # [Output Only] Name of the operation.
      "operationGroupId": "A String", # Output only. [Output Only] An ID that represents a group of operations, such as when a
          # group of operations results from a `bulkInsert` API request.
      "operationType": "A String", # [Output Only] The type of operation, such as `insert`,
          # `update`, or `delete`, and so on.
      "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100.
          # There is no requirement that this be linear or support any granularity of
          # operations. This should not be used to guess when the operation will be
          # complete. This number should monotonically increase as the operation
          # progresses.
      "region": "A String", # [Output Only] The URL of the region where the operation resides. Only
          # applicable when performing regional operations.
      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
      "setCommonInstanceMetadataOperationMetadata": { # Output only. [Output Only] If the operation is for projects.setCommonInstanceMetadata,
          # this field will contain information on all underlying zonal actions and
          # their state.
        "clientOperationId": "A String", # [Output Only] The client operation id.
        "perLocationOperations": { # [Output Only] Status information per location (location name is key).
            # Example key: zones/us-central1-a
          "a_key": {
            "error": { # The `Status` type defines a logical error model that is suitable for # [Output Only] If state is `ABANDONED` or `FAILED`, this field is
                # populated.
                # different programming environments, including REST APIs and RPC APIs. It is
                # used by [gRPC](https://github.com/grpc). Each `Status` message contains
                # three pieces of data: error code, error message, and error details.
                #
                # You can find out more about this error model and how to work with it in the
                # [API Design Guide](https://cloud.google.com/apis/design/errors).
              "code": 42, # The status code, which should be an enum value of google.rpc.Code.
              "details": [ # A list of messages that carry the error details.  There is a common set of
                  # message types for APIs to use.
                {
                  "a_key": "", # Properties of the object. Contains field @type with type URL.
                },
              ],
              "message": "A String", # A developer-facing error message, which should be in English. Any
                  # user-facing error message should be localized and sent in the
                  # google.rpc.Status.details field, or localized by the client.
            },
            "state": "A String", # [Output Only] Status of the action, which can be one of the following:
                # `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.
          },
        },
      },
      "startTime": "A String", # [Output Only] The time that this operation was started by the server.
          # This value is inRFC3339
          # text format.
      "status": "A String", # [Output Only] The status of the operation, which can be one of the
          # following:
          # `PENDING`, `RUNNING`, or `DONE`.
      "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the
          # operation.
      "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation
          # of the target resource.
      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For
          # operations related to creating a snapshot, this points to the disk
          # that the snapshot was created from.
      "user": "A String", # [Output Only] User who requested the operation, for example:
          # `user@example.com` or
          # `alice_smith_identifier (global/workforcePools/example-com-us-employees)`.
      "warnings": [ # [Output Only] If warning messages are generated during processing of the
          # operation, this field will be populated.
        {
          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute
              # Engine returns NO_RESULTS_ON_PAGE if there
              # are no results in the response.
          "data": [ # [Output Only] Metadata about this warning in key:
              # value format. For example:
              #
              # "data": [
              #   {
              #    "key": "scope",
              #    "value": "zones/us-east1-d"
              #   }
            {
              "key": "A String", # [Output Only] A key that provides more detail on the warning being
                  # returned. For example, for warnings where there are no results in a list
                  # request for a particular zone, this key might be scope and
                  # the key value might be the zone name. Other examples might be a key
                  # indicating a deprecated resource and a suggested replacement, or a
                  # warning about invalid network settings (for example, if an instance
                  # attempts to perform IP forwarding but is not enabled for IP forwarding).
              "value": "A String", # [Output Only] A warning data value corresponding to the key.
            },
          ],
          "message": "A String", # [Output Only] A human-readable description of the warning code.
        },
      ],
      "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only
          # applicable when performing per-zone operations.
    }

`get(project, forwardingRule, view=None, x__xgafv=None)`

    Returns the specified GlobalForwardingRule resource. Gets a list of
    available forwarding rules by making a list() request.

    Args:
      project: string, Project ID for this request. (required)
      forwardingRule: string, Name of the ForwardingRule resource to return. (required)
      view: string, A parameter
        Allowed values
          BASIC - The default view of a ForwardingRule, which includes the basic fields.
          FULL - The full view, including the ForwardingRule.`attached_extensions` field.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Represents a Forwarding Rule resource.
        #
        # Forwarding rule resources in Google Cloud can be either regional or global in
        # scope:
        #
        # * [Global](https://cloud.google.com/compute/docs/reference/rest/v1/globalForwardingRules)
        # * [Regional](https://cloud.google.com/compute/docs/reference/rest/v1/forwardingRules)
        #
        # A forwarding rule and its corresponding IP address represent the frontend
        # configuration of a Google Cloud load balancer.
        # Forwarding rules can also reference target instances and Cloud VPN Classic
        # gateways (targetVpnGateway).
        #
        # For more information, read
        # Forwarding rule concepts and
        # Using protocol forwarding.
      "IPAddress": "A String", # IP address for which this forwarding rule accepts traffic. When a client
          # sends traffic to this IP address, the forwarding rule directs the traffic
          # to the referenced target or backendService.
          # While creating a forwarding rule, specifying an IPAddress is
          # required under the following circumstances:
          #
          #
          #    - When the target is set to targetGrpcProxy andvalidateForProxyless is set to true, theIPAddress should be set to 0.0.0.0.
          #    - When the target is a Private Service Connect Google APIs
          #    bundle, you must specify an IPAddress.
          #
          #
          # Otherwise, you can optionally specify an IP address that references an
          # existing static (reserved) IP address resource. When omitted, Google Cloud
          # assigns an ephemeral IP address.
          #
          # Use one of the following formats to specify an IP address while creating a
          # forwarding rule:
          #
          # * IP address number, as in `100.1.2.3`
          # * IPv6 address range, as in `2600:1234::/96`
          # * Full resource URL, as inhttps://www.googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-name
          # * Partial URL or by name, as in:
          #
          #    - projects/project_id/regions/region/addresses/address-name
          #    - regions/region/addresses/address-name
          #    - global/addresses/address-name
          #    - address-name
          #
          #
          #
          # The forwarding rule's target or backendService,
          # and in most cases, also the loadBalancingScheme, determine the
          # type of IP address that you can use. For detailed information, see
          # [IP address
          # specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).
          #
          # When reading an IPAddress, the API always returns the IP
          # address number.
      "IPProtocol": "A String", # The IP protocol to which this rule applies.
          #
          # For protocol forwarding, valid
          # options are TCP, UDP, ESP,AH, SCTP, ICMP andL3_DEFAULT.
          #
          # The valid IP protocols are different for different load balancing products
          # as described in [Load balancing
          # features](https://cloud.google.com/load-balancing/docs/features#protocols_from_the_load_balancer_to_the_backends).
      "allPorts": True or False, # The ports, portRange, and allPorts
          # fields are mutually exclusive. Only packets addressed to ports in the
          # specified range will be forwarded to the backends configured with this
          # forwarding rule.
          #
          # The allPorts field has the following limitations:
          #
          #    - It requires that the forwarding rule IPProtocol be TCP,
          #    UDP, SCTP, or L3_DEFAULT.
          #    - It's applicable only to the following products: internal passthrough
          #    Network Load Balancers, backend service-based external passthrough Network
          #    Load Balancers, and internal and external protocol forwarding.
          #    - Set this field to true to allow packets addressed to any port or
          #    packets lacking destination port information (for example, UDP fragments
          #    after the first fragment) to be forwarded to the backends configured with
          #    this forwarding rule. The L3_DEFAULT protocol requiresallPorts be set to true.
      "allowGlobalAccess": True or False, # If set to true, clients can access the internal passthrough Network Load
          # Balancers, the regional internal Application Load Balancer, and the
          # regional internal proxy Network Load Balancer from all regions.
          # If false, only allows access from the local region the load balancer is
          # located at. Note that for INTERNAL_MANAGED forwarding rules, this field
          # cannot be changed after the forwarding rule is created.
      "allowPscGlobalAccess": True or False, # This is used in PSC consumer ForwardingRule to control whether the PSC
          # endpoint can be accessed from another region.
      "attachedExtensions": [ # Output only. [Output Only]. The extensions that are attached to this ForwardingRule.
        { # Reference to an extension resource that is attached to this ForwardingRule.
          "reference": "A String", # Output only. The resource name.
        },
      ],
      "backendService": "A String", # Identifies the backend service to which the forwarding rule sends traffic.
          # Required for internal and external passthrough Network Load Balancers;
          # must be omitted for all other load balancer types.
      "baseForwardingRule": "A String", # Output only. [Output Only] The URL for the corresponding base forwarding rule. By base
          # forwarding rule, we mean the forwarding rule that has the same IP address,
          # protocol, and port settings with the current forwarding rule, but without
          # sourceIPRanges specified.
          # Always empty if the current forwarding rule does not have sourceIPRanges
          # specified.
      "creationTimestamp": "A String", # Output only. [Output Only] Creation timestamp inRFC3339
          # text format.
      "description": "A String", # An optional description of this resource. Provide this property when you
          # create the resource.
      "externalManagedBackendBucketMigrationState": "A String", # Specifies the canary migration state for the backend buckets attached to
          # this forwarding rule. Possible values are PREPARE, TEST_BY_PERCENTAGE, and
          # TEST_ALL_TRAFFIC.
          #
          # To begin the migration from EXTERNAL to EXTERNAL_MANAGED, the state must be
          # changed to PREPARE. The state must be changed to TEST_ALL_TRAFFIC before
          # the loadBalancingScheme can be changed to EXTERNAL_MANAGED. Optionally, the
          # TEST_BY_PERCENTAGE state can be used to migrate traffic to backend buckets
          # attached to this forwarding rule by percentage using
          # externalManagedBackendBucketMigrationTestingPercentage.
          #
          # Rolling back a migration requires the states to be set in reverse order. So
          # changing the scheme from EXTERNAL_MANAGED to EXTERNAL requires the state to
          # be set to TEST_ALL_TRAFFIC at the same time. Optionally, the
          # TEST_BY_PERCENTAGE state can be used to migrate some traffic back to
          # EXTERNAL or PREPARE can be used to migrate all traffic back to EXTERNAL.
      "externalManagedBackendBucketMigrationTestingPercentage": 3.14, # Determines the fraction of requests to backend buckets that should be
          # processed by the global external Application Load Balancer.
          #
          # The value of this field must be in the range [0, 100].
          #
          # This value can only be set if the loadBalancingScheme in the BackendService
          # is set to EXTERNAL (when using the classic Application Load Balancer) and
          # the migration state is TEST_BY_PERCENTAGE.
      "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object.
          # This field is used in optimistic locking. This field will be ignored when
          # inserting a ForwardingRule. Include the fingerprint in patch request to
          # ensure that you do not overwrite changes that were applied from another
          # concurrent request.
          #
          # To see the latest fingerprint, make a get() request to
          # retrieve a ForwardingRule.
      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is
          # defined by the server.
      "ipCollection": "A String", # Resource reference of a PublicDelegatedPrefix. The PDP must
          # be a sub-PDP in EXTERNAL_IPV6_FORWARDING_RULE_CREATION mode.
          #
          # Use one of the following formats to specify a sub-PDP when creating an IPv6
          # NetLB forwarding rule using BYOIP:
          # Full resource URL, as inhttps://www.googleapis.com/compute/v1/projects/project_id/regions/region/publicDelegatedPrefixes/sub-pdp-name
          # Partial URL, as in:
          #
          #    - projects/project_id/regions/region/publicDelegatedPrefixes/sub-pdp-name
          #    - regions/region/publicDelegatedPrefixes/sub-pdp-name
      "ipVersion": "A String", # The IP Version that will be used by this forwarding rule.  Valid options
          # are IPV4 or IPV6.
      "isMirroringCollector": True or False, # Indicates whether or not this load balancer can be used as a collector for
          # packet mirroring. To prevent mirroring loops, instances behind this
          # load balancer will not have their traffic mirrored even if aPacketMirroring rule applies to them.
          # This can only be set to true for load balancers that have theirloadBalancingScheme set to INTERNAL.
      "kind": "compute#forwardingRule", # Output only. [Output Only] Type of the resource. Alwayscompute#forwardingRule for forwarding rule resources.
      "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is
          # essentially a hash of the labels set used for optimistic locking. The
          # fingerprint is initially generated by Compute Engine and changes after
          # every request to modify or update labels. You must always provide an
          # up-to-date fingerprint hash in order to update or change labels,
          # otherwise the request will fail with error412 conditionNotMet.
          #
          # To see the latest fingerprint, make a get() request to
          # retrieve a ForwardingRule.
      "labels": { # Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.
          # Label values may be empty.
        "a_key": "A String",
      },
      "loadBalancingScheme": "A String", # Specifies the forwarding rule type.
          #
          # For more information about forwarding rules, refer to
          # Forwarding rule concepts.
      "metadataFilters": [ # Opaque filter criteria used by load balancer to restrict routing
          # configuration to a limited set of xDS
          # compliant clients. In their xDS requests to load balancer, xDS clients
          # present node
          # metadata. When there is a match, the relevant configuration
          # is made available to those proxies. Otherwise, all the resources (e.g.TargetHttpProxy, UrlMap)
          # referenced by the ForwardingRule are not visible to
          # those proxies.
          #
          # For each metadataFilter in this list, if itsfilterMatchCriteria is set to MATCH_ANY, at least one of thefilterLabels 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 provided in the metadata. If multiplemetadataFilters are specified, all of them need to be satisfied
          # in order to be considered a match.
          #
          # metadataFilters specified here will be applifed before
          # those specified in the UrlMap that thisForwardingRule references.
          #
          # metadataFilters only applies to Loadbalancers that have
          # their loadBalancingScheme set toINTERNAL_SELF_MANAGED.
        { # Opaque filter criteria used by load balancers to restrict routing
            # configuration to a limited set of load balancing proxies. Proxies and
            # sidecars involved in load balancing would typically present metadata to the
            # load balancers that need to match criteria specified here. If a match takes
            # place, the relevant configuration is made available to those
            # proxies.
            #
            # For each metadataFilter in this list, if itsfilterMatchCriteria is set to MATCH_ANY, at least
            # one of thefilterLabels 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 provided in the metadata.
            #
            # An example for using metadataFilters would be: if
            # load balancing involves
            # Envoys, they receive routing configuration when values inmetadataFilters match values supplied in  of their XDS requests to loadbalancers.
          "filterLabels": [ # 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.
            { # MetadataFilter label name value pairs that are expected
                # to match corresponding labels presented as metadata to the load balancer.
              "name": "A String", # Name of metadata label.
                  #
                  #  The name can have a maximum length of 1024 characters and must be at
                  # least 1 character long.
              "value": "A String", # The value of the label must match the specified value.
                  #
                  # value can have a maximum length of 1024 characters.
            },
          ],
          "filterMatchCriteria": "A String", # Specifies how individual filter label matches
              # within the list of filterLabels and contributes toward 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.
        },
      ],
      "name": "A String", # Name of the resource; provided by the client when the resource is created.
          # The name must be 1-63 characters long, and comply withRFC1035.
          # 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.
          #
          # For Private Service Connect forwarding rules that forward traffic to Google
          # APIs, the forwarding rule name must be a 1-20 characters string with
          # lowercase letters and numbers and must start with a letter.
      "network": "A String", # This field is not used for global external load balancing.
          #
          # For internal passthrough Network Load Balancers, this field identifies the
          # network that the load balanced IP should belong to for this forwarding
          # rule.
          # If the subnetwork is specified, the network of the subnetwork will be used.
          # If neither subnetwork nor this field is specified, the default network will
          # be used.
          #
          # For Private Service Connect forwarding rules that forward traffic to Google
          # APIs, a network must be provided.
      "networkTier": "A String", # This signifies the networking tier used for configuring
          # this load balancer and can only take the following values:PREMIUM, STANDARD.
          #
          # For regional ForwardingRule, the valid values are PREMIUM andSTANDARD. For GlobalForwardingRule, the valid value isPREMIUM.
          #
          # If this field is not specified, it is assumed to be PREMIUM.
          # If IPAddress is specified, this value must be equal to the
          # networkTier of the Address.
      "noAutomateDnsZone": True or False, # This is used in PSC consumer ForwardingRule to control whether it should
          # try to auto-generate a DNS zone or not. Non-PSC forwarding rules do not use
          # this field. Once set, this field is not mutable.
      "portRange": "A String", # The ports, portRange, and allPorts
          # fields are mutually exclusive. Only packets addressed to ports in the
          # specified range will be forwarded to the backends configured with this
          # forwarding rule.
          #
          # The portRange field has the following limitations:
          #
          #    - It requires that the forwarding rule IPProtocol be TCP,
          #    UDP, or SCTP, and
          #    - It's applicable only to the following products: external passthrough
          #    Network Load Balancers, internal and external proxy Network Load Balancers,
          #    internal and external Application Load Balancers, external protocol
          #    forwarding, and Classic VPN.
          #    - Some products have restrictions on what ports can be used. See
          #    port specifications for details.
          #
          #
          #
          # For external forwarding rules, two or more forwarding rules cannot use the
          # same [IPAddress, IPProtocol] pair, and cannot have overlappingportRanges.
          #
          # For internal forwarding rules within the same VPC network, two or more
          # forwarding rules cannot use the same [IPAddress, IPProtocol]
          # pair, and cannot have overlapping portRanges.
          #
          # @pattern: \\d+(?:-\\d+)?
      "ports": [ # The ports, portRange, and allPorts
          # fields are mutually exclusive. Only packets addressed to ports in the
          # specified range will be forwarded to the backends configured with this
          # forwarding rule.
          #
          # The ports field has the following limitations:
          #
          #    - It requires that the forwarding rule IPProtocol be TCP,
          #    UDP, or SCTP, and
          #    - It's applicable only to the following products: internal passthrough
          #    Network Load Balancers, backend service-based external passthrough Network
          #    Load Balancers, and internal protocol forwarding.
          #    - You can specify a list of up to five ports by number, separated by
          #    commas. The ports can be contiguous or discontiguous.
          #
          #
          #
          # For external forwarding rules, two or more forwarding rules cannot use the
          # same [IPAddress, IPProtocol] pair if they share at least one
          # port number.
          #
          # For internal forwarding rules within the same VPC network, two or more
          # forwarding rules cannot use the same [IPAddress, IPProtocol]
          # pair if they share at least one port number.
          #
          # @pattern: \\d+(?:-\\d+)?
        "A String",
      ],
      "pscConnectionId": "A String", # [Output Only] The PSC connection id of the PSC forwarding rule.
      "pscConnectionStatus": "A String",
      "region": "A String", # Output only. [Output Only] URL of the region where the regional forwarding rule resides.
          # This field is not applicable to global forwarding rules.
          # You must specify this field as part of the HTTP request URL. It is
          # not settable as a field in the request body.
      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
      "selfLinkWithId": "A String", # Output only. [Output Only] Server-defined URL for this resource with the resource id.
      "serviceDirectoryRegistrations": [ # Service Directory resources to register this forwarding rule with.
          # Currently, only supports a single Service Directory resource.
        { # Describes the auto-registration of the forwarding rule to Service Directory.
            # The region and project of the Service Directory resource generated from
            # this registration will be the same as this forwarding rule.
          "namespace": "A String", # Service Directory namespace to register the forwarding rule under.
          "service": "A String", # Service Directory service to register the forwarding rule under.
          "serviceDirectoryRegion": "A String", # [Optional] Service Directory region to register this global forwarding
              # rule under. Default to "us-central1". Only used for PSC for Google APIs.
              # All PSC for Google APIs forwarding rules on the same network should use
              # the same Service Directory region.
        },
      ],
      "serviceLabel": "A String", # An optional prefix to the service name for this forwarding rule.
          # If specified, the prefix is the first label of the fully qualified service
          # name.
          #
          # The label must be 1-63 characters long, and comply withRFC1035.
          # Specifically, the label 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.
          #
          # This field is only used for internal load balancing.
      "serviceName": "A String", # [Output Only]
          # The internal fully qualified service name for this forwarding rule.
          #
          # This field is only used for internal load balancing.
      "sourceIpRanges": [ # If not empty, this forwarding rule will only forward the traffic when the
          # source IP address matches one of the IP addresses or CIDR ranges set here.
          # Note that a forwarding rule can only have up to 64 source IP ranges, and
          # this field can only be used with a regional forwarding rule whose scheme isEXTERNAL.
          # Each source_ip_range entry should be either an IP address (for
          # example, 1.2.3.4) or a CIDR range (for example, 1.2.3.0/24).
        "A String",
      ],
      "subnetwork": "A String", # This field identifies the subnetwork that the load balanced IP should
          # belong to for this forwarding rule, used with internal load balancers and
          # external passthrough Network Load Balancers with IPv6.
          #
          # If the network specified is in auto subnet mode, this field is optional.
          # However, a subnetwork must be specified if the network is in custom subnet
          # mode or when creating external forwarding rule with IPv6.
      "target": "A String", # The URL of the target resource to receive the matched traffic.  For
          # regional forwarding rules, this target must be in the same region as the
          # forwarding rule. For global forwarding rules, this target must be a global
          # load balancing resource.
          #
          # The forwarded traffic must be of a type appropriate to the target object.
          #
          #
          #      -  For load balancers, see the "Target" column in [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).
          #      -  For Private Service Connect forwarding rules that forward traffic to Google APIs, provide the name of a supported Google API bundle:
          #
          #
          #             -  vpc-sc -  APIs that support VPC Service Controls.
          #             -  all-apis - All supported Google APIs.
          #
          #
          #      -  For Private Service Connect forwarding rules that forward traffic to managed services, the target must be a service attachment. The target is not mutable once set as a service attachment.
    }

`insert(project, body=None, requestId=None, x__xgafv=None)`

    Creates a GlobalForwardingRule resource in the specified project using
    the data included in the request.

    Args:
      project: string, Project ID for this request. (required)
      body: object, The request body.
        The object takes the form of:

    { # Represents a Forwarding Rule resource.
        #
        # Forwarding rule resources in Google Cloud can be either regional or global in
        # scope:
        #
        # * [Global](https://cloud.google.com/compute/docs/reference/rest/v1/globalForwardingRules)
        # * [Regional](https://cloud.google.com/compute/docs/reference/rest/v1/forwardingRules)
        #
        # A forwarding rule and its corresponding IP address represent the frontend
        # configuration of a Google Cloud load balancer.
        # Forwarding rules can also reference target instances and Cloud VPN Classic
        # gateways (targetVpnGateway).
        #
        # For more information, read
        # Forwarding rule concepts and
        # Using protocol forwarding.
      "IPAddress": "A String", # IP address for which this forwarding rule accepts traffic. When a client
          # sends traffic to this IP address, the forwarding rule directs the traffic
          # to the referenced target or backendService.
          # While creating a forwarding rule, specifying an IPAddress is
          # required under the following circumstances:
          #
          #
          #    - When the target is set to targetGrpcProxy andvalidateForProxyless is set to true, theIPAddress should be set to 0.0.0.0.
          #    - When the target is a Private Service Connect Google APIs
          #    bundle, you must specify an IPAddress.
          #
          #
          # Otherwise, you can optionally specify an IP address that references an
          # existing static (reserved) IP address resource. When omitted, Google Cloud
          # assigns an ephemeral IP address.
          #
          # Use one of the following formats to specify an IP address while creating a
          # forwarding rule:
          #
          # * IP address number, as in `100.1.2.3`
          # * IPv6 address range, as in `2600:1234::/96`
          # * Full resource URL, as inhttps://www.googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-name
          # * Partial URL or by name, as in:
          #
          #    - projects/project_id/regions/region/addresses/address-name
          #    - regions/region/addresses/address-name
          #    - global/addresses/address-name
          #    - address-name
          #
          #
          #
          # The forwarding rule's target or backendService,
          # and in most cases, also the loadBalancingScheme, determine the
          # type of IP address that you can use. For detailed information, see
          # [IP address
          # specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).
          #
          # When reading an IPAddress, the API always returns the IP
          # address number.
      "IPProtocol": "A String", # The IP protocol to which this rule applies.
          #
          # For protocol forwarding, valid
          # options are TCP, UDP, ESP,AH, SCTP, ICMP andL3_DEFAULT.
          #
          # The valid IP protocols are different for different load balancing products
          # as described in [Load balancing
          # features](https://cloud.google.com/load-balancing/docs/features#protocols_from_the_load_balancer_to_the_backends).
      "allPorts": True or False, # The ports, portRange, and allPorts
          # fields are mutually exclusive. Only packets addressed to ports in the
          # specified range will be forwarded to the backends configured with this
          # forwarding rule.
          #
          # The allPorts field has the following limitations:
          #
          #    - It requires that the forwarding rule IPProtocol be TCP,
          #    UDP, SCTP, or L3_DEFAULT.
          #    - It's applicable only to the following products: internal passthrough
          #    Network Load Balancers, backend service-based external passthrough Network
          #    Load Balancers, and internal and external protocol forwarding.
          #    - Set this field to true to allow packets addressed to any port or
          #    packets lacking destination port information (for example, UDP fragments
          #    after the first fragment) to be forwarded to the backends configured with
          #    this forwarding rule. The L3_DEFAULT protocol requiresallPorts be set to true.
      "allowGlobalAccess": True or False, # If set to true, clients can access the internal passthrough Network Load
          # Balancers, the regional internal Application Load Balancer, and the
          # regional internal proxy Network Load Balancer from all regions.
          # If false, only allows access from the local region the load balancer is
          # located at. Note that for INTERNAL_MANAGED forwarding rules, this field
          # cannot be changed after the forwarding rule is created.
      "allowPscGlobalAccess": True or False, # This is used in PSC consumer ForwardingRule to control whether the PSC
          # endpoint can be accessed from another region.
      "attachedExtensions": [ # Output only. [Output Only]. The extensions that are attached to this ForwardingRule.
        { # Reference to an extension resource that is attached to this ForwardingRule.
          "reference": "A String", # Output only. The resource name.
        },
      ],
      "backendService": "A String", # Identifies the backend service to which the forwarding rule sends traffic.
          # Required for internal and external passthrough Network Load Balancers;
          # must be omitted for all other load balancer types.
      "baseForwardingRule": "A String", # Output only. [Output Only] The URL for the corresponding base forwarding rule. By base
          # forwarding rule, we mean the forwarding rule that has the same IP address,
          # protocol, and port settings with the current forwarding rule, but without
          # sourceIPRanges specified.
          # Always empty if the current forwarding rule does not have sourceIPRanges
          # specified.
      "creationTimestamp": "A String", # Output only. [Output Only] Creation timestamp inRFC3339
          # text format.
      "description": "A String", # An optional description of this resource. Provide this property when you
          # create the resource.
      "externalManagedBackendBucketMigrationState": "A String", # Specifies the canary migration state for the backend buckets attached to
          # this forwarding rule. Possible values are PREPARE, TEST_BY_PERCENTAGE, and
          # TEST_ALL_TRAFFIC.
          #
          # To begin the migration from EXTERNAL to EXTERNAL_MANAGED, the state must be
          # changed to PREPARE. The state must be changed to TEST_ALL_TRAFFIC before
          # the loadBalancingScheme can be changed to EXTERNAL_MANAGED. Optionally, the
          # TEST_BY_PERCENTAGE state can be used to migrate traffic to backend buckets
          # attached to this forwarding rule by percentage using
          # externalManagedBackendBucketMigrationTestingPercentage.
          #
          # Rolling back a migration requires the states to be set in reverse order. So
          # changing the scheme from EXTERNAL_MANAGED to EXTERNAL requires the state to
          # be set to TEST_ALL_TRAFFIC at the same time. Optionally, the
          # TEST_BY_PERCENTAGE state can be used to migrate some traffic back to
          # EXTERNAL or PREPARE can be used to migrate all traffic back to EXTERNAL.
      "externalManagedBackendBucketMigrationTestingPercentage": 3.14, # Determines the fraction of requests to backend buckets that should be
          # processed by the global external Application Load Balancer.
          #
          # The value of this field must be in the range [0, 100].
          #
          # This value can only be set if the loadBalancingScheme in the BackendService
          # is set to EXTERNAL (when using the classic Application Load Balancer) and
          # the migration state is TEST_BY_PERCENTAGE.
      "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object.
          # This field is used in optimistic locking. This field will be ignored when
          # inserting a ForwardingRule. Include the fingerprint in patch request to
          # ensure that you do not overwrite changes that were applied from another
          # concurrent request.
          #
          # To see the latest fingerprint, make a get() request to
          # retrieve a ForwardingRule.
      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is
          # defined by the server.
      "ipCollection": "A String", # Resource reference of a PublicDelegatedPrefix. The PDP must
          # be a sub-PDP in EXTERNAL_IPV6_FORWARDING_RULE_CREATION mode.
          #
          # Use one of the following formats to specify a sub-PDP when creating an IPv6
          # NetLB forwarding rule using BYOIP:
          # Full resource URL, as inhttps://www.googleapis.com/compute/v1/projects/project_id/regions/region/publicDelegatedPrefixes/sub-pdp-name
          # Partial URL, as in:
          #
          #    - projects/project_id/regions/region/publicDelegatedPrefixes/sub-pdp-name
          #    - regions/region/publicDelegatedPrefixes/sub-pdp-name
      "ipVersion": "A String", # The IP Version that will be used by this forwarding rule.  Valid options
          # are IPV4 or IPV6.
      "isMirroringCollector": True or False, # Indicates whether or not this load balancer can be used as a collector for
          # packet mirroring. To prevent mirroring loops, instances behind this
          # load balancer will not have their traffic mirrored even if aPacketMirroring rule applies to them.
          # This can only be set to true for load balancers that have theirloadBalancingScheme set to INTERNAL.
      "kind": "compute#forwardingRule", # Output only. [Output Only] Type of the resource. Alwayscompute#forwardingRule for forwarding rule resources.
      "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is
          # essentially a hash of the labels set used for optimistic locking. The
          # fingerprint is initially generated by Compute Engine and changes after
          # every request to modify or update labels. You must always provide an
          # up-to-date fingerprint hash in order to update or change labels,
          # otherwise the request will fail with error412 conditionNotMet.
          #
          # To see the latest fingerprint, make a get() request to
          # retrieve a ForwardingRule.
      "labels": { # Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.
          # Label values may be empty.
        "a_key": "A String",
      },
      "loadBalancingScheme": "A String", # Specifies the forwarding rule type.
          #
          # For more information about forwarding rules, refer to
          # Forwarding rule concepts.
      "metadataFilters": [ # Opaque filter criteria used by load balancer to restrict routing
          # configuration to a limited set of xDS
          # compliant clients. In their xDS requests to load balancer, xDS clients
          # present node
          # metadata. When there is a match, the relevant configuration
          # is made available to those proxies. Otherwise, all the resources (e.g.TargetHttpProxy, UrlMap)
          # referenced by the ForwardingRule are not visible to
          # those proxies.
          #
          # For each metadataFilter in this list, if itsfilterMatchCriteria is set to MATCH_ANY, at least one of thefilterLabels 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 provided in the metadata. If multiplemetadataFilters are specified, all of them need to be satisfied
          # in order to be considered a match.
          #
          # metadataFilters specified here will be applifed before
          # those specified in the UrlMap that thisForwardingRule references.
          #
          # metadataFilters only applies to Loadbalancers that have
          # their loadBalancingScheme set toINTERNAL_SELF_MANAGED.
        { # Opaque filter criteria used by load balancers to restrict routing
            # configuration to a limited set of load balancing proxies. Proxies and
            # sidecars involved in load balancing would typically present metadata to the
            # load balancers that need to match criteria specified here. If a match takes
            # place, the relevant configuration is made available to those
            # proxies.
            #
            # For each metadataFilter in this list, if itsfilterMatchCriteria is set to MATCH_ANY, at least
            # one of thefilterLabels 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 provided in the metadata.
            #
            # An example for using metadataFilters would be: if
            # load balancing involves
            # Envoys, they receive routing configuration when values inmetadataFilters match values supplied in  of their XDS requests to loadbalancers.
          "filterLabels": [ # 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.
            { # MetadataFilter label name value pairs that are expected
                # to match corresponding labels presented as metadata to the load balancer.
              "name": "A String", # Name of metadata label.
                  #
                  #  The name can have a maximum length of 1024 characters and must be at
                  # least 1 character long.
              "value": "A String", # The value of the label must match the specified value.
                  #
                  # value can have a maximum length of 1024 characters.
            },
          ],
          "filterMatchCriteria": "A String", # Specifies how individual filter label matches
              # within the list of filterLabels and contributes toward 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.
        },
      ],
      "name": "A String", # Name of the resource; provided by the client when the resource is created.
          # The name must be 1-63 characters long, and comply withRFC1035.
          # 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.
          #
          # For Private Service Connect forwarding rules that forward traffic to Google
          # APIs, the forwarding rule name must be a 1-20 characters string with
          # lowercase letters and numbers and must start with a letter.
      "network": "A String", # This field is not used for global external load balancing.
          #
          # For internal passthrough Network Load Balancers, this field identifies the
          # network that the load balanced IP should belong to for this forwarding
          # rule.
          # If the subnetwork is specified, the network of the subnetwork will be used.
          # If neither subnetwork nor this field is specified, the default network will
          # be used.
          #
          # For Private Service Connect forwarding rules that forward traffic to Google
          # APIs, a network must be provided.
      "networkTier": "A String", # This signifies the networking tier used for configuring
          # this load balancer and can only take the following values:PREMIUM, STANDARD.
          #
          # For regional ForwardingRule, the valid values are PREMIUM andSTANDARD. For GlobalForwardingRule, the valid value isPREMIUM.
          #
          # If this field is not specified, it is assumed to be PREMIUM.
          # If IPAddress is specified, this value must be equal to the
          # networkTier of the Address.
      "noAutomateDnsZone": True or False, # This is used in PSC consumer ForwardingRule to control whether it should
          # try to auto-generate a DNS zone or not. Non-PSC forwarding rules do not use
          # this field. Once set, this field is not mutable.
      "portRange": "A String", # The ports, portRange, and allPorts
          # fields are mutually exclusive. Only packets addressed to ports in the
          # specified range will be forwarded to the backends configured with this
          # forwarding rule.
          #
          # The portRange field has the following limitations:
          #
          #    - It requires that the forwarding rule IPProtocol be TCP,
          #    UDP, or SCTP, and
          #    - It's applicable only to the following products: external passthrough
          #    Network Load Balancers, internal and external proxy Network Load Balancers,
          #    internal and external Application Load Balancers, external protocol
          #    forwarding, and Classic VPN.
          #    - Some products have restrictions on what ports can be used. See
          #    port specifications for details.
          #
          #
          #
          # For external forwarding rules, two or more forwarding rules cannot use the
          # same [IPAddress, IPProtocol] pair, and cannot have overlappingportRanges.
          #
          # For internal forwarding rules within the same VPC network, two or more
          # forwarding rules cannot use the same [IPAddress, IPProtocol]
          # pair, and cannot have overlapping portRanges.
          #
          # @pattern: \\d+(?:-\\d+)?
      "ports": [ # The ports, portRange, and allPorts
          # fields are mutually exclusive. Only packets addressed to ports in the
          # specified range will be forwarded to the backends configured with this
          # forwarding rule.
          #
          # The ports field has the following limitations:
          #
          #    - It requires that the forwarding rule IPProtocol be TCP,
          #    UDP, or SCTP, and
          #    - It's applicable only to the following products: internal passthrough
          #    Network Load Balancers, backend service-based external passthrough Network
          #    Load Balancers, and internal protocol forwarding.
          #    - You can specify a list of up to five ports by number, separated by
          #    commas. The ports can be contiguous or discontiguous.
          #
          #
          #
          # For external forwarding rules, two or more forwarding rules cannot use the
          # same [IPAddress, IPProtocol] pair if they share at least one
          # port number.
          #
          # For internal forwarding rules within the same VPC network, two or more
          # forwarding rules cannot use the same [IPAddress, IPProtocol]
          # pair if they share at least one port number.
          #
          # @pattern: \\d+(?:-\\d+)?
        "A String",
      ],
      "pscConnectionId": "A String", # [Output Only] The PSC connection id of the PSC forwarding rule.
      "pscConnectionStatus": "A String",
      "region": "A String", # Output only. [Output Only] URL of the region where the regional forwarding rule resides.
          # This field is not applicable to global forwarding rules.
          # You must specify this field as part of the HTTP request URL. It is
          # not settable as a field in the request body.
      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
      "selfLinkWithId": "A String", # Output only. [Output Only] Server-defined URL for this resource with the resource id.
      "serviceDirectoryRegistrations": [ # Service Directory resources to register this forwarding rule with.
          # Currently, only supports a single Service Directory resource.
        { # Describes the auto-registration of the forwarding rule to Service Directory.
            # The region and project of the Service Directory resource generated from
            # this registration will be the same as this forwarding rule.
          "namespace": "A String", # Service Directory namespace to register the forwarding rule under.
          "service": "A String", # Service Directory service to register the forwarding rule under.
          "serviceDirectoryRegion": "A String", # [Optional] Service Directory region to register this global forwarding
              # rule under. Default to "us-central1". Only used for PSC for Google APIs.
              # All PSC for Google APIs forwarding rules on the same network should use
              # the same Service Directory region.
        },
      ],
      "serviceLabel": "A String", # An optional prefix to the service name for this forwarding rule.
          # If specified, the prefix is the first label of the fully qualified service
          # name.
          #
          # The label must be 1-63 characters long, and comply withRFC1035.
          # Specifically, the label 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.
          #
          # This field is only used for internal load balancing.
      "serviceName": "A String", # [Output Only]
          # The internal fully qualified service name for this forwarding rule.
          #
          # This field is only used for internal load balancing.
      "sourceIpRanges": [ # If not empty, this forwarding rule will only forward the traffic when the
          # source IP address matches one of the IP addresses or CIDR ranges set here.
          # Note that a forwarding rule can only have up to 64 source IP ranges, and
          # this field can only be used with a regional forwarding rule whose scheme isEXTERNAL.
          # Each source_ip_range entry should be either an IP address (for
          # example, 1.2.3.4) or a CIDR range (for example, 1.2.3.0/24).
        "A String",
      ],
      "subnetwork": "A String", # This field identifies the subnetwork that the load balanced IP should
          # belong to for this forwarding rule, used with internal load balancers and
          # external passthrough Network Load Balancers with IPv6.
          #
          # If the network specified is in auto subnet mode, this field is optional.
          # However, a subnetwork must be specified if the network is in custom subnet
          # mode or when creating external forwarding rule with IPv6.
      "target": "A String", # The URL of the target resource to receive the matched traffic.  For
          # regional forwarding rules, this target must be in the same region as the
          # forwarding rule. For global forwarding rules, this target must be a global
          # load balancing resource.
          #
          # The forwarded traffic must be of a type appropriate to the target object.
          #
          #
          #      -  For load balancers, see the "Target" column in [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).
          #      -  For Private Service Connect forwarding rules that forward traffic to Google APIs, provide the name of a supported Google API bundle:
          #
          #
          #             -  vpc-sc -  APIs that support VPC Service Controls.
          #             -  all-apis - All supported Google APIs.
          #
          #
          #      -  For Private Service Connect forwarding rules that forward traffic to managed services, the target must be a service attachment. The target is not mutable once set as a service attachment.
    }

      requestId: string, An optional request ID to identify requests. Specify a unique request ID so
    that if you must retry your request, the server will know to ignore the
    request if it has already been completed.

    For example, consider a situation where you make an initial request and
    the request times out. If you make the request again with the same
    request ID, the server can check if original operation with the same
    request ID was received, and if so, will ignore the second request. This
    prevents clients from accidentally creating duplicate commitments.

    The request ID must be
    a valid UUID with the exception that zero UUID is not supported
    (00000000-0000-0000-0000-000000000000).
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Represents an Operation resource.
        #
        # Google Compute Engine has three Operation resources:
        #
        # * [Global](/compute/docs/reference/rest/v1/globalOperations)
        # * [Regional](/compute/docs/reference/rest/v1/regionOperations)
        # * [Zonal](/compute/docs/reference/rest/v1/zoneOperations)
        #
        # You can use an operation resource to manage asynchronous API requests.
        # For more information, readHandling
        # API responses.
        #
        # Operations can be global, regional or zonal.
        #
        #    - For global operations, use the `globalOperations`
        #    resource.
        #    - For regional operations, use the
        #    `regionOperations` resource.
        #    - For zonal operations, use
        #    the `zoneOperations` resource.
        #
        #
        #
        # For more information, read
        # Global, Regional, and Zonal Resources.
        #
        # Note that completed Operation resources have a limited
        # retention period.
      "clientOperationId": "A String", # [Output Only] The value of `requestId` if you provided it in the request.
          # Not present otherwise.
      "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
      "description": "A String", # [Output Only] A textual description of the operation, which is
          # set when the operation is created.
      "endTime": "A String", # [Output Only] The time that this operation was completed. This value is inRFC3339
          # text format.
      "error": { # [Output Only] If errors are generated during processing of the operation,
          # this field will be populated.
        "errors": [ # [Output Only] The array of errors encountered while processing this
            # operation.
          {
            "code": "A String", # [Output Only] The error type identifier for this error.
            "errorDetails": [ # [Output Only] An optional list of messages that contain the error
                # details. There is a set of defined message types to use for providing
                # details.The syntax depends on the error code. For example,
                # QuotaExceededInfo will have details when the error code is
                # QUOTA_EXCEEDED.
              {
                "errorInfo": { # Describes the cause of the error with structured details.
                    #
                    # Example of an error when contacting the "pubsub.googleapis.com" API when it
                    # is not enabled:
                    #
                    #     { "reason": "API_DISABLED"
                    #       "domain": "googleapis.com"
                    #       "metadata": {
                    #         "resource": "projects/123",
                    #         "service": "pubsub.googleapis.com"
                    #       }
                    #     }
                    #
                    # This response indicates that the pubsub.googleapis.com API is not enabled.
                    #
                    # Example of an error that is returned when attempting to create a Spanner
                    # instance in a region that is out of stock:
                    #
                    #     { "reason": "STOCKOUT"
                    #       "domain": "spanner.googleapis.com",
                    #       "metadata": {
                    #         "availableRegions": "us-central1,us-east2"
                    #       }
                    #     }
                  "domain": "A String", # The logical grouping to which the "reason" belongs. The error domain
                      # is typically the registered service name of the tool or product that
                      # generates the error. Example: "pubsub.googleapis.com". If the error is
                      # generated by some common infrastructure, the error domain must be a
                      # globally unique value that identifies the infrastructure. For Google API
                      # infrastructure, the error domain is "googleapis.com".
                  "metadatas": { # Additional structured details about this error.
                      #
                      # Keys must match a regular expression of `a-z+` but should
                      # ideally be lowerCamelCase. Also, they must be limited to 64 characters in
                      # length. When identifying the current value of an exceeded limit, the units
                      # should be contained in the key, not the value.  For example, rather than
                      # `{"instanceLimit": "100/request"}`, should be returned as,
                      # `{"instanceLimitPerRequest": "100"}`, if the client exceeds the number of
                      # instances that can be created in a single (batch) request.
                    "a_key": "A String",
                  },
                  "reason": "A String", # The reason of the error. This is a constant value that identifies the
                      # proximate cause of the error. Error reasons are unique within a particular
                      # domain of errors. This should be at most 63 characters and match a
                      # regular expression of `A-Z+[A-Z0-9]`, which represents
                      # UPPER_SNAKE_CASE.
                },
                "help": { # Provides links to documentation or for performing an out of band action.
                    #
                    # For example, if a quota check failed with an error indicating the calling
                    # project hasn't enabled the accessed service, this can contain a URL pointing
                    # directly to the right place in the developer console to flip the bit.
                  "links": [ # URL(s) pointing to additional information on handling the current error.
                    { # Describes a URL link.
                      "description": "A String", # Describes what the link offers.
                      "url": "A String", # The URL of the link.
                    },
                  ],
                },
                "localizedMessage": { # Provides a localized error message that is safe to return to the user
                    # which can be attached to an RPC error.
                  "locale": "A String", # The locale used following the specification defined at
                      # https://www.rfc-editor.org/rfc/bcp/bcp47.txt.
                      # Examples are: "en-US", "fr-CH", "es-MX"
                  "message": "A String", # The localized error message in the above locale.
                },
                "quotaInfo": { # Additional details for quota exceeded error for resource quota.
                  "dimensions": { # The map holding related quota dimensions.
                    "a_key": "A String",
                  },
                  "futureLimit": 3.14, # Future quota limit being rolled out. The limit's unit depends on the quota
                      #  type or metric.
                  "limit": 3.14, # Current effective quota limit. The limit's unit depends on the quota type
                      # or metric.
                  "limitName": "A String", # The name of the quota limit.
                  "metricName": "A String", # The Compute Engine quota metric name.
                  "rolloutStatus": "A String", # Rollout status of the future quota limit.
                },
              },
            ],
            "location": "A String", # [Output Only] Indicates the field in the request that caused the error.
                # This property is optional.
            "message": "A String", # [Output Only] An optional, human-readable error message.
          },
        ],
      },
      "getVersionOperationMetadata": {
        "inlineSbomInfo": {
          "currentComponentVersions": { # A mapping of components to their currently-applied versions or other
              # appropriate identifiers.
            "a_key": "A String",
          },
          "targetComponentVersions": { # A mapping of components to their target versions or other appropriate
              # identifiers.
            "a_key": "A String",
          },
        },
      },
      "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error
          # message that was returned, such as `NOT FOUND`.
      "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error
          # status code that was returned. For example, a `404` means the
          # resource was not found.
      "id": "A String", # [Output Only] The unique identifier for the operation. This identifier is
          # defined by the server.
      "insertTime": "A String", # [Output Only] The time that this operation was requested.
          # This value is inRFC3339
          # text format.
      "instancesBulkInsertOperationMetadata": {
        "perLocationStatus": { # Status information per location (location name is key).
            # Example key: zones/us-central1-a
          "a_key": {
            "createdVmCount": 42, # [Output Only] Count of VMs successfully created so far.
            "deletedVmCount": 42, # [Output Only] Count of VMs that got deleted during rollback.
            "failedToCreateVmCount": 42, # [Output Only] Count of VMs that started creating but encountered an
                # error.
            "status": "A String", # [Output Only] Creation status of BulkInsert operation - information
                # if the flow is rolling forward or rolling back.
            "targetVmCount": 42, # [Output Only] Count of VMs originally planned to be created.
          },
        },
      },
      "kind": "compute#operation", # Output only. [Output Only] Type of the resource. Always `compute#operation` for
          # Operation resources.
      "name": "A String", # [Output Only] Name of the operation.
      "operationGroupId": "A String", # Output only. [Output Only] An ID that represents a group of operations, such as when a
          # group of operations results from a `bulkInsert` API request.
      "operationType": "A String", # [Output Only] The type of operation, such as `insert`,
          # `update`, or `delete`, and so on.
      "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100.
          # There is no requirement that this be linear or support any granularity of
          # operations. This should not be used to guess when the operation will be
          # complete. This number should monotonically increase as the operation
          # progresses.
      "region": "A String", # [Output Only] The URL of the region where the operation resides. Only
          # applicable when performing regional operations.
      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
      "setCommonInstanceMetadataOperationMetadata": { # Output only. [Output Only] If the operation is for projects.setCommonInstanceMetadata,
          # this field will contain information on all underlying zonal actions and
          # their state.
        "clientOperationId": "A String", # [Output Only] The client operation id.
        "perLocationOperations": { # [Output Only] Status information per location (location name is key).
            # Example key: zones/us-central1-a
          "a_key": {
            "error": { # The `Status` type defines a logical error model that is suitable for # [Output Only] If state is `ABANDONED` or `FAILED`, this field is
                # populated.
                # different programming environments, including REST APIs and RPC APIs. It is
                # used by [gRPC](https://github.com/grpc). Each `Status` message contains
                # three pieces of data: error code, error message, and error details.
                #
                # You can find out more about this error model and how to work with it in the
                # [API Design Guide](https://cloud.google.com/apis/design/errors).
              "code": 42, # The status code, which should be an enum value of google.rpc.Code.
              "details": [ # A list of messages that carry the error details.  There is a common set of
                  # message types for APIs to use.
                {
                  "a_key": "", # Properties of the object. Contains field @type with type URL.
                },
              ],
              "message": "A String", # A developer-facing error message, which should be in English. Any
                  # user-facing error message should be localized and sent in the
                  # google.rpc.Status.details field, or localized by the client.
            },
            "state": "A String", # [Output Only] Status of the action, which can be one of the following:
                # `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.
          },
        },
      },
      "startTime": "A String", # [Output Only] The time that this operation was started by the server.
          # This value is inRFC3339
          # text format.
      "status": "A String", # [Output Only] The status of the operation, which can be one of the
          # following:
          # `PENDING`, `RUNNING`, or `DONE`.
      "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the
          # operation.
      "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation
          # of the target resource.
      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For
          # operations related to creating a snapshot, this points to the disk
          # that the snapshot was created from.
      "user": "A String", # [Output Only] User who requested the operation, for example:
          # `user@example.com` or
          # `alice_smith_identifier (global/workforcePools/example-com-us-employees)`.
      "warnings": [ # [Output Only] If warning messages are generated during processing of the
          # operation, this field will be populated.
        {
          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute
              # Engine returns NO_RESULTS_ON_PAGE if there
              # are no results in the response.
          "data": [ # [Output Only] Metadata about this warning in key:
              # value format. For example:
              #
              # "data": [
              #   {
              #    "key": "scope",
              #    "value": "zones/us-east1-d"
              #   }
            {
              "key": "A String", # [Output Only] A key that provides more detail on the warning being
                  # returned. For example, for warnings where there are no results in a list
                  # request for a particular zone, this key might be scope and
                  # the key value might be the zone name. Other examples might be a key
                  # indicating a deprecated resource and a suggested replacement, or a
                  # warning about invalid network settings (for example, if an instance
                  # attempts to perform IP forwarding but is not enabled for IP forwarding).
              "value": "A String", # [Output Only] A warning data value corresponding to the key.
            },
          ],
          "message": "A String", # [Output Only] A human-readable description of the warning code.
        },
      ],
      "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only
          # applicable when performing per-zone operations.
    }

`list(project, filter=None, maxResults=None, orderBy=None, pageToken=None, returnPartialSuccess=None, x__xgafv=None)`

    Retrieves a list of GlobalForwardingRule resources available to the
    specified project.

    Args:
      project: string, Project ID for this request. (required)
      filter: string, A filter expression that filters resources listed in the response. Most
    Compute resources support two types of filter expressions:
    expressions that support regular expressions and expressions that follow
    API improvement proposal AIP-160.
    These two types of filter expressions cannot be mixed in one request.

    If you want to use AIP-160, your expression must specify the field name, an
    operator, and the value that you want to use for filtering. The value
    must be a string, a number, or a boolean. The operator
    must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`.

    For example, if you are filtering Compute Engine instances, you can
    exclude instances named `example-instance` by specifying
    `name != example-instance`.

    The `:*` comparison can be used to test whether a key has been defined.
    For example, to find all objects with `owner` label use:
    ```
    labels.owner:*
    ```

    You can also filter nested fields. For example, you could specify
    `scheduling.automaticRestart = false` to include instances only
    if they are not scheduled for automatic restarts. You can use filtering
    on nested fields to filter based onresource labels.

    To filter on multiple expressions, provide each separate expression within
    parentheses. For example:
    ```
    (scheduling.automaticRestart = true)
    (cpuPlatform = "Intel Skylake")
    ```
    By default, each expression is an `AND` expression. However, you
    can include `AND` and `OR` expressions explicitly.
    For example:
    ```
    (cpuPlatform = "Intel Skylake") OR
    (cpuPlatform = "Intel Broadwell") AND
    (scheduling.automaticRestart = true)
    ```

    If you want to use a regular expression, use the `eq` (equal) or `ne`
    (not equal) operator against a single un-parenthesized expression with or
    without quotes or against multiple parenthesized expressions. Examples:

    `fieldname eq unquoted literal`
    `fieldname eq 'single quoted literal'`
    `fieldname eq "double quoted literal"`
    `(fieldname1 eq literal) (fieldname2 ne "literal")`

    The literal value is interpreted as a regular expression using GoogleRE2 library syntax.
    The literal value must match the entire field.

    For example, to filter for instances that do not end with name "instance",
    you would use `name ne .*instance`.

    You cannot combine constraints on multiple fields using regular
    expressions.
      maxResults: integer, The maximum number of results per page that should be returned.
    If the number of available results is larger than `maxResults`,
    Compute Engine returns a `nextPageToken` that can be used to get
    the next page of results in subsequent list requests. Acceptable values are
    `0` to `500`, inclusive. (Default: `500`)
      orderBy: string, Sorts list results by a certain order. By default, results
    are returned in alphanumerical order based on the resource name.

    You can also sort results in descending order based on the creation
    timestamp using `orderBy="creationTimestamp desc"`. This sorts
    results based on the `creationTimestamp` field in
    reverse chronological order (newest result first). Use this to sort
    resources like operations so that the newest operation is returned first.

    Currently, only sorting by `name` or
    `creationTimestamp desc` is supported.
      pageToken: string, Specifies a page token to use. Set `pageToken` to the
    `nextPageToken` returned by a previous list request to get
    the next page of results.
      returnPartialSuccess: boolean, Opt-in for partial success behavior which provides partial results in case
    of failure. The default value is false.

    For example, when partial success behavior is enabled, aggregatedList for a
    single zone scope either returns all resources in the zone or no resources,
    with an error code.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Contains a list of ForwardingRule resources.
      "id": "A String", # [Output Only] Unique identifier for the resource; defined by the server.
      "items": [ # A list of ForwardingRule resources.
        { # Represents a Forwarding Rule resource.
            #
            # Forwarding rule resources in Google Cloud can be either regional or global in
            # scope:
            #
            # * [Global](https://cloud.google.com/compute/docs/reference/rest/v1/globalForwardingRules)
            # * [Regional](https://cloud.google.com/compute/docs/reference/rest/v1/forwardingRules)
            #
            # A forwarding rule and its corresponding IP address represent the frontend
            # configuration of a Google Cloud load balancer.
            # Forwarding rules can also reference target instances and Cloud VPN Classic
            # gateways (targetVpnGateway).
            #
            # For more information, read
            # Forwarding rule concepts and
            # Using protocol forwarding.
          "IPAddress": "A String", # IP address for which this forwarding rule accepts traffic. When a client
              # sends traffic to this IP address, the forwarding rule directs the traffic
              # to the referenced target or backendService.
              # While creating a forwarding rule, specifying an IPAddress is
              # required under the following circumstances:
              #
              #
              #    - When the target is set to targetGrpcProxy andvalidateForProxyless is set to true, theIPAddress should be set to 0.0.0.0.
              #    - When the target is a Private Service Connect Google APIs
              #    bundle, you must specify an IPAddress.
              #
              #
              # Otherwise, you can optionally specify an IP address that references an
              # existing static (reserved) IP address resource. When omitted, Google Cloud
              # assigns an ephemeral IP address.
              #
              # Use one of the following formats to specify an IP address while creating a
              # forwarding rule:
              #
              # * IP address number, as in `100.1.2.3`
              # * IPv6 address range, as in `2600:1234::/96`
              # * Full resource URL, as inhttps://www.googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-name
              # * Partial URL or by name, as in:
              #
              #    - projects/project_id/regions/region/addresses/address-name
              #    - regions/region/addresses/address-name
              #    - global/addresses/address-name
              #    - address-name
              #
              #
              #
              # The forwarding rule's target or backendService,
              # and in most cases, also the loadBalancingScheme, determine the
              # type of IP address that you can use. For detailed information, see
              # [IP address
              # specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).
              #
              # When reading an IPAddress, the API always returns the IP
              # address number.
          "IPProtocol": "A String", # The IP protocol to which this rule applies.
              #
              # For protocol forwarding, valid
              # options are TCP, UDP, ESP,AH, SCTP, ICMP andL3_DEFAULT.
              #
              # The valid IP protocols are different for different load balancing products
              # as described in [Load balancing
              # features](https://cloud.google.com/load-balancing/docs/features#protocols_from_the_load_balancer_to_the_backends).
          "allPorts": True or False, # The ports, portRange, and allPorts
              # fields are mutually exclusive. Only packets addressed to ports in the
              # specified range will be forwarded to the backends configured with this
              # forwarding rule.
              #
              # The allPorts field has the following limitations:
              #
              #    - It requires that the forwarding rule IPProtocol be TCP,
              #    UDP, SCTP, or L3_DEFAULT.
              #    - It's applicable only to the following products: internal passthrough
              #    Network Load Balancers, backend service-based external passthrough Network
              #    Load Balancers, and internal and external protocol forwarding.
              #    - Set this field to true to allow packets addressed to any port or
              #    packets lacking destination port information (for example, UDP fragments
              #    after the first fragment) to be forwarded to the backends configured with
              #    this forwarding rule. The L3_DEFAULT protocol requiresallPorts be set to true.
          "allowGlobalAccess": True or False, # If set to true, clients can access the internal passthrough Network Load
              # Balancers, the regional internal Application Load Balancer, and the
              # regional internal proxy Network Load Balancer from all regions.
              # If false, only allows access from the local region the load balancer is
              # located at. Note that for INTERNAL_MANAGED forwarding rules, this field
              # cannot be changed after the forwarding rule is created.
          "allowPscGlobalAccess": True or False, # This is used in PSC consumer ForwardingRule to control whether the PSC
              # endpoint can be accessed from another region.
          "attachedExtensions": [ # Output only. [Output Only]. The extensions that are attached to this ForwardingRule.
            { # Reference to an extension resource that is attached to this ForwardingRule.
              "reference": "A String", # Output only. The resource name.
            },
          ],
          "backendService": "A String", # Identifies the backend service to which the forwarding rule sends traffic.
              # Required for internal and external passthrough Network Load Balancers;
              # must be omitted for all other load balancer types.
          "baseForwardingRule": "A String", # Output only. [Output Only] The URL for the corresponding base forwarding rule. By base
              # forwarding rule, we mean the forwarding rule that has the same IP address,
              # protocol, and port settings with the current forwarding rule, but without
              # sourceIPRanges specified.
              # Always empty if the current forwarding rule does not have sourceIPRanges
              # specified.
          "creationTimestamp": "A String", # Output only. [Output Only] Creation timestamp inRFC3339
              # text format.
          "description": "A String", # An optional description of this resource. Provide this property when you
              # create the resource.
          "externalManagedBackendBucketMigrationState": "A String", # Specifies the canary migration state for the backend buckets attached to
              # this forwarding rule. Possible values are PREPARE, TEST_BY_PERCENTAGE, and
              # TEST_ALL_TRAFFIC.
              #
              # To begin the migration from EXTERNAL to EXTERNAL_MANAGED, the state must be
              # changed to PREPARE. The state must be changed to TEST_ALL_TRAFFIC before
              # the loadBalancingScheme can be changed to EXTERNAL_MANAGED. Optionally, the
              # TEST_BY_PERCENTAGE state can be used to migrate traffic to backend buckets
              # attached to this forwarding rule by percentage using
              # externalManagedBackendBucketMigrationTestingPercentage.
              #
              # Rolling back a migration requires the states to be set in reverse order. So
              # changing the scheme from EXTERNAL_MANAGED to EXTERNAL requires the state to
              # be set to TEST_ALL_TRAFFIC at the same time. Optionally, the
              # TEST_BY_PERCENTAGE state can be used to migrate some traffic back to
              # EXTERNAL or PREPARE can be used to migrate all traffic back to EXTERNAL.
          "externalManagedBackendBucketMigrationTestingPercentage": 3.14, # Determines the fraction of requests to backend buckets that should be
              # processed by the global external Application Load Balancer.
              #
              # The value of this field must be in the range [0, 100].
              #
              # This value can only be set if the loadBalancingScheme in the BackendService
              # is set to EXTERNAL (when using the classic Application Load Balancer) and
              # the migration state is TEST_BY_PERCENTAGE.
          "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object.
              # This field is used in optimistic locking. This field will be ignored when
              # inserting a ForwardingRule. Include the fingerprint in patch request to
              # ensure that you do not overwrite changes that were applied from another
              # concurrent request.
              #
              # To see the latest fingerprint, make a get() request to
              # retrieve a ForwardingRule.
          "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is
              # defined by the server.
          "ipCollection": "A String", # Resource reference of a PublicDelegatedPrefix. The PDP must
              # be a sub-PDP in EXTERNAL_IPV6_FORWARDING_RULE_CREATION mode.
              #
              # Use one of the following formats to specify a sub-PDP when creating an IPv6
              # NetLB forwarding rule using BYOIP:
              # Full resource URL, as inhttps://www.googleapis.com/compute/v1/projects/project_id/regions/region/publicDelegatedPrefixes/sub-pdp-name
              # Partial URL, as in:
              #
              #    - projects/project_id/regions/region/publicDelegatedPrefixes/sub-pdp-name
              #    - regions/region/publicDelegatedPrefixes/sub-pdp-name
          "ipVersion": "A String", # The IP Version that will be used by this forwarding rule.  Valid options
              # are IPV4 or IPV6.
          "isMirroringCollector": True or False, # Indicates whether or not this load balancer can be used as a collector for
              # packet mirroring. To prevent mirroring loops, instances behind this
              # load balancer will not have their traffic mirrored even if aPacketMirroring rule applies to them.
              # This can only be set to true for load balancers that have theirloadBalancingScheme set to INTERNAL.
          "kind": "compute#forwardingRule", # Output only. [Output Only] Type of the resource. Alwayscompute#forwardingRule for forwarding rule resources.
          "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is
              # essentially a hash of the labels set used for optimistic locking. The
              # fingerprint is initially generated by Compute Engine and changes after
              # every request to modify or update labels. You must always provide an
              # up-to-date fingerprint hash in order to update or change labels,
              # otherwise the request will fail with error412 conditionNotMet.
              #
              # To see the latest fingerprint, make a get() request to
              # retrieve a ForwardingRule.
          "labels": { # Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.
              # Label values may be empty.
            "a_key": "A String",
          },
          "loadBalancingScheme": "A String", # Specifies the forwarding rule type.
              #
              # For more information about forwarding rules, refer to
              # Forwarding rule concepts.
          "metadataFilters": [ # Opaque filter criteria used by load balancer to restrict routing
              # configuration to a limited set of xDS
              # compliant clients. In their xDS requests to load balancer, xDS clients
              # present node
              # metadata. When there is a match, the relevant configuration
              # is made available to those proxies. Otherwise, all the resources (e.g.TargetHttpProxy, UrlMap)
              # referenced by the ForwardingRule are not visible to
              # those proxies.
              #
              # For each metadataFilter in this list, if itsfilterMatchCriteria is set to MATCH_ANY, at least one of thefilterLabels 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 provided in the metadata. If multiplemetadataFilters are specified, all of them need to be satisfied
              # in order to be considered a match.
              #
              # metadataFilters specified here will be applifed before
              # those specified in the UrlMap that thisForwardingRule references.
              #
              # metadataFilters only applies to Loadbalancers that have
              # their loadBalancingScheme set toINTERNAL_SELF_MANAGED.
            { # Opaque filter criteria used by load balancers to restrict routing
                # configuration to a limited set of load balancing proxies. Proxies and
                # sidecars involved in load balancing would typically present metadata to the
                # load balancers that need to match criteria specified here. If a match takes
                # place, the relevant configuration is made available to those
                # proxies.
                #
                # For each metadataFilter in this list, if itsfilterMatchCriteria is set to MATCH_ANY, at least
                # one of thefilterLabels 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 provided in the metadata.
                #
                # An example for using metadataFilters would be: if
                # load balancing involves
                # Envoys, they receive routing configuration when values inmetadataFilters match values supplied in  of their XDS requests to loadbalancers.
              "filterLabels": [ # 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.
                { # MetadataFilter label name value pairs that are expected
                    # to match corresponding labels presented as metadata to the load balancer.
                  "name": "A String", # Name of metadata label.
                      #
                      #  The name can have a maximum length of 1024 characters and must be at
                      # least 1 character long.
                  "value": "A String", # The value of the label must match the specified value.
                      #
                      # value can have a maximum length of 1024 characters.
                },
              ],
              "filterMatchCriteria": "A String", # Specifies how individual filter label matches
                  # within the list of filterLabels and contributes toward 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.
            },
          ],
          "name": "A String", # Name of the resource; provided by the client when the resource is created.
              # The name must be 1-63 characters long, and comply withRFC1035.
              # 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.
              #
              # For Private Service Connect forwarding rules that forward traffic to Google
              # APIs, the forwarding rule name must be a 1-20 characters string with
              # lowercase letters and numbers and must start with a letter.
          "network": "A String", # This field is not used for global external load balancing.
              #
              # For internal passthrough Network Load Balancers, this field identifies the
              # network that the load balanced IP should belong to for this forwarding
              # rule.
              # If the subnetwork is specified, the network of the subnetwork will be used.
              # If neither subnetwork nor this field is specified, the default network will
              # be used.
              #
              # For Private Service Connect forwarding rules that forward traffic to Google
              # APIs, a network must be provided.
          "networkTier": "A String", # This signifies the networking tier used for configuring
              # this load balancer and can only take the following values:PREMIUM, STANDARD.
              #
              # For regional ForwardingRule, the valid values are PREMIUM andSTANDARD. For GlobalForwardingRule, the valid value isPREMIUM.
              #
              # If this field is not specified, it is assumed to be PREMIUM.
              # If IPAddress is specified, this value must be equal to the
              # networkTier of the Address.
          "noAutomateDnsZone": True or False, # This is used in PSC consumer ForwardingRule to control whether it should
              # try to auto-generate a DNS zone or not. Non-PSC forwarding rules do not use
              # this field. Once set, this field is not mutable.
          "portRange": "A String", # The ports, portRange, and allPorts
              # fields are mutually exclusive. Only packets addressed to ports in the
              # specified range will be forwarded to the backends configured with this
              # forwarding rule.
              #
              # The portRange field has the following limitations:
              #
              #    - It requires that the forwarding rule IPProtocol be TCP,
              #    UDP, or SCTP, and
              #    - It's applicable only to the following products: external passthrough
              #    Network Load Balancers, internal and external proxy Network Load Balancers,
              #    internal and external Application Load Balancers, external protocol
              #    forwarding, and Classic VPN.
              #    - Some products have restrictions on what ports can be used. See
              #    port specifications for details.
              #
              #
              #
              # For external forwarding rules, two or more forwarding rules cannot use the
              # same [IPAddress, IPProtocol] pair, and cannot have overlappingportRanges.
              #
              # For internal forwarding rules within the same VPC network, two or more
              # forwarding rules cannot use the same [IPAddress, IPProtocol]
              # pair, and cannot have overlapping portRanges.
              #
              # @pattern: \\d+(?:-\\d+)?
          "ports": [ # The ports, portRange, and allPorts
              # fields are mutually exclusive. Only packets addressed to ports in the
              # specified range will be forwarded to the backends configured with this
              # forwarding rule.
              #
              # The ports field has the following limitations:
              #
              #    - It requires that the forwarding rule IPProtocol be TCP,
              #    UDP, or SCTP, and
              #    - It's applicable only to the following products: internal passthrough
              #    Network Load Balancers, backend service-based external passthrough Network
              #    Load Balancers, and internal protocol forwarding.
              #    - You can specify a list of up to five ports by number, separated by
              #    commas. The ports can be contiguous or discontiguous.
              #
              #
              #
              # For external forwarding rules, two or more forwarding rules cannot use the
              # same [IPAddress, IPProtocol] pair if they share at least one
              # port number.
              #
              # For internal forwarding rules within the same VPC network, two or more
              # forwarding rules cannot use the same [IPAddress, IPProtocol]
              # pair if they share at least one port number.
              #
              # @pattern: \\d+(?:-\\d+)?
            "A String",
          ],
          "pscConnectionId": "A String", # [Output Only] The PSC connection id of the PSC forwarding rule.
          "pscConnectionStatus": "A String",
          "region": "A String", # Output only. [Output Only] URL of the region where the regional forwarding rule resides.
              # This field is not applicable to global forwarding rules.
              # You must specify this field as part of the HTTP request URL. It is
              # not settable as a field in the request body.
          "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
          "selfLinkWithId": "A String", # Output only. [Output Only] Server-defined URL for this resource with the resource id.
          "serviceDirectoryRegistrations": [ # Service Directory resources to register this forwarding rule with.
              # Currently, only supports a single Service Directory resource.
            { # Describes the auto-registration of the forwarding rule to Service Directory.
                # The region and project of the Service Directory resource generated from
                # this registration will be the same as this forwarding rule.
              "namespace": "A String", # Service Directory namespace to register the forwarding rule under.
              "service": "A String", # Service Directory service to register the forwarding rule under.
              "serviceDirectoryRegion": "A String", # [Optional] Service Directory region to register this global forwarding
                  # rule under. Default to "us-central1". Only used for PSC for Google APIs.
                  # All PSC for Google APIs forwarding rules on the same network should use
                  # the same Service Directory region.
            },
          ],
          "serviceLabel": "A String", # An optional prefix to the service name for this forwarding rule.
              # If specified, the prefix is the first label of the fully qualified service
              # name.
              #
              # The label must be 1-63 characters long, and comply withRFC1035.
              # Specifically, the label 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.
              #
              # This field is only used for internal load balancing.
          "serviceName": "A String", # [Output Only]
              # The internal fully qualified service name for this forwarding rule.
              #
              # This field is only used for internal load balancing.
          "sourceIpRanges": [ # If not empty, this forwarding rule will only forward the traffic when the
              # source IP address matches one of the IP addresses or CIDR ranges set here.
              # Note that a forwarding rule can only have up to 64 source IP ranges, and
              # this field can only be used with a regional forwarding rule whose scheme isEXTERNAL.
              # Each source_ip_range entry should be either an IP address (for
              # example, 1.2.3.4) or a CIDR range (for example, 1.2.3.0/24).
            "A String",
          ],
          "subnetwork": "A String", # This field identifies the subnetwork that the load balanced IP should
              # belong to for this forwarding rule, used with internal load balancers and
              # external passthrough Network Load Balancers with IPv6.
              #
              # If the network specified is in auto subnet mode, this field is optional.
              # However, a subnetwork must be specified if the network is in custom subnet
              # mode or when creating external forwarding rule with IPv6.
          "target": "A String", # The URL of the target resource to receive the matched traffic.  For
              # regional forwarding rules, this target must be in the same region as the
              # forwarding rule. For global forwarding rules, this target must be a global
              # load balancing resource.
              #
              # The forwarded traffic must be of a type appropriate to the target object.
              #
              #
              #      -  For load balancers, see the "Target" column in [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).
              #      -  For Private Service Connect forwarding rules that forward traffic to Google APIs, provide the name of a supported Google API bundle:
              #
              #
              #             -  vpc-sc -  APIs that support VPC Service Controls.
              #             -  all-apis - All supported Google APIs.
              #
              #
              #      -  For Private Service Connect forwarding rules that forward traffic to managed services, the target must be a service attachment. The target is not mutable once set as a service attachment.
        },
      ],
      "kind": "compute#forwardingRuleList", # Output only. Type of resource.
      "nextPageToken": "A String", # [Output Only] This token allows you to get the next page of results for
          # list requests. If the number of results is larger thanmaxResults, use the nextPageToken as a value for
          # the query parameter pageToken in the next list request.
          # Subsequent list requests will have their own nextPageToken to
          # continue paging through the results.
      "selfLink": "A String", # Output only. [Output Only] Server-defined URL for this resource.
      "warning": { # [Output Only] Informational warning message.
        "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute
            # Engine returns NO_RESULTS_ON_PAGE if there
            # are no results in the response.
        "data": [ # [Output Only] Metadata about this warning in key:
            # value format. For example:
            #
            # "data": [
            #   {
            #    "key": "scope",
            #    "value": "zones/us-east1-d"
            #   }
          {
            "key": "A String", # [Output Only] A key that provides more detail on the warning being
                # returned. For example, for warnings where there are no results in a list
                # request for a particular zone, this key might be scope and
                # the key value might be the zone name. Other examples might be a key
                # indicating a deprecated resource and a suggested replacement, or a
                # warning about invalid network settings (for example, if an instance
                # attempts to perform IP forwarding but is not enabled for IP forwarding).
            "value": "A String", # [Output Only] A warning data value corresponding to the key.
          },
        ],
        "message": "A String", # [Output Only] A human-readable description of the warning code.
      },
    }

`list_next()`

    Retrieves the next page of results.

            Args:
              previous_request: The request for the previous page. (required)
              previous_response: The response from the request for the previous page. (required)

            Returns:
              A request object that you can call 'execute()' on to request the next
              page. Returns None if there are no more items in the collection.

`patch(project, forwardingRule, body=None, requestId=None, x__xgafv=None)`

    Updates the specified forwarding rule with the data included in the
    request. This method supportsPATCH
    semantics and uses theJSON merge
    patch format and processing rules. Currently, you can only
    patch the network_tier field.

    Args:
      project: string, Project ID for this request. (required)
      forwardingRule: string, Name of the ForwardingRule resource to patch. (required)
      body: object, The request body.
        The object takes the form of:

    { # Represents a Forwarding Rule resource.
        #
        # Forwarding rule resources in Google Cloud can be either regional or global in
        # scope:
        #
        # * [Global](https://cloud.google.com/compute/docs/reference/rest/v1/globalForwardingRules)
        # * [Regional](https://cloud.google.com/compute/docs/reference/rest/v1/forwardingRules)
        #
        # A forwarding rule and its corresponding IP address represent the frontend
        # configuration of a Google Cloud load balancer.
        # Forwarding rules can also reference target instances and Cloud VPN Classic
        # gateways (targetVpnGateway).
        #
        # For more information, read
        # Forwarding rule concepts and
        # Using protocol forwarding.
      "IPAddress": "A String", # IP address for which this forwarding rule accepts traffic. When a client
          # sends traffic to this IP address, the forwarding rule directs the traffic
          # to the referenced target or backendService.
          # While creating a forwarding rule, specifying an IPAddress is
          # required under the following circumstances:
          #
          #
          #    - When the target is set to targetGrpcProxy andvalidateForProxyless is set to true, theIPAddress should be set to 0.0.0.0.
          #    - When the target is a Private Service Connect Google APIs
          #    bundle, you must specify an IPAddress.
          #
          #
          # Otherwise, you can optionally specify an IP address that references an
          # existing static (reserved) IP address resource. When omitted, Google Cloud
          # assigns an ephemeral IP address.
          #
          # Use one of the following formats to specify an IP address while creating a
          # forwarding rule:
          #
          # * IP address number, as in `100.1.2.3`
          # * IPv6 address range, as in `2600:1234::/96`
          # * Full resource URL, as inhttps://www.googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-name
          # * Partial URL or by name, as in:
          #
          #    - projects/project_id/regions/region/addresses/address-name
          #    - regions/region/addresses/address-name
          #    - global/addresses/address-name
          #    - address-name
          #
          #
          #
          # The forwarding rule's target or backendService,
          # and in most cases, also the loadBalancingScheme, determine the
          # type of IP address that you can use. For detailed information, see
          # [IP address
          # specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).
          #
          # When reading an IPAddress, the API always returns the IP
          # address number.
      "IPProtocol": "A String", # The IP protocol to which this rule applies.
          #
          # For protocol forwarding, valid
          # options are TCP, UDP, ESP,AH, SCTP, ICMP andL3_DEFAULT.
          #
          # The valid IP protocols are different for different load balancing products
          # as described in [Load balancing
          # features](https://cloud.google.com/load-balancing/docs/features#protocols_from_the_load_balancer_to_the_backends).
      "allPorts": True or False, # The ports, portRange, and allPorts
          # fields are mutually exclusive. Only packets addressed to ports in the
          # specified range will be forwarded to the backends configured with this
          # forwarding rule.
          #
          # The allPorts field has the following limitations:
          #
          #    - It requires that the forwarding rule IPProtocol be TCP,
          #    UDP, SCTP, or L3_DEFAULT.
          #    - It's applicable only to the following products: internal passthrough
          #    Network Load Balancers, backend service-based external passthrough Network
          #    Load Balancers, and internal and external protocol forwarding.
          #    - Set this field to true to allow packets addressed to any port or
          #    packets lacking destination port information (for example, UDP fragments
          #    after the first fragment) to be forwarded to the backends configured with
          #    this forwarding rule. The L3_DEFAULT protocol requiresallPorts be set to true.
      "allowGlobalAccess": True or False, # If set to true, clients can access the internal passthrough Network Load
          # Balancers, the regional internal Application Load Balancer, and the
          # regional internal proxy Network Load Balancer from all regions.
          # If false, only allows access from the local region the load balancer is
          # located at. Note that for INTERNAL_MANAGED forwarding rules, this field
          # cannot be changed after the forwarding rule is created.
      "allowPscGlobalAccess": True or False, # This is used in PSC consumer ForwardingRule to control whether the PSC
          # endpoint can be accessed from another region.
      "attachedExtensions": [ # Output only. [Output Only]. The extensions that are attached to this ForwardingRule.
        { # Reference to an extension resource that is attached to this ForwardingRule.
          "reference": "A String", # Output only. The resource name.
        },
      ],
      "backendService": "A String", # Identifies the backend service to which the forwarding rule sends traffic.
          # Required for internal and external passthrough Network Load Balancers;
          # must be omitted for all other load balancer types.
      "baseForwardingRule": "A String", # Output only. [Output Only] The URL for the corresponding base forwarding rule. By base
          # forwarding rule, we mean the forwarding rule that has the same IP address,
          # protocol, and port settings with the current forwarding rule, but without
          # sourceIPRanges specified.
          # Always empty if the current forwarding rule does not have sourceIPRanges
          # specified.
      "creationTimestamp": "A String", # Output only. [Output Only] Creation timestamp inRFC3339
          # text format.
      "description": "A String", # An optional description of this resource. Provide this property when you
          # create the resource.
      "externalManagedBackendBucketMigrationState": "A String", # Specifies the canary migration state for the backend buckets attached to
          # this forwarding rule. Possible values are PREPARE, TEST_BY_PERCENTAGE, and
          # TEST_ALL_TRAFFIC.
          #
          # To begin the migration from EXTERNAL to EXTERNAL_MANAGED, the state must be
          # changed to PREPARE. The state must be changed to TEST_ALL_TRAFFIC before
          # the loadBalancingScheme can be changed to EXTERNAL_MANAGED. Optionally, the
          # TEST_BY_PERCENTAGE state can be used to migrate traffic to backend buckets
          # attached to this forwarding rule by percentage using
          # externalManagedBackendBucketMigrationTestingPercentage.
          #
          # Rolling back a migration requires the states to be set in reverse order. So
          # changing the scheme from EXTERNAL_MANAGED to EXTERNAL requires the state to
          # be set to TEST_ALL_TRAFFIC at the same time. Optionally, the
          # TEST_BY_PERCENTAGE state can be used to migrate some traffic back to
          # EXTERNAL or PREPARE can be used to migrate all traffic back to EXTERNAL.
      "externalManagedBackendBucketMigrationTestingPercentage": 3.14, # Determines the fraction of requests to backend buckets that should be
          # processed by the global external Application Load Balancer.
          #
          # The value of this field must be in the range [0, 100].
          #
          # This value can only be set if the loadBalancingScheme in the BackendService
          # is set to EXTERNAL (when using the classic Application Load Balancer) and
          # the migration state is TEST_BY_PERCENTAGE.
      "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object.
          # This field is used in optimistic locking. This field will be ignored when
          # inserting a ForwardingRule. Include the fingerprint in patch request to
          # ensure that you do not overwrite changes that were applied from another
          # concurrent request.
          #
          # To see the latest fingerprint, make a get() request to
          # retrieve a ForwardingRule.
      "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is
          # defined by the server.
      "ipCollection": "A String", # Resource reference of a PublicDelegatedPrefix. The PDP must
          # be a sub-PDP in EXTERNAL_IPV6_FORWARDING_RULE_CREATION mode.
          #
          # Use one of the following formats to specify a sub-PDP when creating an IPv6
          # NetLB forwarding rule using BYOIP:
          # Full resource URL, as inhttps://www.googleapis.com/compute/v1/projects/project_id/regions/region/publicDelegatedPrefixes/sub-pdp-name
          # Partial URL, as in:
          #
          #    - projects/project_id/regions/region/publicDelegatedPrefixes/sub-pdp-name
          #    - regions/region/publicDelegatedPrefixes/sub-pdp-name
      "ipVersion": "A String", # The IP Version that will be used by this forwarding rule.  Valid options
          # are IPV4 or IPV6.
      "isMirroringCollector": True or False, # Indicates whether or not this load balancer can be used as a collector for
          # packet mirroring. To prevent mirroring loops, instances behind this
          # load balancer will not have their traffic mirrored even if aPacketMirroring rule applies to them.
          # This can only be set to true for load balancers that have theirloadBalancingScheme set to INTERNAL.
      "kind": "compute#forwardingRule", # Output only. [Output Only] Type of the resource. Alwayscompute#forwardingRule for forwarding rule resources.
      "labelFingerprint": "A String", # A fingerprint for the labels being applied to this resource, which is
          # essentially a hash of the labels set used for optimistic locking. The
          # fingerprint is initially generated by Compute Engine and changes after
          # every request to modify or update labels. You must always provide an
          # up-to-date fingerprint hash in order to update or change labels,
          # otherwise the request will fail with error412 conditionNotMet.
          #
          # To see the latest fingerprint, make a get() request to
          # retrieve a ForwardingRule.
      "labels": { # Labels for this resource. These can only be added or modified by thesetLabels method. Each label key/value pair must comply withRFC1035.
          # Label values may be empty.
        "a_key": "A String",
      },
      "loadBalancingScheme": "A String", # Specifies the forwarding rule type.
          #
          # For more information about forwarding rules, refer to
          # Forwarding rule concepts.
      "metadataFilters": [ # Opaque filter criteria used by load balancer to restrict routing
          # configuration to a limited set of xDS
          # compliant clients. In their xDS requests to load balancer, xDS clients
          # present node
          # metadata. When there is a match, the relevant configuration
          # is made available to those proxies. Otherwise, all the resources (e.g.TargetHttpProxy, UrlMap)
          # referenced by the ForwardingRule are not visible to
          # those proxies.
          #
          # For each metadataFilter in this list, if itsfilterMatchCriteria is set to MATCH_ANY, at least one of thefilterLabels 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 provided in the metadata. If multiplemetadataFilters are specified, all of them need to be satisfied
          # in order to be considered a match.
          #
          # metadataFilters specified here will be applifed before
          # those specified in the UrlMap that thisForwardingRule references.
          #
          # metadataFilters only applies to Loadbalancers that have
          # their loadBalancingScheme set toINTERNAL_SELF_MANAGED.
        { # Opaque filter criteria used by load balancers to restrict routing
            # configuration to a limited set of load balancing proxies. Proxies and
            # sidecars involved in load balancing would typically present metadata to the
            # load balancers that need to match criteria specified here. If a match takes
            # place, the relevant configuration is made available to those
            # proxies.
            #
            # For each metadataFilter in this list, if itsfilterMatchCriteria is set to MATCH_ANY, at least
            # one of thefilterLabels 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 provided in the metadata.
            #
            # An example for using metadataFilters would be: if
            # load balancing involves
            # Envoys, they receive routing configuration when values inmetadataFilters match values supplied in  of their XDS requests to loadbalancers.
          "filterLabels": [ # 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.
            { # MetadataFilter label name value pairs that are expected
                # to match corresponding labels presented as metadata to the load balancer.
              "name": "A String", # Name of metadata label.
                  #
                  #  The name can have a maximum length of 1024 characters and must be at
                  # least 1 character long.
              "value": "A String", # The value of the label must match the specified value.
                  #
                  # value can have a maximum length of 1024 characters.
            },
          ],
          "filterMatchCriteria": "A String", # Specifies how individual filter label matches
              # within the list of filterLabels and contributes toward 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.
        },
      ],
      "name": "A String", # Name of the resource; provided by the client when the resource is created.
          # The name must be 1-63 characters long, and comply withRFC1035.
          # 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.
          #
          # For Private Service Connect forwarding rules that forward traffic to Google
          # APIs, the forwarding rule name must be a 1-20 characters string with
          # lowercase letters and numbers and must start with a letter.
      "network": "A String", # This field is not used for global external load balancing.
          #
          # For internal passthrough Network Load Balancers, this field identifies the
          # network that the load balanced IP should belong to for this forwarding
          # rule.
          # If the subnetwork is specified, the network of the subnetwork will be used.
          # If neither subnetwork nor this field is specified, the default network will
          # be used.
          #
          # For Private Service Connect forwarding rules that forward traffic to Google
          # APIs, a network must be provided.
      "networkTier": "A String", # This signifies the networking tier used for configuring
          # this load balancer and can only take the following values:PREMIUM, STANDARD.
          #
          # For regional ForwardingRule, the valid values are PREMIUM andSTANDARD. For GlobalForwardingRule, the valid value isPREMIUM.
          #
          # If this field is not specified, it is assumed to be PREMIUM.
          # If IPAddress is specified, this value must be equal to the
          # networkTier of the Address.
      "noAutomateDnsZone": True or False, # This is used in PSC consumer ForwardingRule to control whether it should
          # try to auto-generate a DNS zone or not. Non-PSC forwarding rules do not use
          # this field. Once set, this field is not mutable.
      "portRange": "A String", # The ports, portRange, and allPorts
          # fields are mutually exclusive. Only packets addressed to ports in the
          # specified range will be forwarded to the backends configured with this
          # forwarding rule.
          #
          # The portRange field has the following limitations:
          #
          #    - It requires that the forwarding rule IPProtocol be TCP,
          #    UDP, or SCTP, and
          #    - It's applicable only to the following products: external passthrough
          #    Network Load Balancers, internal and external proxy Network Load Balancers,
          #    internal and external Application Load Balancers, external protocol
          #    forwarding, and Classic VPN.
          #    - Some products have restrictions on what ports can be used. See
          #    port specifications for details.
          #
          #
          #
          # For external forwarding rules, two or more forwarding rules cannot use the
          # same [IPAddress, IPProtocol] pair, and cannot have overlappingportRanges.
          #
          # For internal forwarding rules within the same VPC network, two or more
          # forwarding rules cannot use the same [IPAddress, IPProtocol]
          # pair, and cannot have overlapping portRanges.
          #
          # @pattern: \\d+(?:-\\d+)?
      "ports": [ # The ports, portRange, and allPorts
          # fields are mutually exclusive. Only packets addressed to ports in the
          # specified range will be forwarded to the backends configured with this
          # forwarding rule.
          #
          # The ports field has the following limitations:
          #
          #    - It requires that the forwarding rule IPProtocol be TCP,
          #    UDP, or SCTP, and
          #    - It's applicable only to the following products: internal passthrough
          #    Network Load Balancers, backend service-based external passthrough Network
          #    Load Balancers, and internal protocol forwarding.
          #    - You can specify a list of up to five ports by number, separated by
          #    commas. The ports can be contiguous or discontiguous.
          #
          #
          #
          # For external forwarding rules, two or more forwarding rules cannot use the
          # same [IPAddress, IPProtocol] pair if they share at least one
          # port number.
          #
          # For internal forwarding rules within the same VPC network, two or more
          # forwarding rules cannot use the same [IPAddress, IPProtocol]
          # pair if they share at least one port number.
          #
          # @pattern: \\d+(?:-\\d+)?
        "A String",
      ],
      "pscConnectionId": "A String", # [Output Only] The PSC connection id of the PSC forwarding rule.
      "pscConnectionStatus": "A String",
      "region": "A String", # Output only. [Output Only] URL of the region where the regional forwarding rule resides.
          # This field is not applicable to global forwarding rules.
          # You must specify this field as part of the HTTP request URL. It is
          # not settable as a field in the request body.
      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
      "selfLinkWithId": "A String", # Output only. [Output Only] Server-defined URL for this resource with the resource id.
      "serviceDirectoryRegistrations": [ # Service Directory resources to register this forwarding rule with.
          # Currently, only supports a single Service Directory resource.
        { # Describes the auto-registration of the forwarding rule to Service Directory.
            # The region and project of the Service Directory resource generated from
            # this registration will be the same as this forwarding rule.
          "namespace": "A String", # Service Directory namespace to register the forwarding rule under.
          "service": "A String", # Service Directory service to register the forwarding rule under.
          "serviceDirectoryRegion": "A String", # [Optional] Service Directory region to register this global forwarding
              # rule under. Default to "us-central1". Only used for PSC for Google APIs.
              # All PSC for Google APIs forwarding rules on the same network should use
              # the same Service Directory region.
        },
      ],
      "serviceLabel": "A String", # An optional prefix to the service name for this forwarding rule.
          # If specified, the prefix is the first label of the fully qualified service
          # name.
          #
          # The label must be 1-63 characters long, and comply withRFC1035.
          # Specifically, the label 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.
          #
          # This field is only used for internal load balancing.
      "serviceName": "A String", # [Output Only]
          # The internal fully qualified service name for this forwarding rule.
          #
          # This field is only used for internal load balancing.
      "sourceIpRanges": [ # If not empty, this forwarding rule will only forward the traffic when the
          # source IP address matches one of the IP addresses or CIDR ranges set here.
          # Note that a forwarding rule can only have up to 64 source IP ranges, and
          # this field can only be used with a regional forwarding rule whose scheme isEXTERNAL.
          # Each source_ip_range entry should be either an IP address (for
          # example, 1.2.3.4) or a CIDR range (for example, 1.2.3.0/24).
        "A String",
      ],
      "subnetwork": "A String", # This field identifies the subnetwork that the load balanced IP should
          # belong to for this forwarding rule, used with internal load balancers and
          # external passthrough Network Load Balancers with IPv6.
          #
          # If the network specified is in auto subnet mode, this field is optional.
          # However, a subnetwork must be specified if the network is in custom subnet
          # mode or when creating external forwarding rule with IPv6.
      "target": "A String", # The URL of the target resource to receive the matched traffic.  For
          # regional forwarding rules, this target must be in the same region as the
          # forwarding rule. For global forwarding rules, this target must be a global
          # load balancing resource.
          #
          # The forwarded traffic must be of a type appropriate to the target object.
          #
          #
          #      -  For load balancers, see the "Target" column in [Port specifications](https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#ip_address_specifications).
          #      -  For Private Service Connect forwarding rules that forward traffic to Google APIs, provide the name of a supported Google API bundle:
          #
          #
          #             -  vpc-sc -  APIs that support VPC Service Controls.
          #             -  all-apis - All supported Google APIs.
          #
          #
          #      -  For Private Service Connect forwarding rules that forward traffic to managed services, the target must be a service attachment. The target is not mutable once set as a service attachment.
    }

      requestId: string, An optional request ID to identify requests. Specify a unique request ID so
    that if you must retry your request, the server will know to ignore the
    request if it has already been completed.

    For example, consider a situation where you make an initial request and
    the request times out. If you make the request again with the same
    request ID, the server can check if original operation with the same
    request ID was received, and if so, will ignore the second request. This
    prevents clients from accidentally creating duplicate commitments.

    The request ID must be
    a valid UUID with the exception that zero UUID is not supported
    (00000000-0000-0000-0000-000000000000).
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Represents an Operation resource.
        #
        # Google Compute Engine has three Operation resources:
        #
        # * [Global](/compute/docs/reference/rest/v1/globalOperations)
        # * [Regional](/compute/docs/reference/rest/v1/regionOperations)
        # * [Zonal](/compute/docs/reference/rest/v1/zoneOperations)
        #
        # You can use an operation resource to manage asynchronous API requests.
        # For more information, readHandling
        # API responses.
        #
        # Operations can be global, regional or zonal.
        #
        #    - For global operations, use the `globalOperations`
        #    resource.
        #    - For regional operations, use the
        #    `regionOperations` resource.
        #    - For zonal operations, use
        #    the `zoneOperations` resource.
        #
        #
        #
        # For more information, read
        # Global, Regional, and Zonal Resources.
        #
        # Note that completed Operation resources have a limited
        # retention period.
      "clientOperationId": "A String", # [Output Only] The value of `requestId` if you provided it in the request.
          # Not present otherwise.
      "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
      "description": "A String", # [Output Only] A textual description of the operation, which is
          # set when the operation is created.
      "endTime": "A String", # [Output Only] The time that this operation was completed. This value is inRFC3339
          # text format.
      "error": { # [Output Only] If errors are generated during processing of the operation,
          # this field will be populated.
        "errors": [ # [Output Only] The array of errors encountered while processing this
            # operation.
          {
            "code": "A String", # [Output Only] The error type identifier for this error.
            "errorDetails": [ # [Output Only] An optional list of messages that contain the error
                # details. There is a set of defined message types to use for providing
                # details.The syntax depends on the error code. For example,
                # QuotaExceededInfo will have details when the error code is
                # QUOTA_EXCEEDED.
              {
                "errorInfo": { # Describes the cause of the error with structured details.
                    #
                    # Example of an error when contacting the "pubsub.googleapis.com" API when it
                    # is not enabled:
                    #
                    #     { "reason": "API_DISABLED"
                    #       "domain": "googleapis.com"
                    #       "metadata": {
                    #         "resource": "projects/123",
                    #         "service": "pubsub.googleapis.com"
                    #       }
                    #     }
                    #
                    # This response indicates that the pubsub.googleapis.com API is not enabled.
                    #
                    # Example of an error that is returned when attempting to create a Spanner
                    # instance in a region that is out of stock:
                    #
                    #     { "reason": "STOCKOUT"
                    #       "domain": "spanner.googleapis.com",
                    #       "metadata": {
                    #         "availableRegions": "us-central1,us-east2"
                    #       }
                    #     }
                  "domain": "A String", # The logical grouping to which the "reason" belongs. The error domain
                      # is typically the registered service name of the tool or product that
                      # generates the error. Example: "pubsub.googleapis.com". If the error is
                      # generated by some common infrastructure, the error domain must be a
                      # globally unique value that identifies the infrastructure. For Google API
                      # infrastructure, the error domain is "googleapis.com".
                  "metadatas": { # Additional structured details about this error.
                      #
                      # Keys must match a regular expression of `a-z+` but should
                      # ideally be lowerCamelCase. Also, they must be limited to 64 characters in
                      # length. When identifying the current value of an exceeded limit, the units
                      # should be contained in the key, not the value.  For example, rather than
                      # `{"instanceLimit": "100/request"}`, should be returned as,
                      # `{"instanceLimitPerRequest": "100"}`, if the client exceeds the number of
                      # instances that can be created in a single (batch) request.
                    "a_key": "A String",
                  },
                  "reason": "A String", # The reason of the error. This is a constant value that identifies the
                      # proximate cause of the error. Error reasons are unique within a particular
                      # domain of errors. This should be at most 63 characters and match a
                      # regular expression of `A-Z+[A-Z0-9]`, which represents
                      # UPPER_SNAKE_CASE.
                },
                "help": { # Provides links to documentation or for performing an out of band action.
                    #
                    # For example, if a quota check failed with an error indicating the calling
                    # project hasn't enabled the accessed service, this can contain a URL pointing
                    # directly to the right place in the developer console to flip the bit.
                  "links": [ # URL(s) pointing to additional information on handling the current error.
                    { # Describes a URL link.
                      "description": "A String", # Describes what the link offers.
                      "url": "A String", # The URL of the link.
                    },
                  ],
                },
                "localizedMessage": { # Provides a localized error message that is safe to return to the user
                    # which can be attached to an RPC error.
                  "locale": "A String", # The locale used following the specification defined at
                      # https://www.rfc-editor.org/rfc/bcp/bcp47.txt.
                      # Examples are: "en-US", "fr-CH", "es-MX"
                  "message": "A String", # The localized error message in the above locale.
                },
                "quotaInfo": { # Additional details for quota exceeded error for resource quota.
                  "dimensions": { # The map holding related quota dimensions.
                    "a_key": "A String",
                  },
                  "futureLimit": 3.14, # Future quota limit being rolled out. The limit's unit depends on the quota
                      #  type or metric.
                  "limit": 3.14, # Current effective quota limit. The limit's unit depends on the quota type
                      # or metric.
                  "limitName": "A String", # The name of the quota limit.
                  "metricName": "A String", # The Compute Engine quota metric name.
                  "rolloutStatus": "A String", # Rollout status of the future quota limit.
                },
              },
            ],
            "location": "A String", # [Output Only] Indicates the field in the request that caused the error.
                # This property is optional.
            "message": "A String", # [Output Only] An optional, human-readable error message.
          },
        ],
      },
      "getVersionOperationMetadata": {
        "inlineSbomInfo": {
          "currentComponentVersions": { # A mapping of components to their currently-applied versions or other
              # appropriate identifiers.
            "a_key": "A String",
          },
          "targetComponentVersions": { # A mapping of components to their target versions or other appropriate
              # identifiers.
            "a_key": "A String",
          },
        },
      },
      "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error
          # message that was returned, such as `NOT FOUND`.
      "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error
          # status code that was returned. For example, a `404` means the
          # resource was not found.
      "id": "A String", # [Output Only] The unique identifier for the operation. This identifier is
          # defined by the server.
      "insertTime": "A String", # [Output Only] The time that this operation was requested.
          # This value is inRFC3339
          # text format.
      "instancesBulkInsertOperationMetadata": {
        "perLocationStatus": { # Status information per location (location name is key).
            # Example key: zones/us-central1-a
          "a_key": {
            "createdVmCount": 42, # [Output Only] Count of VMs successfully created so far.
            "deletedVmCount": 42, # [Output Only] Count of VMs that got deleted during rollback.
            "failedToCreateVmCount": 42, # [Output Only] Count of VMs that started creating but encountered an
                # error.
            "status": "A String", # [Output Only] Creation status of BulkInsert operation - information
                # if the flow is rolling forward or rolling back.
            "targetVmCount": 42, # [Output Only] Count of VMs originally planned to be created.
          },
        },
      },
      "kind": "compute#operation", # Output only. [Output Only] Type of the resource. Always `compute#operation` for
          # Operation resources.
      "name": "A String", # [Output Only] Name of the operation.
      "operationGroupId": "A String", # Output only. [Output Only] An ID that represents a group of operations, such as when a
          # group of operations results from a `bulkInsert` API request.
      "operationType": "A String", # [Output Only] The type of operation, such as `insert`,
          # `update`, or `delete`, and so on.
      "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100.
          # There is no requirement that this be linear or support any granularity of
          # operations. This should not be used to guess when the operation will be
          # complete. This number should monotonically increase as the operation
          # progresses.
      "region": "A String", # [Output Only] The URL of the region where the operation resides. Only
          # applicable when performing regional operations.
      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
      "setCommonInstanceMetadataOperationMetadata": { # Output only. [Output Only] If the operation is for projects.setCommonInstanceMetadata,
          # this field will contain information on all underlying zonal actions and
          # their state.
        "clientOperationId": "A String", # [Output Only] The client operation id.
        "perLocationOperations": { # [Output Only] Status information per location (location name is key).
            # Example key: zones/us-central1-a
          "a_key": {
            "error": { # The `Status` type defines a logical error model that is suitable for # [Output Only] If state is `ABANDONED` or `FAILED`, this field is
                # populated.
                # different programming environments, including REST APIs and RPC APIs. It is
                # used by [gRPC](https://github.com/grpc). Each `Status` message contains
                # three pieces of data: error code, error message, and error details.
                #
                # You can find out more about this error model and how to work with it in the
                # [API Design Guide](https://cloud.google.com/apis/design/errors).
              "code": 42, # The status code, which should be an enum value of google.rpc.Code.
              "details": [ # A list of messages that carry the error details.  There is a common set of
                  # message types for APIs to use.
                {
                  "a_key": "", # Properties of the object. Contains field @type with type URL.
                },
              ],
              "message": "A String", # A developer-facing error message, which should be in English. Any
                  # user-facing error message should be localized and sent in the
                  # google.rpc.Status.details field, or localized by the client.
            },
            "state": "A String", # [Output Only] Status of the action, which can be one of the following:
                # `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.
          },
        },
      },
      "startTime": "A String", # [Output Only] The time that this operation was started by the server.
          # This value is inRFC3339
          # text format.
      "status": "A String", # [Output Only] The status of the operation, which can be one of the
          # following:
          # `PENDING`, `RUNNING`, or `DONE`.
      "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the
          # operation.
      "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation
          # of the target resource.
      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For
          # operations related to creating a snapshot, this points to the disk
          # that the snapshot was created from.
      "user": "A String", # [Output Only] User who requested the operation, for example:
          # `user@example.com` or
          # `alice_smith_identifier (global/workforcePools/example-com-us-employees)`.
      "warnings": [ # [Output Only] If warning messages are generated during processing of the
          # operation, this field will be populated.
        {
          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute
              # Engine returns NO_RESULTS_ON_PAGE if there
              # are no results in the response.
          "data": [ # [Output Only] Metadata about this warning in key:
              # value format. For example:
              #
              # "data": [
              #   {
              #    "key": "scope",
              #    "value": "zones/us-east1-d"
              #   }
            {
              "key": "A String", # [Output Only] A key that provides more detail on the warning being
                  # returned. For example, for warnings where there are no results in a list
                  # request for a particular zone, this key might be scope and
                  # the key value might be the zone name. Other examples might be a key
                  # indicating a deprecated resource and a suggested replacement, or a
                  # warning about invalid network settings (for example, if an instance
                  # attempts to perform IP forwarding but is not enabled for IP forwarding).
              "value": "A String", # [Output Only] A warning data value corresponding to the key.
            },
          ],
          "message": "A String", # [Output Only] A human-readable description of the warning code.
        },
      ],
      "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only
          # applicable when performing per-zone operations.
    }

`setLabels(project, resource, body=None, x__xgafv=None)`

    Sets the labels on the specified resource. To learn more about labels,
    read the
    Labeling resources documentation.

    Args:
      project: string, Project ID for this request. (required)
      resource: string, Name or id of the resource for this request. (required)
      body: object, The request body.
        The object takes the form of:

    {
      "labelFingerprint": "A String", # The fingerprint of the previous set of labels for this resource,
          # used to detect conflicts. The fingerprint is initially generated by Compute
          # Engine and changes after every request to modify or update labels. You must
          # always provide an up-to-date fingerprint hash when updating or changing
          # labels, otherwise the request will fail with error412 conditionNotMet.  Make a get() request to the
          # resource to get the latest fingerprint.
      "labels": { # A list of labels to apply for this resource. Each label must comply with
          # the
          # requirements for labels. For example,"webserver-frontend": "images". A label value can also be
          # empty (e.g. "my-label": "").
        "a_key": "A String",
      },
    }

      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Represents an Operation resource.
        #
        # Google Compute Engine has three Operation resources:
        #
        # * [Global](/compute/docs/reference/rest/v1/globalOperations)
        # * [Regional](/compute/docs/reference/rest/v1/regionOperations)
        # * [Zonal](/compute/docs/reference/rest/v1/zoneOperations)
        #
        # You can use an operation resource to manage asynchronous API requests.
        # For more information, readHandling
        # API responses.
        #
        # Operations can be global, regional or zonal.
        #
        #    - For global operations, use the `globalOperations`
        #    resource.
        #    - For regional operations, use the
        #    `regionOperations` resource.
        #    - For zonal operations, use
        #    the `zoneOperations` resource.
        #
        #
        #
        # For more information, read
        # Global, Regional, and Zonal Resources.
        #
        # Note that completed Operation resources have a limited
        # retention period.
      "clientOperationId": "A String", # [Output Only] The value of `requestId` if you provided it in the request.
          # Not present otherwise.
      "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
      "description": "A String", # [Output Only] A textual description of the operation, which is
          # set when the operation is created.
      "endTime": "A String", # [Output Only] The time that this operation was completed. This value is inRFC3339
          # text format.
      "error": { # [Output Only] If errors are generated during processing of the operation,
          # this field will be populated.
        "errors": [ # [Output Only] The array of errors encountered while processing this
            # operation.
          {
            "code": "A String", # [Output Only] The error type identifier for this error.
            "errorDetails": [ # [Output Only] An optional list of messages that contain the error
                # details. There is a set of defined message types to use for providing
                # details.The syntax depends on the error code. For example,
                # QuotaExceededInfo will have details when the error code is
                # QUOTA_EXCEEDED.
              {
                "errorInfo": { # Describes the cause of the error with structured details.
                    #
                    # Example of an error when contacting the "pubsub.googleapis.com" API when it
                    # is not enabled:
                    #
                    #     { "reason": "API_DISABLED"
                    #       "domain": "googleapis.com"
                    #       "metadata": {
                    #         "resource": "projects/123",
                    #         "service": "pubsub.googleapis.com"
                    #       }
                    #     }
                    #
                    # This response indicates that the pubsub.googleapis.com API is not enabled.
                    #
                    # Example of an error that is returned when attempting to create a Spanner
                    # instance in a region that is out of stock:
                    #
                    #     { "reason": "STOCKOUT"
                    #       "domain": "spanner.googleapis.com",
                    #       "metadata": {
                    #         "availableRegions": "us-central1,us-east2"
                    #       }
                    #     }
                  "domain": "A String", # The logical grouping to which the "reason" belongs. The error domain
                      # is typically the registered service name of the tool or product that
                      # generates the error. Example: "pubsub.googleapis.com". If the error is
                      # generated by some common infrastructure, the error domain must be a
                      # globally unique value that identifies the infrastructure. For Google API
                      # infrastructure, the error domain is "googleapis.com".
                  "metadatas": { # Additional structured details about this error.
                      #
                      # Keys must match a regular expression of `a-z+` but should
                      # ideally be lowerCamelCase. Also, they must be limited to 64 characters in
                      # length. When identifying the current value of an exceeded limit, the units
                      # should be contained in the key, not the value.  For example, rather than
                      # `{"instanceLimit": "100/request"}`, should be returned as,
                      # `{"instanceLimitPerRequest": "100"}`, if the client exceeds the number of
                      # instances that can be created in a single (batch) request.
                    "a_key": "A String",
                  },
                  "reason": "A String", # The reason of the error. This is a constant value that identifies the
                      # proximate cause of the error. Error reasons are unique within a particular
                      # domain of errors. This should be at most 63 characters and match a
                      # regular expression of `A-Z+[A-Z0-9]`, which represents
                      # UPPER_SNAKE_CASE.
                },
                "help": { # Provides links to documentation or for performing an out of band action.
                    #
                    # For example, if a quota check failed with an error indicating the calling
                    # project hasn't enabled the accessed service, this can contain a URL pointing
                    # directly to the right place in the developer console to flip the bit.
                  "links": [ # URL(s) pointing to additional information on handling the current error.
                    { # Describes a URL link.
                      "description": "A String", # Describes what the link offers.
                      "url": "A String", # The URL of the link.
                    },
                  ],
                },
                "localizedMessage": { # Provides a localized error message that is safe to return to the user
                    # which can be attached to an RPC error.
                  "locale": "A String", # The locale used following the specification defined at
                      # https://www.rfc-editor.org/rfc/bcp/bcp47.txt.
                      # Examples are: "en-US", "fr-CH", "es-MX"
                  "message": "A String", # The localized error message in the above locale.
                },
                "quotaInfo": { # Additional details for quota exceeded error for resource quota.
                  "dimensions": { # The map holding related quota dimensions.
                    "a_key": "A String",
                  },
                  "futureLimit": 3.14, # Future quota limit being rolled out. The limit's unit depends on the quota
                      #  type or metric.
                  "limit": 3.14, # Current effective quota limit. The limit's unit depends on the quota type
                      # or metric.
                  "limitName": "A String", # The name of the quota limit.
                  "metricName": "A String", # The Compute Engine quota metric name.
                  "rolloutStatus": "A String", # Rollout status of the future quota limit.
                },
              },
            ],
            "location": "A String", # [Output Only] Indicates the field in the request that caused the error.
                # This property is optional.
            "message": "A String", # [Output Only] An optional, human-readable error message.
          },
        ],
      },
      "getVersionOperationMetadata": {
        "inlineSbomInfo": {
          "currentComponentVersions": { # A mapping of components to their currently-applied versions or other
              # appropriate identifiers.
            "a_key": "A String",
          },
          "targetComponentVersions": { # A mapping of components to their target versions or other appropriate
              # identifiers.
            "a_key": "A String",
          },
        },
      },
      "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error
          # message that was returned, such as `NOT FOUND`.
      "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error
          # status code that was returned. For example, a `404` means the
          # resource was not found.
      "id": "A String", # [Output Only] The unique identifier for the operation. This identifier is
          # defined by the server.
      "insertTime": "A String", # [Output Only] The time that this operation was requested.
          # This value is inRFC3339
          # text format.
      "instancesBulkInsertOperationMetadata": {
        "perLocationStatus": { # Status information per location (location name is key).
            # Example key: zones/us-central1-a
          "a_key": {
            "createdVmCount": 42, # [Output Only] Count of VMs successfully created so far.
            "deletedVmCount": 42, # [Output Only] Count of VMs that got deleted during rollback.
            "failedToCreateVmCount": 42, # [Output Only] Count of VMs that started creating but encountered an
                # error.
            "status": "A String", # [Output Only] Creation status of BulkInsert operation - information
                # if the flow is rolling forward or rolling back.
            "targetVmCount": 42, # [Output Only] Count of VMs originally planned to be created.
          },
        },
      },
      "kind": "compute#operation", # Output only. [Output Only] Type of the resource. Always `compute#operation` for
          # Operation resources.
      "name": "A String", # [Output Only] Name of the operation.
      "operationGroupId": "A String", # Output only. [Output Only] An ID that represents a group of operations, such as when a
          # group of operations results from a `bulkInsert` API request.
      "operationType": "A String", # [Output Only] The type of operation, such as `insert`,
          # `update`, or `delete`, and so on.
      "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100.
          # There is no requirement that this be linear or support any granularity of
          # operations. This should not be used to guess when the operation will be
          # complete. This number should monotonically increase as the operation
          # progresses.
      "region": "A String", # [Output Only] The URL of the region where the operation resides. Only
          # applicable when performing regional operations.
      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
      "setCommonInstanceMetadataOperationMetadata": { # Output only. [Output Only] If the operation is for projects.setCommonInstanceMetadata,
          # this field will contain information on all underlying zonal actions and
          # their state.
        "clientOperationId": "A String", # [Output Only] The client operation id.
        "perLocationOperations": { # [Output Only] Status information per location (location name is key).
            # Example key: zones/us-central1-a
          "a_key": {
            "error": { # The `Status` type defines a logical error model that is suitable for # [Output Only] If state is `ABANDONED` or `FAILED`, this field is
                # populated.
                # different programming environments, including REST APIs and RPC APIs. It is
                # used by [gRPC](https://github.com/grpc). Each `Status` message contains
                # three pieces of data: error code, error message, and error details.
                #
                # You can find out more about this error model and how to work with it in the
                # [API Design Guide](https://cloud.google.com/apis/design/errors).
              "code": 42, # The status code, which should be an enum value of google.rpc.Code.
              "details": [ # A list of messages that carry the error details.  There is a common set of
                  # message types for APIs to use.
                {
                  "a_key": "", # Properties of the object. Contains field @type with type URL.
                },
              ],
              "message": "A String", # A developer-facing error message, which should be in English. Any
                  # user-facing error message should be localized and sent in the
                  # google.rpc.Status.details field, or localized by the client.
            },
            "state": "A String", # [Output Only] Status of the action, which can be one of the following:
                # `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.
          },
        },
      },
      "startTime": "A String", # [Output Only] The time that this operation was started by the server.
          # This value is inRFC3339
          # text format.
      "status": "A String", # [Output Only] The status of the operation, which can be one of the
          # following:
          # `PENDING`, `RUNNING`, or `DONE`.
      "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the
          # operation.
      "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation
          # of the target resource.
      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For
          # operations related to creating a snapshot, this points to the disk
          # that the snapshot was created from.
      "user": "A String", # [Output Only] User who requested the operation, for example:
          # `user@example.com` or
          # `alice_smith_identifier (global/workforcePools/example-com-us-employees)`.
      "warnings": [ # [Output Only] If warning messages are generated during processing of the
          # operation, this field will be populated.
        {
          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute
              # Engine returns NO_RESULTS_ON_PAGE if there
              # are no results in the response.
          "data": [ # [Output Only] Metadata about this warning in key:
              # value format. For example:
              #
              # "data": [
              #   {
              #    "key": "scope",
              #    "value": "zones/us-east1-d"
              #   }
            {
              "key": "A String", # [Output Only] A key that provides more detail on the warning being
                  # returned. For example, for warnings where there are no results in a list
                  # request for a particular zone, this key might be scope and
                  # the key value might be the zone name. Other examples might be a key
                  # indicating a deprecated resource and a suggested replacement, or a
                  # warning about invalid network settings (for example, if an instance
                  # attempts to perform IP forwarding but is not enabled for IP forwarding).
              "value": "A String", # [Output Only] A warning data value corresponding to the key.
            },
          ],
          "message": "A String", # [Output Only] A human-readable description of the warning code.
        },
      ],
      "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only
          # applicable when performing per-zone operations.
    }

`setTarget(project, forwardingRule, body=None, requestId=None, x__xgafv=None)`

    Changes target URL for the GlobalForwardingRule resource. The new target
    should be of the same type as the old target.

    Args:
      project: string, Project ID for this request. (required)
      forwardingRule: string, Name of the ForwardingRule resource in which target is to be set. (required)
      body: object, The request body.
        The object takes the form of:

    {
      "target": "A String",
    }

      requestId: string, An optional request ID to identify requests. Specify a unique request ID so
    that if you must retry your request, the server will know to ignore the
    request if it has already been completed.

    For example, consider a situation where you make an initial request and
    the request times out. If you make the request again with the same
    request ID, the server can check if original operation with the same
    request ID was received, and if so, will ignore the second request. This
    prevents clients from accidentally creating duplicate commitments.

    The request ID must be
    a valid UUID with the exception that zero UUID is not supported
    (00000000-0000-0000-0000-000000000000).
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Represents an Operation resource.
        #
        # Google Compute Engine has three Operation resources:
        #
        # * [Global](/compute/docs/reference/rest/v1/globalOperations)
        # * [Regional](/compute/docs/reference/rest/v1/regionOperations)
        # * [Zonal](/compute/docs/reference/rest/v1/zoneOperations)
        #
        # You can use an operation resource to manage asynchronous API requests.
        # For more information, readHandling
        # API responses.
        #
        # Operations can be global, regional or zonal.
        #
        #    - For global operations, use the `globalOperations`
        #    resource.
        #    - For regional operations, use the
        #    `regionOperations` resource.
        #    - For zonal operations, use
        #    the `zoneOperations` resource.
        #
        #
        #
        # For more information, read
        # Global, Regional, and Zonal Resources.
        #
        # Note that completed Operation resources have a limited
        # retention period.
      "clientOperationId": "A String", # [Output Only] The value of `requestId` if you provided it in the request.
          # Not present otherwise.
      "creationTimestamp": "A String", # [Deprecated] This field is deprecated.
      "description": "A String", # [Output Only] A textual description of the operation, which is
          # set when the operation is created.
      "endTime": "A String", # [Output Only] The time that this operation was completed. This value is inRFC3339
          # text format.
      "error": { # [Output Only] If errors are generated during processing of the operation,
          # this field will be populated.
        "errors": [ # [Output Only] The array of errors encountered while processing this
            # operation.
          {
            "code": "A String", # [Output Only] The error type identifier for this error.
            "errorDetails": [ # [Output Only] An optional list of messages that contain the error
                # details. There is a set of defined message types to use for providing
                # details.The syntax depends on the error code. For example,
                # QuotaExceededInfo will have details when the error code is
                # QUOTA_EXCEEDED.
              {
                "errorInfo": { # Describes the cause of the error with structured details.
                    #
                    # Example of an error when contacting the "pubsub.googleapis.com" API when it
                    # is not enabled:
                    #
                    #     { "reason": "API_DISABLED"
                    #       "domain": "googleapis.com"
                    #       "metadata": {
                    #         "resource": "projects/123",
                    #         "service": "pubsub.googleapis.com"
                    #       }
                    #     }
                    #
                    # This response indicates that the pubsub.googleapis.com API is not enabled.
                    #
                    # Example of an error that is returned when attempting to create a Spanner
                    # instance in a region that is out of stock:
                    #
                    #     { "reason": "STOCKOUT"
                    #       "domain": "spanner.googleapis.com",
                    #       "metadata": {
                    #         "availableRegions": "us-central1,us-east2"
                    #       }
                    #     }
                  "domain": "A String", # The logical grouping to which the "reason" belongs. The error domain
                      # is typically the registered service name of the tool or product that
                      # generates the error. Example: "pubsub.googleapis.com". If the error is
                      # generated by some common infrastructure, the error domain must be a
                      # globally unique value that identifies the infrastructure. For Google API
                      # infrastructure, the error domain is "googleapis.com".
                  "metadatas": { # Additional structured details about this error.
                      #
                      # Keys must match a regular expression of `a-z+` but should
                      # ideally be lowerCamelCase. Also, they must be limited to 64 characters in
                      # length. When identifying the current value of an exceeded limit, the units
                      # should be contained in the key, not the value.  For example, rather than
                      # `{"instanceLimit": "100/request"}`, should be returned as,
                      # `{"instanceLimitPerRequest": "100"}`, if the client exceeds the number of
                      # instances that can be created in a single (batch) request.
                    "a_key": "A String",
                  },
                  "reason": "A String", # The reason of the error. This is a constant value that identifies the
                      # proximate cause of the error. Error reasons are unique within a particular
                      # domain of errors. This should be at most 63 characters and match a
                      # regular expression of `A-Z+[A-Z0-9]`, which represents
                      # UPPER_SNAKE_CASE.
                },
                "help": { # Provides links to documentation or for performing an out of band action.
                    #
                    # For example, if a quota check failed with an error indicating the calling
                    # project hasn't enabled the accessed service, this can contain a URL pointing
                    # directly to the right place in the developer console to flip the bit.
                  "links": [ # URL(s) pointing to additional information on handling the current error.
                    { # Describes a URL link.
                      "description": "A String", # Describes what the link offers.
                      "url": "A String", # The URL of the link.
                    },
                  ],
                },
                "localizedMessage": { # Provides a localized error message that is safe to return to the user
                    # which can be attached to an RPC error.
                  "locale": "A String", # The locale used following the specification defined at
                      # https://www.rfc-editor.org/rfc/bcp/bcp47.txt.
                      # Examples are: "en-US", "fr-CH", "es-MX"
                  "message": "A String", # The localized error message in the above locale.
                },
                "quotaInfo": { # Additional details for quota exceeded error for resource quota.
                  "dimensions": { # The map holding related quota dimensions.
                    "a_key": "A String",
                  },
                  "futureLimit": 3.14, # Future quota limit being rolled out. The limit's unit depends on the quota
                      #  type or metric.
                  "limit": 3.14, # Current effective quota limit. The limit's unit depends on the quota type
                      # or metric.
                  "limitName": "A String", # The name of the quota limit.
                  "metricName": "A String", # The Compute Engine quota metric name.
                  "rolloutStatus": "A String", # Rollout status of the future quota limit.
                },
              },
            ],
            "location": "A String", # [Output Only] Indicates the field in the request that caused the error.
                # This property is optional.
            "message": "A String", # [Output Only] An optional, human-readable error message.
          },
        ],
      },
      "getVersionOperationMetadata": {
        "inlineSbomInfo": {
          "currentComponentVersions": { # A mapping of components to their currently-applied versions or other
              # appropriate identifiers.
            "a_key": "A String",
          },
          "targetComponentVersions": { # A mapping of components to their target versions or other appropriate
              # identifiers.
            "a_key": "A String",
          },
        },
      },
      "httpErrorMessage": "A String", # [Output Only] If the operation fails, this field contains the HTTP error
          # message that was returned, such as `NOT FOUND`.
      "httpErrorStatusCode": 42, # [Output Only] If the operation fails, this field contains the HTTP error
          # status code that was returned. For example, a `404` means the
          # resource was not found.
      "id": "A String", # [Output Only] The unique identifier for the operation. This identifier is
          # defined by the server.
      "insertTime": "A String", # [Output Only] The time that this operation was requested.
          # This value is inRFC3339
          # text format.
      "instancesBulkInsertOperationMetadata": {
        "perLocationStatus": { # Status information per location (location name is key).
            # Example key: zones/us-central1-a
          "a_key": {
            "createdVmCount": 42, # [Output Only] Count of VMs successfully created so far.
            "deletedVmCount": 42, # [Output Only] Count of VMs that got deleted during rollback.
            "failedToCreateVmCount": 42, # [Output Only] Count of VMs that started creating but encountered an
                # error.
            "status": "A String", # [Output Only] Creation status of BulkInsert operation - information
                # if the flow is rolling forward or rolling back.
            "targetVmCount": 42, # [Output Only] Count of VMs originally planned to be created.
          },
        },
      },
      "kind": "compute#operation", # Output only. [Output Only] Type of the resource. Always `compute#operation` for
          # Operation resources.
      "name": "A String", # [Output Only] Name of the operation.
      "operationGroupId": "A String", # Output only. [Output Only] An ID that represents a group of operations, such as when a
          # group of operations results from a `bulkInsert` API request.
      "operationType": "A String", # [Output Only] The type of operation, such as `insert`,
          # `update`, or `delete`, and so on.
      "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100.
          # There is no requirement that this be linear or support any granularity of
          # operations. This should not be used to guess when the operation will be
          # complete. This number should monotonically increase as the operation
          # progresses.
      "region": "A String", # [Output Only] The URL of the region where the operation resides. Only
          # applicable when performing regional operations.
      "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
      "setCommonInstanceMetadataOperationMetadata": { # Output only. [Output Only] If the operation is for projects.setCommonInstanceMetadata,
          # this field will contain information on all underlying zonal actions and
          # their state.
        "clientOperationId": "A String", # [Output Only] The client operation id.
        "perLocationOperations": { # [Output Only] Status information per location (location name is key).
            # Example key: zones/us-central1-a
          "a_key": {
            "error": { # The `Status` type defines a logical error model that is suitable for # [Output Only] If state is `ABANDONED` or `FAILED`, this field is
                # populated.
                # different programming environments, including REST APIs and RPC APIs. It is
                # used by [gRPC](https://github.com/grpc). Each `Status` message contains
                # three pieces of data: error code, error message, and error details.
                #
                # You can find out more about this error model and how to work with it in the
                # [API Design Guide](https://cloud.google.com/apis/design/errors).
              "code": 42, # The status code, which should be an enum value of google.rpc.Code.
              "details": [ # A list of messages that carry the error details.  There is a common set of
                  # message types for APIs to use.
                {
                  "a_key": "", # Properties of the object. Contains field @type with type URL.
                },
              ],
              "message": "A String", # A developer-facing error message, which should be in English. Any
                  # user-facing error message should be localized and sent in the
                  # google.rpc.Status.details field, or localized by the client.
            },
            "state": "A String", # [Output Only] Status of the action, which can be one of the following:
                # `PROPAGATING`, `PROPAGATED`, `ABANDONED`, `FAILED`, or `DONE`.
          },
        },
      },
      "startTime": "A String", # [Output Only] The time that this operation was started by the server.
          # This value is inRFC3339
          # text format.
      "status": "A String", # [Output Only] The status of the operation, which can be one of the
          # following:
          # `PENDING`, `RUNNING`, or `DONE`.
      "statusMessage": "A String", # [Output Only] An optional textual description of the current status of the
          # operation.
      "targetId": "A String", # [Output Only] The unique target ID, which identifies a specific incarnation
          # of the target resource.
      "targetLink": "A String", # [Output Only] The URL of the resource that the operation modifies. For
          # operations related to creating a snapshot, this points to the disk
          # that the snapshot was created from.
      "user": "A String", # [Output Only] User who requested the operation, for example:
          # `user@example.com` or
          # `alice_smith_identifier (global/workforcePools/example-com-us-employees)`.
      "warnings": [ # [Output Only] If warning messages are generated during processing of the
          # operation, this field will be populated.
        {
          "code": "A String", # [Output Only] A warning code, if applicable. For example, Compute
              # Engine returns NO_RESULTS_ON_PAGE if there
              # are no results in the response.
          "data": [ # [Output Only] Metadata about this warning in key:
              # value format. For example:
              #
              # "data": [
              #   {
              #    "key": "scope",
              #    "value": "zones/us-east1-d"
              #   }
            {
              "key": "A String", # [Output Only] A key that provides more detail on the warning being
                  # returned. For example, for warnings where there are no results in a list
                  # request for a particular zone, this key might be scope and
                  # the key value might be the zone name. Other examples might be a key
                  # indicating a deprecated resource and a suggested replacement, or a
                  # warning about invalid network settings (for example, if an instance
                  # attempts to perform IP forwarding but is not enabled for IP forwarding).
              "value": "A String", # [Output Only] A warning data value corresponding to the key.
            },
          ],
          "message": "A String", # [Output Only] A human-readable description of the warning code.
        },
      ],
      "zone": "A String", # [Output Only] The URL of the zone where the operation resides. Only
          # applicable when performing per-zone operations.
    }