
                             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 e	j                    G d
 de	j"                               Zy)zCommand for deleting addresses.    )absolute_import)division)unicode_literals)base_classes)utils)base)flags)scopec                   *    e Zd ZdZdZed        Zd Zy)DeleteaO  Release reserved IP addresses.

  *{command}* releases one or more Compute Engine IP addresses.

  ## EXAMPLES

  To release an address with the name 'address-name', run:

    $ {command} address-name

  To release two addresses with the names 'address-name1' and 'address-name2',
  run:

    $ {command} address-name1 address-name2
  Nc                     t        j                  d      | _        | j                  j                  |d       |j                  j                  t         j                         y )NT)requireddelete)operation_type)r	   AddressArgumentADDRESSES_ARGAddArgumentdisplay_infoAddCacheUpdaterAddressesCompleter)clsparsers     'lib/surface/compute/addresses/delete.pyArgszDelete.Args1   sH    --t<C!!&!B
''(@(@A    c                 @   t        j                  | j                               }|j                  }| j                  j                  ||j                  t        j                  j                  t        j                  |            }t        j                  |       g }|D ]  }|j                         dk(  r^|j                  j!                  |j#                         |j$                        }|j'                  |j(                  j*                  d|f       t|j                         dk(  s|j                  j-                  |j#                         |j$                  |j.                        }|j'                  |j(                  j0                  d|f        |j3                  |      S )z.Issues requests necessary to delete Addresses.)default_scopescope_listerzcompute.globalAddresses)addressprojectr   zcompute.addresses)r   r    region)r   ComputeApiHolderReleaseTrackclientr   ResolveAsResource	resourcescompute_scope	ScopeEnumREGIONcompute_flagsGetDefaultScopeListerr   PromptForDeletion
Collectionmessages#ComputeGlobalAddressesDeleteRequestNamer    appendapitools_clientglobalAddressesComputeAddressesDeleteRequestr!   	addressesMakeRequests)selfargsholderr$   address_refsrequestsaddress_refrequests           r   Runz
Delete.Run7   sl   **4+<+<+>?F]]F%%77f#--44"88@ 8 BL
 
L)H#				!%>	>//EE$$&'' F 
 	//?? " 	#!!#':://??$$&''%% @ 

 	//998WMN $  x((r   )__name__
__module____qualname____doc__r   classmethodr   r>    r   r   r   r      s'      -B B
)r   r   N)rB   
__future__r   r   r   googlecloudsdk.api_lib.computer   r   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer	   r*   r
   r'   ,googlecloudsdk.command_lib.compute.addressesUniverseCompatibleDeleteCommandr   rD   r   r   <module>rL      sL    & &  ' 7 0 ( E E > 5)T 5) 5)r   