diff --git a/src/mappings/services/s3.ts b/src/mappings/services/s3.ts index 8d0a5a2..8bfc487 100644 --- a/src/mappings/services/s3.ts +++ b/src/mappings/services/s3.ts @@ -1,5 +1,6 @@ import { S3BucketPolicy } from "@cdktf/provider-aws/lib/s3-bucket-policy/index.js"; -import { CfnBucketPolicy } from "aws-cdk-lib/aws-s3"; +import { S3Bucket } from "@cdktf/provider-aws/lib/s3-bucket/index.js"; +import { CfnBucket, CfnBucketPolicy } from "aws-cdk-lib/aws-s3"; import { Fn } from "cdktf"; import { deleteUndefinedKeys, registerMappingTyped } from "../utils.js"; @@ -19,4 +20,29 @@ export function registerS3Mappings() { Ref: (resource) => resource.id, }, }); + + registerMappingTyped(CfnBucket, S3Bucket, { + resource(scope, id, props) { + return new S3Bucket( + scope, + id, + deleteUndefinedKeys({ + accelerationStatus: props?.AccelerateConfiguration?.AccelerationStatus, + acl: props?.AccessControl, + bucket: props?.BucketName, + bucketPrefix: id, + }), + ); + }, + + attributes: { + Ref: (resource) => resource.id, + Arn: (resource) => resource.arn, + DomainName: (resource) => resource.bucketDomainName, + RegionalDomainName: (resource) => resource.bucketRegionalDomainName, + WebsiteUrl: (resource) => resource.websiteDomain, + DualStackDomainName: (resource) => + `${resource.bucket}.s3.dualstack.${resource.region.toLocaleLowerCase()}.amazonaws.com`, + }, + }); }