
    "                     (   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dlmZ ddlmZ ddlmZ dZ ej6                  ej8                  j:                         G d dej<                               Z ej6                  ej8                  j@                         G d dej<                               Z! ej6                  ej8                  jD                         G d dej<                               Z#y)z2Command to create an Anthos cluster on bare metal.    )absolute_import)division)unicode_literals)Optional)bare_metal_clusters)
operations)base)parser_arguments)cluster_flags)	constants)flags)log)gkeonprem_v1_messagesz}
To create a cluster named ``my-cluster'' managed in location ``us-west1'', run:

$ {command} my-cluster --location=us-west1
c                   h    e Zd ZdZdeiZedej                  fd       Z	de
ej                     fdZy)Create'Create an Anthos cluster on bare metal.EXAMPLESparserc                 h   | j                   j                  t        j                         t	        j
                  | dd       t	        j                  | d       t        j                  j                  |        t	        j                  |        t	        j                  |        t	        j                  |        t	        j                  |        t	        j                  |        t	        j                  |        t	        j                   |        t	        j"                  |        t	        j$                  |        t	        j&                  |        t	        j(                  |        t	        j*                  |        t	        j,                  |        t	        j.                  |        t1        j2                  |        yz|Gathers command line arguments for the create command.

    Args:
      parser: The argparse parser to add the flag to.
    z	to createT)verb
positionalF)r   Ndisplay_info	AddFormatbare_metal_constantsBARE_METAL_CLUSTERS_FORMATbare_metal_flagsAddClusterResourceArg$AddAdminClusterMembershipResourceArgr	   
ASYNC_FLAGAddToParserAddValidationOnlyAddDescriptionAddAnnotations
AddVersionAddNetworkConfigAddLoadBalancerConfigAddStorageConfigAddControlPlaneConfigAddProxyConfigAddClusterOperationsConfigAddMaintenanceConfigAddWorkloadNodeConfigAddSecurityConfigAddNodeAccessConfigr   AddBinauthzEvaluationModer   s    3lib/surface/container/bare_metal/clusters/create.pyArgszCreate.Args/   3    !!77 **[T 995 	OO'&&v.##F+##F+'%%f-**62%%f-**62##F+//7))&1**62&&v.((0	##F+    returnc                    |j                   j                  j                         }t        j                         }|j                  |      }|j                  r&|j                  d      st        j                  |_
        |j                  r|S t        j                         }|j                  |      }|j                  s!t        j                   |d|j                         |S aa  Runs the create command.

    Args:
      args: The arguments received from command line.

    Returns:
      The return value depends on the command arguments. If `--async` is
      specified, it returns an operation; otherwise, it returns the created
      resource. If `--validate-only` is specified, it returns None or any
      possible error.
    formatzAnthos cluster on bare metalCONCEPTSclusterParseapisClustersClientr   async_IsSpecifiedr   OPERATIONS_FORMATr:   r   OperationsClientWaitvalidate_onlyr   CreatedResourceselfargscluster_refcluster_client	operationoperation_clientoperation_responses          r3   Runz
Create.RunP        --''--/K((*N%%d+I{{4++H5//dk{{!224)..y9	
5t{{ r6   N__name__
__module____qualname____doc__	_EXAMPLESdetailed_helpstaticmethodr
   ArgumentInterceptorr4   r   messages	OperationrP    r6   r3   r   r   )   G    /y)-,#77 , ,@("4"45 r6   r   c                   h    e Zd ZdZdeiZedej                  fd       Z	de
ej                     fdZy)
CreateBetar   r   r   c                 h   | j                   j                  t        j                         t	        j
                  | dd       t	        j                  | d       t        j                  j                  |        t	        j                  |        t	        j                  |        t	        j                  |        t	        j                  |        t	        j                  |        t	        j                  |        t	        j                   |        t	        j"                  |        t	        j$                  |        t	        j&                  |        t	        j(                  |        t	        j*                  |        t	        j,                  |        t	        j.                  |        t1        j2                  |        yr   r   r2   s    r3   r4   zCreateBeta.Argsv   r5   r6   r7   c                    |j                   j                  j                         }t        j                         }|j                  |      }|j                  r&|j                  d      st        j                  |_
        |j                  r|S t        j                         }|j                  |      }|j                  s!t        j                   |d|j                         |S r9   r;   rH   s          r3   rP   zCreateBeta.Run   rQ   r6   NrR   r]   r6   r3   r`   r`   p   r^   r6   r`   c                   l    e Zd ZdZdeiZedej                  ddfd       Z	de
ej                     fdZy)CreateAlphar   r   r   r7   Nc                    | j                   j                  t        j                         t	        j
                  | dd       t	        j                  | d       t        j                  j                  |        t	        j                  |        t	        j                  |        t	        j                  |        t	        j                  |        t	        j                  |        t	        j                  |        t	        j                   |        t	        j"                  |        t	        j$                  |        t	        j&                  |        t	        j(                  |        t	        j*                  |        t	        j,                  |        t	        j.                  |        t1        j2                  |        t	        j4                  |        yr   )r   r   r   r   r   r   r    r	   r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r   r1   AddUpgradePolicyr2   s    r3   r4   zCreateAlpha.Args   sA    !!77 **[T 995 	OO'&&v.##F+##F+'%%f-**62%%f-**62##F+//7))&1**62&&v.((0	##F+%%f-r6   c                    |j                   j                  j                         }t        j                         }|j                  |      }|j                  r&|j                  d      st        j                  |_
        |j                  r|S t        j                         }|j                  |      }|j                  s!t        j                   |d|j                         |S r9   r;   rH   s          r3   rP   zCreateAlpha.Run   s     --''--/K((*N%%d+I{{4++H5//dk{{!224)..y9	+'E++'r6   rR   r]   r6   r3   rd   rd      sO    /y)-!.22!.!. !.F("4"45 r6   rd   N)$rV   
__future__r   r   r   typingr   *googlecloudsdk.api_lib.container.gkeonpremr   r?   r   googlecloudsdk.callioper	   r
   /googlecloudsdk.command_lib.container.bare_metalr   r   r   r   .googlecloudsdk.command_lib.container.gkeonpremr   googlecloudsdk.corer   2googlecloudsdk.generated_clients.apis.gkeonprem.v1r   r[   rW   ReleaseTracksReleaseTrackGACreateCommandr   BETAr`   ALPHArd   r]   r6   r3   <module>rv      s    9 &  '  R A ( 4 ] ] D @ # `	 D%%(()CT C *CL D%%**+C## C ,CL D%%++,E$$$ E -Er6   