Ë
    €Ï¥  ã                   ó–   — 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	„Zdd
„Zdd„Zdd„Zdd„Zd„ Zd„ Zd„ Zy)zHooks for Privateca surface.é    )Úabsolute_import)Údivision)Úunicode_literals)Úbase)Úrequest_utils)Úresource_args)Útimesc                 ó   ‡ — ˆ fd„}|S )z<Raises an exception if the response is not a subordinate ca.c                 óœ   •— t        j                  t        j                  ‰¬«      j                  j
                  j                  | ‰¬«       | S ©N©Úapi_version)Úversion)r   ÚCheckExpectedCATyper   ÚGetMessagesModuleÚCertificateAuthorityÚTypeValueValuesEnumÚSUBORDINATE©ÚresponseÚunused_argsr   s     €ú1lib/googlecloudsdk/command_lib/privateca/hooks.pyÚ)CheckResponseSubordinateTypeHookVersionedzSCheckResponseSubordinateTypeHook.<locals>.CheckResponseSubordinateTypeHookVersioned   s?   ø€ Ü×%Ñ%Ü×ÑØô	
ç
Ñ
×2Ñ2·;±;ØØõð €Oó    © )r   r   s   ` r   Ú CheckResponseSubordinateTypeHookr      s   ø€ ô	ð 
3Ð2r   c                 ó   ‡ — ˆ fd„}|S )z5Raises an exception if the response is not a root ca.c                 óœ   •— t        j                  t        j                  ‰¬«      j                  j
                  j                  | ‰¬«       | S r   )r   r   r   r   r   r   ÚSELF_SIGNEDr   s     €r   Ú"CheckResponseRootTypeHookVersionedzECheckResponseRootTypeHook.<locals>.CheckResponseRootTypeHookVersioned/   s?   ø€ Ü×%Ñ%Ü×ÑØô	
ç
Ñ
×2Ñ2·;±;ØØõð €Or   r   )r   r    s   ` r   ÚCheckResponseRootTypeHookr!   ,   s   ø€ ôð 
,Ð+r   c                 óú   — t        j                  |¬«      }t        j                  |¬«      }|j                  j	                  |j                  | j                  «       ¬«      «      }t        j                  ||«       y)zCDo a get on a CA resource and check its type against expected_type.r   )ÚnameN)	r   ÚGetClientInstancer   Ú1projects_locations_caPools_certificateAuthoritiesÚGetÚAPrivatecaProjectsLocationsCaPoolsCertificateAuthoritiesGetRequestÚRelativeNamer   r   )Úresource_refÚexpected_typer   ÚclientÚmessagesÚcertificate_authoritys         r   Ú_CheckRequestTypeHookr.   <   sl   € ä×!Ñ!¨gÔ6€&Ü×#Ñ#°Ô8€(Ø ×RÑR×VÑVØ×PÑPØ×(Ñ(Ó*ð Qó óÐô ×#Ñ# MÐ3HÕIr   c                 ó   ‡ — ˆ fd„}|S )z8Raises an exception if the request is not for a root ca.c                 ó„   •— t        | t        j                  ‰¬«      j                  j                  j
                  «       |S ©Nr   )r.   r   r   r   r   r   ©r)   r   Úrequestr   s      €r   Ú!CheckRequestRootTypeHookVersionedzCCheckRequestRootTypeHook.<locals>.CheckRequestRootTypeHookVersionedL   s6   ø€ ÜØÜ×ÑØô	
ç
Ñ
×2Ñ2·;±;ô	ð €Nr   r   )r   r4   s   ` r   ÚCheckRequestRootTypeHookr5   I   s   ø€ ôð 
+Ð*r   c                 ó   ‡ — ˆ fd„}|S )z?Raises an exception if the request is not for a subordinate ca.c                 ó„   •— t        | t        j                  ‰¬«      j                  j                  j
                  «       |S r1   )r.   r   r   r   r   r   r2   s      €r   Ú(CheckRequestSubordinateTypeHookVersionedzQCheckRequestSubordinateTypeHook.<locals>.CheckRequestSubordinateTypeHookVersioned\   s8   ø€ ô ØÜ×ÑØô	
ç
Ñ
×2Ñ2·;±;ô	ð €Nr   r   )r   r8   s   ` r   ÚCheckRequestSubordinateTypeHookr9   Y   s   ø€ ô	ð 
2Ð1r   c                 ó8   — t        j                  «       |_        |S )z?Fills a unique identifier for a request with a requestId field.)r   ÚGenerateRequestIdÚ	requestId)Ú
unused_refr   r3   s      r   ÚAddRequestIdHookr>   j   s   € ä#×5Ñ5Ó7€'ÔØ	€.r   c                 óT   — t        j                  t        j                  | d«      «      S )zFConvert a given 'proto duration' string to an ISO8601 duration string.T)r	   ÚFormatDurationÚParseDuration)Úproto_duration_strs    r   Ú_ConvertProtoToIsoDurationrC   p   s!   € ä	×	Ñ	œe×1Ñ1Ð2DÀdÓKÓ	LÐLr   c                 óZ  — | j                   rt        | j                   «      | _         | j                  rx| j                  j                  rb| j                  j                  j                   rBt        | j                  j                  j                   «      | j                  j                  _         | S )zEConverts certificate lifetimes from proto duration format to ISO8601.)ÚlifetimerC   ÚcertificateDescriptionÚsubjectDescription)r   r   s     r   Ú#ConvertCertificateLifetimeToIso8601rH   u   s‡   € ð ×ÒÜ2°8×3DÑ3DÓE€HÔà×%Ò%Ø
×
)Ñ
)×
<Ò
<Ø
×
)Ñ
)×
<Ñ
<×
EÒ
Eô 	#Ø×+Ñ+×>Ñ>×GÑGó	
ð ×#Ñ#×6Ñ6Ô?ð 
€/r   N)Úv1)Ú__doc__Ú
__future__r   r   r   Ú googlecloudsdk.api_lib.privatecar   r   Ú$googlecloudsdk.command_lib.privatecar   Úgooglecloudsdk.core.utilr	   r   r!   r.   r5   r9   r>   rC   rH   r   r   r   Ú<module>rO      sI   ðñ #å &Ý Ý 'å 1Ý :Ý >Ý *ó3ó",ó 
Jó+ó 2ò"òMó
r   