
                            d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ ddl
mZ dd	lmZ dd
lmZ ddlmZ ddlmZ dZe	j&                   e	j(                  e	j*                  j,                         G d de	j.                                      Ze	j&                   e	j(                  e	j*                  j2                         G d de                    Zy)z:Command to create a node pool in an Anthos cluster on AWS.    )absolute_import)division)unicode_literals)aws)base)flags)resource_args)command_util)	constants)endpoint_utila  
To create a node pool named ``my-node-pool'' in a cluster named ``my-cluster''
managed in location ``us-west1'', run:

$ {command} my-node-pool --cluster=my-cluster --location=us-west1 --iam-instance-profile=IAM_INSTANCE_PROFILE --node-version=NODE_VERSION --subnet-id=SUBNET_ID
c                   Z    e Zd ZdZdeiZeej                  j                  fd       Z
d Zy)Create/Create a node pool in an Anthos cluster on AWS.EXAMPLESc                 v   t        j                  | d       t        j                  |        t        j                  | d       t        j
                  |        t        j                  |        t        j                  |        t        j                  | d       t        j                  | d       t        j                  |        t        j                  |        t        j                  | d       t        j                  | d       t        j                  |        t        j                  | d       t!        j"                  | d       t!        j$                  | d       t!        j&                  | d       t!        j(                  | d       t!        j*                  |        t!        j,                  |        t!        j.                  |        t!        j0                  |        t!        j2                  |        t!        j4                  |        t!        j6                  |        t!        j8                  |        t!        j:                  |        t!        j<                  |        t!        j>                  |        t@        jB                  jE                  |        | jF                  jI                  tJ        jL                         y )Nz	to createzthe node poolznode pool to createz	node poolT)
for_create)kind)'r	   AddAwsNodePoolResourceArgr   AddNodeVersionAddSubnetIDAddAutoscalingAddMaxPodsPerNodeAddRootVolumeSizeAddValidateOnlyAddTagsAddNodeLabelsAddNodeTaintsAddAnnotationsAddEnableAutoRepairAddMaxSurgeUpdateAddMaxUnavailableUpdate	aws_flagsAddOnDemandOrSpotInstanceTypeAddSshEC2KeyPairAddIamInstanceProfileAddSecurityGroupIdsAddRootVolumeTypeAddRootVolumeIopsAddRootVolumeThroughputAddRootVolumeKmsKeyArnAddProxyConfigAddConfigEncryptionKmsKeyArnAddAutoScalingMetricsCollection AddKubeletConfigCpuManagerPolicyAddKubeletConfigCpuCfsQuota!AddKubeletConfigCpuCfsQuotaPeriodAddKubeletConfigPodPidsLimitr   
ASYNC_FLAGAddToParserdisplay_info	AddFormatr   AWS_NODEPOOLS_FORMAT)parsertracks     .lib/surface/container/aws/node_pools/create.pyArgszCreate.Args.   s   ++FK@	 	fo.	 	F#	F#	&"78	MM&+&			-	fd+	F#	!!&T:++FEvK8##F=!!&{;''%%f-$$V,V$**62--f5..v6))&1//7**62OO'
!!)"@"@A    c                    t        j                  |      j                  }t        j                  |      5  t        j                  |      }t        j                         }t        j                  |j                  d|j                        }t        j                  ||||t        j                        cddd       S # 1 sw Y   yxY w)zRuns the create command.Creating)actioncluster)resource_refresource_clientargsmessager   N)r	   ParseAwsNodePoolResourceArglocationsIdr   GkemulticloudEndpointOverrideapi_utilNodePoolsClientr
   NodePoolMessageawsNodePoolsIdawsClustersIdr   r   AWS_NODEPOOL_KIND)selfrB   locationnode_pool_refnode_pool_clientrC   s         r9   Runz
Create.RunS   s    88>JJH		4	4X	>#??Em!113,,

&
&--g
   $*** 
?	>	>s   A=B<<CN)__name__
__module____qualname____doc__	_EXAMPLESdetailed_helpstaticmethodr   ReleaseTrackGAr:   rQ    r;   r9   r   r   '   s:     8y)-**-- "B "BHr;   r   c                        e Zd ZdZed        Zy)CreateAlphar   c                     t         j                  | t        j                  j                         t        j                  |        t        j                  |        y)z-Registers alpha track flags for this command.N)	r   r:   r   rY   ALPHAr"   AddInstancePlacementr   AddImageType)r7   s    r9   r:   zCreateAlpha.Argsl   s:     KK))//0""6*	vr;   N)rR   rS   rT   rU   rX   r:   r[   r;   r9   r]   r]   g   s     8 r;   r]   N)rU   
__future__r   r   r   .googlecloudsdk.api_lib.container.gkemulticloudr   rG   googlecloudsdk.callioper   (googlecloudsdk.command_lib.container.awsr   r"   r	   2googlecloudsdk.command_lib.container.gkemulticloudr
   r   r   rV   DefaultUniverseOnlyReleaseTracksrY   rZ   CreateCommandr   r_   r]   r[   r;   r9   <module>rj      s    A &  ' J ( G B K H L D	 D%%(();T ; * ;| D%%++,&  - r;   