# Vertex AI API . projects . locations . indexes

## Instance Methods

Returns the operations Resource.

Close httplib2 connections.

Creates an Index.

Deletes an Index. An Index can only be deleted when all its DeployedIndexes had been undeployed.

Gets an Index.

Lists Indexes in a Location.

Retrieves the next page of results.

Updates an Index.

Remove Datapoints from an Index.

Add/update Datapoints into an Index.

### Method Details

`close()`

    Close httplib2 connections.

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

    Creates an Index.

    Args:
      parent: string, Required. The resource name of the Location to create the Index in. Format: `projects/{project}/locations/{location}` (required)
      body: object, The request body.
        The object takes the form of:

    { # A representation of a collection of database items organized in a way that allows for approximate nearest neighbor (a.k.a ANN) algorithms search.
      "createTime": "A String", # Output only. Timestamp when this Index was created.
      "deployedIndexes": [ # Output only. The pointers to DeployedIndexes created from this Index. An Index can be only deleted if all its DeployedIndexes had been undeployed first.
        { # Points to a DeployedIndex.
          "deployedIndexId": "A String", # Immutable. The ID of the DeployedIndex in the above IndexEndpoint.
          "displayName": "A String", # Output only. The display name of the DeployedIndex.
          "indexEndpoint": "A String", # Immutable. A resource name of the IndexEndpoint.
        },
      ],
      "description": "A String", # The description of the Index.
      "displayName": "A String", # Required. The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.
      "encryptionSpec": { # Represents a customer-managed encryption key spec that can be applied to a top-level resource. # Immutable. Customer-managed encryption key spec for an Index. If set, this Index and all sub-resources of this Index will be secured by this key.
        "kmsKeyName": "A String", # Required. The Cloud KMS resource identifier of the customer managed encryption key used to protect a resource. Has the form: `projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key`. The key needs to be in the same region as where the compute resource is created.
      },
      "etag": "A String", # Used to perform consistent read-modify-write updates. If not set, a blind "overwrite" update happens.
      "indexStats": { # Stats of the Index. # Output only. Stats of the index resource.
        "shardsCount": 42, # Output only. The number of shards in the Index.
        "sparseVectorsCount": "A String", # Output only. The number of sparse vectors in the Index.
        "vectorsCount": "A String", # Output only. The number of dense vectors in the Index.
      },
      "indexUpdateMethod": "A String", # Immutable. The update method to use with this Index. If not set, BATCH_UPDATE will be used by default.
      "labels": { # The labels with user-defined metadata to organize your Indexes. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.
        "a_key": "A String",
      },
      "metadata": "", # An additional information about the Index; the schema of the metadata can be found in metadata_schema.
      "metadataSchemaUri": "A String", # Immutable. Points to a YAML file stored on Google Cloud Storage describing additional information about the Index, that is specific to it. Unset if the Index does not have any additional information. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access.
      "name": "A String", # Output only. The resource name of the Index.
      "satisfiesPzi": True or False, # Output only. Reserved for future use.
      "satisfiesPzs": True or False, # Output only. Reserved for future use.
      "updateTime": "A String", # Output only. Timestamp when this Index was most recently updated. This also includes any update to the contents of the Index. Note that Operations working on this Index may have their Operations.metadata.generic_metadata.update_time a little after the value of this timestamp, yet that does not mean their results are not already reflected in the Index. Result of any successfully completed Operation on the Index is reflected in it.
    }

      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, x__xgafv=None)`

    Deletes an Index. An Index can only be deleted when all its DeployedIndexes had been undeployed.

    Args:
      name: string, Required. The name of the Index resource to be deleted. Format: `projects/{project}/locations/{location}/indexes/{index}` (required)
      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 an Index.

    Args:
      name: string, Required. The name of the Index resource. Format: `projects/{project}/locations/{location}/indexes/{index}` (required)
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # A representation of a collection of database items organized in a way that allows for approximate nearest neighbor (a.k.a ANN) algorithms search.
      "createTime": "A String", # Output only. Timestamp when this Index was created.
      "deployedIndexes": [ # Output only. The pointers to DeployedIndexes created from this Index. An Index can be only deleted if all its DeployedIndexes had been undeployed first.
        { # Points to a DeployedIndex.
          "deployedIndexId": "A String", # Immutable. The ID of the DeployedIndex in the above IndexEndpoint.
          "displayName": "A String", # Output only. The display name of the DeployedIndex.
          "indexEndpoint": "A String", # Immutable. A resource name of the IndexEndpoint.
        },
      ],
      "description": "A String", # The description of the Index.
      "displayName": "A String", # Required. The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.
      "encryptionSpec": { # Represents a customer-managed encryption key spec that can be applied to a top-level resource. # Immutable. Customer-managed encryption key spec for an Index. If set, this Index and all sub-resources of this Index will be secured by this key.
        "kmsKeyName": "A String", # Required. The Cloud KMS resource identifier of the customer managed encryption key used to protect a resource. Has the form: `projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key`. The key needs to be in the same region as where the compute resource is created.
      },
      "etag": "A String", # Used to perform consistent read-modify-write updates. If not set, a blind "overwrite" update happens.
      "indexStats": { # Stats of the Index. # Output only. Stats of the index resource.
        "shardsCount": 42, # Output only. The number of shards in the Index.
        "sparseVectorsCount": "A String", # Output only. The number of sparse vectors in the Index.
        "vectorsCount": "A String", # Output only. The number of dense vectors in the Index.
      },
      "indexUpdateMethod": "A String", # Immutable. The update method to use with this Index. If not set, BATCH_UPDATE will be used by default.
      "labels": { # The labels with user-defined metadata to organize your Indexes. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.
        "a_key": "A String",
      },
      "metadata": "", # An additional information about the Index; the schema of the metadata can be found in metadata_schema.
      "metadataSchemaUri": "A String", # Immutable. Points to a YAML file stored on Google Cloud Storage describing additional information about the Index, that is specific to it. Unset if the Index does not have any additional information. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access.
      "name": "A String", # Output only. The resource name of the Index.
      "satisfiesPzi": True or False, # Output only. Reserved for future use.
      "satisfiesPzs": True or False, # Output only. Reserved for future use.
      "updateTime": "A String", # Output only. Timestamp when this Index was most recently updated. This also includes any update to the contents of the Index. Note that Operations working on this Index may have their Operations.metadata.generic_metadata.update_time a little after the value of this timestamp, yet that does not mean their results are not already reflected in the Index. Result of any successfully completed Operation on the Index is reflected in it.
    }

`list(parent, filter=None, pageSize=None, pageToken=None, readMask=None, x__xgafv=None)`

    Lists Indexes in a Location.

    Args:
      parent: string, Required. The resource name of the Location from which to list the Indexes. Format: `projects/{project}/locations/{location}` (required)
      filter: string, The standard list filter.
      pageSize: integer, The standard list page size.
      pageToken: string, The standard list page token. Typically obtained via ListIndexesResponse.next_page_token of the previous IndexService.ListIndexes call.
      readMask: string, Mask specifying which fields to read.
      x__xgafv: string, V1 error format.
        Allowed values
          1 - v1 error format
          2 - v2 error format

    Returns:
      An object of the form:

        { # Response message for IndexService.ListIndexes.
      "indexes": [ # List of indexes in the requested page.
        { # A representation of a collection of database items organized in a way that allows for approximate nearest neighbor (a.k.a ANN) algorithms search.
          "createTime": "A String", # Output only. Timestamp when this Index was created.
          "deployedIndexes": [ # Output only. The pointers to DeployedIndexes created from this Index. An Index can be only deleted if all its DeployedIndexes had been undeployed first.
            { # Points to a DeployedIndex.
              "deployedIndexId": "A String", # Immutable. The ID of the DeployedIndex in the above IndexEndpoint.
              "displayName": "A String", # Output only. The display name of the DeployedIndex.
              "indexEndpoint": "A String", # Immutable. A resource name of the IndexEndpoint.
            },
          ],
          "description": "A String", # The description of the Index.
          "displayName": "A String", # Required. The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.
          "encryptionSpec": { # Represents a customer-managed encryption key spec that can be applied to a top-level resource. # Immutable. Customer-managed encryption key spec for an Index. If set, this Index and all sub-resources of this Index will be secured by this key.
            "kmsKeyName": "A String", # Required. The Cloud KMS resource identifier of the customer managed encryption key used to protect a resource. Has the form: `projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key`. The key needs to be in the same region as where the compute resource is created.
          },
          "etag": "A String", # Used to perform consistent read-modify-write updates. If not set, a blind "overwrite" update happens.
          "indexStats": { # Stats of the Index. # Output only. Stats of the index resource.
            "shardsCount": 42, # Output only. The number of shards in the Index.
            "sparseVectorsCount": "A String", # Output only. The number of sparse vectors in the Index.
            "vectorsCount": "A String", # Output only. The number of dense vectors in the Index.
          },
          "indexUpdateMethod": "A String", # Immutable. The update method to use with this Index. If not set, BATCH_UPDATE will be used by default.
          "labels": { # The labels with user-defined metadata to organize your Indexes. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.
            "a_key": "A String",
          },
          "metadata": "", # An additional information about the Index; the schema of the metadata can be found in metadata_schema.
          "metadataSchemaUri": "A String", # Immutable. Points to a YAML file stored on Google Cloud Storage describing additional information about the Index, that is specific to it. Unset if the Index does not have any additional information. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access.
          "name": "A String", # Output only. The resource name of the Index.
          "satisfiesPzi": True or False, # Output only. Reserved for future use.
          "satisfiesPzs": True or False, # Output only. Reserved for future use.
          "updateTime": "A String", # Output only. Timestamp when this Index was most recently updated. This also includes any update to the contents of the Index. Note that Operations working on this Index may have their Operations.metadata.generic_metadata.update_time a little after the value of this timestamp, yet that does not mean their results are not already reflected in the Index. Result of any successfully completed Operation on the Index is reflected in it.
        },
      ],
      "nextPageToken": "A String", # A token to retrieve next page of results. Pass to ListIndexesRequest.page_token to obtain that page.
    }

`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(name, body=None, updateMask=None, x__xgafv=None)`

    Updates an Index.

    Args:
      name: string, Output only. The resource name of the Index. (required)
      body: object, The request body.
        The object takes the form of:

    { # A representation of a collection of database items organized in a way that allows for approximate nearest neighbor (a.k.a ANN) algorithms search.
      "createTime": "A String", # Output only. Timestamp when this Index was created.
      "deployedIndexes": [ # Output only. The pointers to DeployedIndexes created from this Index. An Index can be only deleted if all its DeployedIndexes had been undeployed first.
        { # Points to a DeployedIndex.
          "deployedIndexId": "A String", # Immutable. The ID of the DeployedIndex in the above IndexEndpoint.
          "displayName": "A String", # Output only. The display name of the DeployedIndex.
          "indexEndpoint": "A String", # Immutable. A resource name of the IndexEndpoint.
        },
      ],
      "description": "A String", # The description of the Index.
      "displayName": "A String", # Required. The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.
      "encryptionSpec": { # Represents a customer-managed encryption key spec that can be applied to a top-level resource. # Immutable. Customer-managed encryption key spec for an Index. If set, this Index and all sub-resources of this Index will be secured by this key.
        "kmsKeyName": "A String", # Required. The Cloud KMS resource identifier of the customer managed encryption key used to protect a resource. Has the form: `projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key`. The key needs to be in the same region as where the compute resource is created.
      },
      "etag": "A String", # Used to perform consistent read-modify-write updates. If not set, a blind "overwrite" update happens.
      "indexStats": { # Stats of the Index. # Output only. Stats of the index resource.
        "shardsCount": 42, # Output only. The number of shards in the Index.
        "sparseVectorsCount": "A String", # Output only. The number of sparse vectors in the Index.
        "vectorsCount": "A String", # Output only. The number of dense vectors in the Index.
      },
      "indexUpdateMethod": "A String", # Immutable. The update method to use with this Index. If not set, BATCH_UPDATE will be used by default.
      "labels": { # The labels with user-defined metadata to organize your Indexes. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.
        "a_key": "A String",
      },
      "metadata": "", # An additional information about the Index; the schema of the metadata can be found in metadata_schema.
      "metadataSchemaUri": "A String", # Immutable. Points to a YAML file stored on Google Cloud Storage describing additional information about the Index, that is specific to it. Unset if the Index does not have any additional information. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access.
      "name": "A String", # Output only. The resource name of the Index.
      "satisfiesPzi": True or False, # Output only. Reserved for future use.
      "satisfiesPzs": True or False, # Output only. Reserved for future use.
      "updateTime": "A String", # Output only. Timestamp when this Index was most recently updated. This also includes any update to the contents of the Index. Note that Operations working on this Index may have their Operations.metadata.generic_metadata.update_time a little after the value of this timestamp, yet that does not mean their results are not already reflected in the Index. Result of any successfully completed Operation on the Index is reflected in it.
    }

      updateMask: string, The update mask applies to the resource. For the `FieldMask` definition, see google.protobuf.FieldMask.
      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.
      },
    }

`removeDatapoints(index, body=None, x__xgafv=None)`

    Remove Datapoints from an Index.

    Args:
      index: string, Required. The name of the Index resource to be updated. Format: `projects/{project}/locations/{location}/indexes/{index}` (required)
      body: object, The request body.
        The object takes the form of:

    { # Request message for IndexService.RemoveDatapoints
      "datapointIds": [ # A list of datapoint ids to be deleted.
        "A String",
      ],
    }

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

    Returns:
      An object of the form:

        { # Response message for IndexService.RemoveDatapoints
    }

`upsertDatapoints(index, body=None, x__xgafv=None)`

    Add/update Datapoints into an Index.

    Args:
      index: string, Required. The name of the Index resource to be updated. Format: `projects/{project}/locations/{location}/indexes/{index}` (required)
      body: object, The request body.
        The object takes the form of:

    { # Request message for IndexService.UpsertDatapoints
      "datapoints": [ # A list of datapoints to be created/updated.
        { # A datapoint of Index.
          "crowdingTag": { # Crowding tag is a constraint on a neighbor list produced by nearest neighbor search requiring that no more than some value k' of the k neighbors returned have the same value of crowding_attribute. # Optional. CrowdingTag of the datapoint, the number of neighbors to return in each crowding can be configured during query.
            "crowdingAttribute": "A String", # The attribute value used for crowding. The maximum number of neighbors to return per crowding attribute value (per_crowding_attribute_num_neighbors) is configured per-query. This field is ignored if per_crowding_attribute_num_neighbors is larger than the total number of neighbors to return for a given query.
          },
          "datapointId": "A String", # Required. Unique identifier of the datapoint.
          "embeddingMetadata": { # Optional. The key-value map of additional metadata for the datapoint.
            "a_key": "", # Properties of the object.
          },
          "featureVector": [ # Required. Feature embedding vector for dense index. An array of numbers with the length of [NearestNeighborSearchConfig.dimensions].
            3.14,
          ],
          "numericRestricts": [ # Optional. List of Restrict of the datapoint, used to perform "restricted searches" where boolean rule are used to filter the subset of the database eligible for matching. This uses numeric comparisons.
            { # This field allows restricts to be based on numeric comparisons rather than categorical tokens.
              "namespace": "A String", # The namespace of this restriction. e.g.: cost.
              "op": "A String", # This MUST be specified for queries and must NOT be specified for datapoints.
              "valueDouble": 3.14, # Represents 64 bit float.
              "valueFloat": 3.14, # Represents 32 bit float.
              "valueInt": "A String", # Represents 64 bit integer.
            },
          ],
          "restricts": [ # Optional. List of Restrict of the datapoint, used to perform "restricted searches" where boolean rule are used to filter the subset of the database eligible for matching. This uses categorical tokens. See: https://cloud.google.com/vertex-ai/docs/matching-engine/filtering
            { # Restriction of a datapoint which describe its attributes(tokens) from each of several attribute categories(namespaces).
              "allowList": [ # The attributes to allow in this namespace. e.g.: 'red'
                "A String",
              ],
              "denyList": [ # The attributes to deny in this namespace. e.g.: 'blue'
                "A String",
              ],
              "namespace": "A String", # The namespace of this restriction. e.g.: color.
            },
          ],
          "sparseEmbedding": { # Feature embedding vector for sparse index. An array of numbers whose values are located in the specified dimensions. # Optional. Feature embedding vector for sparse index.
            "dimensions": [ # Required. The list of indexes for the embedding values of the sparse vector.
              "A String",
            ],
            "values": [ # Required. The list of embedding values of the sparse vector.
              3.14,
            ],
          },
        },
      ],
      "updateMask": "A String", # Optional. Update mask is used to specify the fields to be overwritten in the datapoints by the update. The fields specified in the update_mask are relative to each IndexDatapoint inside datapoints, not the full request. Updatable fields: * Use `all_restricts` to update both restricts and numeric_restricts.
    }

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

    Returns:
      An object of the form:

        { # Response message for IndexService.UpsertDatapoints
    }