import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Manages an AWS OpenSearch Serverless Collection. * * > **NOTE:** An `aws.opensearch.ServerlessCollection` must have encryption configured either by an applicable encryption security policy or by setting `encryptionConfig` directly on the resource. * * > **NOTE:** An `aws.opensearch.ServerlessCollection` is not accessible without configuring an applicable network security policy. Data cannot be accessed without configuring an applicable data access policy. * * ## Example Usage * * ### Basic Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = new aws.opensearch.ServerlessSecurityPolicy("example", { * name: "example", * type: "encryption", * policy: JSON.stringify({ * Rules: [{ * Resource: ["collection/example"], * ResourceType: "collection", * }], * AWSOwnedKey: true, * }), * }); * const exampleServerlessCollection = new aws.opensearch.ServerlessCollection("example", {name: "example"}, { * dependsOn: [example], * }); * ``` * * ### With a Collection Group and Direct Encryption Configuration * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = new aws.kms.Key("example", { * description: "example", * deletionWindowInDays: 7, * }); * const exampleServerlessCollectionGroup = new aws.opensearch.ServerlessCollectionGroup("example", { * name: "example-group", * standbyReplicas: "ENABLED", * }); * const exampleServerlessCollection = new aws.opensearch.ServerlessCollection("example", { * encryptionConfigs: [{ * kmsKeyArn: example.arn, * }], * name: "example", * type: "SEARCH", * collectionGroupName: exampleServerlessCollectionGroup.name, * }); * ``` * * ## Import * * ### Identity Schema * * #### Required * * * `id` (String) Unique identifier for the collection. * * #### Optional * * * `accountId` (String) AWS Account where this resource is managed. * * `region` (String) Region where this resource is managed. * * Using `pulumi import`, import OpenSearchServerless Collection using the `id`. For example: * * ```sh * $ pulumi import aws:opensearch/serverlessCollection:ServerlessCollection example example * ``` */ export declare class ServerlessCollection extends pulumi.CustomResource { /** * Get an existing ServerlessCollection 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?: ServerlessCollectionState, opts?: pulumi.CustomResourceOptions): ServerlessCollection; /** * Returns true if the given object is an instance of ServerlessCollection. 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 ServerlessCollection; /** * ARN of the collection. */ readonly arn: pulumi.Output; /** * Collection-specific endpoint used to submit index, search, and data upload requests to an OpenSearch Serverless collection. */ readonly collectionEndpoint: pulumi.Output; /** * Name of the collection group to associate with this collection. */ readonly collectionGroupName: pulumi.Output; /** * Collection-specific endpoint used to access OpenSearch Dashboards. */ readonly dashboardEndpoint: pulumi.Output; /** * Description of the collection. */ readonly description: pulumi.Output; /** * Configuration block for direct collection encryption settings. See `encryptionConfig` below for details. */ readonly encryptionConfigs: pulumi.Output; /** * ARN of the Amazon Web Services KMS key used to encrypt the collection. */ readonly kmsKeyArn: pulumi.Output; /** * Name of the collection. * * The following arguments are optional: */ readonly name: pulumi.Output; /** * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. */ readonly region: pulumi.Output; /** * Whether standby replicas should be used for a collection. One of `ENABLED` or `DISABLED`. Defaults to `ENABLED`. */ readonly standbyReplicas: pulumi.Output; /** * Map of tags assigned to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. */ readonly tagsAll: pulumi.Output<{ [key: string]: string; }>; readonly timeouts: pulumi.Output; /** * Type of collection. One of `SEARCH`, `TIMESERIES`, or `VECTORSEARCH`. Defaults to `TIMESERIES`. */ readonly type: pulumi.Output; /** * Configuration block for vector search options. Only valid when `type` is `VECTORSEARCH`. See `vectorOptions` below for details. */ readonly vectorOptions: pulumi.Output; /** * Create a ServerlessCollection 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?: ServerlessCollectionArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering ServerlessCollection resources. */ export interface ServerlessCollectionState { /** * ARN of the collection. */ arn?: pulumi.Input; /** * Collection-specific endpoint used to submit index, search, and data upload requests to an OpenSearch Serverless collection. */ collectionEndpoint?: pulumi.Input; /** * Name of the collection group to associate with this collection. */ collectionGroupName?: pulumi.Input; /** * Collection-specific endpoint used to access OpenSearch Dashboards. */ dashboardEndpoint?: pulumi.Input; /** * Description of the collection. */ description?: pulumi.Input; /** * Configuration block for direct collection encryption settings. See `encryptionConfig` below for details. */ encryptionConfigs?: pulumi.Input[] | undefined>; /** * ARN of the Amazon Web Services KMS key used to encrypt the collection. */ kmsKeyArn?: pulumi.Input; /** * Name of the collection. * * The following arguments are optional: */ name?: pulumi.Input; /** * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. */ region?: pulumi.Input; /** * Whether standby replicas should be used for a collection. One of `ENABLED` or `DISABLED`. Defaults to `ENABLED`. */ standbyReplicas?: pulumi.Input; /** * Map of tags assigned to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. */ tagsAll?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; timeouts?: pulumi.Input; /** * Type of collection. One of `SEARCH`, `TIMESERIES`, or `VECTORSEARCH`. Defaults to `TIMESERIES`. */ type?: pulumi.Input; /** * Configuration block for vector search options. Only valid when `type` is `VECTORSEARCH`. See `vectorOptions` below for details. */ vectorOptions?: pulumi.Input[] | undefined>; } /** * The set of arguments for constructing a ServerlessCollection resource. */ export interface ServerlessCollectionArgs { /** * Name of the collection group to associate with this collection. */ collectionGroupName?: pulumi.Input; /** * Description of the collection. */ description?: pulumi.Input; /** * Configuration block for direct collection encryption settings. See `encryptionConfig` below for details. */ encryptionConfigs?: pulumi.Input[] | undefined>; /** * Name of the collection. * * The following arguments are optional: */ name?: pulumi.Input; /** * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. */ region?: pulumi.Input; /** * Whether standby replicas should be used for a collection. One of `ENABLED` or `DISABLED`. Defaults to `ENABLED`. */ standbyReplicas?: pulumi.Input; /** * Map of tags assigned to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; timeouts?: pulumi.Input; /** * Type of collection. One of `SEARCH`, `TIMESERIES`, or `VECTORSEARCH`. Defaults to `TIMESERIES`. */ type?: pulumi.Input; /** * Configuration block for vector search options. Only valid when `type` is `VECTORSEARCH`. See `vectorOptions` below for details. */ vectorOptions?: pulumi.Input[] | undefined>; } //# sourceMappingURL=serverlessCollection.d.ts.map