import { IGrantable } from 'aws-cdk-lib/aws-iam'; import { IKey } from 'aws-cdk-lib/aws-kms'; import { Construct } from 'constructs'; export interface BucketProps { /** * The name of the vector bucket to create. */ readonly vectorBucketName: string; /** * The encryption configuration for the vector bucket. * * By default, if you don't specify, all new vectors in Amazon S3 vector buckets use * server-side encryption with Amazon S3 managed keys (SSE-S3), specifically `AES256`. */ readonly encryptionConfiguration?: EncryptionConfiguration; } export interface EncryptionConfiguration { /** * The server-side encryption type. Must be `AES256` or `aws:kms`. * * By default, if you don't specify, all new vectors in Amazon S3 vector buckets use * server-side encryption with Amazon S3 managed keys (SSE-S3), specifically `AES256`. */ readonly sseType: 'AES256' | 'aws:kms'; /** * The AWS Key Management Service (KMS) customer managed key to use for server-side encryption. * * This parameter is allowed if and **only** if `sseType` is set to `aws:kms`. */ readonly kmsKey?: IKey; } /** * Amazon S3 Vectors is in preview release for Amazon S3 and is subject to change. * * Creates a vector bucket in the specified AWS Region. */ export declare class Bucket extends Construct { /** * The name of the vector bucket to create. */ readonly vectorBucketName: string; /** * The ARN (Amazon Resource Name) of the created S3 vector bucket. */ readonly vectorBucketArn: string; /** * @summary Creates a new Bucket construct for S3 Vectors. * @param {cdk.App} scope - Represents the scope for all resources. * @param {string} id - Scope-unique id. * @param {BucketProps} props - User provided props for the construct. * @access public */ constructor(scope: Construct, id: string, props: BucketProps); /** * Grants permissions to list indexes within this vector bucket. * @param grantee The principal to grant permissions to. */ grantListIndexes(grantee: IGrantable): void; }