
    q)                        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  G d d	e      Z G d
 de      Zej                  dej                   dej"                  dej$                  dej&                  dej(                  dej*                  dej,                  dej.                  dej0                  dej2                  dej4                  dej6                  dej8                  diZ G d de      Z G d de      Z G d de      Z  G d de      Z! G d de      Z" G d d e      Z# G d! d"e      Z$ G d# d$e      Z% G d% d&e      Z& G d' d(e      Z' G d) d*e      Z( G d+ d,e      Z)y)-z0Data objects to support the yaml command schema.    )absolute_import)division)unicode_literals)Enum)base)yaml_command_schema_utilc                       e Zd ZdZd Zy)CommandDataz0A general holder object for yaml command schema.c                 Z   ddl m} |j                  dd      | _        |j                  dd      | _        |j                  dd       | _        |j                  dg       D cg c]!  }t        j                  j                  |      # c}| _	        t        j                  |j                  d|            | _        |d	   | _        d | _        d | _        d }t        j!                  | j                        rL|j                  d
      }t#        | j                  |      | _        t%        |j                  di             | _        |j                  d      }|j                  d      }|j                  d      }|j                  d      }	|j                  d      }
| j                  t        j&                  k(  r|st)        j*                  d      |rt-        |      nd | _        |rt1        |      nd | _        |j5                  |d   |      | _        t9        | j                  |j                  di             | _        t=        |j                  di             | _        |rtA        |      nd | _!        |	rtE        |	      nd | _#        |
rtI        |
||      nd | _%        |j                  d      | _&        y c c}w )Nr   )yaml_arg_schemahiddenFauto_generateduniverse_compatiblerelease_trackscommand_type	help_textrequestresponseasynciamupdategenericimportz,Wait commands must include an async section.	argumentsinputoutput	deprecate)'$googlecloudsdk.command_lib.util.apisr   getr   r   r   r   ReleaseTrackFromIdr   CommandTypeForNamer   r   r   r   HasRequestMethodRequestResponseWAITutilInvalidSchemaErrorAsyncasync_IamDatar   	Argumentsr   Inputr   Outputr   
UpdateDatar   GenericDatar   
ImportDataimport_deprecated_data)selfnamedatar   irequest_data
async_dataiam_dataupdate_datageneric_dataimport_datas              ?lib/googlecloudsdk/command_lib/util/apis/yaml_command_schema.py__init__zCommandData.__init__   s9   D((8U+DK((#3U;D#xx(=tDD-1XX6F-K-K  #-KD $++DHH^T,JKD+&DNDLDML##D$5$56XXi(lT..=dltxx
B78dm'"JxxH((8$K88I&L((8$KK,,,Z##
8: :'1%
#tDK$,wx $DH$..tK/@,ODNt(($((7B*?@DJ(B/0DK-8*[)dDK0<;|,$DL-8 k<(*>B 	L88K0D;s    &J(N__name__
__module____qualname____doc__r@        r?   r
   r
      s
    8$1rG   r
   c                   x    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZed        Zed        Zed        Zy)r"   z9An enum for the types of commands the generator supports.                        	   
               c                 ,    t         j                  |       S )z=Returns the default API method name for this type of command.) _DEFAULT_METHODS_BY_COMMAND_TYPEr   )r5   s    r?   default_methodzCommandType.default_methodW   s     ,//55rG   c                 p    	 t         |j                            S # t        $ r t         j                  cY S w xY wN)r"   upperKeyErrorGENERIC)clsr6   s     r?   r#   zCommandType.ForName\   s3    !&& !   !s    55c                 $    | j                   h}||vS r[   )CONFIG_EXPORT)r_   r6   methodless_commandss      r?   r$   zCommandType.HasRequestMethodc   s    ,,-***rG   N)rB   rC   rD   rE   DESCRIBELISTDELETEIMPORTEXPORTra   CREATEr'   UPDATEGET_IAM_POLICYSET_IAM_POLICYADD_IAM_POLICY_BINDINGREMOVE_IAM_POLICY_BINDINGr^   propertyrY   classmethodr#   r$   rF   rG   r?   r"   r"   F   s    A(	
$&&&-&	
$&.. '6 6 ! ! + +rG   r"   r   listdeletepatchconfig_exportcreategetIamPolicysetIamPolicyNc                       e Zd ZdZd Zy)r%   zFA holder object for api request information specified in yaml command.c                 6   |j                  d      }t        |t              r|| _        n|g| _        |j                  d      | _        |j                  d      | _        |j                  d      | _        |j                  d|j                        | _        | j                  st        j                  d      |j                  dd      | _        |j                  d	i       | _        |j                  d
g       D cg c]!  }t        j                  j                  |      # c}| _        t        j                  j!                  |d      | _        t        j                  j!                  |d      | _        t        j                  j!                  |d      | _        y c c}w )N
collectiondisable_resource_checkdisplay_resource_typeapi_versionmethodzOrequest.method was not specified and there is no default for this command type.disable_paginationFstatic_fieldsmodify_request_hookscreate_request_hookmodify_method_hookissue_request_hook)r   
isinstancerp   collectionsrz   r{   r|   rY   r}   r(   r)   r~   r   HookFromPathr   FromDatar   r   r   )r5   r   r7   ry   ps        r?   r@   zRequest.__init__   sO   ,'J*d##d$d"&((+C"DD!%*A!BDxx.D((8\%@%@ADK;;##  #hh';UCD/26D'+xx0F'K!M'K!		1'K!MD#yy11$8MND"ii007KLD"ii007KLD	!Ms   8&FNrA   rF   rG   r?   r%   r%      s    NMrG   r%   c                       e Zd ZdZd Zy)r&   zGA holder object for api response information specified in yaml command.c                    |j                  d      | _        |j                  d      | _        d|v rt        |d         nd | _        |j                  dg       D cg c]!  }t
        j                  j                  |      # c}| _        y c c}w )Nid_fieldresult_attributeerrormodify_response_hooks)	r   r   r   ResponseErrorr   r(   r   r   r   )r5   r7   r   s      r?   r@   zResponse.__init__   s|    HHZ(DM HH%78D18DtG}-dDJ'+xx0G'L"N'L!		1'L"ND "Ns   &B	NrA   rF   rG   r?   r&   r&      s    ONrG   r&   c                       e Zd Zd Zy)r   c                     |j                  dd      | _        |j                  d      | _        |j                  d      | _        y )Nfieldr   codemessage)r   r   r   r   r5   r7   s     r?   r@   zResponseError.__init__   s4    '7+DJ DI88I&DLrG   NrB   rC   rD   r@   rF   rG   r?   r   r      s    'rG   r   c                       e Zd ZdZd Zy)r*   zDA holder object for api async information specified in yaml command.c                    |j                  d      }t        |t              r|| _        n|g| _        |j                  d      | _        |j                  dd      | _        |j                  d      | _        |j                  dd      | _        |j                  dd	      | _        |j                  d
i       | _	        |j                  d      | _
        t        |j                  di             | _        t        |j                  di             | _        |j                  dg       D cg c]!  }t        j                   j#                  |      # c}| _        y c c}w )Nry   r|   r}   r   request_issued_messageresponse_name_fieldr6   extract_resource_resultToperation_get_method_paramsr   stater   r   )r   r   rp   r   r|   r}   r   r   r   r   r   AsyncStateFieldr   AsyncErrorFieldr   r(   r   r   r   )r5   r7   ry   r   s       r?   r@   zAsync.__init__   s   ,'J*d##d$dxx.D((8U+DK"&((+C"DD#xx(=vFD#'88,Et#LD '+xx%r(+D$ HH%78D '2!67DJ '2!67DJ'+xx0F'K!M'K!		1'K!MD !Ms   $&ENrA   rF   rG   r?   r*   r*      s    LMrG   r*   c                       e Zd ZdZd Zy)r,   zFA holder object for IAM related information specified in yaml command.c                    |j                  di       | _        |j                  d      | _        |j                  dd      | _        |j                  dd      | _        |j                  dd       | _        |j                  dd      | _        y )	Nmessage_type_overridesset_iam_policy_request_pathenable_conditionFhide_special_member_typespolicy_versionget_iam_policy_version_pathzoptions.requestedPolicyVersion)r   r   r   r   r   r   r   r   s     r?   r@   zIamData.__init__   s~    "&((+CR"HD'+xx0M'ND$ HH%7?D%)XX.I.3&5D"((#3T:D'+xx%((*D$rG   NrA   rF   rG   r?   r,   r,      s
    N	*rG   r,   c                       e Zd Zd Zy)r   c                     |j                  dd      | _        |j                  ddg      | _        |j                  dg       | _        y )Nr   donesuccess_valuesTerror_values)r   r   r   r   r   s     r?   r@   zAsyncStateField.__init__   s=    '6*DJ((#3dV<D4DrG   Nr   rF   rG   r?   r   r      s    5rG   r   c                       e Zd Zd Zy)r   c                 2    |j                  dd      | _        y )Nr   r   )r   r   r   s     r?   r@   zAsyncErrorField.__init__   s    '7+DJrG   Nr   rF   rG   r?   r   r      s    ,rG   r   c                       e Zd Zd Zy)r.   c                    |j                  d      | _        |j                  dd      | _        | j                  sG|t        j                  u r4dj                  t        j                  t        j                        | _        y y y )Nconfirmation_promptdefault_continueTz'You are about to delete {{{}}} [{{{}}}])	r   r   r   r"   re   formatr(   RESOURCE_TYPE_FORMAT_KEYNAME_FORMAT_KEY)r5   r   r7   s      r?   r@   zInput.__init__   so    #xx(=>D HH%7>D##8J8J(J
3
:
:++T-A-AC  )K#rG   Nr   rF   rG   r?   r.   r.      s    DrG   r.   c                       e Zd Zd Zy)r/   c                 \    |j                  d      | _        |j                  d      | _        y )Nr   flatten)r   r   r   r   s     r?   r@   zOutput.__init__   s"    ((8$DK88I&DLrG   Nr   rF   rG   r?   r/   r/      s    'rG   r/   c                       e Zd ZdZd Zy)r0   z(A holder object for yaml update command.c                     |j                  dd       | _        |j                  dd      | _        |j                  dd      | _        y )N
mask_fieldread_modify_updateFdisable_auto_field_mask)r   r   r   r   r   s     r?   r@   zUpdateData.__init__   s<    hh|T2DO"hh';UCD#'88,Eu#MD rG   NrA   rF   rG   r?   r0   r0      s    0NrG   r0   c                       e Zd ZdZd Zy)r1   z%A holder object for generic commands.c                 2    |j                  dd      | _        y )Ndisable_paging_flagsF)r   r   r   s     r?   r@   zGenericData.__init__   s     $)? GDrG   NrA   rF   rG   r?   r1   r1      s    -HrG   r1   c                       e Zd ZdZd Zd Zy)r2   z(A holder object for yaml import command.c                    |j                  dd      | _        |j                  dd      | _        |j                  dd      | _        |j                  dd       }|r2| j	                  ||      }t        t        j                  |      | _        nd | _        |j                  dd       }|r#| j	                  ||      }t        |      | _
        y d | _
        y )Nabort_if_equivalentFcreate_if_not_existsno_create_asynccreate_requestcreate_async)r   r   r   r   _OverlayDatar%   r"   rh   r   r*   r   )r5   r7   orig_request
orig_asyncr   overlayed_create_requestr   overlayed_create_asyncs           r?   r@   zImportData.__init__  s    #xx(=uED $)? GD88$5u=D XX.5N!%!2!2><!P#K$6$6$<>d !d 88ND1L#00zJ 67ddrG   c                 f    |j                         D ]  \  }}|j                  |      xs |||<    |S )zDUses data from the original configuration unless explicitly defined.)itemsr   )r5   create_data	orig_datakvs        r?   r   zImportData._OverlayData  s4    !1"q).Qk!n "rG   N)rB   rC   rD   rE   r@   r   rF   rG   r?   r2   r2     s    0.rG   r2   )*rE   
__future__r   r   r   enumr   googlecloudsdk.callioper   r   r   r(   objectr
   r"   rc   rd   re   rf   rg   ra   rh   r'   ri   rj   rk   rl   rm   r^   rX   r%   r&   r   r*   r,   r   r   r.   r/   r0   r1   r2   rF   rG   r?   <module>r      sz    7 &  '  ( Q'1& '1T +$  +H %fe &&))> '$  .Mf M4Nv N'F 'MF M.*f *5f 5,f ,DF D'V 'N NH& H rG   