export interface LifecyclePolicyResourceIdentifier {
    /** The type of lifecycle policy. */
    type: 'retention';
    /** The name of the OpenSearch Serverless ilndex resource. */
    resource: string;
}
export interface LifecyclePolicyIdentifier {
    /** The type of lifecycle policy. */
    type: 'retention';
    /** The name of the lifecycle policy. */
    name: string;
}
export interface Tag {
    /** The key to use in the tag. */
    key: string;
    /** The value of the tag. */
    value: string;
}
export interface VectorOptions {
    /** Specifies whether serverless vector acceleration is enabled for the collection. */
    ServerlessVectorAcceleration: 'ENABLED' | 'DISABLED' | 'ALLOWED';
}
export interface EncryptionConfig {
    /** Indicates whether to use an Amazon Web Services-owned key for encryption. */
    aWSOwnedKey?: boolean;
    /** The ARN of the Amazon Web Services Key Management Service key used to encrypt the collection. */
    kmsKeyArn?: string;
}
export interface CollectionGroupCapacityLimits {
    /** The maximum indexing capacity for collections in the group. */
    maxIndexingCapacityInOCU?: number;
    /** The maximum search capacity for collections in the group. */
    maxSearchCapacityInOCU?: number;
    /** The minimum indexing capacity for collections in the group. */
    minIndexingCapacityInOCU?: number;
    /** The minimum search capacity for collections in the group. */
    minSearchCapacityInOCU?: number;
}
export interface SamlConfigOptions {
    /** The XML IdP metadata file generated from your identity provider. */
    metadata: string;
    /** A user attribute for this SAML integration. */
    userAttribute?: string;
    /** The group attribute for this SAML integration. */
    groupAttribute?: string;
    /** Custom entity ID attribute to override the default entity ID for this SAML integration. */
    openSearchServerlessEntityId?: string;
    /** The session timeout, in minutes. Default is 60 minutes (12 hours). */
    sessionTimeout?: number;
}
export interface CreateIamIdentityCenterConfigOptions {
    /** The ARN of the IAM Identity Center instance used to integrate with OpenSearch Serverless. */
    instanceArn: string;
    /** The user attribute for this IAM Identity Center integration. Defaults to UserId. */
    userAttribute?: 'UserId' | 'UserName' | 'Email';
    /** The group attribute for this IAM Identity Center integration. Defaults to GroupId. */
    groupAttribute?: 'GroupId' | 'GroupName';
}
export interface IamFederationConfigOptions {
    /** The group attribute for this IAM federation integration. This attribute is used to map identity provider groups to OpenSearch Serverless permissions. */
    groupAttribute?: string;
    /** The user attribute for this IAM federation integration. This attribute is used to identify users in the federated authentication process. */
    userAttribute?: string;
}
export interface CollectionFilters {
    /** The name of the collection. */
    name?: string;
    /** The current status of the collection. */
    status?: 'CREATING' | 'DELETING' | 'ACTIVE' | 'FAILED';
    /** The name of the collection group to filter by. */
    collectionGroupName?: string;
}
export interface VpcEndpointFilters {
    /** The current status of the endpoint. */
    status?: 'PENDING' | 'DELETING' | 'ACTIVE' | 'FAILED';
}
export interface CapacityLimits {
    /** The maximum indexing capacity for collections. */
    maxIndexingCapacityInOCU?: number;
    /** The maximum search capacity for collections. */
    maxSearchCapacityInOCU?: number;
}
export interface UpdateIamIdentityCenterConfigOptions {
    /** The user attribute for this IAM Identity Center integration. Defaults to UserId. */
    userAttribute?: 'UserId' | 'UserName' | 'Email';
    /** The group attribute for this IAM Identity Center integration. Defaults to GroupId. */
    groupAttribute?: 'GroupId' | 'GroupName';
}
export interface BatchGetCollectionInput {
    /** A list of collection IDs. You can't provide names and IDs in the same request. The ID is part of the collection endpoint. You can also retrieve it using the ListCollections API. */
    ids?: string[];
    /** A list of collection names. You can't provide names and IDs in the same request. */
    names?: string[];
}
export interface BatchGetCollectionGroupInput {
    /** A list of collection group IDs. You can't provide names and IDs in the same request. */
    ids?: string[];
    /** A list of collection group names. You can't provide names and IDs in the same request. */
    names?: string[];
}
export interface BatchGetEffectiveLifecyclePolicyInput {
    /** The unique identifiers of policy types and resource names. */
    resourceIdentifiers: LifecyclePolicyResourceIdentifier[];
}
export interface BatchGetLifecyclePolicyInput {
    /** The unique identifiers of policy types and policy names. */
    identifiers: LifecyclePolicyIdentifier[];
}
export interface BatchGetVpcEndpointInput {
    /** A list of VPC endpoint identifiers. */
    ids: string[];
}
export interface CreateCollectionInput {
    /** Name of the collection. */
    name: string;
    /** Unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
    /** The name of the collection group to associate with the collection. */
    collectionGroupName?: string;
    /** Description of the collection. */
    description?: string;
    /** Encryption settings for the collection. */
    encryptionConfig?: EncryptionConfig;
    /** Indicates whether standby replicas should be used for a collection. */
    standbyReplicas?: 'ENABLED' | 'DISABLED';
    /** An arbitrary set of tags (key–value pairs) to associate with the OpenSearch Serverless collection. */
    tags?: Tag[];
    /** The type of collection. */
    type?: 'SEARCH' | 'TIMESERIES' | 'VECTORSEARCH';
    /** Configuration options for vector search capabilities in the collection. */
    vectorOptions?: VectorOptions;
}
export interface CreateCollectionGroupInput {
    /** The name of the collection group. */
    name: string;
    /** Indicates whether standby replicas should be used for a collection group. */
    standbyReplicas: 'ENABLED' | 'DISABLED';
    /** The capacity limits for the collection group, in OpenSearch Compute Units (OCUs). These limits control the maximum and minimum capacity for collections within the group. */
    capacityLimits?: CollectionGroupCapacityLimits;
    /** Unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
    /** A description of the collection group. */
    description?: string;
    /** An arbitrary set of tags (key–value pairs) to associate with the OpenSearch Serverless collection group. */
    tags?: Tag[];
}
export interface CreateLifecyclePolicyInput {
    /** The name of the lifecycle policy. */
    name: string;
    /** The JSON policy document to use as the content for the lifecycle policy. */
    policy: string;
    /** The type of lifecycle policy. */
    type: 'retention';
    /** A unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
    /** A description of the lifecycle policy. */
    description?: string;
}
export interface CreateSecurityConfigInput {
    /** The name of the security configuration. */
    name: string;
    /** The type of security configuration. */
    type: 'saml' | 'iamidentitycenter' | 'iamfederation';
    /** Unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
    /** A description of the security configuration. */
    description?: string;
    /** Describes IAM federation options in the form of a key-value map. This field is required if you specify iamFederation for the type parameter. */
    iamFederationOptions?: IamFederationConfigOptions;
    /** Describes IAM Identity Center options in the form of a key-value map. This field is required if you specify iamidentitycenter for the type parameter. */
    iamIdentityCenterOptions?: CreateIamIdentityCenterConfigOptions;
    /** Describes SAML options in the form of a key-value map. This field is required if you specify SAML for the type parameter. */
    samlOptions?: SamlConfigOptions;
}
export interface CreateSecurityPolicyInput {
    /** The name of the policy. */
    name: string;
    /** The JSON policy document to use as the content for the new policy. */
    policy: string;
    /** The type of security policy. */
    type: 'encryption' | 'network';
    /** Unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
    /** A description of the policy. Typically used to store information about the permissions defined in the policy. */
    description?: string;
}
export interface CreateVpcEndpointInput {
    /** The name of the interface endpoint. */
    name: string;
    /** The ID of one or more subnets from which you'll access OpenSearch Serverless. */
    subnetIds: string[];
    /** The ID of the VPC from which you'll access OpenSearch Serverless. */
    vpcId: string;
    /** Unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
    /** The unique identifiers of the security groups that define the ports, protocols, and sources for inbound traffic that you are authorizing into your endpoint. */
    securityGroupIds?: string[];
}
export interface DeleteAccessPolicyInput {
    /** The name of the policy to delete. */
    name: string;
    /** The type of policy. */
    type: 'data';
    /** Unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
}
export interface DeleteCollectionInput {
    /** The unique identifier of the collection. For example, 1iu5usc406kd. The ID is part of the collection endpoint. You can also retrieve it using the ListCollections API. */
    id: string;
    /** A unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
}
export interface DeleteCollectionGroupInput {
    /** The unique identifier of the collection group to delete. */
    id: string;
    /** Unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
}
export interface DeleteIndexInput {
    /** The unique identifier of the collection containing the index to delete. */
    id: string;
    /** The name of the index to delete. */
    indexName: string;
}
export interface DeleteLifecyclePolicyInput {
    /** The name of the policy to delete. */
    name: string;
    /** The type of lifecycle policy. */
    type: 'retention';
    /** Unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
}
export interface DeleteSecurityConfigInput {
    /** The security configuration identifier. For SAML the ID will be saml/&lt;accountId&gt;/&lt;idpProviderName&gt;. For example, saml/123456789123/OKTADev. */
    id: string;
    /** Unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
}
export interface DeleteSecurityPolicyInput {
    /** The name of the policy to delete. */
    name: string;
    /** The type of policy. */
    type: 'encryption' | 'network';
    /** Unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
}
export interface DeleteVpcEndpointInput {
    /** The VPC endpoint identifier. */
    id: string;
    /** Unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
}
export interface GetAccessPolicyInput {
    /** The name of the access policy. */
    name: string;
    /** Tye type of policy. Currently, the only supported value is data. */
    type: 'data';
}
export interface GetIndexInput {
    /** The unique identifier of the collection containing the index. */
    id: string;
    /** The name of the index to retrieve information about. */
    indexName: string;
}
export interface GetSecurityConfigInput {
    /** The unique identifier of the security configuration. */
    id: string;
}
export interface GetSecurityPolicyInput {
    /** The name of the security policy. */
    name: string;
    /** The type of security policy. */
    type: 'encryption' | 'network';
}
export interface ListAccessPoliciesInput {
    /** The type of access policy. */
    type: 'data';
    /** An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results. The default is 20. */
    maxResults?: number;
    /** If your initial ListAccessPolicies operation returns a nextToken, you can include the returned nextToken in subsequent ListAccessPolicies operations, which returns results in the next page. */
    nextToken?: string;
    /** Resource filters (can be collections or indexes) that policies can apply to. */
    resource?: string[];
}
export interface ListCollectionGroupsInput {
    /** The maximum number of results to return. Default is 20. You can use nextToken to get the next page of results. */
    maxResults?: number;
    /** If your initial ListCollectionGroups operation returns a nextToken, you can include the returned nextToken in subsequent ListCollectionGroups operations, which returns results in the next page. */
    nextToken?: string;
}
export interface ListCollectionsInput {
    /** A list of filter names and values that you can use for requests. */
    collectionFilters?: CollectionFilters;
    /** The maximum number of results to return. Default is 20. You can use nextToken to get the next page of results. */
    maxResults?: number;
    /** If your initial ListCollections operation returns a nextToken, you can include the returned nextToken in subsequent ListCollections operations, which returns results in the next page. */
    nextToken?: string;
}
export interface ListLifecyclePoliciesInput {
    /** The type of lifecycle policy. */
    type: 'retention';
    /** An optional parameter that specifies the maximum number of results to return. You can use use nextToken to get the next page of results. The default is 10. */
    maxResults?: number;
    /** If your initial ListLifecyclePolicies operation returns a nextToken, you can include the returned nextToken in subsequent ListLifecyclePolicies operations, which returns results in the next page. */
    nextToken?: string;
    /** Resource filters that policies can apply to. Currently, the only supported resource type is index. */
    resources?: string[];
}
export interface ListSecurityConfigsInput {
    /** The type of security configuration. */
    type: 'saml' | 'iamidentitycenter' | 'iamfederation';
    /** An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results. The default is 20. */
    maxResults?: number;
    /** If your initial ListSecurityConfigs operation returns a nextToken, you can include the returned nextToken in subsequent ListSecurityConfigs operations, which returns results in the next page. */
    nextToken?: string;
}
export interface ListSecurityPoliciesInput {
    /** The type of policy. */
    type: 'encryption' | 'network';
    /** An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results. The default is 20. */
    maxResults?: number;
    /** If your initial ListSecurityPolicies operation returns a nextToken, you can include the returned nextToken in subsequent ListSecurityPolicies operations, which returns results in the next page. */
    nextToken?: string;
    /** Resource filters (can be collection or indexes) that policies can apply to. */
    resource?: string[];
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. The resource must be active (not in the DELETING state), and must be owned by the account ID included in the request. */
    resourceArn: string;
}
export interface ListVpcEndpointsInput {
    /** An optional parameter that specifies the maximum number of results to return. You can use nextToken to get the next page of results. The default is 20. */
    maxResults?: number;
    /** If your initial ListVpcEndpoints operation returns a nextToken, you can include the returned nextToken in subsequent ListVpcEndpoints operations, which returns results in the next page. */
    nextToken?: string;
    /** Filter the results according to the current status of the VPC endpoint. Possible statuses are CREATING, DELETING, UPDATING, ACTIVE, and FAILED. */
    vpcEndpointFilters?: VpcEndpointFilters;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. The resource must be active (not in the DELETING state), and must be owned by the account ID included in the request. */
    resourceArn: string;
    /** A list of tags (key-value pairs) to add to the resource. All tag keys in the request must be unique. */
    tags: Tag[];
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to remove tags from. The resource must be active (not in the DELETING state), and must be owned by the account ID included in the request. */
    resourceArn: string;
    /** The tag or set of tags to remove from the resource. All tag keys in the request must be unique. */
    tagKeys: string[];
}
export interface UpdateAccessPolicyInput {
    /** The name of the policy. */
    name: string;
    /** The version of the policy being updated. */
    policyVersion: string;
    /** The type of policy. */
    type: 'data';
    /** Unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
    /** A description of the policy. Typically used to store information about the permissions defined in the policy. */
    description?: string;
    /** The JSON policy document to use as the content for the policy. */
    policy?: string;
}
export interface UpdateAccountSettingsInput {
    capacityLimits?: CapacityLimits;
}
export interface UpdateCollectionInput {
    /** The unique identifier of the collection. */
    id: string;
    /** Unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
    /** A description of the collection. */
    description?: string;
}
export interface UpdateCollectionGroupInput {
    /** The unique identifier of the collection group to update. */
    id: string;
    /** Updated capacity limits for the collection group, in OpenSearch Compute Units (OCUs). */
    capacityLimits?: CollectionGroupCapacityLimits;
    /** Unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
    /** A new description for the collection group. */
    description?: string;
}
export interface UpdateIndexInput {
    /** The unique identifier of the collection containing the index to update. */
    id: string;
    /** The name of the index to update. */
    indexName: string;
    /** The updated JSON schema definition for the index, including field mappings and settings. */
    indexSchema?: any;
}
export interface UpdateLifecyclePolicyInput {
    /** The name of the policy. */
    name: string;
    /** The version of the policy being updated. */
    policyVersion: string;
    /** The type of lifecycle policy. */
    type: 'retention';
    /** A unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
    /** A description of the lifecycle policy. */
    description?: string;
    /** The JSON policy document to use as the content for the lifecycle policy. */
    policy?: string;
}
export interface UpdateSecurityConfigInput {
    /** The version of the security configuration to be updated. You can find the most recent version of a security configuration using the GetSecurityPolicy command. */
    configVersion: string;
    /** The security configuration identifier. For SAML the ID will be saml/&lt;accountId&gt;/&lt;idpProviderName&gt;. For example, saml/123456789123/OKTADev. */
    id: string;
    /** Unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
    /** A description of the security configuration. */
    description?: string;
    /** Describes IAM federation options in the form of a key-value map for updating an existing security configuration. Use this field to modify IAM federation settings for the security configuration. */
    iamFederationOptions?: IamFederationConfigOptions;
    /** Describes IAM Identity Center options in the form of a key-value map. */
    iamIdentityCenterOptionsUpdates?: UpdateIamIdentityCenterConfigOptions;
    /** SAML options in in the form of a key-value map. */
    samlOptions?: SamlConfigOptions;
}
export interface UpdateSecurityPolicyInput {
    /** The name of the policy. */
    name: string;
    /** The version of the policy being updated. */
    policyVersion: string;
    /** The type of access policy. */
    type: 'encryption' | 'network';
    /** Unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
    /** A description of the policy. Typically used to store information about the permissions defined in the policy. */
    description?: string;
    /** The JSON policy document to use as the content for the new policy. */
    policy?: string;
}
export interface UpdateVpcEndpointInput {
    /** The unique identifier of the interface endpoint to update. */
    id: string;
    /** The unique identifiers of the security groups to add to the endpoint. Security groups define the ports, protocols, and sources for inbound traffic that you are authorizing into your endpoint. */
    addSecurityGroupIds?: string[];
    /** The ID of one or more subnets to add to the endpoint. */
    addSubnetIds?: string[];
    /** Unique, case-sensitive identifier to ensure idempotency of the request. */
    clientToken?: string;
    /** The unique identifiers of the security groups to remove from the endpoint. */
    removeSecurityGroupIds?: string[];
    /** The unique identifiers of the subnets to remove from the endpoint. */
    removeSubnetIds?: string[];
}
/** OpenSearchServerless service binding for Step Functions SDK integrations. */
export declare class OpenSearchServerless {
    constructor();
    batchGetCollection<T>(params: BatchGetCollectionInput): Promise<T>;
    batchGetCollectionGroup<T>(params: BatchGetCollectionGroupInput): Promise<T>;
    batchGetEffectiveLifecyclePolicy<T>(params: BatchGetEffectiveLifecyclePolicyInput): Promise<T>;
    batchGetLifecyclePolicy<T>(params: BatchGetLifecyclePolicyInput): Promise<T>;
    batchGetVpcEndpoint<T>(params: BatchGetVpcEndpointInput): Promise<T>;
    createCollection<T>(params: CreateCollectionInput): Promise<T>;
    createCollectionGroup<T>(params: CreateCollectionGroupInput): Promise<T>;
    createLifecyclePolicy<T>(params: CreateLifecyclePolicyInput): Promise<T>;
    createSecurityConfig<T>(params: CreateSecurityConfigInput): Promise<T>;
    createSecurityPolicy<T>(params: CreateSecurityPolicyInput): Promise<T>;
    createVpcEndpoint<T>(params: CreateVpcEndpointInput): Promise<T>;
    deleteAccessPolicy<T>(params: DeleteAccessPolicyInput): Promise<T>;
    deleteCollection<T>(params: DeleteCollectionInput): Promise<T>;
    deleteCollectionGroup<T>(params: DeleteCollectionGroupInput): Promise<T>;
    deleteIndex<T>(params: DeleteIndexInput): Promise<T>;
    deleteLifecyclePolicy<T>(params: DeleteLifecyclePolicyInput): Promise<T>;
    deleteSecurityConfig<T>(params: DeleteSecurityConfigInput): Promise<T>;
    deleteSecurityPolicy<T>(params: DeleteSecurityPolicyInput): Promise<T>;
    deleteVpcEndpoint<T>(params: DeleteVpcEndpointInput): Promise<T>;
    getAccessPolicy<T>(params: GetAccessPolicyInput): Promise<T>;
    getAccountSettings<T>(params: Record<string, any>): Promise<T>;
    getIndex<T>(params: GetIndexInput): Promise<T>;
    getPoliciesStats<T>(params: Record<string, any>): Promise<T>;
    getSecurityConfig<T>(params: GetSecurityConfigInput): Promise<T>;
    getSecurityPolicy<T>(params: GetSecurityPolicyInput): Promise<T>;
    listAccessPolicies<T>(params: ListAccessPoliciesInput): Promise<T>;
    listCollectionGroups<T>(params: ListCollectionGroupsInput): Promise<T>;
    listCollections<T>(params: ListCollectionsInput): Promise<T>;
    listLifecyclePolicies<T>(params: ListLifecyclePoliciesInput): Promise<T>;
    listSecurityConfigs<T>(params: ListSecurityConfigsInput): Promise<T>;
    listSecurityPolicies<T>(params: ListSecurityPoliciesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listVpcEndpoints<T>(params: ListVpcEndpointsInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateAccessPolicy<T>(params: UpdateAccessPolicyInput): Promise<T>;
    updateAccountSettings<T>(params: UpdateAccountSettingsInput): Promise<T>;
    updateCollection<T>(params: UpdateCollectionInput): Promise<T>;
    updateCollectionGroup<T>(params: UpdateCollectionGroupInput): Promise<T>;
    updateIndex<T>(params: UpdateIndexInput): Promise<T>;
    updateLifecyclePolicy<T>(params: UpdateLifecyclePolicyInput): Promise<T>;
    updateSecurityConfig<T>(params: UpdateSecurityConfigInput): Promise<T>;
    updateSecurityPolicy<T>(params: UpdateSecurityPolicyInput): Promise<T>;
    updateVpcEndpoint<T>(params: UpdateVpcEndpointInput): Promise<T>;
}
//# sourceMappingURL=OpenSearchServerless.d.ts.map