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