
                            S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  SSKJr  SS	KJr  SS	KJr  SS	KJr  SS
KJr  SSKJr  S rS rS rS r SS jrS rS r SS jr\
R>                  " \
R@                  RB                  \
R@                  RD                  5      \
RF                   " S S\
RH                  5      5       5       r%\
R>                  " \
R@                  RL                  5      \
RF                   " S S\%5      5       5       r'g)z6Command for changing the default service of a URL map.    )absolute_import)division)unicode_literals)encoding)base_classes)base)scope)flags)url_maps_utils)logc                      SSS.$ )N:Change the default service or default bucket of a URL map.z      *{command}* is used to change the default service or default
      bucket of a URL map. The default service or default bucket is
      used for any requests for which there is no mapping in the
      URL map.
      )briefDESCRIPTION r       3lib/surface/compute/url_maps/set_default_service.py_DetailedHelpr   !   s    K

 r   c                 b    U R                  SS9nUR                  SSS9  UR                  SSS9  g )NTrequiredz--default-servicezXA backend service that will be used for requests for which this URL map has no mappings.)helpz--default-backend-bucketzWA backend bucket that will be used for requests for which this URL map has no mappings.)add_mutually_exclusive_groupadd_argument)parsergroups     r   _Argsr   -   sM    

-
-t
-
<%%    %  r   c                     U R                   R                  SU R                  R                  UR	                  5       UR
                  S94$ )z6Returns the request for the existing URL map resource.Get)urlMapproject)apitools_clienturlMapsmessagesComputeUrlMapsGetRequestNamer!   clienturl_map_refs     r   _GetGetRequestr*   ?   sK     $$oo..!!#[-@-@ / 
 r   c                     U R                   R                  SU R                  R                  UR	                  5       UUR
                  S94$ )NUpdate)r    urlMapResourcer!   )r"   r#   r$   ComputeUrlMapsUpdateRequestr&   r!   r(   r)   replacements      r   _GetSetRequestr1   J   sM    $$oo11!!#$%% 2 
 r   c                 D   [         R                  " U5      nUR                  (       a&  [        R                  " XX05      R                  5       nOLU(       a&  [        R                  " XX05      R                  5       nOUR                  X5      R                  5       nXl        U$ )z#Returns a modified URL map message.)	r   CopyProtoMessagedefault_servicer   ResolveUrlMapDefaultServiceSelfLink!ResolveUrlMapDefaultBackendBucketResolveAsResourcedefaultService)		resourcesargsurl_mapr)   backend_bucket_argbackend_service_arg supports_regional_backend_bucketr0   default_backend_uris	            r   _ModifyrA   V   s     ))'2+	(DD;hj  (*LL
K
  /@@

   3	r   c                     U R                   R                  SU R                  R                  UR	                  5       UR
                  UR                  S94$ )zAReturns the request to get an existing regional URL map resource.r   )r    r!   region)r"   regionUrlMapsr$   ComputeRegionUrlMapsGetRequestr&   r!   rC   r'   s     r   _GetRegionalGetRequestrF   u   sU     **oo44!!#%%## 5 
 r   c           	          U R                   R                  SU R                  R                  UR	                  5       UUR
                  UR                  S94$ )zDReturns the request to update an existing regional URL map resource.r,   )r    r-   r!   rC   )r"   rD   r$   !ComputeRegionUrlMapsUpdateRequestr&   r!   rC   r/   s      r   _GetRegionalSetRequestrI      sX     **oo77!!#$%%##	 8 	
 	r   c           	      Z   UR                   nUR                  XR                  [        R                  R
                  S9n[        R                  " U5      (       a  [        Xg5      nO[        Xg5      nUR                  U/5      n	[        UR                  U U	S   UUUU5      n
U	S   U
:X  a=  [        R                  R                  SR                  U	S   R                   5      5        U	$ [        R                  " U5      (       a  [#        XgU
5      nO[%        XgU
5      nUR                  U/5      $ )zAIssues requests necessary to set the default service of URL maps.)default_scoper   z/No change requested; skipping update for [{0}].)r(   r8   r:   compute_scope	ScopeEnumGLOBALr   IsRegionalUrlMapRefrF   r*   MakeRequestsrA   r   statusPrintformatnamerI   r1   )r;   holderr=   r>   url_map_argr?   r(   r)   get_requestold_url_mapmodified_url_mapset_requests               r   _Runr[      s    ==&--
M,C,C,J,J . + ''44(=K 5K##[M2+
!n& ^''JJ9@@N	

 ''44(>NOK 6FGK			k]	++r   c                   L    \ rS rSrSrSr\" 5       rSrSr	Sr
\S 5       rS rSrg)SetDefaultService   r   FNc                 >   U R                   (       a  [        R                  " SS9U l        O[        R                  " SS9U l        [
        R                  " SS9U l        [        R                  " 5       U l
        U R                  R                  U5        [        U5        g )NFr   )!_supports_regional_backend_bucketbackend_bucket_flags.RegionSupportingBackendBucketArgumentForUrlMapBACKEND_BUCKET_ARGBackendBucketArgumentForUrlMapbackend_service_flagsBackendServiceArgumentForUrlMapBACKEND_SERVICE_ARGr
   UrlMapArgumentURL_MAP_ARGAddArgumentr   )clsr   s     r   ArgsSetDefaultService.Args   s    
,,

M
M 
 
=
=u
M 
 	==uM  **,COOO'	&Mr   c                     [         R                  " U R                  5       5      n[        UUU R                  U R
                  U R                  U R                  5      $ )N)r   ComputeApiHolderReleaseTrackr[   rc   rg   ri   r`   )selfr;   rU   s      r   RunSetDefaultService.Run   sR    **4+<+<+>?F  .. r   r   )__name__
__module____qualname____firstlineno____doc__r`   r   detailed_helprc   rg   ri   classmethodrl   rr   __static_attributes__r   r   r   r]   r]      s=     C&+#/-+ &	r   r]   c                       \ rS rSrSrSrSrg)SetDefaultServiceAlpha   r   Tr   N)rt   ru   rv   rw   rx   r`   r{   r   r   r   r}   r}      s     C&*#r   r}   N)F)(rx   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.computer   googlecloudsdk.callioper   "googlecloudsdk.command_lib.computer	   rL   2googlecloudsdk.command_lib.compute.backend_bucketsr
   ra   3googlecloudsdk.command_lib.compute.backend_servicesre   +googlecloudsdk.command_lib.compute.url_mapsr   googlecloudsdk.corer   r   r   r*   r1   rA   rF   rI   r[   ReleaseTracksrp   BETAGAUniverseCompatibleUpdateCommandr]   ALPHAr}   r   r   r   <module>r      s     = &  ' % 7 ( E \ ^ = F #	$	& &+>
( &+/,d D%%**D,=,=,@,@A&** &  B&R D%%++,+. +  -+r   