UNPKG

@aws-amplify/amplify-category-storage

Version:

amplify-cli storage plugin

93 lines 4.75 kB
import { $TSAny, $TSContext, $TSObject } from '@aws-amplify/amplify-cli-core'; import { GroupAccessType, S3PermissionType, S3TriggerEventType, S3TriggerPrefixType, S3UserInputs, S3UserInputTriggerFunctionParams } from '../service-walkthrough-types/s3-user-input-types'; export interface MigrationParams { parametersFilepath: string; cfnFilepath: string; storageParamsFilepath: string; parameters: $TSObject; cfn: $TSObject; storageParams: $TSObject; } export declare enum S3CFNPermissionType { CREATE = "s3:PutObject", READ = "s3:GetObject", DELETE = "s3:DeleteObject", LIST = "s3:ListBucket" } export declare enum S3StorageParamsPermissionType { CREATE_AND_UPDATE = "create/update", READ = "read", DELETE = "delete" } export interface S3CFNPermissionMapType { [S3StorageParamsPermissionType.CREATE_AND_UPDATE]: S3CFNPermissionType[]; [S3StorageParamsPermissionType.READ]: S3CFNPermissionType[]; [S3StorageParamsPermissionType.DELETE]: S3CFNPermissionType[]; } interface IObjectS3PermissionType { [key: string]: S3PermissionType[]; } export interface S3PermissionMapType extends IObjectS3PermissionType { 'create/update': S3PermissionType[]; read: S3PermissionType[]; delete: S3PermissionType[]; } export type S3CFNDependsOn = { category: string; resourceName: string; attributes: string[]; }; export type GroupCFNAccessType = Record<string, S3CFNPermissionType[]>; export type GroupStorageParamsAccessType = Record<string, S3StorageParamsPermissionType[]>; export type S3FeatureMetadata = { dependsOn: S3CFNDependsOn[]; }; export type S3InputStateOptions = { resourceName: string; inputPayload?: S3UserInputs; metadata?: S3FeatureMetadata; }; export declare function canResourceBeTransformed(context: $TSContext, resourceName: string): boolean; export declare class S3InputState { private readonly context; static s3InputState: S3InputState; _cliInputsFilePath: string; _resourceName: string; _category: string; _service: string; _inputPayload: S3UserInputs | undefined; buildFilePath: string; constructor(context: $TSContext, resourceName: string, userInput: S3UserInputs | undefined); getOldS3ParamsForMigration(): MigrationParams; inferAuthPermissions(oldParams: $TSAny): $TSAny[]; inferGuestPermissions(oldParams: $TSAny): $TSAny[]; genInputParametersForMigration(oldS3Params: MigrationParams): S3UserInputs; removeOldS3ConfigFiles(migrationParams: MigrationParams): void; checkNeedsMigration(): boolean; migrate(context: $TSContext): Promise<void>; cliInputFileExists(): boolean; checkPrefixExists(triggerPrefixList: S3TriggerPrefixType[], prefix: string): boolean; private _confirmLambdaTriggerPrefixUnique; addAdminLambdaTrigger(adminLambdaTrigger: S3UserInputTriggerFunctionParams): void; removeAdminLambdaTrigger(): void; addAdditionalLambdaTrigger(triggerFunctionParams: S3UserInputTriggerFunctionParams): void; getUserInput(): S3UserInputs; isCLIInputsValid(cliInputs?: S3UserInputs): Promise<boolean>; static getPermissionTypeFromCfnType(s3CFNPermissionType: S3CFNPermissionType): S3PermissionType; static getPermissionTypeFromStorageParamsType(s3StorageParamsPermissionType: S3StorageParamsPermissionType): S3PermissionType; static getCfnTypesFromPermissionType(s3PermissionType: S3PermissionType): Array<S3CFNPermissionType>; static getInputPermissionsFromCfnPermissions(selectedGuestPermissions: S3CFNPermissionType[] | undefined): S3PermissionType[]; static getInputPermissionsFromStorageParamPermissions(storageParamGroupPermissions: S3StorageParamsPermissionType[] | undefined): S3PermissionType[]; static getTriggerLambdaPermissionsFromInputPermission(triggerPermissions: S3PermissionType): S3TriggerEventType; static getCfnPermissionsFromInputPermissions(selectedPermissions: S3PermissionType[] | undefined): S3CFNPermissionType[]; static getPolicyMapFromCfnPolicyMap(groupCFNPolicyMap: GroupCFNAccessType): GroupAccessType | undefined; static getPolicyMapFromStorageParamPolicyMap(groupStorageParamsPolicyMap: GroupStorageParamsAccessType): GroupAccessType | undefined; static getPolicyMapFromStorageParamsPolicyMap(groupStorageParamsPolicyMap: GroupStorageParamsAccessType): GroupAccessType | undefined; updateInputPayload(props: S3InputStateOptions): Promise<void>; static getInstance(context: $TSContext, props: S3InputStateOptions): Promise<S3InputState>; getCliInputPayload(): S3UserInputs; getCliMetadata(): S3FeatureMetadata | undefined; saveCliInputPayload(cliInputs: S3UserInputs): Promise<void>; } export {}; //# sourceMappingURL=s3-user-input-state.d.ts.map