import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class PlacementStrategy { Field ? : Value < string > ; Type ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class DeploymentController { Type ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class PlacementConstraint { Expression ? : Value < string > ; Type ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LoadBalancer { ContainerName ? : Value < string > ; ContainerPort ? : Value < number > ; LoadBalancerName ? : Value < string > ; TargetGroupArn ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class DeploymentConfiguration { DeploymentCircuitBreaker ? : DeploymentCircuitBreaker ; MaximumPercent ? : Value < number > ; MinimumHealthyPercent ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AwsVpcConfiguration { AssignPublicIp ? : Value < string > ; SecurityGroups ? : List < Value < string > > ; Subnets ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class NetworkConfiguration { AwsvpcConfiguration ? : AwsVpcConfiguration ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CapacityProviderStrategyItem { Base ? : Value < number > ; CapacityProvider ? : Value < string > ; Weight ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class DeploymentCircuitBreaker { Enable ! : Value < boolean > ; Rollback ! : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ServiceRegistry { ContainerName ? : Value < string > ; ContainerPort ? : Value < number > ; Port ? : Value < number > ; RegistryArn ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface ServiceProperties { CapacityProviderStrategy ? : List < CapacityProviderStrategyItem > ; Cluster ? : Value < string > ; DeploymentConfiguration ? : DeploymentConfiguration ; DeploymentController ? : DeploymentController ; DesiredCount ? : Value < number > ; EnableECSManagedTags ? : Value < boolean > ; EnableExecuteCommand ? : Value < boolean > ; HealthCheckGracePeriodSeconds ? : Value < number > ; LaunchType ? : Value < string > ; LoadBalancers ? : List < LoadBalancer > ; NetworkConfiguration ? : NetworkConfiguration ; PlacementConstraints ? : List < PlacementConstraint > ; PlacementStrategies ? : List < PlacementStrategy > ; PlatformVersion ? : Value < string > ; PropagateTags ? : Value < string > ; Role ? : Value < string > ; SchedulingStrategy ? : Value < string > ; ServiceName ? : Value < string > ; ServiceRegistries ? : List < ServiceRegistry > ; Tags ? : List < ResourceTag > ; TaskDefinition ? : Value < string > ; } export default class Service extends ResourceBase < ServiceProperties > { static PlacementStrategy = PlacementStrategy ; static DeploymentController = DeploymentController ; static PlacementConstraint = PlacementConstraint ; static LoadBalancer = LoadBalancer ; static DeploymentConfiguration = DeploymentConfiguration ; static AwsVpcConfiguration = AwsVpcConfiguration ; static NetworkConfiguration = NetworkConfiguration ; static CapacityProviderStrategyItem = CapacityProviderStrategyItem ; static DeploymentCircuitBreaker = DeploymentCircuitBreaker ; static ServiceRegistry = ServiceRegistry ; constructor ( properties ? ) { super ( 'AWS::ECS::Service' , properties || { } ) ; } }