
                            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  ej$                  ej&                  j(                         G d dej*                               Zy)zCreate a new CA pool.    )absolute_import)division)unicode_literals)base)request_utils)flags)
operations)resource_args)labels_util)logc                   &    e Zd ZdZed        Zd Zy)Createa  Create a new CA Pool.

  ## EXAMPLES

  To create a CA pool in the dev ops tier:

      $ {command} my-pool --location=us-west1 \
          --tier=devops

  To create a CA pool and restrict what it can issue:

      $ {command} my-pool --location=us-west1 \
          --issuance-policy=policy.yaml

  To create a CA pool that doesn't publicly publish CA certificates and CRLs:

      $ {command} my-pool --location=us-west1 \
          --issuance-policy=policy.yaml \
          --no-publish-ca-cert \
          --no-publish-crl
  c                     t        j                  | d       t        j                  |        t        j                  | d       t        j
                  |        t        j                  |        y )Nz	to createF)use_update_help_text)r
   AddCaPoolPositionalResourceArgr   AddTierFlagAddPublishingOptionsFlagsAddCaPoolIssuancePolicyFlagr   AddCreateLabelsFlags)parsers    %lib/surface/privateca/pools/create.pyArgszCreate.Args7   sL    00E	f	##FG	%%f-$$V,    c           	      P   t        j                  d      }t        j                  d      }|j                  j                  j                         }t        j                  |      }t        j                  |      }t        j                  |      }t        j                  ||j                  j                        }|j                  ||||      }	|j                  j                  |j!                  |	|j#                         |j%                         j'                         t)        j*                                     }
t-        j.                  |
dd      }t-        j0                  ||j                        }t2        j4                  j7                  dj9                  |j:                               y )Nv1)issuancePolicypublishingOptionstierlabels)caPoolcaPoolIdparent	requestIdzCreating CA Pool.)api_versionzCreated CA Pool [{}].)privateca_baseGetClientInstanceGetMessagesModuleCONCEPTSca_poolParser   ParseIssuancePolicyParsePublishingOptionsParseTierFlagr   ParseCreateArgsCaPoolLabelsValueprojects_locations_caPoolsr   .PrivatecaProjectsLocationsCaPoolsCreateRequestNameParentRelativeNamer   GenerateRequestIdr	   AwaitGetMessageFromResponser   statusPrintformatname)selfargsclientmessagesca_pool_refissuance_policypublishing_optionsr   r   new_ca_pool	operationca_pool_responser)   s                r   Runz
Create.Run?   s\   --d3F//5H--''--/K//5O55d;t$D((x/J/JKF//&,	 " K
 1188?? %%'%%'446#557	 	@ 	9:I "''&D://0@08AG JJ,33GLLABr   N)__name__
__module____qualname____doc__staticmethodr   rG    r   r   r   r      s!    , - -Cr   r   N)rK   
__future__r   r   r    googlecloudsdk.api_lib.privatecar   r%   r   googlecloudsdk.calliope$googlecloudsdk.command_lib.privatecar   r	   r
   $googlecloudsdk.command_lib.util.argsr   googlecloudsdk.corer   ReleaseTracksReleaseTrackGACreateCommandr   rM   r   r   <module>rX      sh     &  ' C : ( 6 ; > < # D%%(()9CT 9C *9Cr   