
                         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)z9Command for adding service bindings to a backend service.    )absolute_import)division)unicode_literals)encoding)base_classes)client)base)flags)reference_utilsEXAMPLESz          To add a service binding to 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)AddServiceBindingsz*Add service bindings to a backend service.c                 r    t         j                  j                  |       t        j                  |dd       y )NTzAList of service binding names to be added to the backend service.)required	help_text)r
   #GLOBAL_REGIONAL_BACKEND_SERVICE_ARGAddArgumentr   )clsparsers     <lib/surface/compute/backend_services/add_service_bindings.pyArgszAddServiceBindings.Args0   s-    	--99&A	U    c                    |j                         dk(  r|j                  nd}t        j                  |      }|j                  xs g }|j
                  D cg c]#  }t        j                  |j                  ||      % }}t        j                  ||      }t        t        t        |      t        |      z              |_        |S c c}w )Nzcompute.regionBackendServicesglobal)
Collectionregionr   CopyProtoMessageserviceBindingsservice_bindingsr   BuildServiceBindingUrlprojectFilterReferencessortedlistset)	selfbackend_service_refargsexistinglocationreplacementold_bindingsbinding_namenew_bindingss	            r   _ModifyzAddServiceBindings._Modify9   s    &9&D&D&F*'+""08  ++H5K..4"L !11 2L 	../B/J/J/7	G1  
 #33L,OL"(S\!223#5Ks   (Cc                    t        j                  | j                               }t        j                  j                  ||j                  t        j                  |j                              }t        j                  ||j                        }| j                  |||j                               }|j                  |      S )z-Adds service bindings to the Backend Service.)scope_lister)compute_client)r   ComputeApiHolderReleaseTrackr
   r   ResolveAsResource	resourcescompute_flagsGetDefaultScopeListerr   BackendServicer/   GetSet)r&   r(   holderr'   backend_service
new_objects         r   RunzAddServiceBindings.RunI   s    **4+<+<+>?F11CC&<<V]]K 	D 	M 
 ++FMM;O 149L9L9NOJz**r   N)
__name__
__module____qualname____doc___DETAILED_HELPdetailed_helpclassmethodr   r/   r?    r   r   r   r   )   s(     3 -  +r   r   N)rC   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.computer   /googlecloudsdk.api_lib.compute.backend_servicesr   googlecloudsdk.callioper	   "googlecloudsdk.command_lib.computer
   r7   r   3googlecloudsdk.command_lib.compute.backend_servicesrD   ReleaseTracksr4   ALPHABETAGAUpdateCommandr   rG   r   r   <module>rT      s    @ &  ' % 7 B ( E > E 	 D%%++T->->-C-C%%((**+++ *+**+r   