
    a                         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 dd
lmZ ddlmZ ddlmZ  G d dej(                        Zy)z2gcloud dns record-sets transaction remove command.    )absolute_import)division)unicode_literals)
list_pager)resource_record_sets)transaction_util)util)base)flags)log)
propertiesc                   6    e Zd ZdZed        Zed        Zd Zy)Removea  Append a record-set deletion to the transaction.

  This command appends a record-set deletion to the transaction.

  ## EXAMPLES

  To remove an A record, run:

    $ {command} --zone=MANAGED_ZONE --name=my.domain. --ttl=1234 \
        --type=A "1.2.3.4"

  To remove a TXT record with multiple data values, run:

    $ {command} --zone=MANAGED_ZONE --name=my.domain. --ttl=2345 \
        --type=TXT "Hello world" "Bye world"
  c                     | j                         t        j                   j                  t        j                   j                  fv S )N)ReleaseTrackr
   BETAALPHA)clss    1lib/surface/dns/record_sets/transaction/remove.py_IsBetaOrAlphazRemove._IsBetaOrAlpha3   s:    $"3"3"8"8"&"3"3"9"9"; ; ;    c                     t        j                         j                  |        | j                  ddd       | j                  ddt        d       | j                  ddd	       | j                  d
dd       y )Nz--nameTz)DNS name of the record-set to be removed.)requiredhelpz--ttlz%TTL for the record-set to be removed.)r   typer   z--typez%Type of the record-set to be removed.rrdatas+)nargsr   )r   
GetZoneArgAddToParseradd_argumentint)parsers    r   ArgszRemove.Args8   s    	""6*
48  : $S4  6 44  6 8  :r   c           
      :   d}| j                         t        j                   j                  k(  rd}n-| j                         t        j                   j                  k(  rd}t	        j
                  |j                        5 }t	        j                  ||      }d d d        t        j                  |      }t        j                  |      j                  |j                  dt        j                  j                  j                   j"                  id      }t%        j&                  ||j                   || j)                               }t+        j,                  |j.                  |j0                  j3                  |j                   |j5                         t        j6                  |j8                        |j:                  	      d
      D cg c]  }| }	}|	r|	d   |k7  rt	        j<                  d      j>                  jA                  |       t	        j
                  |j                  d      5 }t	        jB                  ||       d d d        tD        jF                  jI                  djK                  |j                               y # 1 sw Y   xY wc c}w # 1 sw Y   TxY w)Nv1v1beta2v1alpha2)api_versionprojectzdns.managedZones)params
collection)r)   allow_extended_records)r*   managedZonenamer   rrsets)fieldr   z#Record to be removed does not existwz0Record removal appended to transaction at [{0}].)&r   r
   r   r   
trans_utilTransactionFiletransaction_fileChangeFromYamlFiler	   GetApiClientGetRegistryParsezoner   VALUEScorer*   	GetOrFailrrsets_utilCreateRecordSetFromArgsr   r   YieldFromListresourceRecordSetsMESSAGES_MODULE DnsResourceRecordSetsListRequestNameAppendTrailingDotr/   r   RecordDoesNotExist	deletionsappendWriteToYamlFiler   statusPrintformat)
selfargsr)   
trans_filechangednszone_refrecord_to_removerecordexisting_recordss
             r   Runz
Remove.RunH   s6   K d//444k				 1 1 7 7	7k		#	#D$9$9	:j,,
+/f 
; 

K
(C ,22		z((--55??
 & 3 'H #::#224	6 .8-E-E<<$$ ''		2	 	= 	
 .  .6 .  /26FF))*OPP
,-		#	#D$9$93	?:  V4 
@ JJ:AA!!	#$I 
;	:( 
@	?s   =I?	J'J?J	JN)	__name__
__module____qualname____doc__classmethodr   staticmethodr$   rV    r   r   r   r   !   s4    " ; ; : :/$r   r   N)rZ   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.dnsr   r>   r   r3   r	   googlecloudsdk.callioper
   googlecloudsdk.command_lib.dnsr   googlecloudsdk.corer   r   Commandr   r]   r   r   <module>re      s=     9 &  ' ' J E + ( 0 # *V$T\\ V$r   