Network Services API . projects . locations . extensionBindings

Instance Methods

close()

Close httplib2 connections.

create(parent, body=None, extensionBindingId=None, x__xgafv=None)

Creates a new `ExtensionBinding` resource in a given project and location.

delete(name, etag=None, x__xgafv=None)

Deletes the specified `ExtensionBinding` resource.

get(name, x__xgafv=None)

Gets details of the specified `ExtensionBinding` resource.

list(parent, pageSize=None, pageToken=None, x__xgafv=None)

Lists `ExtensionBinding` resources in a given project and location.

list_next(previous_request, previous_response)

Retrieves the next page of results.

patch(name, body=None, updateMask=None, x__xgafv=None)

Updates the parameters of the specified `ExtensionBinding` resource.

Method Details

close()
Close httplib2 connections.
create(parent, body=None, extensionBindingId=None, x__xgafv=None)
Creates a new `ExtensionBinding` resource in a given project and location.

Args:
  parent: string, Required. The parent resource of the `ExtensionBinding` resource. Must be in the format `projects/{project}/locations/{location}`. (required)
  body: object, The request body.
    The object takes the form of:

{ # `ExtensionBinding` is a resource representing the attachment of an extension to a service.
  "createTime": "A String", # Output only. The timestamp when the resource was created.
  "description": "A String", # Optional. A human-readable description of the resource.
  "etag": "A String", # Optional. Etag of the resource. If provided, it must match the server's etag. If the provided etag does not match the server's etag, the request will fail with a 409 ABORTED error.
  "failOpen": True or False, # Optional. Determines the behavior of the extension binding when the call to the extension fails or times out. Default value is `FALSE`. When set to `TRUE`, failures of the extension are silently ignored.
  "labels": { # Optional. Set of labels associated with the `ExtensionBinding` resource. The format must comply with [the following requirements](https://cloud.google.com/compute/docs/labeling-resources#requirements).
    "a_key": "A String",
  },
  "matchConditions": [ # Optional. A list of match conditions to evaluate against the incoming request. The extension is invoked if the request matches at least one condition, or if no match conditions are specified. A request matches a condition only if it matches every field that is set in that condition. Limited to 5 conditions.
    { # Conditions to match against the incoming request.
      "to": { # Describes properties of one or more destinations of a request. # Optional. Describes properties of a destination of a request. If specified, the extension will only be invoked on requests to destinations that match the specified criteria.
        "destination": { # Describes properties of a single destination. # Optional. Describes properties of the destination of a request. A request matches the destination only if it matches every field that is set. Fields that are not set are always considered a match. For example, if only `hosts` and `paths` are set, a request matches when any host matches and any path matches. At least one of `destination` or `not_destination` must be specified.
          "headerSet": { # Describes a set of HTTP headers to match against. # Optional. A set of HTTP headers to match against. If not specified, requests with any headers are matched.
            "headers": [ # Required. A list of HTTP headers to match against. If multiple header matches are provided, they are evaluated as an AND, meaning that all header matches must match for the request to match. Limited to 10 headers.
              { # Determines how an HTTP header should be matched.
                "name": "A String", # Required. Specifies the name of the header in the request.
                "value": { # Specifies matching logic for string values. # Optional. Specifies how the header match will be performed.
                  "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
                  "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
                  "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
                  "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
                  "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
                },
              },
            ],
          },
          "hosts": [ # Optional. A list of HTTP Hosts to match against. Limited to 10 hosts. If not specified, any host is allowed. If specified, a match occurs if any of the hosts matches the host value in the request.
            { # Specifies matching logic for string values.
              "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
              "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
              "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
              "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
              "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
            },
          ],
          "paths": [ # Optional. A list of paths to match against. Limited to 10 paths. If not specified, any path is allowed. Note that this path match includes the query parameters. For gRPC services, this should be a fully-qualified name of the form /package.service/method.
            { # Specifies matching logic for string values.
              "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
              "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
              "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
              "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
              "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
            },
          ],
          "resources": [ # Optional. A list of non-empty strings whose value is matched against the resource to which a request is sent (e.g., an Agent in AiApplication). If not specified, any resource is allowed. If specified, a match occurs if any of the resources matches the resource value in the request. Limited to 5 resources. When matching against resources in the AgentRegistry, use the URNs of the registry resources.
            { # Specifies matching logic for string values.
              "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
              "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
              "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
              "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
              "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
            },
          ],
        },
        "notDestination": { # Describes properties of a single destination. # Optional. Describes the negated properties of the request destination. Extension will not be invoked on requests that match the criteria specified in this field. At least one of destination or not_destination must be specified.
          "headerSet": { # Describes a set of HTTP headers to match against. # Optional. A set of HTTP headers to match against. If not specified, requests with any headers are matched.
            "headers": [ # Required. A list of HTTP headers to match against. If multiple header matches are provided, they are evaluated as an AND, meaning that all header matches must match for the request to match. Limited to 10 headers.
              { # Determines how an HTTP header should be matched.
                "name": "A String", # Required. Specifies the name of the header in the request.
                "value": { # Specifies matching logic for string values. # Optional. Specifies how the header match will be performed.
                  "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
                  "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
                  "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
                  "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
                  "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
                },
              },
            ],
          },
          "hosts": [ # Optional. A list of HTTP Hosts to match against. Limited to 10 hosts. If not specified, any host is allowed. If specified, a match occurs if any of the hosts matches the host value in the request.
            { # Specifies matching logic for string values.
              "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
              "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
              "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
              "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
              "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
            },
          ],
          "paths": [ # Optional. A list of paths to match against. Limited to 10 paths. If not specified, any path is allowed. Note that this path match includes the query parameters. For gRPC services, this should be a fully-qualified name of the form /package.service/method.
            { # Specifies matching logic for string values.
              "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
              "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
              "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
              "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
              "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
            },
          ],
          "resources": [ # Optional. A list of non-empty strings whose value is matched against the resource to which a request is sent (e.g., an Agent in AiApplication). If not specified, any resource is allowed. If specified, a match occurs if any of the resources matches the resource value in the request. Limited to 5 resources. When matching against resources in the AgentRegistry, use the URNs of the registry resources.
            { # Specifies matching logic for string values.
              "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
              "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
              "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
              "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
              "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
            },
          ],
        },
      },
    },
  ],
  "name": "A String", # Identifier. Name of the `ExtensionBinding` resource in the following format: `projects/{project}/locations/{location}/extensionBindings/{extension_binding}`.
  "priority": 42, # Optional. Priority of the extension binding. Lower numbers indicate higher priority. The priority determines the order in which extension bindings are applied to a request.
  "producerExtension": "A String", # Required. The name of the extension that this binding should attach to target resources. Format: For Google-provided extensions, specify the service endpoint, for example `modelarmor.us-central1.rep.googleapis.com`.
  "producerMetadata": { # Optional. Additional metadata that should be passed to the attached extension with each request. This field is subject to the following limitations: * The total size of the metadata must be less than 1 KiB. * The total number of keys must be less than 16. * The length of each key must be less than 64 characters. * The length of each value must be less than 1024 characters.
    "a_key": "A String",
  },
  "target": { # Specifies a list of targets to which this `ExtensionBinding` should attach. # Required. Specifies a target to which this `ExtensionBinding` should be attached.
    "resources": [ # Optional. The references to the target resources to which this binding should attach. Exactly one of `resources` or `scope` must be set. For AI Application resources, specify the full resource name in the format: `projects/{project}/locations/{location}/applications/{application}`. Limited to 1 resource.
      "A String",
    ],
    "scope": { # Specifies the scope of resources to which this binding should attach. # Optional. Specifies the scope of resources to which this binding should attach. Exactly one of `resources` or `scope` must be set.
      "parent": "A String", # Required. The parent resource that defines the scope, in the format `projects/{project_number}`. When the scope is a project, the binding applies to the resources that meet all of the following conditions: * The resource belongs to the specified project. * The resource is in the same location as the `ExtensionBinding`. * The resource type is listed in `resource_types`.
      "resourceTypes": [ # Required. The types of resources to which the binding should attach. Limited to 1 resource type.
        "A String",
      ],
    },
  },
  "updateTime": "A String", # Output only. The timestamp when the resource was updated.
}

  extensionBindingId: string, Required. Short name of the `ExtensionBinding` resource to be created.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for 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). # The error result of the operation in case of failure or cancellation.
    "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.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
delete(name, etag=None, x__xgafv=None)
Deletes the specified `ExtensionBinding` resource.

Args:
  name: string, Required. A name of the `ExtensionBinding` resource to delete. Must be in the format `projects/{project}/locations/{location}/extensionBindings/{extension_binding}`. (required)
  etag: string, Optional. The etag of the ExtensionBinding to delete.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for 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). # The error result of the operation in case of failure or cancellation.
    "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.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
get(name, x__xgafv=None)
Gets details of the specified `ExtensionBinding` resource.

Args:
  name: string, Required. A name of the `ExtensionBinding` resource to get. Must be in the format `projects/{project}/locations/{location}/extensionBindings/{extension_binding}`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # `ExtensionBinding` is a resource representing the attachment of an extension to a service.
  "createTime": "A String", # Output only. The timestamp when the resource was created.
  "description": "A String", # Optional. A human-readable description of the resource.
  "etag": "A String", # Optional. Etag of the resource. If provided, it must match the server's etag. If the provided etag does not match the server's etag, the request will fail with a 409 ABORTED error.
  "failOpen": True or False, # Optional. Determines the behavior of the extension binding when the call to the extension fails or times out. Default value is `FALSE`. When set to `TRUE`, failures of the extension are silently ignored.
  "labels": { # Optional. Set of labels associated with the `ExtensionBinding` resource. The format must comply with [the following requirements](https://cloud.google.com/compute/docs/labeling-resources#requirements).
    "a_key": "A String",
  },
  "matchConditions": [ # Optional. A list of match conditions to evaluate against the incoming request. The extension is invoked if the request matches at least one condition, or if no match conditions are specified. A request matches a condition only if it matches every field that is set in that condition. Limited to 5 conditions.
    { # Conditions to match against the incoming request.
      "to": { # Describes properties of one or more destinations of a request. # Optional. Describes properties of a destination of a request. If specified, the extension will only be invoked on requests to destinations that match the specified criteria.
        "destination": { # Describes properties of a single destination. # Optional. Describes properties of the destination of a request. A request matches the destination only if it matches every field that is set. Fields that are not set are always considered a match. For example, if only `hosts` and `paths` are set, a request matches when any host matches and any path matches. At least one of `destination` or `not_destination` must be specified.
          "headerSet": { # Describes a set of HTTP headers to match against. # Optional. A set of HTTP headers to match against. If not specified, requests with any headers are matched.
            "headers": [ # Required. A list of HTTP headers to match against. If multiple header matches are provided, they are evaluated as an AND, meaning that all header matches must match for the request to match. Limited to 10 headers.
              { # Determines how an HTTP header should be matched.
                "name": "A String", # Required. Specifies the name of the header in the request.
                "value": { # Specifies matching logic for string values. # Optional. Specifies how the header match will be performed.
                  "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
                  "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
                  "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
                  "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
                  "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
                },
              },
            ],
          },
          "hosts": [ # Optional. A list of HTTP Hosts to match against. Limited to 10 hosts. If not specified, any host is allowed. If specified, a match occurs if any of the hosts matches the host value in the request.
            { # Specifies matching logic for string values.
              "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
              "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
              "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
              "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
              "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
            },
          ],
          "paths": [ # Optional. A list of paths to match against. Limited to 10 paths. If not specified, any path is allowed. Note that this path match includes the query parameters. For gRPC services, this should be a fully-qualified name of the form /package.service/method.
            { # Specifies matching logic for string values.
              "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
              "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
              "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
              "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
              "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
            },
          ],
          "resources": [ # Optional. A list of non-empty strings whose value is matched against the resource to which a request is sent (e.g., an Agent in AiApplication). If not specified, any resource is allowed. If specified, a match occurs if any of the resources matches the resource value in the request. Limited to 5 resources. When matching against resources in the AgentRegistry, use the URNs of the registry resources.
            { # Specifies matching logic for string values.
              "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
              "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
              "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
              "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
              "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
            },
          ],
        },
        "notDestination": { # Describes properties of a single destination. # Optional. Describes the negated properties of the request destination. Extension will not be invoked on requests that match the criteria specified in this field. At least one of destination or not_destination must be specified.
          "headerSet": { # Describes a set of HTTP headers to match against. # Optional. A set of HTTP headers to match against. If not specified, requests with any headers are matched.
            "headers": [ # Required. A list of HTTP headers to match against. If multiple header matches are provided, they are evaluated as an AND, meaning that all header matches must match for the request to match. Limited to 10 headers.
              { # Determines how an HTTP header should be matched.
                "name": "A String", # Required. Specifies the name of the header in the request.
                "value": { # Specifies matching logic for string values. # Optional. Specifies how the header match will be performed.
                  "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
                  "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
                  "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
                  "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
                  "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
                },
              },
            ],
          },
          "hosts": [ # Optional. A list of HTTP Hosts to match against. Limited to 10 hosts. If not specified, any host is allowed. If specified, a match occurs if any of the hosts matches the host value in the request.
            { # Specifies matching logic for string values.
              "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
              "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
              "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
              "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
              "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
            },
          ],
          "paths": [ # Optional. A list of paths to match against. Limited to 10 paths. If not specified, any path is allowed. Note that this path match includes the query parameters. For gRPC services, this should be a fully-qualified name of the form /package.service/method.
            { # Specifies matching logic for string values.
              "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
              "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
              "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
              "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
              "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
            },
          ],
          "resources": [ # Optional. A list of non-empty strings whose value is matched against the resource to which a request is sent (e.g., an Agent in AiApplication). If not specified, any resource is allowed. If specified, a match occurs if any of the resources matches the resource value in the request. Limited to 5 resources. When matching against resources in the AgentRegistry, use the URNs of the registry resources.
            { # Specifies matching logic for string values.
              "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
              "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
              "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
              "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
              "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
            },
          ],
        },
      },
    },
  ],
  "name": "A String", # Identifier. Name of the `ExtensionBinding` resource in the following format: `projects/{project}/locations/{location}/extensionBindings/{extension_binding}`.
  "priority": 42, # Optional. Priority of the extension binding. Lower numbers indicate higher priority. The priority determines the order in which extension bindings are applied to a request.
  "producerExtension": "A String", # Required. The name of the extension that this binding should attach to target resources. Format: For Google-provided extensions, specify the service endpoint, for example `modelarmor.us-central1.rep.googleapis.com`.
  "producerMetadata": { # Optional. Additional metadata that should be passed to the attached extension with each request. This field is subject to the following limitations: * The total size of the metadata must be less than 1 KiB. * The total number of keys must be less than 16. * The length of each key must be less than 64 characters. * The length of each value must be less than 1024 characters.
    "a_key": "A String",
  },
  "target": { # Specifies a list of targets to which this `ExtensionBinding` should attach. # Required. Specifies a target to which this `ExtensionBinding` should be attached.
    "resources": [ # Optional. The references to the target resources to which this binding should attach. Exactly one of `resources` or `scope` must be set. For AI Application resources, specify the full resource name in the format: `projects/{project}/locations/{location}/applications/{application}`. Limited to 1 resource.
      "A String",
    ],
    "scope": { # Specifies the scope of resources to which this binding should attach. # Optional. Specifies the scope of resources to which this binding should attach. Exactly one of `resources` or `scope` must be set.
      "parent": "A String", # Required. The parent resource that defines the scope, in the format `projects/{project_number}`. When the scope is a project, the binding applies to the resources that meet all of the following conditions: * The resource belongs to the specified project. * The resource is in the same location as the `ExtensionBinding`. * The resource type is listed in `resource_types`.
      "resourceTypes": [ # Required. The types of resources to which the binding should attach. Limited to 1 resource type.
        "A String",
      ],
    },
  },
  "updateTime": "A String", # Output only. The timestamp when the resource was updated.
}
list(parent, pageSize=None, pageToken=None, x__xgafv=None)
Lists `ExtensionBinding` resources in a given project and location.

Args:
  parent: string, Required. The project and location from which the `ExtensionBinding` resources should be listed, specified in the format `projects/{project}/locations/{location}`. (required)
  pageSize: integer, Optional. Maximum number of `ExtensionBinding` resources to return per call.
  pageToken: string, Optional. The value returned by the last `ListExtensionBindingsResponse` Indicates that this is a continuation of a prior `ListExtensionBindings` call, and that the system should return the next page of data.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response returned by the `ListExtensionBindings` method.
  "extensionBindings": [ # List of `ExtensionBinding` resources.
    { # `ExtensionBinding` is a resource representing the attachment of an extension to a service.
      "createTime": "A String", # Output only. The timestamp when the resource was created.
      "description": "A String", # Optional. A human-readable description of the resource.
      "etag": "A String", # Optional. Etag of the resource. If provided, it must match the server's etag. If the provided etag does not match the server's etag, the request will fail with a 409 ABORTED error.
      "failOpen": True or False, # Optional. Determines the behavior of the extension binding when the call to the extension fails or times out. Default value is `FALSE`. When set to `TRUE`, failures of the extension are silently ignored.
      "labels": { # Optional. Set of labels associated with the `ExtensionBinding` resource. The format must comply with [the following requirements](https://cloud.google.com/compute/docs/labeling-resources#requirements).
        "a_key": "A String",
      },
      "matchConditions": [ # Optional. A list of match conditions to evaluate against the incoming request. The extension is invoked if the request matches at least one condition, or if no match conditions are specified. A request matches a condition only if it matches every field that is set in that condition. Limited to 5 conditions.
        { # Conditions to match against the incoming request.
          "to": { # Describes properties of one or more destinations of a request. # Optional. Describes properties of a destination of a request. If specified, the extension will only be invoked on requests to destinations that match the specified criteria.
            "destination": { # Describes properties of a single destination. # Optional. Describes properties of the destination of a request. A request matches the destination only if it matches every field that is set. Fields that are not set are always considered a match. For example, if only `hosts` and `paths` are set, a request matches when any host matches and any path matches. At least one of `destination` or `not_destination` must be specified.
              "headerSet": { # Describes a set of HTTP headers to match against. # Optional. A set of HTTP headers to match against. If not specified, requests with any headers are matched.
                "headers": [ # Required. A list of HTTP headers to match against. If multiple header matches are provided, they are evaluated as an AND, meaning that all header matches must match for the request to match. Limited to 10 headers.
                  { # Determines how an HTTP header should be matched.
                    "name": "A String", # Required. Specifies the name of the header in the request.
                    "value": { # Specifies matching logic for string values. # Optional. Specifies how the header match will be performed.
                      "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
                      "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
                      "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
                      "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
                      "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
                    },
                  },
                ],
              },
              "hosts": [ # Optional. A list of HTTP Hosts to match against. Limited to 10 hosts. If not specified, any host is allowed. If specified, a match occurs if any of the hosts matches the host value in the request.
                { # Specifies matching logic for string values.
                  "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
                  "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
                  "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
                  "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
                  "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
                },
              ],
              "paths": [ # Optional. A list of paths to match against. Limited to 10 paths. If not specified, any path is allowed. Note that this path match includes the query parameters. For gRPC services, this should be a fully-qualified name of the form /package.service/method.
                { # Specifies matching logic for string values.
                  "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
                  "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
                  "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
                  "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
                  "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
                },
              ],
              "resources": [ # Optional. A list of non-empty strings whose value is matched against the resource to which a request is sent (e.g., an Agent in AiApplication). If not specified, any resource is allowed. If specified, a match occurs if any of the resources matches the resource value in the request. Limited to 5 resources. When matching against resources in the AgentRegistry, use the URNs of the registry resources.
                { # Specifies matching logic for string values.
                  "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
                  "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
                  "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
                  "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
                  "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
                },
              ],
            },
            "notDestination": { # Describes properties of a single destination. # Optional. Describes the negated properties of the request destination. Extension will not be invoked on requests that match the criteria specified in this field. At least one of destination or not_destination must be specified.
              "headerSet": { # Describes a set of HTTP headers to match against. # Optional. A set of HTTP headers to match against. If not specified, requests with any headers are matched.
                "headers": [ # Required. A list of HTTP headers to match against. If multiple header matches are provided, they are evaluated as an AND, meaning that all header matches must match for the request to match. Limited to 10 headers.
                  { # Determines how an HTTP header should be matched.
                    "name": "A String", # Required. Specifies the name of the header in the request.
                    "value": { # Specifies matching logic for string values. # Optional. Specifies how the header match will be performed.
                      "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
                      "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
                      "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
                      "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
                      "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
                    },
                  },
                ],
              },
              "hosts": [ # Optional. A list of HTTP Hosts to match against. Limited to 10 hosts. If not specified, any host is allowed. If specified, a match occurs if any of the hosts matches the host value in the request.
                { # Specifies matching logic for string values.
                  "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
                  "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
                  "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
                  "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
                  "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
                },
              ],
              "paths": [ # Optional. A list of paths to match against. Limited to 10 paths. If not specified, any path is allowed. Note that this path match includes the query parameters. For gRPC services, this should be a fully-qualified name of the form /package.service/method.
                { # Specifies matching logic for string values.
                  "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
                  "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
                  "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
                  "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
                  "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
                },
              ],
              "resources": [ # Optional. A list of non-empty strings whose value is matched against the resource to which a request is sent (e.g., an Agent in AiApplication). If not specified, any resource is allowed. If specified, a match occurs if any of the resources matches the resource value in the request. Limited to 5 resources. When matching against resources in the AgentRegistry, use the URNs of the registry resources.
                { # Specifies matching logic for string values.
                  "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
                  "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
                  "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
                  "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
                  "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
                },
              ],
            },
          },
        },
      ],
      "name": "A String", # Identifier. Name of the `ExtensionBinding` resource in the following format: `projects/{project}/locations/{location}/extensionBindings/{extension_binding}`.
      "priority": 42, # Optional. Priority of the extension binding. Lower numbers indicate higher priority. The priority determines the order in which extension bindings are applied to a request.
      "producerExtension": "A String", # Required. The name of the extension that this binding should attach to target resources. Format: For Google-provided extensions, specify the service endpoint, for example `modelarmor.us-central1.rep.googleapis.com`.
      "producerMetadata": { # Optional. Additional metadata that should be passed to the attached extension with each request. This field is subject to the following limitations: * The total size of the metadata must be less than 1 KiB. * The total number of keys must be less than 16. * The length of each key must be less than 64 characters. * The length of each value must be less than 1024 characters.
        "a_key": "A String",
      },
      "target": { # Specifies a list of targets to which this `ExtensionBinding` should attach. # Required. Specifies a target to which this `ExtensionBinding` should be attached.
        "resources": [ # Optional. The references to the target resources to which this binding should attach. Exactly one of `resources` or `scope` must be set. For AI Application resources, specify the full resource name in the format: `projects/{project}/locations/{location}/applications/{application}`. Limited to 1 resource.
          "A String",
        ],
        "scope": { # Specifies the scope of resources to which this binding should attach. # Optional. Specifies the scope of resources to which this binding should attach. Exactly one of `resources` or `scope` must be set.
          "parent": "A String", # Required. The parent resource that defines the scope, in the format `projects/{project_number}`. When the scope is a project, the binding applies to the resources that meet all of the following conditions: * The resource belongs to the specified project. * The resource is in the same location as the `ExtensionBinding`. * The resource type is listed in `resource_types`.
          "resourceTypes": [ # Required. The types of resources to which the binding should attach. Limited to 1 resource type.
            "A String",
          ],
        },
      },
      "updateTime": "A String", # Output only. The timestamp when the resource was updated.
    },
  ],
  "nextPageToken": "A String", # If there might be more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token`.
  "unreachable": [ # Unordered list. Unreachable resources. Populated when the request attempts to list all resources across all supported locations, while some locations are temporarily unavailable. The resource names are in the format `projects/{project}/locations/{location}/extensionBindings/{extension_binding}`.
    "A String",
  ],
}
list_next(previous_request, previous_response)
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(name, body=None, updateMask=None, x__xgafv=None)
Updates the parameters of the specified `ExtensionBinding` resource.

Args:
  name: string, Identifier. Name of the `ExtensionBinding` resource in the following format: `projects/{project}/locations/{location}/extensionBindings/{extension_binding}`. (required)
  body: object, The request body.
    The object takes the form of:

{ # `ExtensionBinding` is a resource representing the attachment of an extension to a service.
  "createTime": "A String", # Output only. The timestamp when the resource was created.
  "description": "A String", # Optional. A human-readable description of the resource.
  "etag": "A String", # Optional. Etag of the resource. If provided, it must match the server's etag. If the provided etag does not match the server's etag, the request will fail with a 409 ABORTED error.
  "failOpen": True or False, # Optional. Determines the behavior of the extension binding when the call to the extension fails or times out. Default value is `FALSE`. When set to `TRUE`, failures of the extension are silently ignored.
  "labels": { # Optional. Set of labels associated with the `ExtensionBinding` resource. The format must comply with [the following requirements](https://cloud.google.com/compute/docs/labeling-resources#requirements).
    "a_key": "A String",
  },
  "matchConditions": [ # Optional. A list of match conditions to evaluate against the incoming request. The extension is invoked if the request matches at least one condition, or if no match conditions are specified. A request matches a condition only if it matches every field that is set in that condition. Limited to 5 conditions.
    { # Conditions to match against the incoming request.
      "to": { # Describes properties of one or more destinations of a request. # Optional. Describes properties of a destination of a request. If specified, the extension will only be invoked on requests to destinations that match the specified criteria.
        "destination": { # Describes properties of a single destination. # Optional. Describes properties of the destination of a request. A request matches the destination only if it matches every field that is set. Fields that are not set are always considered a match. For example, if only `hosts` and `paths` are set, a request matches when any host matches and any path matches. At least one of `destination` or `not_destination` must be specified.
          "headerSet": { # Describes a set of HTTP headers to match against. # Optional. A set of HTTP headers to match against. If not specified, requests with any headers are matched.
            "headers": [ # Required. A list of HTTP headers to match against. If multiple header matches are provided, they are evaluated as an AND, meaning that all header matches must match for the request to match. Limited to 10 headers.
              { # Determines how an HTTP header should be matched.
                "name": "A String", # Required. Specifies the name of the header in the request.
                "value": { # Specifies matching logic for string values. # Optional. Specifies how the header match will be performed.
                  "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
                  "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
                  "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
                  "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
                  "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
                },
              },
            ],
          },
          "hosts": [ # Optional. A list of HTTP Hosts to match against. Limited to 10 hosts. If not specified, any host is allowed. If specified, a match occurs if any of the hosts matches the host value in the request.
            { # Specifies matching logic for string values.
              "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
              "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
              "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
              "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
              "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
            },
          ],
          "paths": [ # Optional. A list of paths to match against. Limited to 10 paths. If not specified, any path is allowed. Note that this path match includes the query parameters. For gRPC services, this should be a fully-qualified name of the form /package.service/method.
            { # Specifies matching logic for string values.
              "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
              "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
              "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
              "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
              "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
            },
          ],
          "resources": [ # Optional. A list of non-empty strings whose value is matched against the resource to which a request is sent (e.g., an Agent in AiApplication). If not specified, any resource is allowed. If specified, a match occurs if any of the resources matches the resource value in the request. Limited to 5 resources. When matching against resources in the AgentRegistry, use the URNs of the registry resources.
            { # Specifies matching logic for string values.
              "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
              "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
              "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
              "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
              "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
            },
          ],
        },
        "notDestination": { # Describes properties of a single destination. # Optional. Describes the negated properties of the request destination. Extension will not be invoked on requests that match the criteria specified in this field. At least one of destination or not_destination must be specified.
          "headerSet": { # Describes a set of HTTP headers to match against. # Optional. A set of HTTP headers to match against. If not specified, requests with any headers are matched.
            "headers": [ # Required. A list of HTTP headers to match against. If multiple header matches are provided, they are evaluated as an AND, meaning that all header matches must match for the request to match. Limited to 10 headers.
              { # Determines how an HTTP header should be matched.
                "name": "A String", # Required. Specifies the name of the header in the request.
                "value": { # Specifies matching logic for string values. # Optional. Specifies how the header match will be performed.
                  "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
                  "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
                  "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
                  "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
                  "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
                },
              },
            ],
          },
          "hosts": [ # Optional. A list of HTTP Hosts to match against. Limited to 10 hosts. If not specified, any host is allowed. If specified, a match occurs if any of the hosts matches the host value in the request.
            { # Specifies matching logic for string values.
              "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
              "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
              "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
              "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
              "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
            },
          ],
          "paths": [ # Optional. A list of paths to match against. Limited to 10 paths. If not specified, any path is allowed. Note that this path match includes the query parameters. For gRPC services, this should be a fully-qualified name of the form /package.service/method.
            { # Specifies matching logic for string values.
              "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
              "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
              "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
              "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
              "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
            },
          ],
          "resources": [ # Optional. A list of non-empty strings whose value is matched against the resource to which a request is sent (e.g., an Agent in AiApplication). If not specified, any resource is allowed. If specified, a match occurs if any of the resources matches the resource value in the request. Limited to 5 resources. When matching against resources in the AgentRegistry, use the URNs of the registry resources.
            { # Specifies matching logic for string values.
              "contains": "A String", # Optional. The input string must contain the substring specified here. An empty substring is not allowed. Examples: * `abc` matches the value `xyz.abc.def`.
              "exact": "A String", # Optional. The input string must match exactly the string specified here. Examples: * `abc` only matches the value `abc`.
              "ignoreCase": True or False, # Optional. If true, the `exact`, `prefix`, `suffix`, or `contains` match is case insensitive. For example, the matcher `data` matches both `Data` and `data` when set to true.
              "prefix": "A String", # Optional. The input string must have the prefix specified here. An empty prefix is not allowed. Examples: * `abc` matches the value `abc.xyz`.
              "suffix": "A String", # Optional. The input string must have the suffix specified here. An empty suffix is not allowed. Examples: * `abc` matches the value `xyz.abc`.
            },
          ],
        },
      },
    },
  ],
  "name": "A String", # Identifier. Name of the `ExtensionBinding` resource in the following format: `projects/{project}/locations/{location}/extensionBindings/{extension_binding}`.
  "priority": 42, # Optional. Priority of the extension binding. Lower numbers indicate higher priority. The priority determines the order in which extension bindings are applied to a request.
  "producerExtension": "A String", # Required. The name of the extension that this binding should attach to target resources. Format: For Google-provided extensions, specify the service endpoint, for example `modelarmor.us-central1.rep.googleapis.com`.
  "producerMetadata": { # Optional. Additional metadata that should be passed to the attached extension with each request. This field is subject to the following limitations: * The total size of the metadata must be less than 1 KiB. * The total number of keys must be less than 16. * The length of each key must be less than 64 characters. * The length of each value must be less than 1024 characters.
    "a_key": "A String",
  },
  "target": { # Specifies a list of targets to which this `ExtensionBinding` should attach. # Required. Specifies a target to which this `ExtensionBinding` should be attached.
    "resources": [ # Optional. The references to the target resources to which this binding should attach. Exactly one of `resources` or `scope` must be set. For AI Application resources, specify the full resource name in the format: `projects/{project}/locations/{location}/applications/{application}`. Limited to 1 resource.
      "A String",
    ],
    "scope": { # Specifies the scope of resources to which this binding should attach. # Optional. Specifies the scope of resources to which this binding should attach. Exactly one of `resources` or `scope` must be set.
      "parent": "A String", # Required. The parent resource that defines the scope, in the format `projects/{project_number}`. When the scope is a project, the binding applies to the resources that meet all of the following conditions: * The resource belongs to the specified project. * The resource is in the same location as the `ExtensionBinding`. * The resource type is listed in `resource_types`.
      "resourceTypes": [ # Required. The types of resources to which the binding should attach. Limited to 1 resource type.
        "A String",
      ],
    },
  },
  "updateTime": "A String", # Output only. The timestamp when the resource was updated.
}

  updateMask: string, Optional. Field mask is used to specify the fields to be overwritten in the `ExtensionBinding` resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for 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). # The error result of the operation in case of failure or cancellation.
    "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.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}