import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Controls are rules that influence search results. * * To get more information about Control, see: * * * [API documentation](https://cloud.google.com/gemini/enterprise/docs/reference/rest/v1/projects.locations.collections.engines.controls) * * How-to Guides * * [Configure serving controls](https://cloud.google.com/gemini/enterprise/docs/configure-serving-controls) * * ## Example Usage * * ### Discoveryengine Control Basic * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const basic = new gcp.discoveryengine.DataStore("basic", { * location: "global", * dataStoreId: "data-store-id", * displayName: "tf-test-datastore", * industryVertical: "GENERIC", * contentConfig: "NO_CONTENT", * solutionTypes: ["SOLUTION_TYPE_SEARCH"], * createAdvancedSiteSearch: false, * }); * const basicSearchEngine = new gcp.discoveryengine.SearchEngine("basic", { * engineId: "engine-id", * collectionId: "default_collection", * location: basic.location, * displayName: "tf-test-engine", * dataStoreIds: [basic.dataStoreId], * industryVertical: "GENERIC", * appType: "APP_TYPE_INTRANET", * searchEngineConfig: {}, * }); * const basicControl = new gcp.discoveryengine.Control("basic", { * location: basicSearchEngine.location, * engineId: basicSearchEngine.engineId, * controlId: "control-id", * displayName: "tf-test-control", * solutionType: "SOLUTION_TYPE_SEARCH", * useCases: ["SEARCH_USE_CASE_SEARCH"], * synonymsAction: { * synonyms: [ * "test", * "experiment", * ], * }, * }); * ``` * * ## Import * * Control can be imported using any of these accepted formats: * * * `projects/{{project}}/locations/{{location}}/collections/{{collection_id}}/engines/{{engine_id}}/controls/{{control_id}}` * * * `{{project}}/{{location}}/{{collection_id}}/{{engine_id}}/{{control_id}}` * * * `{{location}}/{{collection_id}}/{{engine_id}}/{{control_id}}` * * When using the `pulumi import` command, Control can be imported using one of the formats above. For example: * * ```sh * $ pulumi import gcp:discoveryengine/control:Control default projects/{{project}}/locations/{{location}}/collections/{{collection_id}}/engines/{{engine_id}}/controls/{{control_id}} * ``` * * ```sh * $ pulumi import gcp:discoveryengine/control:Control default {{project}}/{{location}}/{{collection_id}}/{{engine_id}}/{{control_id}} * ``` * * ```sh * $ pulumi import gcp:discoveryengine/control:Control default {{location}}/{{collection_id}}/{{engine_id}}/{{control_id}} * ``` */ export declare class Control extends pulumi.CustomResource { /** * Get an existing Control resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: ControlState, opts?: pulumi.CustomResourceOptions): Control; /** * Returns true if the given object is an instance of Control. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is Control; /** * Changes the returned order of results. * Structure is documented below. */ readonly boostAction: pulumi.Output; /** * The collection ID. Currently only accepts "defaultCollection". */ readonly collectionId: pulumi.Output; /** * The conditions under which the control is active. * Structure is documented below. */ readonly conditions: pulumi.Output; /** * The unique id of the control. */ readonly controlId: pulumi.Output; /** * The display name of the control. This field must be a UTF-8 encoded * string with a length limit of 128 characters. */ readonly displayName: pulumi.Output; /** * The engine to add the control to. */ readonly engineId: pulumi.Output; /** * Removes entries from returned results. * Structure is documented below. */ readonly filterAction: pulumi.Output; /** * The geographic location where the data store should reside. The value can * only be one of "global", "us" and "eu". */ readonly location: pulumi.Output; /** * The unique full resource name of the control. Values are of the format * `projects/{project}/locations/{location}/collections/{collection_id}/engines/{engine_id}/controls/{control_id}`. * This field must be a UTF-8 encoded string with a length limit of 1024 * characters. */ readonly name: pulumi.Output; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ readonly project: pulumi.Output; /** * Promotes a specified link for a query. * Structure is documented below. */ readonly promoteAction: pulumi.Output; /** * Redirects to a specified URI. * Structure is documented below. */ readonly redirectAction: pulumi.Output; /** * The solution type that the control belongs to. * Possible values are: `SOLUTION_TYPE_RECOMMENDATION`, `SOLUTION_TYPE_SEARCH`, `SOLUTION_TYPE_CHAT`, `SOLUTION_TYPE_GENERATIVE_CHAT`. */ readonly solutionType: pulumi.Output; /** * Associates queries with each other. * Structure is documented below. */ readonly synonymsAction: pulumi.Output; /** * The use cases that the control is used for. * Each value may be one of: `SEARCH_USE_CASE_SEARCH`, `SEARCH_USE_CASE_BROWSE`. */ readonly useCases: pulumi.Output; /** * Create a Control resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: ControlArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Control resources. */ export interface ControlState { /** * Changes the returned order of results. * Structure is documented below. */ boostAction?: pulumi.Input; /** * The collection ID. Currently only accepts "defaultCollection". */ collectionId?: pulumi.Input; /** * The conditions under which the control is active. * Structure is documented below. */ conditions?: pulumi.Input[]>; /** * The unique id of the control. */ controlId?: pulumi.Input; /** * The display name of the control. This field must be a UTF-8 encoded * string with a length limit of 128 characters. */ displayName?: pulumi.Input; /** * The engine to add the control to. */ engineId?: pulumi.Input; /** * Removes entries from returned results. * Structure is documented below. */ filterAction?: pulumi.Input; /** * The geographic location where the data store should reside. The value can * only be one of "global", "us" and "eu". */ location?: pulumi.Input; /** * The unique full resource name of the control. Values are of the format * `projects/{project}/locations/{location}/collections/{collection_id}/engines/{engine_id}/controls/{control_id}`. * This field must be a UTF-8 encoded string with a length limit of 1024 * characters. */ name?: pulumi.Input; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ project?: pulumi.Input; /** * Promotes a specified link for a query. * Structure is documented below. */ promoteAction?: pulumi.Input; /** * Redirects to a specified URI. * Structure is documented below. */ redirectAction?: pulumi.Input; /** * The solution type that the control belongs to. * Possible values are: `SOLUTION_TYPE_RECOMMENDATION`, `SOLUTION_TYPE_SEARCH`, `SOLUTION_TYPE_CHAT`, `SOLUTION_TYPE_GENERATIVE_CHAT`. */ solutionType?: pulumi.Input; /** * Associates queries with each other. * Structure is documented below. */ synonymsAction?: pulumi.Input; /** * The use cases that the control is used for. * Each value may be one of: `SEARCH_USE_CASE_SEARCH`, `SEARCH_USE_CASE_BROWSE`. */ useCases?: pulumi.Input[]>; } /** * The set of arguments for constructing a Control resource. */ export interface ControlArgs { /** * Changes the returned order of results. * Structure is documented below. */ boostAction?: pulumi.Input; /** * The collection ID. Currently only accepts "defaultCollection". */ collectionId?: pulumi.Input; /** * The conditions under which the control is active. * Structure is documented below. */ conditions?: pulumi.Input[]>; /** * The unique id of the control. */ controlId: pulumi.Input; /** * The display name of the control. This field must be a UTF-8 encoded * string with a length limit of 128 characters. */ displayName: pulumi.Input; /** * The engine to add the control to. */ engineId: pulumi.Input; /** * Removes entries from returned results. * Structure is documented below. */ filterAction?: pulumi.Input; /** * The geographic location where the data store should reside. The value can * only be one of "global", "us" and "eu". */ location: pulumi.Input; /** * The ID of the project in which the resource belongs. * If it is not provided, the provider project is used. */ project?: pulumi.Input; /** * Promotes a specified link for a query. * Structure is documented below. */ promoteAction?: pulumi.Input; /** * Redirects to a specified URI. * Structure is documented below. */ redirectAction?: pulumi.Input; /** * The solution type that the control belongs to. * Possible values are: `SOLUTION_TYPE_RECOMMENDATION`, `SOLUTION_TYPE_SEARCH`, `SOLUTION_TYPE_CHAT`, `SOLUTION_TYPE_GENERATIVE_CHAT`. */ solutionType: pulumi.Input; /** * Associates queries with each other. * Structure is documented below. */ synonymsAction?: pulumi.Input; /** * The use cases that the control is used for. * Each value may be one of: `SEARCH_USE_CASE_SEARCH`, `SEARCH_USE_CASE_BROWSE`. */ useCases?: pulumi.Input[]>; }