
                         ,   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
  ej                  ej                  j                  ej                  j                   ej                  j"                         G d d	ej$                               Zy
)zCommand for moving addresses.    )absolute_import)division)unicode_literals)base_classes)base)flagsc                   *    e Zd ZdZdZed        Zd Zy)Movea2  Move an address to another project.

  ## EXAMPLES

  The following command moves address `external-ip1` in region `us-central1` to
  project `test-playground` with new address name `test-ip1`:

     $ {command} external-ip1 --new-name=test-ip1
     --target-project=test-playground --region=us-central1
  Nc                     t        j                  d      | _        | j                  j                  |       t        j                  |       y )NF)plural)r   AddressArgumentADDRESS_ARGAddArgumentAddMoveArguments)clsparsers     %lib/surface/compute/addresses/move.pyArgsz	Move.Args,   s4    ++59COOO'	6"    c           	      
   t        j                  | j                               }| j                  j	                  ||j
                  t        j                  |j                              }|j                  |j                  n|j                         }|j                  j                  }|j                         dk(  rdj                  |j                  |      }|j                  |j                         |j                   |j#                  |j$                  |            }|j                  j&                  j(                  d|f}ndj                  |j                  |j*                  |      }|j-                  |j*                  |j                         |j                   |j/                  |j$                  |            }|j                  j&                  j0                  d|f}|j                  j3                  |g|j                  	      S )
N)scope_listerzcompute.globalAddresseszprojects/{}/global/addresses/{})descriptiondestinationAddress)addressprojectglobalAddressesMoveRequestr
   z#projects/{}/regions/{}/addresses/{})regionr   r   regionAddressesMoveRequest)project_override)r   ComputeApiHolderReleaseTrackr   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListerclientnew_nameNamemessages
Collectionformattarget_project!ComputeGlobalAddressesMoveRequestr   GlobalAddressesMoveRequestr   apitools_clientglobalAddressesr   ComputeAddressesMoveRequestRegionAddressesMoveRequest	addressesMakeRequests)	selfargsholderaddress_refr'   r)   address_urlrequest_msgrequests	            r   RunzMove.Run2   s   **4+<+<+>?F""44"88G 5 IK !% 9t}}{?O?O @H }}%%H#<<5<<


x)k>>""$%%%-%H%H**!, &I & ? k ..>>g :@@


{118=k88##""$%%%-%H%H**!, &I &	 9 k ..88&+Ng==%%wi7;7J7J & L Lr   )__name__
__module____qualname____doc__r   classmethodr   r<    r   r   r
   r
      s&    	 +# #
%Lr   r
   N)r@   
__future__r   r   r   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer   r$   ,googlecloudsdk.command_lib.compute.addressesReleaseTracksr!   ALPHABETAGASilentCommandr
   rB   r   r   <module>rM      s{    $ &  ' 7 ( E > T..33T5F5F5I5I9L4 9L9Lr   