
    I                     X   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iZ ej&                  ej(                  j*                  ej(                  j,                  ej(                  j.                         G d dej0                               Zy)z;Command for removing service bindings to a backend service.    )absolute_import)division)unicode_literals)encoding)base_classes)client)base)flags)reference_utilsEXAMPLESz        To remove a service binding from a backend service, run:

          $ {command} NAME           --service-bindings=SERVICE_BINDING1 --global
        c                   0    e Zd ZdZeZed        Zd Zd Z	y)RemoveServiceBindingsz/Remove service bindings from a backend service.c                 r    t         j                  j                  |       t        j                  |dd       y )NTzEList of service binding names to be removed from the backend service.)required	help_text)r
   #GLOBAL_REGIONAL_BACKEND_SERVICE_ARGAddArgumentAddServiceBindings)clsparsers     ?lib/surface/compute/backend_services/remove_service_bindings.pyArgszRemoveServiceBindings.Args0   s-    	--99&A	Y    c                 B   |j                         dk(  r|j                  nd}t        j                  |      }|j                  xs g }|j
                  D cg c]#  }t        j                  |j                  ||      % }}t        j                  ||      |_        |S c c}w )Nzcompute.regionBackendServicesglobal)

Collectionregionr   CopyProtoMessageserviceBindingsservice_bindingsr   BuildServiceBindingUrlprojectFilterReferences)	selfbackend_service_refargsexistinglocationreplacementold_bindingsbinding_namebindings_to_removes	            r   _ModifyzRemoveServiceBindings._Modify9   s    &9&D&D&F*'+""08  ++H5K..4"L !11 2L 	../B/J/J/7	G1  
 #2"B"B(#*Ks   (Bc                 4   t        j                  | j                               }t        j                  j                  ||j                  t        j                  |j                              }t        j                  ||j                        }| j                  |||j                               }g }|j                  s|j                  d       |j                  j                  j!                  |      5  |j#                  |      cddd       S # 1 sw Y   yxY w)z1Remove service bindings from the Backend Service.)scope_lister)compute_clientr   N)r   ComputeApiHolderReleaseTrackr
   r   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListerr   BackendServicer-   Getr   appendapitools_clientIncludeFieldsSet)r$   r&   holderr%   backend_service
new_objectcleared_fieldss          r   RunzRemoveServiceBindings.RunH   s    **4+<+<+>?F11CC&<<V]]K 	D 	M 
 ++FMM;O 149L9L9NOJN%%-.		&	&	4	4^	D  , 
E	D	Ds   3DDN)
__name__
__module____qualname____doc___DETAILED_HELPdetailed_helpclassmethodr   r-   rA    r   r   r   r   )   s(     8 - -r   r   N)rE   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.computer   /googlecloudsdk.api_lib.compute.backend_servicesr   googlecloudsdk.callioper	   "googlecloudsdk.command_lib.computer
   r5   r   3googlecloudsdk.command_lib.compute.backend_servicesrF   ReleaseTracksr2   ALPHABETAGAUpdateCommandr   rI   r   r   <module>rV      s    B &  ' % 7 B ( E > E 	 D%%++T->->-C-C%%((*.-D.. .-*.-r   