from samtranslator.model import PropertyType, Resource from samtranslator.model.types import is_type, is_str, any_type from samtranslator.model.intrinsics import ref, fnGetAtt class S3Bucket(Resource): resource_type = 'AWS::S3::Bucket' property_types = { 'AccessControl': PropertyType(False, any_type()), 'AccelerateConfiguration': PropertyType(False, any_type()), 'AnalyticsConfigurations': PropertyType(False, any_type()), 'BucketEncryption': PropertyType(False, any_type()), 'BucketName': PropertyType(False, is_str()), 'CorsConfiguration': PropertyType(False, any_type()), 'InventoryConfigurations': PropertyType(False, any_type()), 'LifecycleConfiguration': PropertyType(False, any_type()), 'LoggingConfiguration': PropertyType(False, any_type()), 'MetricsConfigurations': PropertyType(False, any_type()), 'NotificationConfiguration': PropertyType(False, is_type(dict)), 'PublicAccessBlockConfiguration': PropertyType(False, is_type(dict)), 'ReplicationConfiguration': PropertyType(False, any_type()), 'Tags': PropertyType(False, is_type(list)), 'VersioningConfiguration': PropertyType(False, any_type()), 'WebsiteConfiguration': PropertyType(False, any_type()), } runtime_attrs = { "name": lambda self: ref(self.logical_id), "arn": lambda self: fnGetAtt(self.logical_id, "Arn") }