
                             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dZ e	j                  e	j                   j"                         G d de	j$                               Zy)z&'vmware dns-forwarding update command.    )absolute_import)division)unicode_literals)PrivateCloudsClient)arg_parsers)base)flags)logz&
        Update DNS forwarding.
      a  
        To update a DNS forwarding config in private cloud `my-private-cloud` and zone `us-west2-a` to forward DNS requests
        for domain `activedirectory.my.corp` to name servers `192.168.20.15` and `192.168.20.16`
        and for domain `proxy.my.corp` to nameservers `192.168.30.15` and `192.168.30.16`, run:

          $ {command} --location=us-west2-a --project=my-project --private-cloud=my-private-cloud  --rule=domain=activedirectory.my.corp,name-servers=192.168.20.15;192.168.20.16 --rule=domain=proxy.my.corp,name-servers=192.168.30.15;192.168.30.16

          Or:

          $ {command} --private-cloud=my-private-cloud --rule=domain=activedirectory.my.corp,name-servers=192.168.20.15;192.168.20.16 --rule=domain=proxy.my.corp,name-servers=192.168.30.15;192.168.30.16

         In the second example, the project and location are taken from gcloud properties core/project and compute/zone.
  )DESCRIPTIONEXAMPLESc                   *    e Zd ZdZeZed        Zd Zy)Updatez3Update a Google Cloud VMware Engine dns-forwarding.c           
      D   t        j                  | d       t        j                  j	                  |        t        j                  j                  | d       | j                  dt        j                  ddgt        t        j                  d      d	
      ddg dd       y)z Register flags for this command.F)
positionalTz--ruledomainname-servers;)custom_delim_char)r   r   )required_keysspecappendzEdomain=DOMAIN,name-servers="NAME_SERVER1;NAME_SERVER2[;NAME_SERVER3]"zg            Domain name and the name servers used to resolve DNS requests for this domain.
            )typeactionrequireddefaultmetavarhelpN)r	   AddPrivatecloudArgToParserr   
ASYNC_FLAGAddToParser
SetDefaultadd_argumentr   ArgDictstrArgList)parsers    :lib/surface/vmware/private_clouds/dns_forwarding/update.pyArgszUpdate.Args5   s     
$$V>OO'OOvt,
  #^4 + 3 3c J
 W      c                    |j                   j                  j                         }t               }|j                  }|j                  ||j                        }|r$t        j                  |j                  dd       |S |j                  |j                  |      dj                  |j                                     }|j                  |      }t        j                  |d       |S )Nzdns forwardingT)kindis_asyncz>waiting for DNS forwarding of private cloud [{}] to be updated)operation_refmessage)r+   )CONCEPTSprivate_cloudParser   async_UpdateDnsForwardingruler
   UpdatedResourcenameWaitForOperationGetOperationRefformatRelativeNameGetDnsForwarding)selfargsprivatecloudclientr,   	operation_resources           r'   Runz
Update.RunM   s    ==..446L "F{{H**<CI	)../?$O,,Y7LVL--/0	 	  	A &&|4H'78Or)   N)	__name__
__module____qualname____doc___DETAILED_HELPdetailed_helpstaticmethodr(   rC    r)   r'   r   r   /   s!    ; - .r)   r   N)rG   
__future__r   r   r   +googlecloudsdk.api_lib.vmware.privatecloudsr   googlecloudsdk.callioper   r   !googlecloudsdk.command_lib.vmwarer	   googlecloudsdk.corer
   rH   ReleaseTracksReleaseTrackGAUpdateCommandr   rK   r)   r'   <module>rU      sm    - &  ' K / ( 3 #
	( D%%(()0T 0 *0r)   