UNPKG

@aws-amplify/amplify-category-storage

Version:

amplify-cli storage plugin

112 lines • 6.62 kB
import { AmplifyS3ResourceTemplate } from '@aws-amplify/cli-extensibility-helper'; import * as iamCdk from 'aws-cdk-lib/aws-iam'; import * as lambdaCdk from 'aws-cdk-lib/aws-lambda'; import * as s3Cdk from 'aws-cdk-lib/aws-s3'; import * as cdk from 'aws-cdk-lib'; import { Construct } from 'constructs'; import { $TSAny, $TSContext, $TSObject } from '@aws-amplify/amplify-cli-core'; import { GroupAccessType, S3PermissionType, S3TriggerPrefixType, S3UserInputs, S3UserInputTriggerFunctionParams } from '../service-walkthrough-types/s3-user-input-types'; import { S3CFNDependsOn } from '../service-walkthroughs/s3-user-input-state'; import { AmplifyCfnParamType, AmplifyResourceCfnStack, AmplifyS3ResourceInputParameters } from './types'; export declare class AmplifyS3ResourceCfnStack extends AmplifyResourceCfnStack implements AmplifyS3ResourceTemplate { id: string; scope: Construct; s3Bucket: s3Cdk.CfnBucket; s3BucketName: string; notificationConfiguration: s3Cdk.CfnBucket.NotificationConfigurationProperty; triggerLambdaPermissions?: lambdaCdk.CfnPermission; adminTriggerLambdaPermissions?: lambdaCdk.CfnPermission; authResourceName: string; authIAMPolicy: iamCdk.PolicyDocument; guestIAMPolicy: iamCdk.PolicyDocument; groupIAMPolicy: iamCdk.PolicyDocument; conditions: AmplifyS3Conditions; parameters: AmplifyS3CfnParameters; s3AuthPublicPolicy?: iamCdk.CfnPolicy; s3AuthProtectedPolicy?: iamCdk.CfnPolicy; s3AuthPrivatePolicy?: iamCdk.CfnPolicy; s3AuthUploadPolicy?: iamCdk.CfnPolicy; s3AuthReadPolicy?: iamCdk.CfnPolicy; s3GuestPublicPolicy?: iamCdk.CfnPolicy; s3GuestUploadPolicy?: iamCdk.CfnPolicy; s3GuestReadPolicy?: iamCdk.CfnPolicy; s3GroupPolicyList?: Array<iamCdk.CfnPolicy>; s3TriggerPolicy?: iamCdk.CfnPolicy; s3DependsOnResources: Array<S3CFNDependsOn>; _props: S3UserInputs; _cfnInputParams: AmplifyS3ResourceInputParameters; constructor(scope: Construct, s3ResourceName: string, props: S3UserInputs, cfnInputParams: AmplifyS3ResourceInputParameters); private getGroupListFromProps; getS3ResourceFriendlyName(): string; getS3BucketName(): string; getS3DependsOn(): Array<S3CFNDependsOn> | undefined; private _addNotificationsLambdaConfigurations; private configureTriggerPolicy; _conditionallyBuildTriggerLambdaParams(triggerFunction: string): S3UserInputTriggerFunctionParams; generateCfnStackResources(context: $TSContext): Promise<void>; addGroupParams(authResourceName: string): AmplifyS3CfnParameters | undefined; private createTriggerLambdaCFNParams; addParameters(): void; addConditions(): AmplifyS3Conditions; addOutputs(): void; emptyNotificationsConfiguration: () => $TSAny; buildBucketName(): string; isAmplifyStackLegacy: () => boolean; buildCORSRules: () => s3Cdk.CfnBucket.CorsConfigurationProperty; buildNotificationLambdaConfiguration(): s3Cdk.CfnBucket.LambdaConfigurationProperty[]; filterRuleAppendRegionToLambdaTriggerPrefix: (triggerPrefix: S3TriggerPrefixType) => $TSAny; filterRulePlainStringLambdaTriggerPrefix: (triggerPrefix: S3TriggerPrefixType) => $TSAny; buildTriggerPrefixRule: (triggerPrefix: S3TriggerPrefixType) => $TSAny; buildLambdaConfigFromTriggerParams(functionParams: S3UserInputTriggerFunctionParams): s3Cdk.CfnBucket.LambdaConfigurationProperty[]; createAndSetIAMPolicies: () => void; createS3IAMPolicyDocument: (refStr: string, pathStr: string, actionStr: string, effect: iamCdk.Effect) => iamCdk.PolicyDocument; createMultiStatementIAMPolicyDocument: (policyStatements: Array<IAmplifyIamPolicyStatementParams>) => iamCdk.PolicyDocument; createInvokeFunctionS3Permission(logicalId: string, triggerFunctionName: string): lambdaCdk.CfnPermission; createS3AuthPublicPolicy: () => iamCdk.CfnPolicy; createS3AuthProtectedPolicy: () => iamCdk.CfnPolicy; createS3AuthPrivatePolicy: () => iamCdk.CfnPolicy; createS3AuthUploadPolicy: () => iamCdk.CfnPolicy; createS3GuestPublicPolicy: () => iamCdk.CfnPolicy; createGuestUploadsPolicy: () => iamCdk.CfnPolicy; createS3AuthReadPolicy: () => iamCdk.CfnPolicy; createS3GuestReadPolicy: () => iamCdk.CfnPolicy; private createTriggerPolicyDefinition; addFunctionToTriggerPolicyDefinition: (policyDefinition: IAmplifyPolicyDefinition, functionName: string) => IAmplifyPolicyDefinition; createTriggerPolicyFromPolicyDefinition: (policyDefinition: IAmplifyPolicyDefinition) => iamCdk.CfnPolicy; buildResourceFromPolicyDefinition: (policyDefinitionStatement: IAmplifyIamPolicyStatementParams) => $TSAny; buildActionFromPolicyDefinition: (policyDefinitionStatement: IAmplifyIamPolicyStatementParams, IsActionRef: boolean) => $TSAny; createIAMPolicy(policyDefinition: IAmplifyPolicyDefinition, actionRef: boolean): iamCdk.CfnPolicy; createMultiStatementIAMPolicy: (policyDefinition: IAmplifyPolicyDefinition) => iamCdk.CfnPolicy; createS3AmplifyGroupPolicies(authResourceName: string, groupList: string[], groupPolicyMap: GroupAccessType): Array<iamCdk.CfnPolicy>; buildGroupPolicyLogicalID: (groupName: string) => string; buildGroupPolicyName: (groupName: string) => string; buildGroupRoleName: (groupName: string) => string; buildCDKGroupRoles: (groupName: string, authResourceName: string) => string[]; _buildCDKGroupPolicyStatements: (groupPerms: S3PermissionType[]) => iamCdk.PolicyStatement[]; _buildCDKGroupPolicyDocument: (policyStatementList: iamCdk.PolicyStatement[]) => iamCdk.PolicyDocument; _setCFNParams: (paramDefinitions: AmplifyCfnParamType) => void; buildS3DependsOnFunctionCfn: (functionName: string) => S3CFNDependsOn; buildS3DependsOnUserPoolIdCfn: (authResourceName: string) => S3CFNDependsOn; buildS3DependsOnUserPoolGroupRoleListCfn: (selectedUserPoolGroupList: Array<string>) => Array<S3CFNDependsOn>; } export interface IAmplifyIamPolicyStatementParams { refStr: string; conditions?: $TSObject; pathStr?: string; isActionAbsolute?: boolean; actions?: Array<string>; effect: iamCdk.Effect; } interface IAmplifyPolicyDefinition { logicalId: string; isPolicyNameAbsolute?: boolean; policyNameRef: string; roleRefs: Array<string>; condition?: cdk.CfnCondition; statements: Array<IAmplifyIamPolicyStatementParams>; dependsOn?: Array<cdk.CfnResource>; } type AmplifyS3Conditions = Record<string, cdk.CfnCondition>; type AmplifyS3CfnParameters = Record<string, cdk.CfnParameter>; export {}; //# sourceMappingURL=s3-stack-builder.d.ts.map