import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class Taint { Value ? : Value < string > ; Effect ? : Value < string > ; Key ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class LaunchTemplateSpecification { Version ? : Value < string > ; Id ? : Value < string > ; Name ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class UpdateConfig { MaxUnavailablePercentage ? : Value < number > ; MaxUnavailable ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ScalingConfig { MinSize ? : Value < number > ; DesiredSize ? : Value < number > ; MaxSize ? : Value < number > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class RemoteAccess { SourceSecurityGroups ? : List < Value < string > > ; Ec2SshKey ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface NodegroupProperties { UpdateConfig ? : UpdateConfig ; ScalingConfig ? : ScalingConfig ; Labels ? : { [ key ] : any ; } ; Taints ? : List < Taint > ; ReleaseVersion ? : Value < string > ; CapacityType ? : Value < string > ; NodegroupName ? : Value < string > ; Subnets : List < Value < string > > ; NodeRole : Value < string > ; AmiType ? : Value < string > ; ForceUpdateEnabled ? : Value < boolean > ; Version ? : Value < string > ; LaunchTemplate ? : LaunchTemplateSpecification ; RemoteAccess ? : RemoteAccess ; DiskSize ? : Value < number > ; ClusterName : Value < string > ; InstanceTypes ? : List < Value < string > > ; Tags ? : { [ key ] : any ; } ; } export default class Nodegroup extends ResourceBase < NodegroupProperties > { static Taint = Taint ; static LaunchTemplateSpecification = LaunchTemplateSpecification ; static UpdateConfig = UpdateConfig ; static ScalingConfig = ScalingConfig ; static RemoteAccess = RemoteAccess ; constructor ( properties ) { super ( 'AWS::EKS::Nodegroup' , properties ) ; } }