
    9                     V   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  ej                  ej                   j"                  ej                   j$                  ej                   j&                        ej(                   G d
 dej*                                      Zy)z&gcloud dns record-sets update command.    )absolute_import)division)unicode_literals)resource_record_sets)util)apis)base)flagsc                   6    e Zd ZdZed        Zed        Zd Zy)Updatea  Updates a record-set in a managed-zone.

  This command updates a record-set contained within the specified
  managed-zone.

  ## EXAMPLES

  To update a record-set with dnsName foo.bar.com., record type A to have rrdata
  [1.2.3.4, 9.8.7.6] and ttl 60 in my_zone, run:

    $ {command} foo.bar.com. --rrdatas=1.2.3.4,9.8.7.6 --type=A --ttl=60
       --zone=my_zone

  To update a record-set with dnsName foo.bar.com., record type A to have rrdata
  [1.2.3.4, 9.8.7.6] and ttl 60 in my_zone that is located in us-east1-a, run:

    $ {command} foo.bar.com. --rrdatas=1.2.3.4,9.8.7.6 --type=A --ttl=60
       --zone=my_zone --location=us-east1-a
  c                     | j                         t        j                   j                  t        j                   j                  fv S )N)ReleaseTrackr	   BETAALPHA)clss    %lib/surface/dns/record_sets/update.py_IsBetaOrAlphazUpdate._IsBetaOrAlpha5   s:    $"3"3"8"8"&"3"3"9"9"; ; ;    c                    t        j                         j                  |       t        j                         j                  |       t        j                         j                  |       t        j
                  d      j                  |       t        j                  d      j                  |       t        j                  | j                               j                  |       |j                  j                  d        |j                  j                  t         j                         |j                  j                  t         j                         y )NTF)use_deprecated_names)r
   
GetZoneArgAddToParserGetLocationArgGetResourceRecordSetsNameArgGetResourceRecordSetsTypeArgGetResourceRecordSetsTtlArg$GetResourceRecordSetsRrdatasArgGroupr   display_infoAddCacheUpdaterAddTransformsRESOURCERECORDSETS_TRANSFORMS	AddFormatRESOURCERECORDSETS_FORMAT)r   parsers     r   ArgszUpdate.Args:   s    	""6*	&&v.	&&(44V<	&&t,88@	%%e,88@	.. //1k&
''-
%%e&I&IJ
!!%"A"ABr   c                    t        j                  | j                         |      }t        j                  d|      }t        j
                  |      }t        j                  |      j                  |j                  t        j                  ||      d      }t        j                  ||j                  || j                               }|j                  |j                  |j                  t        j                   |j"                        |j$                  |      }|dk(  r|j&                  |_        |j(                  j+                  |      }|S )Ndnszdns.managedZones)params
collection)allow_extended_records)projectmanagedZonenametyperesourceRecordSetv2)r   GetApiFromTrackAndArgsr   r   GetMessagesModuleGetApiClientGetRegistryParsezoneGetParamsForRegistryrrsets_utilCreateRecordSetFromArgsr+   r   !DnsResourceRecordSetsPatchRequestr,   AppendTrailingDotr-   r.   locationresourceRecordSetsPatch)	selfargsapi_versionmessages
dns_clientzone_refresource_record_setrequestresults	            r   Runz
Update.RunI   s"   --d.?.?.A4HK%%e[9H"";/J,22		((d;% 3 'H
 &==#224	 88  ((##$7$<$<= %%- 9 G dg**009FMr   N)__name__
__module____qualname____doc__classmethodr   r%   rH    r   r   r   r      s6    
( ; ; C C r   r   N)rL   
__future__r   r   r   googlecloudsdk.api_lib.dnsr   r8   r   googlecloudsdk.api_lib.utilr   googlecloudsdk.callioper	   googlecloudsdk.command_lib.dnsr
   ReleaseTracksr   GAr   r   UniverseCompatibleUpdateCommandr   rN   r   r   <module>rX      s    - &  ' J + , ( 0 $++00$2C2C2I2I IT I Ir   