import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class TargetDescription { AvailabilityZone ? : Value < string > ; Id ! : Value < string > ; Port ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class TargetGroupAttribute { Key ? : Value < string > ; Value ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Matcher { GrpcCode ? : Value < string > ; HttpCode ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface TargetGroupProperties { HealthCheckEnabled ? : Value < boolean > ; HealthCheckIntervalSeconds ? : Value < number > ; HealthCheckPath ? : Value < string > ; HealthCheckPort ? : Value < string > ; HealthCheckProtocol ? : Value < string > ; HealthCheckTimeoutSeconds ? : Value < number > ; HealthyThresholdCount ? : Value < number > ; Matcher ? : Matcher ; Name ? : Value < string > ; Port ? : Value < number > ; Protocol ? : Value < string > ; ProtocolVersion ? : Value < string > ; Tags ? : List < ResourceTag > ; TargetGroupAttributes ? : List < TargetGroupAttribute > ; TargetType ? : Value < string > ; Targets ? : List < TargetDescription > ; UnhealthyThresholdCount ? : Value < number > ; VpcId ? : Value < string > ; } export default class TargetGroup extends ResourceBase < TargetGroupProperties > { static TargetDescription = TargetDescription ; static TargetGroupAttribute = TargetGroupAttribute ; static Matcher = Matcher ; constructor ( properties ? ) { super ( 'AWS::ElasticLoadBalancingV2::TargetGroup' , properties || { } ) ; } }