diff --git a/packages/google-cloud-vectorsearch/README.md b/packages/google-cloud-vectorsearch/README.md index 2aeb4bee438..cd76b492ff3 100644 --- a/packages/google-cloud-vectorsearch/README.md +++ b/packages/google-cloud-vectorsearch/README.md @@ -73,6 +73,7 @@ Samples are in the [`samples/`][homepage_samples] directory. Each sample's `READ | create index | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.create_index.js) | | delete collection | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.delete_collection.js) | | delete index | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.delete_index.js) | +| export data objects | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.export_data_objects.js) | | get collection | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.get_collection.js) | | get index | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.get_index.js) | | import data objects | [source code](https://github.com/googleapis/google-cloud-node/blob/main/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.import_data_objects.js) | diff --git a/packages/google-cloud-vectorsearch/protos/google/cloud/vectorsearch/v1beta/data_object.proto b/packages/google-cloud-vectorsearch/protos/google/cloud/vectorsearch/v1beta/data_object.proto index a312b7bc2ea..7b557a4a48f 100644 --- a/packages/google-cloud-vectorsearch/protos/google/cloud/vectorsearch/v1beta/data_object.proto +++ b/packages/google-cloud-vectorsearch/protos/google/cloud/vectorsearch/v1beta/data_object.proto @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -31,16 +31,17 @@ message DataObject { option (google.api.resource) = { type: "vectorsearch.googleapis.com/DataObject" pattern: "projects/{project}/locations/{location}/collections/{collection}/dataObjects/{dataObject}" + plural: "dataObjects" + singular: "dataObject" }; - // Immutable. The fully qualified resource name of the dataObject. + // Identifier. The fully qualified resource name of the dataObject. // // Format: // `projects/{project}/locations/{location}/collections/{collection}/dataObjects/{data_object_id}` // The data_object_id must be 1-63 characters - // long, and comply with - // RFC1035. - string name = 1 [(google.api.field_behavior) = IMMUTABLE]; + // long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; // Output only. The id of the dataObject. string data_object_id = 2 diff --git a/packages/google-cloud-vectorsearch/protos/google/cloud/vectorsearch/v1beta/data_object_search_service.proto b/packages/google-cloud-vectorsearch/protos/google/cloud/vectorsearch/v1beta/data_object_search_service.proto index 5b8324f7915..45892cd7577 100644 --- a/packages/google-cloud-vectorsearch/protos/google/cloud/vectorsearch/v1beta/data_object_search_service.proto +++ b/packages/google-cloud-vectorsearch/protos/google/cloud/vectorsearch/v1beta/data_object_search_service.proto @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -107,12 +107,12 @@ message SearchHint { // The type of index to use. oneof index_type { - // Specifies that the search should use a particular index. - IndexHint use_index = 1; + // Optional. Specifies that the search should use a particular index. + IndexHint use_index = 1 [(google.api.field_behavior) = OPTIONAL]; - // If set to true, the search will use the system's default + // Optional. If set to true, the search will use the system's default // K-Nearest Neighbor (KNN) index engine. - bool use_knn = 2; + bool use_knn = 2 [(google.api.field_behavior) = OPTIONAL]; } } @@ -161,7 +161,8 @@ message VectorSearch { // Optional. The distance metric to use for the KNN search. If not specified, // DOT_PRODUCT will be used as the default. - DistanceMetric distance_metric = 11 [(google.api.field_behavior) = OPTIONAL]; + google.cloud.vectorsearch.v1beta.DistanceMetric distance_metric = 11 + [(google.api.field_behavior) = OPTIONAL]; } // Defines a semantic search operation. @@ -185,6 +186,11 @@ message SemanticSearch { // Optional. The number of data objects to return. optional int32 top_k = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Sets the search hint. If no strategy is specified, the service + // will use an index if one is available, and fall back to KNN search + // otherwise. + SearchHint search_hint = 7 [(google.api.field_behavior) = OPTIONAL]; } // Defines a text search operation. @@ -200,6 +206,10 @@ message TextSearch { // Optional. The number of results to return. optional int32 top_k = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A JSON filter expression, e.g. `{"genre": {"$eq": "sci-fi"}}`, + // represented as a `google.protobuf.Struct`. + google.protobuf.Struct filter = 5 [(google.api.field_behavior) = OPTIONAL]; } // Request for performing a single search. diff --git a/packages/google-cloud-vectorsearch/protos/google/cloud/vectorsearch/v1beta/data_object_service.proto b/packages/google-cloud-vectorsearch/protos/google/cloud/vectorsearch/v1beta/data_object_service.proto index 152bf99cd75..6feca2973ff 100644 --- a/packages/google-cloud-vectorsearch/protos/google/cloud/vectorsearch/v1beta/data_object_service.proto +++ b/packages/google-cloud-vectorsearch/protos/google/cloud/vectorsearch/v1beta/data_object_service.proto @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -114,7 +114,7 @@ message CreateDataObjectRequest { // Required. The id of the dataObject to create. // The id must be 1-63 characters long, and comply with - // RFC1035. + // [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). // Specifically, it must be 1-63 characters long and match the regular // expression `[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?`. string data_object_id = 2 [(google.api.field_behavior) = REQUIRED]; diff --git a/packages/google-cloud-vectorsearch/protos/google/cloud/vectorsearch/v1beta/embedding_config.proto b/packages/google-cloud-vectorsearch/protos/google/cloud/vectorsearch/v1beta/embedding_config.proto index 39ab723412e..b14b6bb2c2b 100644 --- a/packages/google-cloud-vectorsearch/protos/google/cloud/vectorsearch/v1beta/embedding_config.proto +++ b/packages/google-cloud-vectorsearch/protos/google/cloud/vectorsearch/v1beta/embedding_config.proto @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -63,7 +63,7 @@ message VertexEmbeddingConfig { // Required. Required: Text template for the input to the model. The template // must contain one or more references to fields in the DataObject, e.g.: - // "Movie Title: {title} ---- Movie Plot: {plot}"". + // "Movie Title: {title} ---- Movie Plot: {plot}". string text_template = 2 [(google.api.field_behavior) = REQUIRED]; // Required. Required: Task type for the embeddings. diff --git a/packages/google-cloud-vectorsearch/protos/google/cloud/vectorsearch/v1beta/vectorsearch_service.proto b/packages/google-cloud-vectorsearch/protos/google/cloud/vectorsearch/v1beta/vectorsearch_service.proto index bafab9c04e4..94a9baa232c 100644 --- a/packages/google-cloud-vectorsearch/protos/google/cloud/vectorsearch/v1beta/vectorsearch_service.proto +++ b/packages/google-cloud-vectorsearch/protos/google/cloud/vectorsearch/v1beta/vectorsearch_service.proto @@ -1,4 +1,4 @@ -// Copyright 2025 Google LLC +// Copyright 2026 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -156,6 +156,19 @@ service VectorSearchService { metadata_type: "ImportDataObjectsMetadata" }; } + + // Initiates a Long-Running Operation to export DataObjects from a Collection. + rpc ExportDataObjects(ExportDataObjectsRequest) + returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta/{name=projects/*/locations/*/collections/*}:exportDataObjects" + body: "*" + }; + option (google.longrunning.operation_info) = { + response_type: "ExportDataObjectsResponse" + metadata_type: "ExportDataObjectsMetadata" + }; + } } // Message describing Collection object @@ -290,7 +303,7 @@ message CreateCollectionRequest { // Required. ID of the Collection to create. // The id must be 1-63 characters long, and comply with - // RFC1035. + // [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). // Specifically, it must be 1-63 characters long and match the regular // expression `[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?`. string collection_id = 2 [(google.api.field_behavior) = REQUIRED]; @@ -329,7 +342,8 @@ message UpdateCollectionRequest { // The following fields support update: `display_name`, `description`, // `labels`, `data_schema`, `vector_schema`. // For `data_schema` and `vector_schema`, fields can only be added, not - // modified or deleted. + // deleted, but `vertex_embedding_config` in `vector_schema` can be added or + // removed. // Partial updates for `data_schema` and `vector_schema` are also supported // by using sub-field paths in `update_mask`, e.g. // `data_schema.properties.foo` or `vector_schema.my_vector_field`. @@ -420,7 +434,8 @@ message Index { // Optional. Distance metric used for indexing. If not specified, will default // to DOT_PRODUCT. - DistanceMetric distance_metric = 4 [(google.api.field_behavior) = OPTIONAL]; + google.cloud.vectorsearch.v1beta.DistanceMetric distance_metric = 4 + [(google.api.field_behavior) = OPTIONAL]; // Required. The collection schema field to index. string index_field = 5 [(google.api.field_behavior) = REQUIRED]; @@ -448,7 +463,7 @@ message CreateIndexRequest { // Required. ID of the Index to create. // The id must be 1-63 characters long, and comply with - // RFC1035. + // [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). // Specifically, it must be 1-63 characters long and match the regular // expression `[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?`. string index_id = 2 [(google.api.field_behavior) = REQUIRED]; @@ -581,7 +596,8 @@ message OperationMetadata { string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; } -// Request message for [DataObjectService.ImportDataObjects][]. +// Request message for +// [VectorSearchService.ImportDataObjects][google.cloud.vectorsearch.v1beta.VectorSearchService.ImportDataObjects]. message ImportDataObjectsRequest { // Google Cloud Storage configuration for the import. message GcsImportConfig { @@ -591,6 +607,12 @@ message ImportDataObjectsRequest { // Required. URI prefix of the Cloud Storage location to write any errors // encountered during the import. string error_uri = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. URI prefix of the Cloud Storage location to write DataObject + // `IDs` and `etags` of DataObjects that were successfully imported. The + // service will write the successfully imported DataObjects to sharded files + // under this prefix. If this field is empty, no output will be written. + string output_uri = 3 [(google.api.field_behavior) = OPTIONAL]; } // The configuration for the import data and error results. @@ -609,7 +631,8 @@ message ImportDataObjectsRequest { ]; } -// Metadata for [DataObjectService.ImportDataObjects][]. +// Metadata for +// [VectorSearchService.ImportDataObjects][google.cloud.vectorsearch.v1beta.VectorSearchService.ImportDataObjects]. message ImportDataObjectsMetadata { // The time the operation was created. google.protobuf.Timestamp create_time = 1; @@ -624,8 +647,61 @@ message ImportDataObjectsMetadata { int64 failure_count = 4; } -// Response for [DataObjectService.ImportDataObjects][]. +// Response for +// [VectorSearchService.ImportDataObjects][google.cloud.vectorsearch.v1beta.VectorSearchService.ImportDataObjects]. message ImportDataObjectsResponse { // Status of the LRO google.rpc.Status status = 1; } + +// Request message for +// [VectorSearchService.ExportDataObjects][google.cloud.vectorsearch.v1beta.VectorSearchService.ExportDataObjects]. +message ExportDataObjectsRequest { + // Google Cloud Storage configuration for the export. + message GcsExportDestination { + // Options for the format of the exported Data Objects. + // New formats may be added in the future. + enum Format { + // Unspecified format. + FORMAT_UNSPECIFIED = 0; + + // The exported Data Objects will be in JSON format. + JSON = 1; + } + + // Required. URI prefix of the Cloud Storage where to export Data Objects. + // The bucket is required to be in the same region as the collection. + string export_uri = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The format of the exported Data Objects. + Format format = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // The configuration for the export data. + oneof destination { + // The Cloud Storage location where user wants to export Data Objects. + GcsExportDestination gcs_destination = 2; + } + + // Required. The resource name of the Collection from which we want to export + // Data Objects. Format: + // `projects/{project}/locations/{location}/collections/{collection}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "vectorsearch.googleapis.com/Collection" + } + ]; +} + +// Metadata for the ExportDataObjects LRO. +message ExportDataObjectsMetadata { + // The time the operation was created. + google.protobuf.Timestamp create_time = 1; + + // The time the operation finished. + google.protobuf.Timestamp finish_time = 2; +} + +// Response for the ExportDataObjects LRO. +message ExportDataObjectsResponse {} diff --git a/packages/google-cloud-vectorsearch/protos/protos.d.ts b/packages/google-cloud-vectorsearch/protos/protos.d.ts index 6fe77997e5d..21088d96b26 100644 --- a/packages/google-cloud-vectorsearch/protos/protos.d.ts +++ b/packages/google-cloud-vectorsearch/protos/protos.d.ts @@ -1175,6 +1175,9 @@ export namespace google { /** SemanticSearch topK */ topK?: (number|null); + + /** SemanticSearch searchHint */ + searchHint?: (google.cloud.vectorsearch.v1beta.ISearchHint|null); } /** Represents a SemanticSearch. */ @@ -1204,6 +1207,9 @@ export namespace google { /** SemanticSearch topK. */ public topK?: (number|null); + /** SemanticSearch searchHint. */ + public searchHint?: (google.cloud.vectorsearch.v1beta.ISearchHint|null); + /** * Creates a new SemanticSearch instance using the specified properties. * @param [properties] Properties to set @@ -1296,6 +1302,9 @@ export namespace google { /** TextSearch topK */ topK?: (number|null); + + /** TextSearch filter */ + filter?: (google.protobuf.IStruct|null); } /** Represents a TextSearch. */ @@ -1319,6 +1328,9 @@ export namespace google { /** TextSearch topK. */ public topK?: (number|null); + /** TextSearch filter. */ + public filter?: (google.protobuf.IStruct|null); + /** * Creates a new TextSearch instance using the specified properties. * @param [properties] Properties to set @@ -4366,6 +4378,20 @@ export namespace google { * @returns Promise */ public importDataObjects(request: google.cloud.vectorsearch.v1beta.IImportDataObjectsRequest): Promise; + + /** + * Calls ExportDataObjects. + * @param request ExportDataObjectsRequest message or plain object + * @param callback Node-style callback called with the error, if any, and Operation + */ + public exportDataObjects(request: google.cloud.vectorsearch.v1beta.IExportDataObjectsRequest, callback: google.cloud.vectorsearch.v1beta.VectorSearchService.ExportDataObjectsCallback): void; + + /** + * Calls ExportDataObjects. + * @param request ExportDataObjectsRequest message or plain object + * @returns Promise + */ + public exportDataObjects(request: google.cloud.vectorsearch.v1beta.IExportDataObjectsRequest): Promise; } namespace VectorSearchService { @@ -4439,6 +4465,13 @@ export namespace google { * @param [response] Operation */ type ImportDataObjectsCallback = (error: (Error|null), response?: google.longrunning.Operation) => void; + + /** + * Callback as used by {@link google.cloud.vectorsearch.v1beta.VectorSearchService|exportDataObjects}. + * @param error Error, if any + * @param [response] Operation + */ + type ExportDataObjectsCallback = (error: (Error|null), response?: google.longrunning.Operation) => void; } /** Properties of a Collection. */ @@ -6479,6 +6512,9 @@ export namespace google { /** GcsImportConfig errorUri */ errorUri?: (string|null); + + /** GcsImportConfig outputUri */ + outputUri?: (string|null); } /** Represents a GcsImportConfig. */ @@ -6496,6 +6532,9 @@ export namespace google { /** GcsImportConfig errorUri. */ public errorUri: string; + /** GcsImportConfig outputUri. */ + public outputUri: string; + /** * Creates a new GcsImportConfig instance using the specified properties. * @param [properties] Properties to set @@ -6786,6 +6825,421 @@ export namespace google { */ public static getTypeUrl(typeUrlPrefix?: string): string; } + + /** Properties of an ExportDataObjectsRequest. */ + interface IExportDataObjectsRequest { + + /** ExportDataObjectsRequest gcsDestination */ + gcsDestination?: (google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.IGcsExportDestination|null); + + /** ExportDataObjectsRequest name */ + name?: (string|null); + } + + /** Represents an ExportDataObjectsRequest. */ + class ExportDataObjectsRequest implements IExportDataObjectsRequest { + + /** + * Constructs a new ExportDataObjectsRequest. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.vectorsearch.v1beta.IExportDataObjectsRequest); + + /** ExportDataObjectsRequest gcsDestination. */ + public gcsDestination?: (google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.IGcsExportDestination|null); + + /** ExportDataObjectsRequest name. */ + public name: string; + + /** ExportDataObjectsRequest destination. */ + public destination?: "gcsDestination"; + + /** + * Creates a new ExportDataObjectsRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns ExportDataObjectsRequest instance + */ + public static create(properties?: google.cloud.vectorsearch.v1beta.IExportDataObjectsRequest): google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest; + + /** + * Encodes the specified ExportDataObjectsRequest message. Does not implicitly {@link google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.verify|verify} messages. + * @param message ExportDataObjectsRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.vectorsearch.v1beta.IExportDataObjectsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ExportDataObjectsRequest message, length delimited. Does not implicitly {@link google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.verify|verify} messages. + * @param message ExportDataObjectsRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.vectorsearch.v1beta.IExportDataObjectsRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an ExportDataObjectsRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ExportDataObjectsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest; + + /** + * Decodes an ExportDataObjectsRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ExportDataObjectsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest; + + /** + * Verifies an ExportDataObjectsRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an ExportDataObjectsRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ExportDataObjectsRequest + */ + public static fromObject(object: { [k: string]: any }): google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest; + + /** + * Creates a plain object from an ExportDataObjectsRequest message. Also converts values to other types if specified. + * @param message ExportDataObjectsRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ExportDataObjectsRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ExportDataObjectsRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace ExportDataObjectsRequest { + + /** Properties of a GcsExportDestination. */ + interface IGcsExportDestination { + + /** GcsExportDestination exportUri */ + exportUri?: (string|null); + + /** GcsExportDestination format */ + format?: (google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination.Format|keyof typeof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination.Format|null); + } + + /** Represents a GcsExportDestination. */ + class GcsExportDestination implements IGcsExportDestination { + + /** + * Constructs a new GcsExportDestination. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.IGcsExportDestination); + + /** GcsExportDestination exportUri. */ + public exportUri: string; + + /** GcsExportDestination format. */ + public format: (google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination.Format|keyof typeof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination.Format); + + /** + * Creates a new GcsExportDestination instance using the specified properties. + * @param [properties] Properties to set + * @returns GcsExportDestination instance + */ + public static create(properties?: google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.IGcsExportDestination): google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination; + + /** + * Encodes the specified GcsExportDestination message. Does not implicitly {@link google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination.verify|verify} messages. + * @param message GcsExportDestination message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.IGcsExportDestination, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified GcsExportDestination message, length delimited. Does not implicitly {@link google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination.verify|verify} messages. + * @param message GcsExportDestination message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.IGcsExportDestination, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a GcsExportDestination message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns GcsExportDestination + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination; + + /** + * Decodes a GcsExportDestination message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns GcsExportDestination + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination; + + /** + * Verifies a GcsExportDestination message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a GcsExportDestination message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns GcsExportDestination + */ + public static fromObject(object: { [k: string]: any }): google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination; + + /** + * Creates a plain object from a GcsExportDestination message. Also converts values to other types if specified. + * @param message GcsExportDestination + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this GcsExportDestination to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for GcsExportDestination + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + namespace GcsExportDestination { + + /** Format enum. */ + enum Format { + FORMAT_UNSPECIFIED = 0, + JSON = 1 + } + } + } + + /** Properties of an ExportDataObjectsMetadata. */ + interface IExportDataObjectsMetadata { + + /** ExportDataObjectsMetadata createTime */ + createTime?: (google.protobuf.ITimestamp|null); + + /** ExportDataObjectsMetadata finishTime */ + finishTime?: (google.protobuf.ITimestamp|null); + } + + /** Represents an ExportDataObjectsMetadata. */ + class ExportDataObjectsMetadata implements IExportDataObjectsMetadata { + + /** + * Constructs a new ExportDataObjectsMetadata. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.vectorsearch.v1beta.IExportDataObjectsMetadata); + + /** ExportDataObjectsMetadata createTime. */ + public createTime?: (google.protobuf.ITimestamp|null); + + /** ExportDataObjectsMetadata finishTime. */ + public finishTime?: (google.protobuf.ITimestamp|null); + + /** + * Creates a new ExportDataObjectsMetadata instance using the specified properties. + * @param [properties] Properties to set + * @returns ExportDataObjectsMetadata instance + */ + public static create(properties?: google.cloud.vectorsearch.v1beta.IExportDataObjectsMetadata): google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata; + + /** + * Encodes the specified ExportDataObjectsMetadata message. Does not implicitly {@link google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata.verify|verify} messages. + * @param message ExportDataObjectsMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.vectorsearch.v1beta.IExportDataObjectsMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ExportDataObjectsMetadata message, length delimited. Does not implicitly {@link google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata.verify|verify} messages. + * @param message ExportDataObjectsMetadata message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.vectorsearch.v1beta.IExportDataObjectsMetadata, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an ExportDataObjectsMetadata message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ExportDataObjectsMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata; + + /** + * Decodes an ExportDataObjectsMetadata message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ExportDataObjectsMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata; + + /** + * Verifies an ExportDataObjectsMetadata message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an ExportDataObjectsMetadata message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ExportDataObjectsMetadata + */ + public static fromObject(object: { [k: string]: any }): google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata; + + /** + * Creates a plain object from an ExportDataObjectsMetadata message. Also converts values to other types if specified. + * @param message ExportDataObjectsMetadata + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ExportDataObjectsMetadata to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ExportDataObjectsMetadata + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of an ExportDataObjectsResponse. */ + interface IExportDataObjectsResponse { + } + + /** Represents an ExportDataObjectsResponse. */ + class ExportDataObjectsResponse implements IExportDataObjectsResponse { + + /** + * Constructs a new ExportDataObjectsResponse. + * @param [properties] Properties to set + */ + constructor(properties?: google.cloud.vectorsearch.v1beta.IExportDataObjectsResponse); + + /** + * Creates a new ExportDataObjectsResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns ExportDataObjectsResponse instance + */ + public static create(properties?: google.cloud.vectorsearch.v1beta.IExportDataObjectsResponse): google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse; + + /** + * Encodes the specified ExportDataObjectsResponse message. Does not implicitly {@link google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse.verify|verify} messages. + * @param message ExportDataObjectsResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: google.cloud.vectorsearch.v1beta.IExportDataObjectsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ExportDataObjectsResponse message, length delimited. Does not implicitly {@link google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse.verify|verify} messages. + * @param message ExportDataObjectsResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: google.cloud.vectorsearch.v1beta.IExportDataObjectsResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes an ExportDataObjectsResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ExportDataObjectsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse; + + /** + * Decodes an ExportDataObjectsResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ExportDataObjectsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse; + + /** + * Verifies an ExportDataObjectsResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates an ExportDataObjectsResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ExportDataObjectsResponse + */ + public static fromObject(object: { [k: string]: any }): google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse; + + /** + * Creates a plain object from an ExportDataObjectsResponse message. Also converts values to other types if specified. + * @param message ExportDataObjectsResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ExportDataObjectsResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ExportDataObjectsResponse + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } } } } diff --git a/packages/google-cloud-vectorsearch/protos/protos.js b/packages/google-cloud-vectorsearch/protos/protos.js index ba42935500c..a4f19b05515 100644 --- a/packages/google-cloud-vectorsearch/protos/protos.js +++ b/packages/google-cloud-vectorsearch/protos/protos.js @@ -2987,6 +2987,7 @@ * @property {google.cloud.vectorsearch.v1beta.IOutputFields|null} [outputFields] SemanticSearch outputFields * @property {google.protobuf.IStruct|null} [filter] SemanticSearch filter * @property {number|null} [topK] SemanticSearch topK + * @property {google.cloud.vectorsearch.v1beta.ISearchHint|null} [searchHint] SemanticSearch searchHint */ /** @@ -3052,6 +3053,14 @@ */ SemanticSearch.prototype.topK = null; + /** + * SemanticSearch searchHint. + * @member {google.cloud.vectorsearch.v1beta.ISearchHint|null|undefined} searchHint + * @memberof google.cloud.vectorsearch.v1beta.SemanticSearch + * @instance + */ + SemanticSearch.prototype.searchHint = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -3097,6 +3106,8 @@ writer.uint32(/* id 5, wireType 0 =*/40).int32(message.taskType); if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) $root.google.protobuf.Struct.encode(message.filter, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + if (message.searchHint != null && Object.hasOwnProperty.call(message, "searchHint")) + $root.google.cloud.vectorsearch.v1beta.SearchHint.encode(message.searchHint, writer.uint32(/* id 7, wireType 2 =*/58).fork()).ldelim(); return writer; }; @@ -3157,6 +3168,10 @@ message.topK = reader.int32(); break; } + case 7: { + message.searchHint = $root.google.cloud.vectorsearch.v1beta.SearchHint.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -3229,6 +3244,11 @@ if (!$util.isInteger(message.topK)) return "topK: integer expected"; } + if (message.searchHint != null && message.hasOwnProperty("searchHint")) { + var error = $root.google.cloud.vectorsearch.v1beta.SearchHint.verify(message.searchHint); + if (error) + return "searchHint." + error; + } return null; }; @@ -3304,6 +3324,11 @@ } if (object.topK != null) message.topK = object.topK | 0; + if (object.searchHint != null) { + if (typeof object.searchHint !== "object") + throw TypeError(".google.cloud.vectorsearch.v1beta.SemanticSearch.searchHint: object expected"); + message.searchHint = $root.google.cloud.vectorsearch.v1beta.SearchHint.fromObject(object.searchHint); + } return message; }; @@ -3326,6 +3351,7 @@ object.outputFields = null; object.taskType = options.enums === String ? "EMBEDDING_TASK_TYPE_UNSPECIFIED" : 0; object.filter = null; + object.searchHint = null; } if (message.searchText != null && message.hasOwnProperty("searchText")) object.searchText = message.searchText; @@ -3342,6 +3368,8 @@ object.taskType = options.enums === String ? $root.google.cloud.vectorsearch.v1beta.EmbeddingTaskType[message.taskType] === undefined ? message.taskType : $root.google.cloud.vectorsearch.v1beta.EmbeddingTaskType[message.taskType] : message.taskType; if (message.filter != null && message.hasOwnProperty("filter")) object.filter = $root.google.protobuf.Struct.toObject(message.filter, options); + if (message.searchHint != null && message.hasOwnProperty("searchHint")) + object.searchHint = $root.google.cloud.vectorsearch.v1beta.SearchHint.toObject(message.searchHint, options); return object; }; @@ -3384,6 +3412,7 @@ * @property {Array.|null} [dataFieldNames] TextSearch dataFieldNames * @property {google.cloud.vectorsearch.v1beta.IOutputFields|null} [outputFields] TextSearch outputFields * @property {number|null} [topK] TextSearch topK + * @property {google.protobuf.IStruct|null} [filter] TextSearch filter */ /** @@ -3434,6 +3463,14 @@ */ TextSearch.prototype.topK = null; + /** + * TextSearch filter. + * @member {google.protobuf.IStruct|null|undefined} filter + * @memberof google.cloud.vectorsearch.v1beta.TextSearch + * @instance + */ + TextSearch.prototype.filter = null; + // OneOf field names bound to virtual getters and setters var $oneOfFields; @@ -3476,6 +3513,8 @@ $root.google.cloud.vectorsearch.v1beta.OutputFields.encode(message.outputFields, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); if (message.topK != null && Object.hasOwnProperty.call(message, "topK")) writer.uint32(/* id 4, wireType 0 =*/32).int32(message.topK); + if (message.filter != null && Object.hasOwnProperty.call(message, "filter")) + $root.google.protobuf.Struct.encode(message.filter, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); return writer; }; @@ -3530,6 +3569,10 @@ message.topK = reader.int32(); break; } + case 5: { + message.filter = $root.google.protobuf.Struct.decode(reader, reader.uint32()); + break; + } default: reader.skipType(tag & 7); break; @@ -3586,6 +3629,11 @@ if (!$util.isInteger(message.topK)) return "topK: integer expected"; } + if (message.filter != null && message.hasOwnProperty("filter")) { + var error = $root.google.protobuf.Struct.verify(message.filter); + if (error) + return "filter." + error; + } return null; }; @@ -3617,6 +3665,11 @@ } if (object.topK != null) message.topK = object.topK | 0; + if (object.filter != null) { + if (typeof object.filter !== "object") + throw TypeError(".google.cloud.vectorsearch.v1beta.TextSearch.filter: object expected"); + message.filter = $root.google.protobuf.Struct.fromObject(object.filter); + } return message; }; @@ -3638,6 +3691,7 @@ if (options.defaults) { object.searchText = ""; object.outputFields = null; + object.filter = null; } if (message.searchText != null && message.hasOwnProperty("searchText")) object.searchText = message.searchText; @@ -3653,6 +3707,8 @@ if (options.oneofs) object._topK = "topK"; } + if (message.filter != null && message.hasOwnProperty("filter")) + object.filter = $root.google.protobuf.Struct.toObject(message.filter, options); return object; }; @@ -10660,6 +10716,39 @@ * @variation 2 */ + /** + * Callback as used by {@link google.cloud.vectorsearch.v1beta.VectorSearchService|exportDataObjects}. + * @memberof google.cloud.vectorsearch.v1beta.VectorSearchService + * @typedef ExportDataObjectsCallback + * @type {function} + * @param {Error|null} error Error, if any + * @param {google.longrunning.Operation} [response] Operation + */ + + /** + * Calls ExportDataObjects. + * @function exportDataObjects + * @memberof google.cloud.vectorsearch.v1beta.VectorSearchService + * @instance + * @param {google.cloud.vectorsearch.v1beta.IExportDataObjectsRequest} request ExportDataObjectsRequest message or plain object + * @param {google.cloud.vectorsearch.v1beta.VectorSearchService.ExportDataObjectsCallback} callback Node-style callback called with the error, if any, and Operation + * @returns {undefined} + * @variation 1 + */ + Object.defineProperty(VectorSearchService.prototype.exportDataObjects = function exportDataObjects(request, callback) { + return this.rpcCall(exportDataObjects, $root.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest, $root.google.longrunning.Operation, request, callback); + }, "name", { value: "ExportDataObjects" }); + + /** + * Calls ExportDataObjects. + * @function exportDataObjects + * @memberof google.cloud.vectorsearch.v1beta.VectorSearchService + * @instance + * @param {google.cloud.vectorsearch.v1beta.IExportDataObjectsRequest} request ExportDataObjectsRequest message or plain object + * @returns {Promise} Promise + * @variation 2 + */ + return VectorSearchService; })(); @@ -15781,6 +15870,7 @@ * @interface IGcsImportConfig * @property {string|null} [contentsUri] GcsImportConfig contentsUri * @property {string|null} [errorUri] GcsImportConfig errorUri + * @property {string|null} [outputUri] GcsImportConfig outputUri */ /** @@ -15814,6 +15904,14 @@ */ GcsImportConfig.prototype.errorUri = ""; + /** + * GcsImportConfig outputUri. + * @member {string} outputUri + * @memberof google.cloud.vectorsearch.v1beta.ImportDataObjectsRequest.GcsImportConfig + * @instance + */ + GcsImportConfig.prototype.outputUri = ""; + /** * Creates a new GcsImportConfig instance using the specified properties. * @function create @@ -15842,6 +15940,8 @@ writer.uint32(/* id 1, wireType 2 =*/10).string(message.contentsUri); if (message.errorUri != null && Object.hasOwnProperty.call(message, "errorUri")) writer.uint32(/* id 2, wireType 2 =*/18).string(message.errorUri); + if (message.outputUri != null && Object.hasOwnProperty.call(message, "outputUri")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.outputUri); return writer; }; @@ -15886,6 +15986,10 @@ message.errorUri = reader.string(); break; } + case 3: { + message.outputUri = reader.string(); + break; + } default: reader.skipType(tag & 7); break; @@ -15927,6 +16031,9 @@ if (message.errorUri != null && message.hasOwnProperty("errorUri")) if (!$util.isString(message.errorUri)) return "errorUri: string expected"; + if (message.outputUri != null && message.hasOwnProperty("outputUri")) + if (!$util.isString(message.outputUri)) + return "outputUri: string expected"; return null; }; @@ -15946,6 +16053,8 @@ message.contentsUri = String(object.contentsUri); if (object.errorUri != null) message.errorUri = String(object.errorUri); + if (object.outputUri != null) + message.outputUri = String(object.outputUri); return message; }; @@ -15965,11 +16074,14 @@ if (options.defaults) { object.contentsUri = ""; object.errorUri = ""; + object.outputUri = ""; } if (message.contentsUri != null && message.hasOwnProperty("contentsUri")) object.contentsUri = message.contentsUri; if (message.errorUri != null && message.hasOwnProperty("errorUri")) object.errorUri = message.errorUri; + if (message.outputUri != null && message.hasOwnProperty("outputUri")) + object.outputUri = message.outputUri; return object; }; @@ -16528,6 +16640,937 @@ return ImportDataObjectsResponse; })(); + v1beta.ExportDataObjectsRequest = (function() { + + /** + * Properties of an ExportDataObjectsRequest. + * @memberof google.cloud.vectorsearch.v1beta + * @interface IExportDataObjectsRequest + * @property {google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.IGcsExportDestination|null} [gcsDestination] ExportDataObjectsRequest gcsDestination + * @property {string|null} [name] ExportDataObjectsRequest name + */ + + /** + * Constructs a new ExportDataObjectsRequest. + * @memberof google.cloud.vectorsearch.v1beta + * @classdesc Represents an ExportDataObjectsRequest. + * @implements IExportDataObjectsRequest + * @constructor + * @param {google.cloud.vectorsearch.v1beta.IExportDataObjectsRequest=} [properties] Properties to set + */ + function ExportDataObjectsRequest(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ExportDataObjectsRequest gcsDestination. + * @member {google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.IGcsExportDestination|null|undefined} gcsDestination + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest + * @instance + */ + ExportDataObjectsRequest.prototype.gcsDestination = null; + + /** + * ExportDataObjectsRequest name. + * @member {string} name + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest + * @instance + */ + ExportDataObjectsRequest.prototype.name = ""; + + // OneOf field names bound to virtual getters and setters + var $oneOfFields; + + /** + * ExportDataObjectsRequest destination. + * @member {"gcsDestination"|undefined} destination + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest + * @instance + */ + Object.defineProperty(ExportDataObjectsRequest.prototype, "destination", { + get: $util.oneOfGetter($oneOfFields = ["gcsDestination"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new ExportDataObjectsRequest instance using the specified properties. + * @function create + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest + * @static + * @param {google.cloud.vectorsearch.v1beta.IExportDataObjectsRequest=} [properties] Properties to set + * @returns {google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest} ExportDataObjectsRequest instance + */ + ExportDataObjectsRequest.create = function create(properties) { + return new ExportDataObjectsRequest(properties); + }; + + /** + * Encodes the specified ExportDataObjectsRequest message. Does not implicitly {@link google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.verify|verify} messages. + * @function encode + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest + * @static + * @param {google.cloud.vectorsearch.v1beta.IExportDataObjectsRequest} message ExportDataObjectsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExportDataObjectsRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.name != null && Object.hasOwnProperty.call(message, "name")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.name); + if (message.gcsDestination != null && Object.hasOwnProperty.call(message, "gcsDestination")) + $root.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination.encode(message.gcsDestination, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ExportDataObjectsRequest message, length delimited. Does not implicitly {@link google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest + * @static + * @param {google.cloud.vectorsearch.v1beta.IExportDataObjectsRequest} message ExportDataObjectsRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExportDataObjectsRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an ExportDataObjectsRequest message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest} ExportDataObjectsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExportDataObjectsRequest.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 2: { + message.gcsDestination = $root.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination.decode(reader, reader.uint32()); + break; + } + case 1: { + message.name = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an ExportDataObjectsRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest} ExportDataObjectsRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExportDataObjectsRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an ExportDataObjectsRequest message. + * @function verify + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ExportDataObjectsRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + var properties = {}; + if (message.gcsDestination != null && message.hasOwnProperty("gcsDestination")) { + properties.destination = 1; + { + var error = $root.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination.verify(message.gcsDestination); + if (error) + return "gcsDestination." + error; + } + } + if (message.name != null && message.hasOwnProperty("name")) + if (!$util.isString(message.name)) + return "name: string expected"; + return null; + }; + + /** + * Creates an ExportDataObjectsRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest} ExportDataObjectsRequest + */ + ExportDataObjectsRequest.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest) + return object; + var message = new $root.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest(); + if (object.gcsDestination != null) { + if (typeof object.gcsDestination !== "object") + throw TypeError(".google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.gcsDestination: object expected"); + message.gcsDestination = $root.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination.fromObject(object.gcsDestination); + } + if (object.name != null) + message.name = String(object.name); + return message; + }; + + /** + * Creates a plain object from an ExportDataObjectsRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest + * @static + * @param {google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest} message ExportDataObjectsRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ExportDataObjectsRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) + object.name = ""; + if (message.name != null && message.hasOwnProperty("name")) + object.name = message.name; + if (message.gcsDestination != null && message.hasOwnProperty("gcsDestination")) { + object.gcsDestination = $root.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination.toObject(message.gcsDestination, options); + if (options.oneofs) + object.destination = "gcsDestination"; + } + return object; + }; + + /** + * Converts this ExportDataObjectsRequest to JSON. + * @function toJSON + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest + * @instance + * @returns {Object.} JSON object + */ + ExportDataObjectsRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ExportDataObjectsRequest + * @function getTypeUrl + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ExportDataObjectsRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest"; + }; + + ExportDataObjectsRequest.GcsExportDestination = (function() { + + /** + * Properties of a GcsExportDestination. + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest + * @interface IGcsExportDestination + * @property {string|null} [exportUri] GcsExportDestination exportUri + * @property {google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination.Format|null} [format] GcsExportDestination format + */ + + /** + * Constructs a new GcsExportDestination. + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest + * @classdesc Represents a GcsExportDestination. + * @implements IGcsExportDestination + * @constructor + * @param {google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.IGcsExportDestination=} [properties] Properties to set + */ + function GcsExportDestination(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * GcsExportDestination exportUri. + * @member {string} exportUri + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination + * @instance + */ + GcsExportDestination.prototype.exportUri = ""; + + /** + * GcsExportDestination format. + * @member {google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination.Format} format + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination + * @instance + */ + GcsExportDestination.prototype.format = 0; + + /** + * Creates a new GcsExportDestination instance using the specified properties. + * @function create + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination + * @static + * @param {google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.IGcsExportDestination=} [properties] Properties to set + * @returns {google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination} GcsExportDestination instance + */ + GcsExportDestination.create = function create(properties) { + return new GcsExportDestination(properties); + }; + + /** + * Encodes the specified GcsExportDestination message. Does not implicitly {@link google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination.verify|verify} messages. + * @function encode + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination + * @static + * @param {google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.IGcsExportDestination} message GcsExportDestination message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GcsExportDestination.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.exportUri != null && Object.hasOwnProperty.call(message, "exportUri")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.exportUri); + if (message.format != null && Object.hasOwnProperty.call(message, "format")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.format); + return writer; + }; + + /** + * Encodes the specified GcsExportDestination message, length delimited. Does not implicitly {@link google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination + * @static + * @param {google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.IGcsExportDestination} message GcsExportDestination message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + GcsExportDestination.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a GcsExportDestination message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination} GcsExportDestination + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GcsExportDestination.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.exportUri = reader.string(); + break; + } + case 2: { + message.format = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a GcsExportDestination message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination} GcsExportDestination + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + GcsExportDestination.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a GcsExportDestination message. + * @function verify + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + GcsExportDestination.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.exportUri != null && message.hasOwnProperty("exportUri")) + if (!$util.isString(message.exportUri)) + return "exportUri: string expected"; + if (message.format != null && message.hasOwnProperty("format")) + switch (message.format) { + default: + return "format: enum value expected"; + case 0: + case 1: + break; + } + return null; + }; + + /** + * Creates a GcsExportDestination message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination} GcsExportDestination + */ + GcsExportDestination.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination) + return object; + var message = new $root.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination(); + if (object.exportUri != null) + message.exportUri = String(object.exportUri); + switch (object.format) { + default: + if (typeof object.format === "number") { + message.format = object.format; + break; + } + break; + case "FORMAT_UNSPECIFIED": + case 0: + message.format = 0; + break; + case "JSON": + case 1: + message.format = 1; + break; + } + return message; + }; + + /** + * Creates a plain object from a GcsExportDestination message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination + * @static + * @param {google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination} message GcsExportDestination + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + GcsExportDestination.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.exportUri = ""; + object.format = options.enums === String ? "FORMAT_UNSPECIFIED" : 0; + } + if (message.exportUri != null && message.hasOwnProperty("exportUri")) + object.exportUri = message.exportUri; + if (message.format != null && message.hasOwnProperty("format")) + object.format = options.enums === String ? $root.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination.Format[message.format] === undefined ? message.format : $root.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination.Format[message.format] : message.format; + return object; + }; + + /** + * Converts this GcsExportDestination to JSON. + * @function toJSON + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination + * @instance + * @returns {Object.} JSON object + */ + GcsExportDestination.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for GcsExportDestination + * @function getTypeUrl + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + GcsExportDestination.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination"; + }; + + /** + * Format enum. + * @name google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination.Format + * @enum {number} + * @property {number} FORMAT_UNSPECIFIED=0 FORMAT_UNSPECIFIED value + * @property {number} JSON=1 JSON value + */ + GcsExportDestination.Format = (function() { + var valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "FORMAT_UNSPECIFIED"] = 0; + values[valuesById[1] = "JSON"] = 1; + return values; + })(); + + return GcsExportDestination; + })(); + + return ExportDataObjectsRequest; + })(); + + v1beta.ExportDataObjectsMetadata = (function() { + + /** + * Properties of an ExportDataObjectsMetadata. + * @memberof google.cloud.vectorsearch.v1beta + * @interface IExportDataObjectsMetadata + * @property {google.protobuf.ITimestamp|null} [createTime] ExportDataObjectsMetadata createTime + * @property {google.protobuf.ITimestamp|null} [finishTime] ExportDataObjectsMetadata finishTime + */ + + /** + * Constructs a new ExportDataObjectsMetadata. + * @memberof google.cloud.vectorsearch.v1beta + * @classdesc Represents an ExportDataObjectsMetadata. + * @implements IExportDataObjectsMetadata + * @constructor + * @param {google.cloud.vectorsearch.v1beta.IExportDataObjectsMetadata=} [properties] Properties to set + */ + function ExportDataObjectsMetadata(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ExportDataObjectsMetadata createTime. + * @member {google.protobuf.ITimestamp|null|undefined} createTime + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata + * @instance + */ + ExportDataObjectsMetadata.prototype.createTime = null; + + /** + * ExportDataObjectsMetadata finishTime. + * @member {google.protobuf.ITimestamp|null|undefined} finishTime + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata + * @instance + */ + ExportDataObjectsMetadata.prototype.finishTime = null; + + /** + * Creates a new ExportDataObjectsMetadata instance using the specified properties. + * @function create + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata + * @static + * @param {google.cloud.vectorsearch.v1beta.IExportDataObjectsMetadata=} [properties] Properties to set + * @returns {google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata} ExportDataObjectsMetadata instance + */ + ExportDataObjectsMetadata.create = function create(properties) { + return new ExportDataObjectsMetadata(properties); + }; + + /** + * Encodes the specified ExportDataObjectsMetadata message. Does not implicitly {@link google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata.verify|verify} messages. + * @function encode + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata + * @static + * @param {google.cloud.vectorsearch.v1beta.IExportDataObjectsMetadata} message ExportDataObjectsMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExportDataObjectsMetadata.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.createTime != null && Object.hasOwnProperty.call(message, "createTime")) + $root.google.protobuf.Timestamp.encode(message.createTime, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.finishTime != null && Object.hasOwnProperty.call(message, "finishTime")) + $root.google.protobuf.Timestamp.encode(message.finishTime, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ExportDataObjectsMetadata message, length delimited. Does not implicitly {@link google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata + * @static + * @param {google.cloud.vectorsearch.v1beta.IExportDataObjectsMetadata} message ExportDataObjectsMetadata message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExportDataObjectsMetadata.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an ExportDataObjectsMetadata message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata} ExportDataObjectsMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExportDataObjectsMetadata.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.createTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + case 2: { + message.finishTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an ExportDataObjectsMetadata message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata} ExportDataObjectsMetadata + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExportDataObjectsMetadata.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an ExportDataObjectsMetadata message. + * @function verify + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ExportDataObjectsMetadata.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.createTime != null && message.hasOwnProperty("createTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.createTime); + if (error) + return "createTime." + error; + } + if (message.finishTime != null && message.hasOwnProperty("finishTime")) { + var error = $root.google.protobuf.Timestamp.verify(message.finishTime); + if (error) + return "finishTime." + error; + } + return null; + }; + + /** + * Creates an ExportDataObjectsMetadata message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata} ExportDataObjectsMetadata + */ + ExportDataObjectsMetadata.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata) + return object; + var message = new $root.google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata(); + if (object.createTime != null) { + if (typeof object.createTime !== "object") + throw TypeError(".google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata.createTime: object expected"); + message.createTime = $root.google.protobuf.Timestamp.fromObject(object.createTime); + } + if (object.finishTime != null) { + if (typeof object.finishTime !== "object") + throw TypeError(".google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata.finishTime: object expected"); + message.finishTime = $root.google.protobuf.Timestamp.fromObject(object.finishTime); + } + return message; + }; + + /** + * Creates a plain object from an ExportDataObjectsMetadata message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata + * @static + * @param {google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata} message ExportDataObjectsMetadata + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ExportDataObjectsMetadata.toObject = function toObject(message, options) { + if (!options) + options = {}; + var object = {}; + if (options.defaults) { + object.createTime = null; + object.finishTime = null; + } + if (message.createTime != null && message.hasOwnProperty("createTime")) + object.createTime = $root.google.protobuf.Timestamp.toObject(message.createTime, options); + if (message.finishTime != null && message.hasOwnProperty("finishTime")) + object.finishTime = $root.google.protobuf.Timestamp.toObject(message.finishTime, options); + return object; + }; + + /** + * Converts this ExportDataObjectsMetadata to JSON. + * @function toJSON + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata + * @instance + * @returns {Object.} JSON object + */ + ExportDataObjectsMetadata.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ExportDataObjectsMetadata + * @function getTypeUrl + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ExportDataObjectsMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata"; + }; + + return ExportDataObjectsMetadata; + })(); + + v1beta.ExportDataObjectsResponse = (function() { + + /** + * Properties of an ExportDataObjectsResponse. + * @memberof google.cloud.vectorsearch.v1beta + * @interface IExportDataObjectsResponse + */ + + /** + * Constructs a new ExportDataObjectsResponse. + * @memberof google.cloud.vectorsearch.v1beta + * @classdesc Represents an ExportDataObjectsResponse. + * @implements IExportDataObjectsResponse + * @constructor + * @param {google.cloud.vectorsearch.v1beta.IExportDataObjectsResponse=} [properties] Properties to set + */ + function ExportDataObjectsResponse(properties) { + if (properties) + for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * Creates a new ExportDataObjectsResponse instance using the specified properties. + * @function create + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse + * @static + * @param {google.cloud.vectorsearch.v1beta.IExportDataObjectsResponse=} [properties] Properties to set + * @returns {google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse} ExportDataObjectsResponse instance + */ + ExportDataObjectsResponse.create = function create(properties) { + return new ExportDataObjectsResponse(properties); + }; + + /** + * Encodes the specified ExportDataObjectsResponse message. Does not implicitly {@link google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse.verify|verify} messages. + * @function encode + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse + * @static + * @param {google.cloud.vectorsearch.v1beta.IExportDataObjectsResponse} message ExportDataObjectsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExportDataObjectsResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + return writer; + }; + + /** + * Encodes the specified ExportDataObjectsResponse message, length delimited. Does not implicitly {@link google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse + * @static + * @param {google.cloud.vectorsearch.v1beta.IExportDataObjectsResponse} message ExportDataObjectsResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ExportDataObjectsResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes an ExportDataObjectsResponse message from the specified reader or buffer. + * @function decode + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse} ExportDataObjectsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExportDataObjectsResponse.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse(); + while (reader.pos < end) { + var tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes an ExportDataObjectsResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse} ExportDataObjectsResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ExportDataObjectsResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies an ExportDataObjectsResponse message. + * @function verify + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ExportDataObjectsResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + return null; + }; + + /** + * Creates an ExportDataObjectsResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse + * @static + * @param {Object.} object Plain object + * @returns {google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse} ExportDataObjectsResponse + */ + ExportDataObjectsResponse.fromObject = function fromObject(object) { + if (object instanceof $root.google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse) + return object; + return new $root.google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse(); + }; + + /** + * Creates a plain object from an ExportDataObjectsResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse + * @static + * @param {google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse} message ExportDataObjectsResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ExportDataObjectsResponse.toObject = function toObject() { + return {}; + }; + + /** + * Converts this ExportDataObjectsResponse to JSON. + * @function toJSON + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse + * @instance + * @returns {Object.} JSON object + */ + ExportDataObjectsResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ExportDataObjectsResponse + * @function getTypeUrl + * @memberof google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ExportDataObjectsResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse"; + }; + + return ExportDataObjectsResponse; + })(); + return v1beta; })(); diff --git a/packages/google-cloud-vectorsearch/protos/protos.json b/packages/google-cloud-vectorsearch/protos/protos.json index 5b566ce59bf..25dbc8c536c 100644 --- a/packages/google-cloud-vectorsearch/protos/protos.json +++ b/packages/google-cloud-vectorsearch/protos/protos.json @@ -24,14 +24,16 @@ "DataObject": { "options": { "(google.api.resource).type": "vectorsearch.googleapis.com/DataObject", - "(google.api.resource).pattern": "projects/{project}/locations/{location}/collections/{collection}/dataObjects/{dataObject}" + "(google.api.resource).pattern": "projects/{project}/locations/{location}/collections/{collection}/dataObjects/{dataObject}", + "(google.api.resource).plural": "dataObjects", + "(google.api.resource).singular": "dataObject" }, "fields": { "name": { "type": "string", "id": 1, "options": { - "(google.api.field_behavior)": "IMMUTABLE" + "(google.api.field_behavior)": "IDENTIFIER" } }, "dataObjectId": { @@ -251,11 +253,17 @@ "fields": { "useIndex": { "type": "IndexHint", - "id": 1 + "id": 1, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } }, "useKnn": { "type": "bool", - "id": 2 + "id": 2, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } } }, "nested": { @@ -357,7 +365,7 @@ } }, "distanceMetric": { - "type": "DistanceMetric", + "type": "google.cloud.vectorsearch.v1beta.DistanceMetric", "id": 11, "options": { "(google.api.field_behavior)": "OPTIONAL" @@ -416,6 +424,13 @@ "(google.api.field_behavior)": "OPTIONAL", "proto3_optional": true } + }, + "searchHint": { + "type": "SearchHint", + "id": 7, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } } } }, @@ -457,6 +472,13 @@ "(google.api.field_behavior)": "OPTIONAL", "proto3_optional": true } + }, + "filter": { + "type": "google.protobuf.Struct", + "id": 5, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } } } }, @@ -1371,6 +1393,30 @@ } } ] + }, + "ExportDataObjects": { + "requestType": "ExportDataObjectsRequest", + "responseType": "google.longrunning.Operation", + "options": { + "(google.api.http).post": "/v1beta/{name=projects/*/locations/*/collections/*}:exportDataObjects", + "(google.api.http).body": "*", + "(google.longrunning.operation_info).response_type": "ExportDataObjectsResponse", + "(google.longrunning.operation_info).metadata_type": "ExportDataObjectsMetadata" + }, + "parsedOptions": [ + { + "(google.api.http)": { + "post": "/v1beta/{name=projects/*/locations/*/collections/*}:exportDataObjects", + "body": "*" + } + }, + { + "(google.longrunning.operation_info)": { + "response_type": "ExportDataObjectsResponse", + "metadata_type": "ExportDataObjectsMetadata" + } + } + ] } } }, @@ -1693,7 +1739,7 @@ } }, "distanceMetric": { - "type": "DistanceMetric", + "type": "google.cloud.vectorsearch.v1beta.DistanceMetric", "id": 4, "options": { "(google.api.field_behavior)": "OPTIONAL" @@ -1934,6 +1980,13 @@ "options": { "(google.api.field_behavior)": "REQUIRED" } + }, + "outputUri": { + "type": "string", + "id": 3, + "options": { + "(google.api.field_behavior)": "OPTIONAL" + } } } } @@ -1966,6 +2019,72 @@ "id": 1 } } + }, + "ExportDataObjectsRequest": { + "oneofs": { + "destination": { + "oneof": [ + "gcsDestination" + ] + } + }, + "fields": { + "gcsDestination": { + "type": "GcsExportDestination", + "id": 2 + }, + "name": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED", + "(google.api.resource_reference).type": "vectorsearch.googleapis.com/Collection" + } + } + }, + "nested": { + "GcsExportDestination": { + "fields": { + "exportUri": { + "type": "string", + "id": 1, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + }, + "format": { + "type": "Format", + "id": 2, + "options": { + "(google.api.field_behavior)": "REQUIRED" + } + } + }, + "nested": { + "Format": { + "values": { + "FORMAT_UNSPECIFIED": 0, + "JSON": 1 + } + } + } + } + } + }, + "ExportDataObjectsMetadata": { + "fields": { + "createTime": { + "type": "google.protobuf.Timestamp", + "id": 1 + }, + "finishTime": { + "type": "google.protobuf.Timestamp", + "id": 2 + } + } + }, + "ExportDataObjectsResponse": { + "fields": {} } } } diff --git a/packages/google-cloud-vectorsearch/samples/generated/v1beta/data_object_service.create_data_object.js b/packages/google-cloud-vectorsearch/samples/generated/v1beta/data_object_service.create_data_object.js index af0d83bd666..705d965abc6 100644 --- a/packages/google-cloud-vectorsearch/samples/generated/v1beta/data_object_service.create_data_object.js +++ b/packages/google-cloud-vectorsearch/samples/generated/v1beta/data_object_service.create_data_object.js @@ -36,7 +36,7 @@ function main(parent, dataObjectId, dataObject) { /** * Required. The id of the dataObject to create. * The id must be 1-63 characters long, and comply with - * RFC1035. + * RFC1035 (https://www.ietf.org/rfc/rfc1035.txt). * Specifically, it must be 1-63 characters long and match the regular * expression `[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?`. */ diff --git a/packages/google-cloud-vectorsearch/samples/generated/v1beta/snippet_metadata_google.cloud.vectorsearch.v1beta.json b/packages/google-cloud-vectorsearch/samples/generated/v1beta/snippet_metadata_google.cloud.vectorsearch.v1beta.json index 8501a68fd81..8debf14e77b 100644 --- a/packages/google-cloud-vectorsearch/samples/generated/v1beta/snippet_metadata_google.cloud.vectorsearch.v1beta.json +++ b/packages/google-cloud-vectorsearch/samples/generated/v1beta/snippet_metadata_google.cloud.vectorsearch.v1beta.json @@ -686,7 +686,7 @@ "segments": [ { "start": 25, - "end": 85, + "end": 86, "type": "FULL" } ], @@ -1002,6 +1002,50 @@ } } } + }, + { + "regionTag": "vectorsearch_v1beta_generated_VectorSearchService_ExportDataObjects_async", + "title": "DataObjectSearchService exportDataObjects Sample", + "origin": "API_DEFINITION", + "description": " Initiates a Long-Running Operation to export DataObjects from a Collection.", + "canonical": true, + "file": "vector_search_service.export_data_objects.js", + "language": "JAVASCRIPT", + "segments": [ + { + "start": 25, + "end": 60, + "type": "FULL" + } + ], + "clientMethod": { + "shortName": "ExportDataObjects", + "fullName": "google.cloud.vectorsearch.v1beta.VectorSearchService.ExportDataObjects", + "async": true, + "parameters": [ + { + "name": "gcs_destination", + "type": ".google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination" + }, + { + "name": "name", + "type": "TYPE_STRING" + } + ], + "resultType": ".google.longrunning.Operation", + "client": { + "shortName": "VectorSearchServiceClient", + "fullName": "google.cloud.vectorsearch.v1beta.VectorSearchServiceClient" + }, + "method": { + "shortName": "ExportDataObjects", + "fullName": "google.cloud.vectorsearch.v1beta.VectorSearchService.ExportDataObjects", + "service": { + "shortName": "VectorSearchService", + "fullName": "google.cloud.vectorsearch.v1beta.VectorSearchService" + } + } + } } ] } diff --git a/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.create_collection.js b/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.create_collection.js index 72233b2e41c..329a2642490 100644 --- a/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.create_collection.js +++ b/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.create_collection.js @@ -35,7 +35,7 @@ function main(parent, collectionId, collection) { /** * Required. ID of the Collection to create. * The id must be 1-63 characters long, and comply with - * RFC1035. + * RFC1035 (https://www.ietf.org/rfc/rfc1035.txt). * Specifically, it must be 1-63 characters long and match the regular * expression `[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?`. */ diff --git a/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.create_index.js b/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.create_index.js index 2268f5f3593..92bd6dfb186 100644 --- a/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.create_index.js +++ b/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.create_index.js @@ -37,7 +37,7 @@ function main(parent, indexId, index) { /** * Required. ID of the Index to create. * The id must be 1-63 characters long, and comply with - * RFC1035. + * RFC1035 (https://www.ietf.org/rfc/rfc1035.txt). * Specifically, it must be 1-63 characters long and match the regular * expression `[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?`. */ diff --git a/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.export_data_objects.js b/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.export_data_objects.js new file mode 100644 index 00000000000..4f76e942545 --- /dev/null +++ b/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.export_data_objects.js @@ -0,0 +1,68 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + + +'use strict'; + +function main(name) { + // [START vectorsearch_v1beta_generated_VectorSearchService_ExportDataObjects_async] + /** + * This snippet has been automatically generated and should be regarded as a code template only. + * It will require modifications to work. + * It may require correct/in-range values for request initialization. + * TODO(developer): Uncomment these variables before running the sample. + */ + /** + * The Cloud Storage location where user wants to export Data Objects. + */ + // const gcsDestination = {} + /** + * Required. The resource name of the Collection from which we want to export + * Data Objects. Format: + * `projects/{project}/locations/{location}/collections/{collection}`. + */ + // const name = 'abc123' + + // Imports the Vectorsearch library + const {VectorSearchServiceClient} = require('@google-cloud/vectorsearch').v1beta; + + // Instantiates a client + const vectorsearchClient = new VectorSearchServiceClient(); + + async function callExportDataObjects() { + // Construct request + const request = { + name, + }; + + // Run request + const [operation] = await vectorsearchClient.exportDataObjects(request); + const [response] = await operation.promise(); + console.log(response); + } + + callExportDataObjects(); + // [END vectorsearch_v1beta_generated_VectorSearchService_ExportDataObjects_async] +} + +process.on('unhandledRejection', err => { + console.error(err.message); + process.exitCode = 1; +}); +main(...process.argv.slice(2)); diff --git a/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.update_collection.js b/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.update_collection.js index 76896980e78..2bab7266abf 100644 --- a/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.update_collection.js +++ b/packages/google-cloud-vectorsearch/samples/generated/v1beta/vector_search_service.update_collection.js @@ -38,7 +38,8 @@ function main(collection) { * The following fields support update: `display_name`, `description`, * `labels`, `data_schema`, `vector_schema`. * For `data_schema` and `vector_schema`, fields can only be added, not - * modified or deleted. + * deleted, but `vertex_embedding_config` in `vector_schema` can be added or + * removed. * Partial updates for `data_schema` and `vector_schema` are also supported * by using sub-field paths in `update_mask`, e.g. * `data_schema.properties.foo` or `vector_schema.my_vector_field`. diff --git a/packages/google-cloud-vectorsearch/src/v1beta/data_object_service_client.ts b/packages/google-cloud-vectorsearch/src/v1beta/data_object_service_client.ts index 1da2587fe03..612aac1fea7 100644 --- a/packages/google-cloud-vectorsearch/src/v1beta/data_object_service_client.ts +++ b/packages/google-cloud-vectorsearch/src/v1beta/data_object_service_client.ts @@ -350,7 +350,7 @@ export class DataObjectServiceClient { * @param {string} request.dataObjectId * Required. The id of the dataObject to create. * The id must be 1-63 characters long, and comply with - * RFC1035. + * [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). * Specifically, it must be 1-63 characters long and match the regular * expression `[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?`. * @param {google.cloud.vectorsearch.v1beta.DataObject} request.dataObject diff --git a/packages/google-cloud-vectorsearch/src/v1beta/data_object_service_client_config.json b/packages/google-cloud-vectorsearch/src/v1beta/data_object_service_client_config.json index e881f08ebe4..f5c9a2c90b0 100644 --- a/packages/google-cloud-vectorsearch/src/v1beta/data_object_service_client_config.json +++ b/packages/google-cloud-vectorsearch/src/v1beta/data_object_service_client_config.json @@ -34,13 +34,13 @@ "methods": { "CreateDataObject": { "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_codes_name": "unavailable", + "retry_params_name": "ce5b960a6ed052e690863808e4f0deff3dc7d49f" }, "BatchCreateDataObjects": { "timeout_millis": 300000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_codes_name": "unavailable", + "retry_params_name": "ce5b960a6ed052e690863808e4f0deff3dc7d49f" }, "GetDataObject": { "timeout_millis": 60000, @@ -49,23 +49,23 @@ }, "UpdateDataObject": { "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_codes_name": "unavailable", + "retry_params_name": "ce5b960a6ed052e690863808e4f0deff3dc7d49f" }, "BatchUpdateDataObjects": { "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_codes_name": "unavailable", + "retry_params_name": "ce5b960a6ed052e690863808e4f0deff3dc7d49f" }, "DeleteDataObject": { "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_codes_name": "unavailable", + "retry_params_name": "ce5b960a6ed052e690863808e4f0deff3dc7d49f" }, "BatchDeleteDataObjects": { "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_codes_name": "unavailable", + "retry_params_name": "ce5b960a6ed052e690863808e4f0deff3dc7d49f" } } } diff --git a/packages/google-cloud-vectorsearch/src/v1beta/gapic_metadata.json b/packages/google-cloud-vectorsearch/src/v1beta/gapic_metadata.json index 62efb203b5f..2025991fe33 100644 --- a/packages/google-cloud-vectorsearch/src/v1beta/gapic_metadata.json +++ b/packages/google-cloud-vectorsearch/src/v1beta/gapic_metadata.json @@ -196,6 +196,11 @@ "importDataObjects" ] }, + "ExportDataObjects": { + "methods": [ + "exportDataObjects" + ] + }, "ListCollections": { "methods": [ "listCollections", @@ -255,6 +260,11 @@ "importDataObjects" ] }, + "ExportDataObjects": { + "methods": [ + "exportDataObjects" + ] + }, "ListCollections": { "methods": [ "listCollections", diff --git a/packages/google-cloud-vectorsearch/src/v1beta/vector_search_service_client.ts b/packages/google-cloud-vectorsearch/src/v1beta/vector_search_service_client.ts index c82f5ad6096..5a821727c4b 100644 --- a/packages/google-cloud-vectorsearch/src/v1beta/vector_search_service_client.ts +++ b/packages/google-cloud-vectorsearch/src/v1beta/vector_search_service_client.ts @@ -252,6 +252,10 @@ export class VectorSearchServiceClient { '.google.cloud.vectorsearch.v1beta.ImportDataObjectsResponse') as gax.protobuf.Type; const importDataObjectsMetadata = protoFilesRoot.lookup( '.google.cloud.vectorsearch.v1beta.ImportDataObjectsMetadata') as gax.protobuf.Type; + const exportDataObjectsResponse = protoFilesRoot.lookup( + '.google.cloud.vectorsearch.v1beta.ExportDataObjectsResponse') as gax.protobuf.Type; + const exportDataObjectsMetadata = protoFilesRoot.lookup( + '.google.cloud.vectorsearch.v1beta.ExportDataObjectsMetadata') as gax.protobuf.Type; this.descriptors.longrunning = { createCollection: new this._gaxModule.LongrunningDescriptor( @@ -277,7 +281,11 @@ export class VectorSearchServiceClient { importDataObjects: new this._gaxModule.LongrunningDescriptor( this.operationsClient, importDataObjectsResponse.decode.bind(importDataObjectsResponse), - importDataObjectsMetadata.decode.bind(importDataObjectsMetadata)) + importDataObjectsMetadata.decode.bind(importDataObjectsMetadata)), + exportDataObjects: new this._gaxModule.LongrunningDescriptor( + this.operationsClient, + exportDataObjectsResponse.decode.bind(exportDataObjectsResponse), + exportDataObjectsMetadata.decode.bind(exportDataObjectsMetadata)) }; // Put together the default options sent with requests. @@ -323,7 +331,7 @@ export class VectorSearchServiceClient { // Iterate over each of the methods that the service provides // and create an API call method for each. const vectorSearchServiceStubMethods = - ['listCollections', 'getCollection', 'createCollection', 'updateCollection', 'deleteCollection', 'listIndexes', 'getIndex', 'createIndex', 'deleteIndex', 'importDataObjects']; + ['listCollections', 'getCollection', 'createCollection', 'updateCollection', 'deleteCollection', 'listIndexes', 'getIndex', 'createIndex', 'deleteIndex', 'importDataObjects', 'exportDataObjects']; for (const methodName of vectorSearchServiceStubMethods) { const callPromise = this.vectorSearchServiceStub.then( stub => (...args: Array<{}>) => { @@ -626,7 +634,7 @@ export class VectorSearchServiceClient { * @param {string} request.collectionId * Required. ID of the Collection to create. * The id must be 1-63 characters long, and comply with - * RFC1035. + * [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). * Specifically, it must be 1-63 characters long and match the regular * expression `[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?`. * @param {google.cloud.vectorsearch.v1beta.Collection} request.collection @@ -761,7 +769,8 @@ export class VectorSearchServiceClient { * The following fields support update: `display_name`, `description`, * `labels`, `data_schema`, `vector_schema`. * For `data_schema` and `vector_schema`, fields can only be added, not - * modified or deleted. + * deleted, but `vertex_embedding_config` in `vector_schema` can be added or + * removed. * Partial updates for `data_schema` and `vector_schema` are also supported * by using sub-field paths in `update_mask`, e.g. * `data_schema.properties.foo` or `vector_schema.my_vector_field`. @@ -1016,7 +1025,7 @@ export class VectorSearchServiceClient { * @param {string} request.indexId * Required. ID of the Index to create. * The id must be 1-63 characters long, and comply with - * RFC1035. + * [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). * Specifically, it must be 1-63 characters long and match the regular * expression `[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?`. * @param {google.cloud.vectorsearch.v1beta.Index} request.index @@ -1368,6 +1377,117 @@ export class VectorSearchServiceClient { const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.importDataObjects, this._gaxModule.createDefaultBackoffSettings()); return decodeOperation as LROperation; } +/** + * Initiates a Long-Running Operation to export DataObjects from a Collection. + * + * @param {Object} request + * The request object that will be sent. + * @param {google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest.GcsExportDestination} request.gcsDestination + * The Cloud Storage location where user wants to export Data Objects. + * @param {string} request.name + * Required. The resource name of the Collection from which we want to export + * Data Objects. Format: + * `projects/{project}/locations/{location}/collections/{collection}`. + * @param {object} [options] + * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. + * @returns {Promise} - The promise which resolves to an array. + * The first element of the array is an object representing + * a long running operation. Its `promise()` method returns a promise + * you can `await` for. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta/vector_search_service.export_data_objects.js + * region_tag:vectorsearch_v1beta_generated_VectorSearchService_ExportDataObjects_async + */ + exportDataObjects( + request?: protos.google.cloud.vectorsearch.v1beta.IExportDataObjectsRequest, + options?: CallOptions): + Promise<[ + LROperation, + protos.google.longrunning.IOperation|undefined, {}|undefined + ]>; + exportDataObjects( + request: protos.google.cloud.vectorsearch.v1beta.IExportDataObjectsRequest, + options: CallOptions, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>): void; + exportDataObjects( + request: protos.google.cloud.vectorsearch.v1beta.IExportDataObjectsRequest, + callback: Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>): void; + exportDataObjects( + request?: protos.google.cloud.vectorsearch.v1beta.IExportDataObjectsRequest, + optionsOrCallback?: CallOptions|Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>, + callback?: Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>): + Promise<[ + LROperation, + protos.google.longrunning.IOperation|undefined, {}|undefined + ]>|void { + request = request || {}; + let options: CallOptions; + if (typeof optionsOrCallback === 'function' && callback === undefined) { + callback = optionsOrCallback; + options = {}; + } + else { + options = optionsOrCallback as CallOptions; + } + options = options || {}; + options.otherArgs = options.otherArgs || {}; + options.otherArgs.headers = options.otherArgs.headers || {}; + options.otherArgs.headers[ + 'x-goog-request-params' + ] = this._gaxModule.routingHeader.fromParams({ + 'name': request.name ?? '', + }); + this.initialize().catch(err => {throw err}); + const wrappedCallback: Callback< + LROperation, + protos.google.longrunning.IOperation|null|undefined, + {}|null|undefined>|undefined = callback + ? (error, response, rawResponse, _) => { + this._log.info('exportDataObjects response %j', rawResponse); + callback!(error, response, rawResponse, _); // We verified callback above. + } + : undefined; + this._log.info('exportDataObjects request %j', request); + return this.innerApiCalls.exportDataObjects(request, options, wrappedCallback) + ?.then(([response, rawResponse, _]: [ + LROperation, + protos.google.longrunning.IOperation|undefined, {}|undefined + ]) => { + this._log.info('exportDataObjects response %j', rawResponse); + return [response, rawResponse, _]; + }); + } +/** + * Check the status of the long running operation returned by `exportDataObjects()`. + * @param {String} name + * The operation name that will be passed. + * @returns {Promise} - The promise which resolves to an object. + * The decoded operation object has result and metadata field to get information from. + * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation } + * for more details and examples. + * @example include:samples/generated/v1beta/vector_search_service.export_data_objects.js + * region_tag:vectorsearch_v1beta_generated_VectorSearchService_ExportDataObjects_async + */ + async checkExportDataObjectsProgress(name: string): Promise>{ + this._log.info('exportDataObjects long-running'); + const request = new this._gaxModule.operationsProtos.google.longrunning.GetOperationRequest({name}); + const [operation] = await this.operationsClient.getOperation(request); + const decodeOperation = new this._gaxModule.Operation(operation, this.descriptors.longrunning.exportDataObjects, this._gaxModule.createDefaultBackoffSettings()); + return decodeOperation as LROperation; + } /** * Lists Collections in a given project and location. * diff --git a/packages/google-cloud-vectorsearch/src/v1beta/vector_search_service_client_config.json b/packages/google-cloud-vectorsearch/src/v1beta/vector_search_service_client_config.json index e8b3add26b1..64fc136fced 100644 --- a/packages/google-cloud-vectorsearch/src/v1beta/vector_search_service_client_config.json +++ b/packages/google-cloud-vectorsearch/src/v1beta/vector_search_service_client_config.json @@ -44,18 +44,18 @@ }, "CreateCollection": { "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_codes_name": "unavailable", + "retry_params_name": "ce5b960a6ed052e690863808e4f0deff3dc7d49f" }, "UpdateCollection": { "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_codes_name": "unavailable", + "retry_params_name": "ce5b960a6ed052e690863808e4f0deff3dc7d49f" }, "DeleteCollection": { "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_codes_name": "unavailable", + "retry_params_name": "ce5b960a6ed052e690863808e4f0deff3dc7d49f" }, "ListIndexes": { "timeout_millis": 60000, @@ -69,16 +69,20 @@ }, "CreateIndex": { "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_codes_name": "unavailable", + "retry_params_name": "ce5b960a6ed052e690863808e4f0deff3dc7d49f" }, "DeleteIndex": { "timeout_millis": 60000, - "retry_codes_name": "non_idempotent", - "retry_params_name": "default" + "retry_codes_name": "unavailable", + "retry_params_name": "ce5b960a6ed052e690863808e4f0deff3dc7d49f" }, "ImportDataObjects": { "timeout_millis": 60000, + "retry_codes_name": "unavailable", + "retry_params_name": "ce5b960a6ed052e690863808e4f0deff3dc7d49f" + }, + "ExportDataObjects": { "retry_codes_name": "non_idempotent", "retry_params_name": "default" } diff --git a/packages/google-cloud-vectorsearch/test/gapic_vector_search_service_v1beta.ts b/packages/google-cloud-vectorsearch/test/gapic_vector_search_service_v1beta.ts index bc1d6257c47..f4ca5f0c4ee 100644 --- a/packages/google-cloud-vectorsearch/test/gapic_vector_search_service_v1beta.ts +++ b/packages/google-cloud-vectorsearch/test/gapic_vector_search_service_v1beta.ts @@ -1419,6 +1419,160 @@ describe('v1beta.VectorSearchServiceClient', () => { }); }); + describe('exportDataObjects', () => { + it('invokes exportDataObjects without error', async () => { + const client = new vectorsearchserviceModule.v1beta.VectorSearchServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest() + ); + const defaultValue1 = + getTypeDefaultValue('.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation() + ); + client.innerApiCalls.exportDataObjects = stubLongRunningCall(expectedResponse); + const [operation] = await client.exportDataObjects(request); + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.exportDataObjects as SinonStub) + .getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = (client.innerApiCalls.exportDataObjects as SinonStub) + .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes exportDataObjects without error using callback', async () => { + const client = new vectorsearchserviceModule.v1beta.VectorSearchServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest() + ); + const defaultValue1 = + getTypeDefaultValue('.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; + const expectedResponse = generateSampleMessage( + new protos.google.longrunning.Operation() + ); + client.innerApiCalls.exportDataObjects = stubLongRunningCallWithCallback(expectedResponse); + const promise = new Promise((resolve, reject) => { + client.exportDataObjects( + request, + (err?: Error|null, + result?: LROperation|null + ) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }); + }); + const operation = await promise as LROperation; + const [response] = await operation.promise(); + assert.deepStrictEqual(response, expectedResponse); + const actualRequest = (client.innerApiCalls.exportDataObjects as SinonStub) + .getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = (client.innerApiCalls.exportDataObjects as SinonStub) + .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes exportDataObjects with call error', async () => { + const client = new vectorsearchserviceModule.v1beta.VectorSearchServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest() + ); + const defaultValue1 = + getTypeDefaultValue('.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; + const expectedError = new Error('expected'); + client.innerApiCalls.exportDataObjects = stubLongRunningCall(undefined, expectedError); + await assert.rejects(client.exportDataObjects(request), expectedError); + const actualRequest = (client.innerApiCalls.exportDataObjects as SinonStub) + .getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = (client.innerApiCalls.exportDataObjects as SinonStub) + .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes exportDataObjects with LRO error', async () => { + const client = new vectorsearchserviceModule.v1beta.VectorSearchServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + const request = generateSampleMessage( + new protos.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest() + ); + const defaultValue1 = + getTypeDefaultValue('.google.cloud.vectorsearch.v1beta.ExportDataObjectsRequest', ['name']); + request.name = defaultValue1; + const expectedHeaderRequestParams = `name=${defaultValue1 ?? '' }`; + const expectedError = new Error('expected'); + client.innerApiCalls.exportDataObjects = stubLongRunningCall(undefined, undefined, expectedError); + const [operation] = await client.exportDataObjects(request); + await assert.rejects(operation.promise(), expectedError); + const actualRequest = (client.innerApiCalls.exportDataObjects as SinonStub) + .getCall(0).args[0]; + assert.deepStrictEqual(actualRequest, request); + const actualHeaderRequestParams = (client.innerApiCalls.exportDataObjects as SinonStub) + .getCall(0).args[1].otherArgs.headers['x-goog-request-params']; + assert(actualHeaderRequestParams.includes(expectedHeaderRequestParams)); + }); + + it('invokes checkExportDataObjectsProgress without error', async () => { + const client = new vectorsearchserviceModule.v1beta.VectorSearchServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + const expectedResponse = generateSampleMessage( + new operationsProtos.google.longrunning.Operation() + ); + expectedResponse.name = 'test'; + expectedResponse.response = {type_url: 'url', value: Buffer.from('')}; + expectedResponse.metadata = {type_url: 'url', value: Buffer.from('')} + + client.operationsClient.getOperation = stubSimpleCall(expectedResponse); + const decodedOperation = await client.checkExportDataObjectsProgress(expectedResponse.name); + assert.deepStrictEqual(decodedOperation.name, expectedResponse.name); + assert(decodedOperation.metadata); + assert((client.operationsClient.getOperation as SinonStub).getCall(0)); + }); + + it('invokes checkExportDataObjectsProgress with error', async () => { + const client = new vectorsearchserviceModule.v1beta.VectorSearchServiceClient({ + credentials: {client_email: 'bogus', private_key: 'bogus'}, + projectId: 'bogus', + }); + await client.initialize(); + const expectedError = new Error('expected'); + + client.operationsClient.getOperation = stubSimpleCall(undefined, expectedError); + await assert.rejects(client.checkExportDataObjectsProgress(''), expectedError); + assert((client.operationsClient.getOperation as SinonStub) + .getCall(0)); + }); + }); + describe('listCollections', () => { it('invokes listCollections without error', async () => { const client = new vectorsearchserviceModule.v1beta.VectorSearchServiceClient({