
    g                         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KrS	S
SSSSSSSSSS.rS	S
SS.rS rS&S jrS\0rS rSSSS.rS'S jrS S!S"S.rS(S# jr " S$ S%\5      rg))z,Command utilities for `gcloud dns dns-keys`.    )encoding)dns_keys)util)apis)base)flagsN                     
            )rsamd5dhdsarsasha1dsansec3sha1rsasha1nsec3sha1	rsasha256	rsasha512eccgostecdsap256sha256ecdsap384sha384   )sha1sha256sha384c                 x   [         R                  " U R                  5      n[         R                  " [        U R                  R
                     5      n[         R                  " [        U R                  S   R                  R
                     5      nU R                  S   R                  nSR                  XX4/5      $ )Nr    )six	text_typekeyTagALGORITHM_NUMBERS	algorithmnameDIGEST_TYPE_NUMBERSdigeststypedigestjoin)keykey_tagkey_algorithmdigest_algorithmr.   s        .lib/googlecloudsdk/command_lib/dns/dns_keys.py_GenerateDSRecordr5   2   s    MM#**%'-- 1#--2D2D EF-]]#++a.--2235;;q>  &	7+;D	EE    c                     [         R                  " SS5      n[        R                  " XR                  5      n [        U5      $ ! [         a    Us $ f = f)Ndnsv1)r   GetMessagesModuler   DictToMessageDnsKeyr5   AttributeError)r	undefinedmessagesr0   s       r4   TransformDSRecordrA   ;   sM    ##E40(q//2#S!!	 s   
A AA	ds_recordc                      [         $ N)_TRANSFORMS r6   r4   GetTransformsrG   F   s    	r6   z&Show details about a DNS key resource.z?This command displays the details of a single DNS key resource.aw          To show details about a DNS key resource with ID 3 in a managed zone
        `my_zone`, run:

          $ {command} --zone=my_zone 3

        To get the DS record corresponding for the DNSKEY record from the
        previous example, run (the DNSKEY record must be for a key-signing key):

          $ {command} --zone=my_zone 3 --format='value(ds_record())'
        )briefDESCRIPTIONEXAMPLESc                     [         R                  " SUS9R                  U 5        [         R                  " US9R                  U 5        U R                  R                  [        5       5        g )Nz9The name of the managed-zone the DNSKEY record belongs tohide_short_zone_flag)is_beta)r   
GetZoneArgAddToParser	GetKeyArgdisplay_infoAddTransformsrG   )parserrM   rN   s      r4   AddDescribeFlagsrU   \   sM    A/11<V1D//'"..v6##MO4r6   zList DNS key resources.z)List DNS key resources in a managed zone.aS          To see the list of all DNS key resources for a managed zone `my_zone`,
        run:

          $ {command} --zone=my_zone

        To see the DS records for every key-signing DnsKey in a managed zone,
        run:

          $ {command} --zone=my_zone --filter='type=keySigning'               --format='value(ds_record())'
        c                 z   U R                   R                  S5        [        R                  R	                  U 5        [        R
                  R	                  U 5        [        R                  " SUS9R                  U 5        U R                   R                  S 5        U R                   R                  [        5       5        g )Nz*table(id,keyTag,type,isActive,description)zAThe name of the managed-zone you want to list DNSKEY records for.rL   )rR   	AddFormatr   URI_FLAGRemoveFromParserPAGE_SIZE_FLAGr   rO   rP   AddCacheUpdaterrS   rG   )rT   rM   s     r4   AddListFlagsr\   v   s     LM--  (&&v.I/11<V1D%%d+##MO4r6   c                   L    \ rS rSrSrS rS rS rS rS r	S r
\S	 5       rS
rg)Keys   z(Wrapper object for DNS DNSKEYs commands.c                     Xl         X l        g rD   _keys_client_version)selfkeys_clientversions      r4   __init__Keys.__init__   s    #Mr6   c                 B    [         R                  " U R                  5      $ rD   )r   GetRegistryrc   )rd   s    r4   _GetRegistryKeys._GetRegistry   s    DMM**r6   c                 F    U R                  5       R                  UUUS.SS9$ )N)projectmanagedZonezdns.dnsKeysparams
collectionrk   Parse)rd   key_idzonern   s       r4   _ParseDnsKeyKeys._ParseDnsKey   s6    $$
 ! % " "r6   c                 D    U R                  5       R                  USU0SS9$ )Nrn   zdns.managedZonesrp   rs   )rd   zone_idrn   s      r4   
_ParseZoneKeys._ParseZone   s5    $$w
 & % ' 'r6   c                 \    U R                  XU5      nU R                  R                  U5      $ )z;Calls Get on the DNS DnsKeys API with the given parameters.)rw   rb   Get)rd   ru   rv   rn   key_refs        r4   DescribeKeys.Describe   s+    g6G  ))r6   c                 Z    U R                  X5      nU R                  R                  U5      $ rD   )r{   rb   List)rd   rz   rn   zone_refs       r4   r   	Keys.List   s'    w0H!!(++r6   c                 N    U " [         R                  R                  U5      U5      $ rD   )r   ClientFromApiVersion)clsrf   s     r4   r   Keys.FromApiVersion   s    x--g6@@r6   ra   N)__name__
__module____qualname____firstlineno____doc__rg   rk   rw   r{   r   r   classmethodr   __static_attributes__rF   r6   r4   r^   r^      s9    0+"'*
, A Ar6   r^   ) )FF)F)r   apitools.base.pyr   googlecloudsdk.api_lib.dnsr   r   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper   googlecloudsdk.command_lib.dnsr   r%   r(   r+   r5   rA   rE   rG   DESCRIBE_HELPrU   	LIST_HELPr\   objectr^   rF   r6   r4   <module>r      s    3 & / + , ( 0 
 
    F -.
 6 
	$5 '>	$5&A6 &Ar6   