import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class PrefixLevelStorageMetrics { IsEnabled ? : Value < boolean > ; SelectionCriteria ? : SelectionCriteria ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class SelectionCriteria { MaxDepth ? : Value < number > ; Delimiter ? : Value < string > ; MinStorageBytesPercentage ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ActivityMetrics { IsEnabled ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class BucketLevel { ActivityMetrics ? : ActivityMetrics ; PrefixLevel ? : PrefixLevel ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class BucketsAndRegions { Buckets ? : List < Value < string > > ; Regions ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class DataExport { S3BucketDestination ! : S3BucketDestination ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AwsOrg { Arn ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class PrefixLevel { StorageMetrics ! : PrefixLevelStorageMetrics ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class S3BucketDestination { OutputSchemaVersion ! : Value < string > ; Format ! : Value < string > ; AccountId ! : Value < string > ; Arn ! : Value < string > ; Prefix ? : Value < string > ; Encryption ? : Encryption ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class StorageLensConfiguration { Id ! : Value < string > ; Include ? : BucketsAndRegions ; Exclude ? : BucketsAndRegions ; AwsOrg ? : AwsOrg ; AccountLevel ! : AccountLevel ; DataExport ? : DataExport ; IsEnabled ! : Value < boolean > ; StorageLensArn ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AccountLevel { ActivityMetrics ? : ActivityMetrics ; BucketLevel ! : BucketLevel ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface StorageLensProperties { StorageLensConfiguration : StorageLensConfiguration ; Tags ? : List < ResourceTag > ; } export default class StorageLens extends ResourceBase < StorageLensProperties > { static PrefixLevelStorageMetrics = PrefixLevelStorageMetrics ; static SelectionCriteria = SelectionCriteria ; static ActivityMetrics = ActivityMetrics ; static BucketLevel = BucketLevel ; static BucketsAndRegions = BucketsAndRegions ; static DataExport = DataExport ; static AwsOrg = AwsOrg ; static PrefixLevel = PrefixLevel ; static S3BucketDestination = S3BucketDestination ; static StorageLensConfiguration = StorageLensConfiguration ; static AccountLevel = AccountLevel ; constructor ( properties ) { super ( 'AWS::S3::StorageLens' , properties ) ; } }