@aws-amplify/amplify-category-storage
Version:
amplify-cli storage plugin
112 lines • 6.62 kB
TypeScript
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