import type * as gax from 'google-gax'; import type { Callback, CallOptions, Descriptors, ClientOptions, PaginationCallback, LocationsClient, LocationProtos } from 'google-gax'; import { Transform } from 'stream'; import * as protos from '../../protos/protos'; /** * Service for search. * * This feature is only available for users who have Retail Search enabled. * Enable Retail Search on Cloud Console before using this feature. * @class * @memberof v2 */ export declare class SearchServiceClient { private _terminated; private _opts; private _providedCustomServicePath; private _gaxModule; private _gaxGrpc; private _protos; private _defaults; private _universeDomain; private _servicePath; private _log; auth: gax.GoogleAuth; descriptors: Descriptors; warn: (code: string, message: string, warnType?: string) => void; innerApiCalls: { [name: string]: Function; }; locationsClient: LocationsClient; pathTemplates: { [name: string]: gax.PathTemplate; }; operationsClient: gax.OperationsClient; searchServiceStub?: Promise<{ [name: string]: Function; }>; /** * Construct an instance of SearchServiceClient. * * @param {object} [options] - The configuration object. * The options accepted by the constructor are described in detail * in [this document](https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#creating-the-client-instance). * The common options are: * @param {object} [options.credentials] - Credentials object. * @param {string} [options.credentials.client_email] * @param {string} [options.credentials.private_key] * @param {string} [options.email] - Account email address. Required when * using a .pem or .p12 keyFilename. * @param {string} [options.keyFilename] - Full path to the a .json, .pem, or * .p12 key downloaded from the Google Developers Console. If you provide * a path to a JSON file, the projectId option below is not necessary. * NOTE: .pem and .p12 require you to specify options.email as well. * @param {number} [options.port] - The port on which to connect to * the remote host. * @param {string} [options.projectId] - The project ID from the Google * Developer's Console, e.g. 'grape-spaceship-123'. We will also check * the environment variable GCLOUD_PROJECT for your project ID. If your * app is running in an environment which supports * {@link https://cloud.google.com/docs/authentication/application-default-credentials Application Default Credentials}, * your project ID will be detected automatically. * @param {string} [options.apiEndpoint] - The domain name of the * API remote host. * @param {gax.ClientConfig} [options.clientConfig] - Client configuration override. * Follows the structure of {@link gapicConfig}. * @param {boolean} [options.fallback] - Use HTTP/1.1 REST mode. * For more information, please check the * {@link https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#http11-rest-api-mode documentation}. * @param {gax} [gaxInstance]: loaded instance of `google-gax`. Useful if you * need to avoid loading the default gRPC version and want to use the fallback * HTTP implementation. Load only fallback version and pass it to the constructor: * ``` * const gax = require('google-gax/build/src/fallback'); // avoids loading google-gax with gRPC * const client = new SearchServiceClient({fallback: true}, gax); * ``` */ constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback); /** * Initialize the client. * Performs asynchronous operations (such as authentication) and prepares the client. * This function will be called automatically when any class method is called for the * first time, but if you need to initialize it before calling an actual method, * feel free to call initialize() directly. * * You can await on this method if you want to make sure the client is initialized. * * @returns {Promise} A promise that resolves to an authenticated service stub. */ initialize(): Promise<{ [name: string]: Function; }>; /** * The DNS address for this API service. * @deprecated Use the apiEndpoint method of the client instance. * @returns {string} The DNS address for this service. */ static get servicePath(): string; /** * The DNS address for this API service - same as servicePath. * @deprecated Use the apiEndpoint method of the client instance. * @returns {string} The DNS address for this service. */ static get apiEndpoint(): string; /** * The DNS address for this API service. * @returns {string} The DNS address for this service. */ get apiEndpoint(): string; get universeDomain(): string; /** * The port for this API service. * @returns {number} The default port for this service. */ static get port(): number; /** * The scopes needed to make gRPC calls for every method defined * in this service. * @returns {string[]} List of default scopes. */ static get scopes(): string[]; getProjectId(): Promise; getProjectId(callback: Callback): void; /** * Performs a search. * * This feature is only available for users who have Retail Search enabled. * Enable Retail Search on Cloud Console before using this feature. * * @param {Object} request * The request object that will be sent. * @param {string} request.placement * Required. The resource name of the Retail Search serving config, such as * `projects/* /locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` * or the name of the legacy placement resource, such as * `projects/* /locations/global/catalogs/default_catalog/placements/default_search`. * This field is used to identify the serving config name and the set * of models that are used to make the search. * @param {string} request.branch * The branch resource name, such as * `projects/* /locations/global/catalogs/default_catalog/branches/0`. * * Use "default_branch" as the branch ID or leave this field empty, to search * products under the default branch. * @param {string} request.query * Raw search query. * * If this field is empty, the request is considered a category browsing * request and returned results are based on * {@link protos.google.cloud.retail.v2.SearchRequest.filter|filter} and * {@link protos.google.cloud.retail.v2.SearchRequest.page_categories|page_categories}. * @param {string} request.visitorId * Required. A unique identifier for tracking visitors. For example, this * could be implemented with an HTTP cookie, which should be able to uniquely * identify a visitor on a single device. This unique identifier should not * change if the visitor logs in or out of the website. * * This should be the same identifier as * {@link protos.google.cloud.retail.v2.UserEvent.visitor_id|UserEvent.visitor_id}. * * The field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. * @param {google.cloud.retail.v2.UserInfo} request.userInfo * User information. * @param {number} request.pageSize * Maximum number of {@link protos.google.cloud.retail.v2.Product|Product}s to return. If * unspecified, defaults to a reasonable value. The maximum allowed value is * 120. Values above 120 will be coerced to 120. * * If this field is negative, an INVALID_ARGUMENT is returned. * @param {string} request.pageToken * A page token * {@link protos.google.cloud.retail.v2.SearchResponse.next_page_token|SearchResponse.next_page_token}, * received from a previous * {@link protos.google.cloud.retail.v2.SearchService.Search|SearchService.Search} call. * Provide this to retrieve the subsequent page. * * When paginating, all other parameters provided to * {@link protos.google.cloud.retail.v2.SearchService.Search|SearchService.Search} must * match the call that provided the page token. Otherwise, an INVALID_ARGUMENT * error is returned. * @param {number} request.offset * A 0-indexed integer that specifies the current offset (that is, starting * result location, amongst the {@link protos.google.cloud.retail.v2.Product|Product}s * deemed by the API as relevant) in search results. This field is only * considered if {@link protos.google.cloud.retail.v2.SearchRequest.page_token|page_token} * is unset. * * If this field is negative, an INVALID_ARGUMENT is returned. * @param {string} request.filter * The filter syntax consists of an expression language for constructing a * predicate from one or more fields of the products being filtered. Filter * expression is case-sensitive. For more information, see * [Filter](https://cloud.google.com/retail/docs/filter-and-order#filter). * * If this field is unrecognizable, an INVALID_ARGUMENT is returned. * @param {string} request.canonicalFilter * The default filter that is applied when a user performs a search without * checking any filters on the search page. * * The filter applied to every search request when quality improvement such as * query expansion is needed. In the case a query does not have a sufficient * amount of results this filter will be used to determine whether or not to * enable the query expansion flow. The original filter will still be used for * the query expanded search. * This field is strongly recommended to achieve high search quality. * * For more information about filter syntax, see * {@link protos.google.cloud.retail.v2.SearchRequest.filter|SearchRequest.filter}. * @param {string} request.orderBy * The order in which products are returned. Products can be ordered by * a field in an {@link protos.google.cloud.retail.v2.Product|Product} object. Leave it * unset if ordered by relevance. OrderBy expression is case-sensitive. For * more information, see * [Order](https://cloud.google.com/retail/docs/filter-and-order#order). * * If this field is unrecognizable, an INVALID_ARGUMENT is returned. * @param {number[]} request.facetSpecs * Facet specifications for faceted search. If empty, no facets are returned. * * A maximum of 200 values are allowed. Otherwise, an INVALID_ARGUMENT error * is returned. * @param {google.cloud.retail.v2.SearchRequest.DynamicFacetSpec} request.dynamicFacetSpec * Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic * to enable dynamic facets. Do not set this field. * * The specification for dynamically generated facets. Notice that only * textual facets can be dynamically generated. * @param {google.cloud.retail.v2.SearchRequest.BoostSpec} request.boostSpec * Boost specification to boost certain products. For more information, see * [Boost results](https://cloud.google.com/retail/docs/boosting). * * Notice that if both * {@link protos.google.cloud.retail.v2.ServingConfig.boost_control_ids|ServingConfig.boost_control_ids} * and * {@link protos.google.cloud.retail.v2.SearchRequest.boost_spec|SearchRequest.boost_spec} * are set, the boost conditions from both places are evaluated. If a search * request matches multiple boost conditions, the final boost score is equal * to the sum of the boost scores from all matched boost conditions. * @param {google.cloud.retail.v2.SearchRequest.QueryExpansionSpec} request.queryExpansionSpec * The query expansion specification that specifies the conditions under which * query expansion occurs. For more information, see [Query * expansion](https://cloud.google.com/retail/docs/result-size#query_expansion). * @param {string[]} request.variantRollupKeys * The keys to fetch and rollup the matching * {@link protos.google.cloud.retail.v2.Product.Type.VARIANT|variant} * {@link protos.google.cloud.retail.v2.Product|Product}s attributes, * {@link protos.google.cloud.retail.v2.FulfillmentInfo|FulfillmentInfo} or * {@link protos.google.cloud.retail.v2.LocalInventory|LocalInventory}s attributes. The * attributes from all the matching * {@link protos.google.cloud.retail.v2.Product.Type.VARIANT|variant} * {@link protos.google.cloud.retail.v2.Product|Product}s or * {@link protos.google.cloud.retail.v2.LocalInventory|LocalInventory}s are merged and * de-duplicated. Notice that rollup attributes will lead to extra query * latency. Maximum number of keys is 30. * * For {@link protos.google.cloud.retail.v2.FulfillmentInfo|FulfillmentInfo}, a * fulfillment type and a fulfillment ID must be provided in the format of * "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123", * "pickupInStore" is fulfillment type and "store123" is the store ID. * * Supported keys are: * * * colorFamilies * * price * * originalPrice * * discount * * variantId * * inventory(place_id,price) * * inventory(place_id,original_price) * * inventory(place_id,attributes.key), where key is any key in the * {@link protos.google.cloud.retail.v2.LocalInventory.attributes|Product.local_inventories.attributes} * map. * * attributes.key, where key is any key in the * {@link protos.google.cloud.retail.v2.Product.attributes|Product.attributes} map. * * pickupInStore.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "pickup-in-store". * * shipToStore.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "ship-to-store". * * sameDayDelivery.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "same-day-delivery". * * nextDayDelivery.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "next-day-delivery". * * customFulfillment1.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "custom-type-1". * * customFulfillment2.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "custom-type-2". * * customFulfillment3.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "custom-type-3". * * customFulfillment4.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "custom-type-4". * * customFulfillment5.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "custom-type-5". * * If this field is set to an invalid value other than these, an * INVALID_ARGUMENT error is returned. * @param {string[]} request.pageCategories * The categories associated with a category page. Must be set for category * navigation queries to achieve good search quality. The format should be * the same as * {@link protos.google.cloud.retail.v2.UserEvent.page_categories|UserEvent.page_categories}; * * To represent full path of category, use '>' sign to separate different * hierarchies. If '>' is part of the category name, replace it with * other character(s). * * Category pages include special pages such as sales or promotions. For * instance, a special sale page may have the category hierarchy: * "pageCategories" : ["Sales > 2017 Black Friday Deals"]. * @param {google.cloud.retail.v2.SearchRequest.SearchMode} request.searchMode * The search mode of the search request. If not specified, a single search * request triggers both product search and faceted search. * @param {google.cloud.retail.v2.SearchRequest.PersonalizationSpec} request.personalizationSpec * The specification for personalization. * * Notice that if both * {@link protos.google.cloud.retail.v2.ServingConfig.personalization_spec|ServingConfig.personalization_spec} * and * {@link protos.google.cloud.retail.v2.SearchRequest.personalization_spec|SearchRequest.personalization_spec} * are set. * {@link protos.google.cloud.retail.v2.SearchRequest.personalization_spec|SearchRequest.personalization_spec} * will override * {@link protos.google.cloud.retail.v2.ServingConfig.personalization_spec|ServingConfig.personalization_spec}. * @param {number[]} request.labels * The labels applied to a resource must meet the following requirements: * * * Each resource can have multiple labels, up to a maximum of 64. * * Each label must be a key-value pair. * * Keys have a minimum length of 1 character and a maximum length of 63 * characters and cannot be empty. Values can be empty and have a maximum * length of 63 characters. * * Keys and values can contain only lowercase letters, numeric characters, * underscores, and dashes. All characters must use UTF-8 encoding, and * international characters are allowed. * * The key portion of a label must be unique. However, you can use the same * key with multiple resources. * * Keys must start with a lowercase letter or international character. * * For more information, see [Requirements for * labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) * in the Resource Manager documentation. * @param {google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec} request.spellCorrectionSpec * The spell correction specification that specifies the mode under * which spell correction will take effect. * @param {string} request.entity * The entity for customers that may run multiple different entities, domains, * sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, * `google.com`, `youtube.com`, etc. * If this is set, it should be exactly matched with * {@link protos.google.cloud.retail.v2.UserEvent.entity|UserEvent.entity} to get search * results boosted by entity. * @param {google.cloud.retail.v2.SearchRequest.ConversationalSearchSpec} [request.conversationalSearchSpec] * Optional. This field specifies all conversational related parameters * addition to traditional retail search. * @param {google.cloud.retail.v2.SearchRequest.TileNavigationSpec} [request.tileNavigationSpec] * Optional. This field specifies tile navigation related parameters. * @param {string} [request.languageCode] * Optional. The BCP-47 language code, such as "en-US" or "sr-Latn" * [list](https://www.unicode.org/cldr/charts/46/summary/root.html). For more * information, see [Standardized codes](https://google.aip.dev/143). This * field helps to better interpret the query. If a value isn't specified, the * query language code is automatically detected, which may not be accurate. * @param {string} [request.regionCode] * Optional. The Unicode country/region code (CLDR) of a location, such as * "US" and "419" * [list](https://www.unicode.org/cldr/charts/46/supplemental/territory_information.html). * For more information, see [Standardized codes](https://google.aip.dev/143). * If set, then results will be boosted based on the region_code provided. * @param {string} [request.placeId] * Optional. An id corresponding to a place, such as a store id or region id. * When specified, we use the price from the local inventory with the matching * product's * {@link protos.google.cloud.retail.v2.LocalInventory.place_id|LocalInventory.place_id} * for revenue optimization. * @param {number[]} [request.userAttributes] * Optional. The user attributes that could be used for personalization of * search results. * * Populate at most 100 key-value pairs per query. * * Only supports string keys and repeated string values. * * Duplcate keys are not allowed within a single query. * * Example: * user_attributes: [ * { key: "pets" * value { * values: "dog" * values: "cat" * } * }, * { key: "state" * value { * values: "CA" * } * } * ] * @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 Array of {@link protos.google.cloud.retail.v2.SearchResponse.SearchResult|SearchResult}. * The client library will perform auto-pagination by default: it will call the API as many * times as needed and will merge results from all the pages into this array. * Note that it can affect your quota. * We recommend using `searchAsync()` * method described below for async iteration which you can stop as needed. * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } * for more details and examples. */ search(request?: protos.google.cloud.retail.v2.ISearchRequest, options?: CallOptions): Promise<[ protos.google.cloud.retail.v2.SearchResponse.ISearchResult[], protos.google.cloud.retail.v2.ISearchRequest | null, protos.google.cloud.retail.v2.ISearchResponse ]>; search(request: protos.google.cloud.retail.v2.ISearchRequest, options: CallOptions, callback: PaginationCallback): void; search(request: protos.google.cloud.retail.v2.ISearchRequest, callback: PaginationCallback): void; /** * Equivalent to `search`, but returns a NodeJS Stream object. * @param {Object} request * The request object that will be sent. * @param {string} request.placement * Required. The resource name of the Retail Search serving config, such as * `projects/* /locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` * or the name of the legacy placement resource, such as * `projects/* /locations/global/catalogs/default_catalog/placements/default_search`. * This field is used to identify the serving config name and the set * of models that are used to make the search. * @param {string} request.branch * The branch resource name, such as * `projects/* /locations/global/catalogs/default_catalog/branches/0`. * * Use "default_branch" as the branch ID or leave this field empty, to search * products under the default branch. * @param {string} request.query * Raw search query. * * If this field is empty, the request is considered a category browsing * request and returned results are based on * {@link protos.google.cloud.retail.v2.SearchRequest.filter|filter} and * {@link protos.google.cloud.retail.v2.SearchRequest.page_categories|page_categories}. * @param {string} request.visitorId * Required. A unique identifier for tracking visitors. For example, this * could be implemented with an HTTP cookie, which should be able to uniquely * identify a visitor on a single device. This unique identifier should not * change if the visitor logs in or out of the website. * * This should be the same identifier as * {@link protos.google.cloud.retail.v2.UserEvent.visitor_id|UserEvent.visitor_id}. * * The field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. * @param {google.cloud.retail.v2.UserInfo} request.userInfo * User information. * @param {number} request.pageSize * Maximum number of {@link protos.google.cloud.retail.v2.Product|Product}s to return. If * unspecified, defaults to a reasonable value. The maximum allowed value is * 120. Values above 120 will be coerced to 120. * * If this field is negative, an INVALID_ARGUMENT is returned. * @param {string} request.pageToken * A page token * {@link protos.google.cloud.retail.v2.SearchResponse.next_page_token|SearchResponse.next_page_token}, * received from a previous * {@link protos.google.cloud.retail.v2.SearchService.Search|SearchService.Search} call. * Provide this to retrieve the subsequent page. * * When paginating, all other parameters provided to * {@link protos.google.cloud.retail.v2.SearchService.Search|SearchService.Search} must * match the call that provided the page token. Otherwise, an INVALID_ARGUMENT * error is returned. * @param {number} request.offset * A 0-indexed integer that specifies the current offset (that is, starting * result location, amongst the {@link protos.google.cloud.retail.v2.Product|Product}s * deemed by the API as relevant) in search results. This field is only * considered if {@link protos.google.cloud.retail.v2.SearchRequest.page_token|page_token} * is unset. * * If this field is negative, an INVALID_ARGUMENT is returned. * @param {string} request.filter * The filter syntax consists of an expression language for constructing a * predicate from one or more fields of the products being filtered. Filter * expression is case-sensitive. For more information, see * [Filter](https://cloud.google.com/retail/docs/filter-and-order#filter). * * If this field is unrecognizable, an INVALID_ARGUMENT is returned. * @param {string} request.canonicalFilter * The default filter that is applied when a user performs a search without * checking any filters on the search page. * * The filter applied to every search request when quality improvement such as * query expansion is needed. In the case a query does not have a sufficient * amount of results this filter will be used to determine whether or not to * enable the query expansion flow. The original filter will still be used for * the query expanded search. * This field is strongly recommended to achieve high search quality. * * For more information about filter syntax, see * {@link protos.google.cloud.retail.v2.SearchRequest.filter|SearchRequest.filter}. * @param {string} request.orderBy * The order in which products are returned. Products can be ordered by * a field in an {@link protos.google.cloud.retail.v2.Product|Product} object. Leave it * unset if ordered by relevance. OrderBy expression is case-sensitive. For * more information, see * [Order](https://cloud.google.com/retail/docs/filter-and-order#order). * * If this field is unrecognizable, an INVALID_ARGUMENT is returned. * @param {number[]} request.facetSpecs * Facet specifications for faceted search. If empty, no facets are returned. * * A maximum of 200 values are allowed. Otherwise, an INVALID_ARGUMENT error * is returned. * @param {google.cloud.retail.v2.SearchRequest.DynamicFacetSpec} request.dynamicFacetSpec * Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic * to enable dynamic facets. Do not set this field. * * The specification for dynamically generated facets. Notice that only * textual facets can be dynamically generated. * @param {google.cloud.retail.v2.SearchRequest.BoostSpec} request.boostSpec * Boost specification to boost certain products. For more information, see * [Boost results](https://cloud.google.com/retail/docs/boosting). * * Notice that if both * {@link protos.google.cloud.retail.v2.ServingConfig.boost_control_ids|ServingConfig.boost_control_ids} * and * {@link protos.google.cloud.retail.v2.SearchRequest.boost_spec|SearchRequest.boost_spec} * are set, the boost conditions from both places are evaluated. If a search * request matches multiple boost conditions, the final boost score is equal * to the sum of the boost scores from all matched boost conditions. * @param {google.cloud.retail.v2.SearchRequest.QueryExpansionSpec} request.queryExpansionSpec * The query expansion specification that specifies the conditions under which * query expansion occurs. For more information, see [Query * expansion](https://cloud.google.com/retail/docs/result-size#query_expansion). * @param {string[]} request.variantRollupKeys * The keys to fetch and rollup the matching * {@link protos.google.cloud.retail.v2.Product.Type.VARIANT|variant} * {@link protos.google.cloud.retail.v2.Product|Product}s attributes, * {@link protos.google.cloud.retail.v2.FulfillmentInfo|FulfillmentInfo} or * {@link protos.google.cloud.retail.v2.LocalInventory|LocalInventory}s attributes. The * attributes from all the matching * {@link protos.google.cloud.retail.v2.Product.Type.VARIANT|variant} * {@link protos.google.cloud.retail.v2.Product|Product}s or * {@link protos.google.cloud.retail.v2.LocalInventory|LocalInventory}s are merged and * de-duplicated. Notice that rollup attributes will lead to extra query * latency. Maximum number of keys is 30. * * For {@link protos.google.cloud.retail.v2.FulfillmentInfo|FulfillmentInfo}, a * fulfillment type and a fulfillment ID must be provided in the format of * "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123", * "pickupInStore" is fulfillment type and "store123" is the store ID. * * Supported keys are: * * * colorFamilies * * price * * originalPrice * * discount * * variantId * * inventory(place_id,price) * * inventory(place_id,original_price) * * inventory(place_id,attributes.key), where key is any key in the * {@link protos.google.cloud.retail.v2.LocalInventory.attributes|Product.local_inventories.attributes} * map. * * attributes.key, where key is any key in the * {@link protos.google.cloud.retail.v2.Product.attributes|Product.attributes} map. * * pickupInStore.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "pickup-in-store". * * shipToStore.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "ship-to-store". * * sameDayDelivery.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "same-day-delivery". * * nextDayDelivery.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "next-day-delivery". * * customFulfillment1.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "custom-type-1". * * customFulfillment2.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "custom-type-2". * * customFulfillment3.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "custom-type-3". * * customFulfillment4.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "custom-type-4". * * customFulfillment5.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "custom-type-5". * * If this field is set to an invalid value other than these, an * INVALID_ARGUMENT error is returned. * @param {string[]} request.pageCategories * The categories associated with a category page. Must be set for category * navigation queries to achieve good search quality. The format should be * the same as * {@link protos.google.cloud.retail.v2.UserEvent.page_categories|UserEvent.page_categories}; * * To represent full path of category, use '>' sign to separate different * hierarchies. If '>' is part of the category name, replace it with * other character(s). * * Category pages include special pages such as sales or promotions. For * instance, a special sale page may have the category hierarchy: * "pageCategories" : ["Sales > 2017 Black Friday Deals"]. * @param {google.cloud.retail.v2.SearchRequest.SearchMode} request.searchMode * The search mode of the search request. If not specified, a single search * request triggers both product search and faceted search. * @param {google.cloud.retail.v2.SearchRequest.PersonalizationSpec} request.personalizationSpec * The specification for personalization. * * Notice that if both * {@link protos.google.cloud.retail.v2.ServingConfig.personalization_spec|ServingConfig.personalization_spec} * and * {@link protos.google.cloud.retail.v2.SearchRequest.personalization_spec|SearchRequest.personalization_spec} * are set. * {@link protos.google.cloud.retail.v2.SearchRequest.personalization_spec|SearchRequest.personalization_spec} * will override * {@link protos.google.cloud.retail.v2.ServingConfig.personalization_spec|ServingConfig.personalization_spec}. * @param {number[]} request.labels * The labels applied to a resource must meet the following requirements: * * * Each resource can have multiple labels, up to a maximum of 64. * * Each label must be a key-value pair. * * Keys have a minimum length of 1 character and a maximum length of 63 * characters and cannot be empty. Values can be empty and have a maximum * length of 63 characters. * * Keys and values can contain only lowercase letters, numeric characters, * underscores, and dashes. All characters must use UTF-8 encoding, and * international characters are allowed. * * The key portion of a label must be unique. However, you can use the same * key with multiple resources. * * Keys must start with a lowercase letter or international character. * * For more information, see [Requirements for * labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) * in the Resource Manager documentation. * @param {google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec} request.spellCorrectionSpec * The spell correction specification that specifies the mode under * which spell correction will take effect. * @param {string} request.entity * The entity for customers that may run multiple different entities, domains, * sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, * `google.com`, `youtube.com`, etc. * If this is set, it should be exactly matched with * {@link protos.google.cloud.retail.v2.UserEvent.entity|UserEvent.entity} to get search * results boosted by entity. * @param {google.cloud.retail.v2.SearchRequest.ConversationalSearchSpec} [request.conversationalSearchSpec] * Optional. This field specifies all conversational related parameters * addition to traditional retail search. * @param {google.cloud.retail.v2.SearchRequest.TileNavigationSpec} [request.tileNavigationSpec] * Optional. This field specifies tile navigation related parameters. * @param {string} [request.languageCode] * Optional. The BCP-47 language code, such as "en-US" or "sr-Latn" * [list](https://www.unicode.org/cldr/charts/46/summary/root.html). For more * information, see [Standardized codes](https://google.aip.dev/143). This * field helps to better interpret the query. If a value isn't specified, the * query language code is automatically detected, which may not be accurate. * @param {string} [request.regionCode] * Optional. The Unicode country/region code (CLDR) of a location, such as * "US" and "419" * [list](https://www.unicode.org/cldr/charts/46/supplemental/territory_information.html). * For more information, see [Standardized codes](https://google.aip.dev/143). * If set, then results will be boosted based on the region_code provided. * @param {string} [request.placeId] * Optional. An id corresponding to a place, such as a store id or region id. * When specified, we use the price from the local inventory with the matching * product's * {@link protos.google.cloud.retail.v2.LocalInventory.place_id|LocalInventory.place_id} * for revenue optimization. * @param {number[]} [request.userAttributes] * Optional. The user attributes that could be used for personalization of * search results. * * Populate at most 100 key-value pairs per query. * * Only supports string keys and repeated string values. * * Duplcate keys are not allowed within a single query. * * Example: * user_attributes: [ * { key: "pets" * value { * values: "dog" * values: "cat" * } * }, * { key: "state" * value { * values: "CA" * } * } * ] * @param {object} [options] * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. * @returns {Stream} * An object stream which emits an object representing {@link protos.google.cloud.retail.v2.SearchResponse.SearchResult|SearchResult} on 'data' event. * The client library will perform auto-pagination by default: it will call the API as many * times as needed. Note that it can affect your quota. * We recommend using `searchAsync()` * method described below for async iteration which you can stop as needed. * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } * for more details and examples. */ searchStream(request?: protos.google.cloud.retail.v2.ISearchRequest, options?: CallOptions): Transform; /** * Equivalent to `search`, but returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. * @param {Object} request * The request object that will be sent. * @param {string} request.placement * Required. The resource name of the Retail Search serving config, such as * `projects/* /locations/global/catalogs/default_catalog/servingConfigs/default_serving_config` * or the name of the legacy placement resource, such as * `projects/* /locations/global/catalogs/default_catalog/placements/default_search`. * This field is used to identify the serving config name and the set * of models that are used to make the search. * @param {string} request.branch * The branch resource name, such as * `projects/* /locations/global/catalogs/default_catalog/branches/0`. * * Use "default_branch" as the branch ID or leave this field empty, to search * products under the default branch. * @param {string} request.query * Raw search query. * * If this field is empty, the request is considered a category browsing * request and returned results are based on * {@link protos.google.cloud.retail.v2.SearchRequest.filter|filter} and * {@link protos.google.cloud.retail.v2.SearchRequest.page_categories|page_categories}. * @param {string} request.visitorId * Required. A unique identifier for tracking visitors. For example, this * could be implemented with an HTTP cookie, which should be able to uniquely * identify a visitor on a single device. This unique identifier should not * change if the visitor logs in or out of the website. * * This should be the same identifier as * {@link protos.google.cloud.retail.v2.UserEvent.visitor_id|UserEvent.visitor_id}. * * The field must be a UTF-8 encoded string with a length limit of 128 * characters. Otherwise, an INVALID_ARGUMENT error is returned. * @param {google.cloud.retail.v2.UserInfo} request.userInfo * User information. * @param {number} request.pageSize * Maximum number of {@link protos.google.cloud.retail.v2.Product|Product}s to return. If * unspecified, defaults to a reasonable value. The maximum allowed value is * 120. Values above 120 will be coerced to 120. * * If this field is negative, an INVALID_ARGUMENT is returned. * @param {string} request.pageToken * A page token * {@link protos.google.cloud.retail.v2.SearchResponse.next_page_token|SearchResponse.next_page_token}, * received from a previous * {@link protos.google.cloud.retail.v2.SearchService.Search|SearchService.Search} call. * Provide this to retrieve the subsequent page. * * When paginating, all other parameters provided to * {@link protos.google.cloud.retail.v2.SearchService.Search|SearchService.Search} must * match the call that provided the page token. Otherwise, an INVALID_ARGUMENT * error is returned. * @param {number} request.offset * A 0-indexed integer that specifies the current offset (that is, starting * result location, amongst the {@link protos.google.cloud.retail.v2.Product|Product}s * deemed by the API as relevant) in search results. This field is only * considered if {@link protos.google.cloud.retail.v2.SearchRequest.page_token|page_token} * is unset. * * If this field is negative, an INVALID_ARGUMENT is returned. * @param {string} request.filter * The filter syntax consists of an expression language for constructing a * predicate from one or more fields of the products being filtered. Filter * expression is case-sensitive. For more information, see * [Filter](https://cloud.google.com/retail/docs/filter-and-order#filter). * * If this field is unrecognizable, an INVALID_ARGUMENT is returned. * @param {string} request.canonicalFilter * The default filter that is applied when a user performs a search without * checking any filters on the search page. * * The filter applied to every search request when quality improvement such as * query expansion is needed. In the case a query does not have a sufficient * amount of results this filter will be used to determine whether or not to * enable the query expansion flow. The original filter will still be used for * the query expanded search. * This field is strongly recommended to achieve high search quality. * * For more information about filter syntax, see * {@link protos.google.cloud.retail.v2.SearchRequest.filter|SearchRequest.filter}. * @param {string} request.orderBy * The order in which products are returned. Products can be ordered by * a field in an {@link protos.google.cloud.retail.v2.Product|Product} object. Leave it * unset if ordered by relevance. OrderBy expression is case-sensitive. For * more information, see * [Order](https://cloud.google.com/retail/docs/filter-and-order#order). * * If this field is unrecognizable, an INVALID_ARGUMENT is returned. * @param {number[]} request.facetSpecs * Facet specifications for faceted search. If empty, no facets are returned. * * A maximum of 200 values are allowed. Otherwise, an INVALID_ARGUMENT error * is returned. * @param {google.cloud.retail.v2.SearchRequest.DynamicFacetSpec} request.dynamicFacetSpec * Deprecated. Refer to https://cloud.google.com/retail/docs/configs#dynamic * to enable dynamic facets. Do not set this field. * * The specification for dynamically generated facets. Notice that only * textual facets can be dynamically generated. * @param {google.cloud.retail.v2.SearchRequest.BoostSpec} request.boostSpec * Boost specification to boost certain products. For more information, see * [Boost results](https://cloud.google.com/retail/docs/boosting). * * Notice that if both * {@link protos.google.cloud.retail.v2.ServingConfig.boost_control_ids|ServingConfig.boost_control_ids} * and * {@link protos.google.cloud.retail.v2.SearchRequest.boost_spec|SearchRequest.boost_spec} * are set, the boost conditions from both places are evaluated. If a search * request matches multiple boost conditions, the final boost score is equal * to the sum of the boost scores from all matched boost conditions. * @param {google.cloud.retail.v2.SearchRequest.QueryExpansionSpec} request.queryExpansionSpec * The query expansion specification that specifies the conditions under which * query expansion occurs. For more information, see [Query * expansion](https://cloud.google.com/retail/docs/result-size#query_expansion). * @param {string[]} request.variantRollupKeys * The keys to fetch and rollup the matching * {@link protos.google.cloud.retail.v2.Product.Type.VARIANT|variant} * {@link protos.google.cloud.retail.v2.Product|Product}s attributes, * {@link protos.google.cloud.retail.v2.FulfillmentInfo|FulfillmentInfo} or * {@link protos.google.cloud.retail.v2.LocalInventory|LocalInventory}s attributes. The * attributes from all the matching * {@link protos.google.cloud.retail.v2.Product.Type.VARIANT|variant} * {@link protos.google.cloud.retail.v2.Product|Product}s or * {@link protos.google.cloud.retail.v2.LocalInventory|LocalInventory}s are merged and * de-duplicated. Notice that rollup attributes will lead to extra query * latency. Maximum number of keys is 30. * * For {@link protos.google.cloud.retail.v2.FulfillmentInfo|FulfillmentInfo}, a * fulfillment type and a fulfillment ID must be provided in the format of * "fulfillmentType.fulfillmentId". E.g., in "pickupInStore.store123", * "pickupInStore" is fulfillment type and "store123" is the store ID. * * Supported keys are: * * * colorFamilies * * price * * originalPrice * * discount * * variantId * * inventory(place_id,price) * * inventory(place_id,original_price) * * inventory(place_id,attributes.key), where key is any key in the * {@link protos.google.cloud.retail.v2.LocalInventory.attributes|Product.local_inventories.attributes} * map. * * attributes.key, where key is any key in the * {@link protos.google.cloud.retail.v2.Product.attributes|Product.attributes} map. * * pickupInStore.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "pickup-in-store". * * shipToStore.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "ship-to-store". * * sameDayDelivery.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "same-day-delivery". * * nextDayDelivery.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "next-day-delivery". * * customFulfillment1.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "custom-type-1". * * customFulfillment2.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "custom-type-2". * * customFulfillment3.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "custom-type-3". * * customFulfillment4.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "custom-type-4". * * customFulfillment5.id, where id is any * {@link protos.google.cloud.retail.v2.FulfillmentInfo.place_ids|FulfillmentInfo.place_ids} * for {@link protos.google.cloud.retail.v2.FulfillmentInfo.type|FulfillmentInfo.type} * "custom-type-5". * * If this field is set to an invalid value other than these, an * INVALID_ARGUMENT error is returned. * @param {string[]} request.pageCategories * The categories associated with a category page. Must be set for category * navigation queries to achieve good search quality. The format should be * the same as * {@link protos.google.cloud.retail.v2.UserEvent.page_categories|UserEvent.page_categories}; * * To represent full path of category, use '>' sign to separate different * hierarchies. If '>' is part of the category name, replace it with * other character(s). * * Category pages include special pages such as sales or promotions. For * instance, a special sale page may have the category hierarchy: * "pageCategories" : ["Sales > 2017 Black Friday Deals"]. * @param {google.cloud.retail.v2.SearchRequest.SearchMode} request.searchMode * The search mode of the search request. If not specified, a single search * request triggers both product search and faceted search. * @param {google.cloud.retail.v2.SearchRequest.PersonalizationSpec} request.personalizationSpec * The specification for personalization. * * Notice that if both * {@link protos.google.cloud.retail.v2.ServingConfig.personalization_spec|ServingConfig.personalization_spec} * and * {@link protos.google.cloud.retail.v2.SearchRequest.personalization_spec|SearchRequest.personalization_spec} * are set. * {@link protos.google.cloud.retail.v2.SearchRequest.personalization_spec|SearchRequest.personalization_spec} * will override * {@link protos.google.cloud.retail.v2.ServingConfig.personalization_spec|ServingConfig.personalization_spec}. * @param {number[]} request.labels * The labels applied to a resource must meet the following requirements: * * * Each resource can have multiple labels, up to a maximum of 64. * * Each label must be a key-value pair. * * Keys have a minimum length of 1 character and a maximum length of 63 * characters and cannot be empty. Values can be empty and have a maximum * length of 63 characters. * * Keys and values can contain only lowercase letters, numeric characters, * underscores, and dashes. All characters must use UTF-8 encoding, and * international characters are allowed. * * The key portion of a label must be unique. However, you can use the same * key with multiple resources. * * Keys must start with a lowercase letter or international character. * * For more information, see [Requirements for * labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) * in the Resource Manager documentation. * @param {google.cloud.retail.v2.SearchRequest.SpellCorrectionSpec} request.spellCorrectionSpec * The spell correction specification that specifies the mode under * which spell correction will take effect. * @param {string} request.entity * The entity for customers that may run multiple different entities, domains, * sites or regions, for example, `Google US`, `Google Ads`, `Waymo`, * `google.com`, `youtube.com`, etc. * If this is set, it should be exactly matched with * {@link protos.google.cloud.retail.v2.UserEvent.entity|UserEvent.entity} to get search * results boosted by entity. * @param {google.cloud.retail.v2.SearchRequest.ConversationalSearchSpec} [request.conversationalSearchSpec] * Optional. This field specifies all conversational related parameters * addition to traditional retail search. * @param {google.cloud.retail.v2.SearchRequest.TileNavigationSpec} [request.tileNavigationSpec] * Optional. This field specifies tile navigation related parameters. * @param {string} [request.languageCode] * Optional. The BCP-47 language code, such as "en-US" or "sr-Latn" * [list](https://www.unicode.org/cldr/charts/46/summary/root.html). For more * information, see [Standardized codes](https://google.aip.dev/143). This * field helps to better interpret the query. If a value isn't specified, the * query language code is automatically detected, which may not be accurate. * @param {string} [request.regionCode] * Optional. The Unicode country/region code (CLDR) of a location, such as * "US" and "419" * [list](https://www.unicode.org/cldr/charts/46/supplemental/territory_information.html). * For more information, see [Standardized codes](https://google.aip.dev/143). * If set, then results will be boosted based on the region_code provided. * @param {string} [request.placeId] * Optional. An id corresponding to a place, such as a store id or region id. * When specified, we use the price from the local inventory with the matching * product's * {@link protos.google.cloud.retail.v2.LocalInventory.place_id|LocalInventory.place_id} * for revenue optimization. * @param {number[]} [request.userAttributes] * Optional. The user attributes that could be used for personalization of * search results. * * Populate at most 100 key-value pairs per query. * * Only supports string keys and repeated string values. * * Duplcate keys are not allowed within a single query. * * Example: * user_attributes: [ * { key: "pets" * value { * values: "dog" * values: "cat" * } * }, * { key: "state" * value { * values: "CA" * } * } * ] * @param {object} [options] * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. * @returns {Object} * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. * When you iterate the returned iterable, each element will be an object representing * {@link protos.google.cloud.retail.v2.SearchResponse.SearchResult|SearchResult}. The API will be called under the hood as needed, once per the page, * so you can stop the iteration when you don't need more results. * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } * for more details and examples. * @example include:samples/generated/v2/search_service.search.js * region_tag:retail_v2_generated_SearchService_Search_async */ searchAsync(request?: protos.google.cloud.retail.v2.ISearchRequest, options?: CallOptions): AsyncIterable; /** * Gets information about a location. * * @param {Object} request * The request object that will be sent. * @param {string} request.name * Resource name for the location. * @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 {@link google.cloud.location.Location | Location}. * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation } * for more details and examples. * @example * ``` * const [response] = await client.getLocation(request); * ``` */ getLocation(request: LocationProtos.google.cloud.location.IGetLocationRequest, options?: gax.CallOptions | Callback, callback?: Callback): Promise; /** * Lists information about the supported locations for this service. Returns an iterable object. * * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand. * @param {Object} request * The request object that will be sent. * @param {string} request.name * The resource that owns the locations collection, if applicable. * @param {string} request.filter * The standard list filter. * @param {number} request.pageSize * The standard list page size. * @param {string} request.pageToken * The standard list page token. * @param {object} [options] * Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details. * @returns {Object} * An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }. * When you iterate the returned iterable, each element will be an object representing * {@link google.cloud.location.Location | Location}. The API will be called under the hood as needed, once per the page, * so you can stop the iteration when you don't need more results. * Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation } * for more details and examples. * @example * ``` * const iterable = client.listLocationsAsync(request); * for await (const response of iterable) { * // process response * } * ``` */ listLocationsAsync(request: LocationProtos.google.cloud.location.IListLocationsRequest, options?: CallOptions): AsyncIterable; /** * Gets the latest state of a long-running operation. Clients can use this * method to poll the operation result at intervals as recommended by the API * service. * * @param {Object} request - The request object that will be sent. * @param {string} request.name - The name of the operation resource. * @param {Object=} options * Optional parameters. You can override the default settings for this call, * e.g, timeout, retries, paginations, etc. See {@link * https://googleapis.github.io/gax-nodejs/global.html#CallOptions | gax.CallOptions} * for the details. * @param {function(?Error, ?Object)=} callback * The function which will be called with the result of the API call. * * The second parameter to the callback is an object representing * {@link google.longrunning.Operation | google.longrunning.Operation}. * @return {Promise} - The promise which resolves to an array. * The first element of the array is an object representing * {@link google.longrunning.Operation | google.longrunning.Operation}. * The promise has a method named "cancel" which cancels the ongoing API call. * * @example * ``` * const client = longrunning.operationsClient(); * const name = ''; * const [response] = await client.getOperation({name}); * // doThingsWith(response) * ``` */ getOperation(request: protos.google.longrunning.GetOperationRequest, optionsOrCallback?: gax.CallOptions | Callback, callback?: Callback): Promise<[protos.google.longrunning.Operation]>; /** * Lists operations that match the specified filter in the request. If the * server doesn't support this method, it returns `UNIMPLEMENTED`. Returns an iterable object. * * For-await-of syntax is used with the iterable to recursively get response element on-demand. * * @param {Object} request - The request object that will be sent. * @param {string} request.name - The name of the operation collection. * @param {string} request.filter - The standard list filter. * @param {number=} request.pageSize - * The maximum number of resources contained in the underlying API * response. If page streaming is performed per-resource, this * parameter does not affect the return value. If page streaming is * performed per-page, this determines the maximum number of * resources in a page. * @param {Object=} options * Optional parameters. You can override the default settings for this call, * e.g, timeout, retries, paginations, etc. See {@link * https://googleapis.github.io/gax-nodejs/global.html#CallOptions | gax.CallOptions} for the * details. * @returns {Object} * An iterable Object that conforms to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | iteration protocols}. * * @example * ``` * const client = longrunning.operationsClient(); * for await (const response of client.listOperationsAsync(request)); * // doThingsWith(response) * ``` */ listOperationsAsync(request: protos.google.longrunning.ListOperationsRequest, options?: gax.CallOptions): AsyncIterable; /** * Starts asynchronous cancellation on a long-running operation. The server * makes a best effort to cancel the operation, but success is not * guaranteed. If the server doesn't support this method, it returns * `google.rpc.Code.UNIMPLEMENTED`. Clients can use * {@link Operations.GetOperation} or * other methods to check whether the cancellation succeeded or whether the * operation completed despite cancellation. On successful cancellation, * the operation is not deleted; instead, it becomes an operation with * an {@link Operation.error} value with a {@link google.rpc.Status.code} of * 1, corresponding to `Code.CANCELLED`. * * @param {Object} request - The request object that will be sent. * @param {string} request.name - The name of the operation resource to be cancelled. * @param {Object=} options * Optional parameters. You can override the default settings for this call, * e.g, timeout, retries, paginations, etc. See {@link * https://googleapis.github.io/gax-nodejs/global.html#CallOptions | gax.CallOptions} for the * details. * @param {function(?Error)=} callback * The function which will be called with the result of the API call. * @return {Promise} - The promise which resolves when API call finishes. * The promise has a method named "cancel" which cancels the ongoing API * call. * * @example * ``` * const client = longrunning.operationsClient(); * await client.cancelOperation({name: ''}); * ``` */ cancelOperation(request: protos.google.longrunning.CancelOperationRequest, optionsOrCallback?: gax.CallOptions | Callback, callback?: Callback): Promise; /** * Deletes a long-running operation. This method indicates that the client is * no longer interested in the operation result. It does not cancel the * operation. If the server doesn't support this method, it returns * `google.rpc.Code.UNIMPLEMENTED`. * * @param {Object} request - The request object that will be sent. * @param {string} request.name - The name of the operation resource to be deleted. * @param {Object=} options * Optional parameters. You can override the default settings for this call, * e.g, timeout, retries, paginations, etc. See {@link * https://googleapis.github.io/gax-nodejs/global.html#CallOptions | gax.CallOptions} * for the details. * @param {function(?Error)=} callback * The function which will be called with the result of the API call. * @return {Promise} - The promise which resolves when API call finishes. * The promise has a method named "cancel" which cancels the ongoing API * call. * * @example * ``` * const client = longrunning.operationsClient(); * await client.deleteOperation({name: ''}); * ``` */ deleteOperation(request: protos.google.longrunning.DeleteOperationRequest, optionsOrCallback?: gax.CallOptions | Callback, callback?: Callback): Promise; /** * Return a fully-qualified attributesConfig resource name string. * * @param {string} project * @param {string} location * @param {string} catalog * @returns {string} Resource name string. */ attributesConfigPath(project: string, location: string, catalog: string): string; /** * Parse the project from AttributesConfig resource. * * @param {string} attributesConfigName * A fully-qualified path representing AttributesConfig resource. * @returns {string} A string representing the project. */ matchProjectFromAttributesConfigName(attributesConfigName: string): string | number; /** * Parse the location from AttributesConfig resource. * * @param {string} attributesConfigName * A fully-qualified path representing AttributesConfig resource. * @returns {string} A string representing the location. */ matchLocationFromAttributesConfigName(attributesConfigName: string): string | number; /** * Parse the catalog from AttributesConfig resource. * * @param {string} attributesConfigName * A fully-qualified path representing AttributesConfig resource. * @returns {string} A string representing the catalog. */ matchCatalogFromAttributesConfigName(attributesConfigName: string): string | number; /** * Return a fully-qualified branch resource name string. * * @param {string} project * @param {string} location * @param {string} catalog * @param {string} branch * @returns {string} Resource name string. */ branchPath(project: string, location: string, catalog: string, branch: string): string; /** * Parse the project from Branch resource. * * @param {string} branchName * A fully-qualified path representing Branch resource. * @returns {string} A string representing the project. */ matchProjectFromBranchName(branchName: string): string | number; /** * Parse the location from Branch resource. * * @param {string} branchName * A fully-qualified path representing Branch resource. * @returns {string} A string representing the location. */ matchLocationFromBranchName(branchName: string): string | number; /** * Parse the catalog from Branch resource. * * @param {string} branchName * A fully-qualified path representing Branch resource. * @returns {string} A string representing the catalog. */ matchCatalogFromBranchName(branchName: string): string | number; /** * Parse the branch from Branch resource. * * @param {string} branchName * A fully-qualified path representing Branch resource. * @returns {string} A string representing the branch. */ matchBranchFromBranchName(branchName: string): string | number; /** * Return a fully-qualified catalog resource name string. * * @param {string} project * @param {string} location * @param {string} catalog * @returns {string} Resource name string. */ catalogPath(project: string, location: string, catalog: string): string; /** * Parse the project from Catalog resource. * * @param {string} catalogName * A fully-qualified path representing Catalog resource. * @returns {string} A string representing the project. */ matchProjectFromCatalogName(catalogName: string): string | number; /** * Parse the location from Catalog resource. * * @param {string} catalogName * A fully-qualified path representing Catalog resource. * @returns {string} A string representing the location. */ matchLocationFromCatalogName(catalogName: string): string | number; /** * Parse the catalog from Catalog resource. * * @param {string} catalogName * A fully-qualified path representing Catalog resource. * @returns {string} A string representing the catalog. */ matchCatalogFromCatalogName(catalogName: string): string | number; /** * Return a fully-qualified completionConfig resource name string. * * @param {string} project * @param {string} location * @param {string} catalog * @returns {string} Resource name string. */ completionConfigPath(project: string, location: string, catalog: string): string; /** * Parse the project from CompletionConfig resource. * * @param {string} completionConfigName * A fully-qualified path representing CompletionConfig resource. * @returns {string} A string representing the project. */ matchProjectFromCompletionConfigName(completionConfigName: string): string | number; /** * Parse the location from CompletionConfig resource. * * @param {string} completionConfigName * A fully-qualified path representing CompletionConfig resource. * @returns {string} A string representing the location. */ matchLocationFromCompletionConfigName(completionConfigName: string): string | number; /** * Parse the catalog from CompletionConfig resource. * * @param {string} completionConfigName * A fully-qualified path representing CompletionConfig resource. * @returns {string} A string representing the catalog. */ matchCatalogFromCompletionConfigName(completionConfigName: string): string | number; /** * Return a fully-qualified control resource name string. * * @param {string} project * @param {string} location * @param {string} catalog * @param {string} control * @returns {string} Resource name string. */ controlPath(project: string, location: string, catalog: string, control: string): string; /** * Parse the project from Control resource. * * @param {string} controlName * A fully-qualified path representing Control resource. * @returns {string} A string representing the project. */ matchProjectFromControlName(controlName: string): string | number; /** * Parse the location from Control resource. * * @param {string} controlName * A fully-qualified path representing Control resource. * @returns {string} A string representing the location. */ matchLocationFromControlName(controlName: string): string | number; /** * Parse the catalog from Control resource. * * @param {string} controlName * A fully-qualified path representing Control resource. * @returns {string} A string representing the catalog. */ matchCatalogFromControlName(controlName: string): string | number; /** * Parse the control from Control resource. * * @param {string} controlName * A fully-qualified path representing Control resource. * @returns {string} A string representing the control. */ matchControlFromControlName(controlName: string): string | number; /** * Return a fully-qualified experiment resource name string. * * @param {string} project * @param {string} location * @param {string} catalog * @param {string} experiment * @returns {string} Resource name string. */ experimentPath(project: string, location: string, catalog: string, experiment: string): string; /** * Parse the project from Experiment resource. * * @param {string} experimentName * A fully-qualified path representing Experiment resource. * @returns {string} A string representing the project. */ matchProjectFromExperimentName(experimentName: string): string | number; /** * Parse the location from Experiment resource. * * @param {string} experimentName * A fully-qualified path representing Experiment resource. * @returns {string} A string representing the location. */ matchLocationFromExperimentName(experimentName: string): string | number; /** * Parse the catalog from Experiment resource. * * @param {string} experimentName * A fully-qualified path representing Experiment resource. * @returns {string} A string representing the catalog. */ matchCatalogFromExperimentName(experimentName: string): string | number; /** * Parse the experiment from Experiment resource. * * @param {string} experimentName * A fully-qualified path representing Experiment resource. * @returns {string} A string representing the experiment. */ matchExperimentFromExperimentName(experimentName: string): string | number; /** * Return a fully-qualified model resource name string. * * @param {string} project * @param {string} location * @param {string} catalog * @param {string} model * @returns {string} Resource name string. */ modelPath(project: string, location: string, catalog: string, model: string): string; /** * Parse the project from Model resource. * * @param {string} modelName * A fully-qualified path representing Model resource. * @returns {string} A string representing the project. */ matchProjectFromModelName(modelName: string): string | number; /** * Parse the location from Model resource. * * @param {string} modelName * A fully-qualified path representing Model resource. * @returns {string} A string representing the location. */ matchLocationFromModelName(modelName: string): string | number; /** * Parse the catalog from Model resource. * * @param {string} modelName * A fully-qualified path representing Model resource. * @returns {string} A string representing the catalog. */ matchCatalogFromModelName(modelName: string): string | number; /** * Parse the model from Model resource. * * @param {string} modelName * A fully-qualified path representing Model resource. * @returns {string} A string representing the model. */ matchModelFromModelName(modelName: string): string | number; /** * Return a fully-qualified product resource name string. * * @param {string} project * @param {string} location * @param {string} catalog * @param {string} branch * @param {string} product * @returns {string} Resource name string. */ productPath(project: string, location: string, catalog: string, branch: string, product: string): string; /** * Parse the project from Product resource. * * @param {string} productName * A fully-qualified path representing Product resource. * @returns {string} A string representing the project. */ matchProjectFromProductName(productName: string): string | number; /** * Parse the location from Product resource. * * @param {string} productName * A fully-qualified path representing Product resource. * @returns {string} A string representing the location. */ matchLocationFromProductName(productName: string): string | number; /** * Parse the catalog from Product resource. * * @param {string} productName * A fully-qualified path representing Product resource. * @returns {string} A string representing the catalog. */ matchCatalogFromProductName(productName: string): string | number; /** * Parse the branch from Product resource. * * @param {string} productName * A fully-qualified path representing Product resource. * @returns {string} A string representing the branch. */ matchBranchFromProductName(productName: string): string | number; /** * Parse the product from Product resource. * * @param {string} productName * A fully-qualified path representing Product resource. * @returns {string} A string representing the product. */ matchProductFromProductName(productName: string): string | number; /** * Return a fully-qualified servingConfig resource name string. * * @param {string} project * @param {string} location * @param {string} catalog * @param {string} serving_config * @returns {string} Resource name string. */ servingConfigPath(project: string, location: string, catalog: string, servingConfig: string): string; /** * Parse the project from ServingConfig resource. * * @param {string} servingConfigName * A fully-qualified path representing ServingConfig resource. * @returns {string} A string representing the project. */ matchProjectFromServingConfigName(servingConfigName: string): string | number; /** * Parse the location from ServingConfig resource. * * @param {string} servingConfigName * A fully-qualified path representing ServingConfig resource. * @returns {string} A string representing the location. */ matchLocationFromServingConfigName(servingConfigName: string): string | number; /** * Parse the catalog from ServingConfig resource. * * @param {string} servingConfigName * A fully-qualified path representing ServingConfig resource. * @returns {string} A string representing the catalog. */ matchCatalogFromServingConfigName(servingConfigName: string): string | number; /** * Parse the serving_config from ServingConfig resource. * * @param {string} servingConfigName * A fully-qualified path representing ServingConfig resource. * @returns {string} A string representing the serving_config. */ matchServingConfigFromServingConfigName(servingConfigName: string): string | number; /** * Terminate the gRPC channel and close the client. * * The client will no longer be usable and all future behavior is undefined. * @returns {Promise} A promise that resolves when the client is closed. */ close(): Promise; }