
    q)                        S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r   " S S	\5      r " S
 S\5      r\R                  S\R                   S\R"                  S\R$                  S\R&                  S\R(                  S\R*                  S\R,                  S\R.                  S\R0                  S\R2                  S\R4                  S\R6                  S\R8                  S0r " S S\5      r " S S\5      r " S S\5      r  " S S\5      r! " S S\5      r" " S S \5      r# " S! S"\5      r$ " S# S$\5      r% " S% S&\5      r& " S' S(\5      r' " S) S*\5      r( " S+ S,\5      r)g)-z0Data objects to support the yaml command schema.    )absolute_import)division)unicode_literals)Enum)base)yaml_command_schema_utilc                       \ rS rSrSrS rSrg)CommandData   z0A general holder object for yaml command schema.c                    SSK Jn  UR                  SS5      U l        UR                  SS5      U l        UR                  SS 5      U l        UR                  S/ 5       Vs/ s H"  n[        R                  R                  U5      PM$     snU l	        [        R                  UR                  SU5      5      U l        US	   U l        S U l        S U l        S n[        R!                  U R                  5      (       aL  UR                  S
5      n[#        U R                  U5      U l        [%        UR                  S0 5      5      U l        UR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      n	UR                  S5      n
U R                  [        R&                  :X  a  U(       d  [(        R*                  " S5      eU(       a  [-        U5      OS U l        U(       a  [1        U5      OS U l        UR5                  US   U5      U l        [9        U R                  UR                  S0 5      5      U l        [=        UR                  S0 5      5      U l        U(       a  [A        U5      OS U l!        U	(       a  [E        U	5      OS U l#        U
(       a  [I        XU5      OS U l%        UR                  S5      U l&        g s  snf )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__CommandData.__init__   s:   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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    )K)r   r,   r   r   r5   r   r   r   r   r4   r   r   r   r   r   r   r   N__name__
__module____qualname____firstlineno____doc__rA   __static_attributes__     r@   r
   r
      s
    8$1rK   r
   c                       \ rS rSrSrSrSrSrSrSr	Sr
S	rS
rSrSrSrSrSrSr\S 5       r\S 5       r\S 5       rSrg)r#   F   z9An enum for the types of commands the generator supports.                        	   
               c                 ,    [         R                  U 5      $ )z=Returns the default API method name for this type of command.) _DEFAULT_METHODS_BY_COMMAND_TYPEr    )r6   s    r@   default_methodCommandType.default_methodW   s     ,//55rK   c                 r     [         UR                  5          $ ! [         a    [         R                  s $ f = fN)r#   upperKeyErrorGENERIC)clsr7   s     r@   r$   CommandType.ForName\   s3    !&& !   !s    66c                 $    U R                   1nX;  $ ra   )CONFIG_EXPORT)re   r7   methodless_commandss      r@   r%   CommandType.HasRequestMethodc   s    ,,-**rK   rJ   N)rD   rE   rF   rG   rH   DESCRIBELISTDELETEIMPORTEXPORTrh   CREATEr(   UPDATEGET_IAM_POLICYSET_IAM_POLICYADD_IAM_POLICY_BINDINGREMOVE_IAM_POLICY_BINDINGrd   propertyr^   classmethodr$   r%   rI   rJ   rK   r@   r#   r#   F   s    A(	
$&&&-&	
$&.. '6 6 ! ! + +rK   r#   r    listdeletepatchconfig_exportcreategetIamPolicysetIamPolicyNc                       \ rS rSrSrS rSrg)r&      zFA holder object for api request information specified in yaml command.c                 P   UR                  S5      n[        U[        5      (       a  X0l        OU/U l        UR                  S5      U l        UR                  S5      U l        UR                  S5      U l        UR                  SUR                  5      U l        U R                  (       d  [        R                  " S5      eUR                  SS5      U l        UR                  S	0 5      U l        UR                  S
/ 5       Vs/ s H"  n[        R                  R                  U5      PM$     snU l        [        R                  R!                  US5      U l        [        R                  R!                  US5      U l        [        R                  R!                  US5      U l        g s  snf )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    
isinstancerx   collectionsr   r   r   r^   r   r)   r*   r   r   HookFromPathr   FromDatar   r   r   )r6   r   r8   r   ps        r@   rA   Request.__init__   sP   ,'J*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   )F#)r   r   r   r   r   r   r   r   r   r   r   NrC   rJ   rK   r@   r&   r&      s    NMrK   r&   c                       \ rS rSrSrS rSrg)r'      zGA holder object for api response information specified in yaml command.c                 &   UR                  S5      U l        UR                  S5      U l        SU;   a  [        US   5      OS U l        UR                  S/ 5       Vs/ s H"  n[
        R                  R                  U5      PM$     snU l        g s  snf )Nid_fieldresult_attributeerrormodify_response_hooks)	r    r   r   ResponseErrorr   r)   r   r   r   )r6   r8   r   s      r@   rA   Response.__init__   s|    HHZ(DM HH%78D18DtG}-dDJ'+xx0G'L"N'L!		1'L"ND "Ns   )B)r   r   r   r   NrC   rJ   rK   r@   r'   r'      s    ONrK   r'   c                       \ rS rSrS rSrg)r      c                     UR                  SS5      U l        UR                  S5      U l        UR                  S5      U l        g )Nfieldr   codemessage)r    r   r   r   r6   r8   s     r@   rA   ResponseError.__init__   s4    '7+DJ DI88I&DLrK   )r   r   r   NrD   rE   rF   rG   rA   rI   rJ   rK   r@   r   r      s    'rK   r   c                       \ rS rSrSrS rSrg)r+      zDA holder object for api async information specified in yaml command.c                    UR                  S5      n[        U[        5      (       a  X l        OU/U l        UR                  S5      U l        UR                  SS5      U l        UR                  S5      U l        UR                  SS5      U l        UR                  SS	5      U l        UR                  S
0 5      U l	        UR                  S5      U l
        [        UR                  S0 5      5      U l        [        UR                  S0 5      5      U l        UR                  S/ 5       Vs/ s H"  n[        R                   R#                  U5      PM$     snU l        g s  snf )Nr   r   r   r    request_issued_messageresponse_name_fieldr7   extract_resource_resultToperation_get_method_paramsr   stater   r   )r    r   rx   r   r   r   r   r   r   r   r   AsyncStateFieldr   AsyncErrorFieldr   r)   r   r   r   )r6   r8   r   r   s       r@   rA   Async.__init__   s    ,'J*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)r   r   r   r   r   r   r   r   r   r   r   NrC   rJ   rK   r@   r+   r+      s    LMrK   r+   c                       \ rS rSrSrS rSrg)r-      zFA holder object for IAM related information specified in yaml command.c                    UR                  S0 5      U l        UR                  S5      U l        UR                  SS5      U l        UR                  SS5      U l        UR                  SS 5      U l        UR                  SS5      U l        g )	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@   rA   IamData.__init__   s~    "&((+CR"HD'+xx0M'ND$ HH%7?D%)XX.I.3&5D"((#3T:D'+xx%((*D$rK   )r   r   r   r   r   r   NrC   rJ   rK   r@   r-   r-      s
    N	*rK   r-   c                       \ rS rSrS rSrg)r      c                     UR                  SS5      U l        UR                  SS/5      U l        UR                  S/ 5      U l        g )Nr   donesuccess_valuesTerror_values)r    r   r   r   r   s     r@   rA   AsyncStateField.__init__   s=    '6*DJ((#3dV<D4DrK   )r   r   r   Nr   rJ   rK   r@   r   r      s    5rK   r   c                       \ rS rSrS rSrg)r      c                 2    UR                  SS5      U l        g )Nr   r   )r    r   r   s     r@   rA   AsyncErrorField.__init__   s    '7+DJrK   )r   Nr   rJ   rK   r@   r   r      s    ,rK   r   c                       \ rS rSrS rSrg)r/      c                    UR                  S5      U l        UR                  SS5      U l        U R                  (       dH  U[        R                  L a4  SR                  [        R                  [        R                  5      U l        g g g )Nconfirmation_promptdefault_continueTz'You are about to delete {{{}}} [{{{}}}])	r    r   r   r#   rm   formatr)   RESOURCE_TYPE_FORMAT_KEYNAME_FORMAT_KEY)r6   r   r8   s      r@   rA   Input.__init__   so    #xx(=>D HH%7>D##8J8J(J
3
:
:++T-A-AC  )K#rK   )r   r   Nr   rJ   rK   r@   r/   r/      s    DrK   r/   c                       \ rS rSrS rSrg)r0      c                 \    UR                  S5      U l        UR                  S5      U l        g )Nr   flatten)r    r   r   r   s     r@   rA   Output.__init__   s"    ((8$DK88I&DLrK   )r   r   Nr   rJ   rK   r@   r0   r0      s    'rK   r0   c                       \ rS rSrSrS rSrg)r1      z(A holder object for yaml update command.c                     UR                  SS 5      U l        UR                  SS5      U l        UR                  SS5      U l        g )N
mask_fieldread_modify_updateFdisable_auto_field_mask)r    r   r   r   r   s     r@   rA   UpdateData.__init__   s<    hh|T2DO"hh';UCD#'88,Eu#MD rK   )r   r   r   NrC   rJ   rK   r@   r1   r1      s    0NrK   r1   c                       \ rS rSrSrS rSrg)r2      z%A holder object for generic commands.c                 2    UR                  SS5      U l        g )Ndisable_paging_flagsF)r    r   r   s     r@   rA   GenericData.__init__   s     $)? GDrK   )r   NrC   rJ   rK   r@   r2   r2      s    -HrK   r2   c                   $    \ rS rSrSrS rS rSrg)r3   i  z(A holder object for yaml import command.c                    UR                  SS5      U l        UR                  SS5      U l        UR                  SS5      U l        UR                  SS 5      nU(       a1  U R	                  XB5      n[        [        R                  U5      U l        OS U l        UR                  SS 5      nU(       a"  U R	                  Xc5      n[        U5      U l
        g S U l
        g )Nabort_if_equivalentFcreate_if_not_existsno_create_asynccreate_requestcreate_async)r    r   r   r   _OverlayDatar&   r#   rp   r   r+   r   )r6   r8   orig_request
orig_asyncr   overlayed_create_requestr   overlayed_create_asyncs           r@   rA   ImportData.__init__  s    #xx(=uED $)? GD88$5u=D XX.5N!%!2!2>!P#K$6$6$<>d !d 88ND1L#00J 67ddrK   c                 p    UR                  5        H!  u  p4UR                  U5      =(       d    UX'   M#     U$ )zDUses data from the original configuration unless explicitly defined.)itemsr    )r6   create_data	orig_datakvs        r@   r   ImportData._OverlayData  s0    !"q).Qkn "rK   )r   r   r   r   r   N)rD   rE   rF   rG   rH   rA   r   rI   rJ   rK   r@   r3   r3     s    0.rK   r3   )*rH   
__future__r   r   r   enumr   googlecloudsdk.callioper   r   r   r)   objectr
   r#   rk   rl   rm   rn   ro   rh   rp   r(   rq   rr   rs   rt   ru   rd   r]   r&   r'   r   r+   r-   r   r   r/   r0   r1   r2   r3   rJ   rK   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 rK   