import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class ClusterSettings { Name ? : Value < string > ; Value ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ExecuteCommandLogConfiguration { CloudWatchLogGroupName ? : Value < string > ; CloudWatchEncryptionEnabled ? : Value < boolean > ; S3BucketName ? : Value < string > ; S3EncryptionEnabled ? : Value < boolean > ; S3KeyPrefix ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ExecuteCommandConfiguration { KmsKeyId ? : Value < string > ; Logging ? : Value < string > ; LogConfiguration ? : ExecuteCommandLogConfiguration ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ClusterConfiguration { ExecuteCommandConfiguration ? : ExecuteCommandConfiguration ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CapacityProviderStrategyItem { CapacityProvider ? : Value < string > ; Weight ? : Value < number > ; Base ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface ClusterProperties { Tags ? : List < ResourceTag > ; ClusterName ? : Value < string > ; ClusterSettings ? : List < ClusterSettings > ; Configuration ? : ClusterConfiguration ; CapacityProviders ? : List < Value < string > > ; DefaultCapacityProviderStrategy ? : List < CapacityProviderStrategyItem > ; } export default class Cluster extends ResourceBase < ClusterProperties > { static ClusterSettings = ClusterSettings ; static ExecuteCommandLogConfiguration = ExecuteCommandLogConfiguration ; static ExecuteCommandConfiguration = ExecuteCommandConfiguration ; static ClusterConfiguration = ClusterConfiguration ; static CapacityProviderStrategyItem = CapacityProviderStrategyItem ; constructor ( properties ? ) { super ( 'AWS::ECS::Cluster' , properties || { } ) ; } }