@aws-amplify/cli-internal
Version:
Amplify CLI
43 lines • 1.61 kB
TypeScript
import ts from 'typescript';
import type { BucketAccelerateStatus, BucketVersioningStatus, ServerSideEncryptionConfiguration } from '@aws-sdk/client-s3';
export type Permission = 'read' | 'write' | 'create' | 'delete';
export interface StorageTriggers {
readonly onUpload?: string;
readonly onDelete?: string;
}
export interface FunctionAccess {
readonly functionName: string;
readonly permissions: readonly Permission[];
}
export interface AccessPatterns {
readonly auth?: readonly Permission[];
readonly guest?: readonly Permission[];
readonly groups?: Readonly<Record<string, readonly Permission[]>>;
readonly functions?: readonly FunctionAccess[];
}
export interface S3RenderOptions {
readonly name: string;
readonly access?: AccessPatterns;
readonly triggers?: StorageTriggers;
readonly bucketName: string;
readonly accelerateStatus?: BucketAccelerateStatus;
readonly versioningStatus?: BucketVersioningStatus;
readonly encryption?: ServerSideEncryptionConfiguration;
}
export declare class S3Renderer {
render(opts: S3RenderOptions): ts.NodeArray<ts.Node>;
private renderImportStatements;
private renderBackendTypeImport;
private renderDefineStorageExport;
private renderPostRefactor;
private renderApplyEscapeHatches;
private renderEncryption;
private createCfnBucketDeclaration;
private renderName;
private renderAccessPatterns;
private renderTriggers;
private buildAccessProperty;
private createAllowPattern;
private createResourcePattern;
}
//# sourceMappingURL=s3.renderer.d.ts.map