
                         @   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r " S S\R                  5      r\
R                   " \
R"                  R$                  \
R"                  R&                  5       " S S\
R(                  5      5       rg
)z%`gcloud app services update` command.    )absolute_import)division)unicode_literals)appengine_api_client)operations_util)service_util)base)
exceptionsNc                       \ rS rSrSrSrg)IngressSettingError   z/Errors occurring when setting ingress settings. N)__name__
__module____qualname____firstlineno____doc____static_attributes__r       "lib/surface/app/services/update.pyr   r      s    7r   r   c                   6    \ rS rSrSrSS0r\S 5       rS rSr	g)	Update"   zLUpdate service-level settings.

Update ingress traffic settings for an app.
EXAMPLESzTo update ingress traffic settings for the default service, run:

              $ {command} default --ingress=internal-only
                  c                 P    U R                  SSSS9  U R                  S/ SQSSS	S
9  g )Nservices*zThe services to modify.)nargshelpz	--ingress)allinternal-only!internal-and-cloud-load-balancingr    Tz'Control what traffic can reach the app.)choicesdefaultrequiredr   )add_argument)parsers    r   ArgsUpdate.Args1   s:    

#5NP
M6  8r   c                 ^   [         R                  " U R                  5       5      nUR                  5       n[        R
                  " X1R                  5      n0 nU H  nUR                  R                  R                  R                  nUR                  S:X  a+  UR                  R                  R                  R                  nO:UR                  S:X  a*  UR                  R                  R                  R                  n [        R                  " UR                   UR"                  U5        M     U(       a6  Sn	UR+                  5        H  u  pjU	SU< SU
< 3-  n	M     [-        U	S-   5      eg ! [        R$                   a.  n[&        R(                  " U5      XVR"                  '    S nAGMN  S nAff = f)Nr!   r"   zError updating service(s): z
- z
  z

)r   GetApiClientForTrackReleaseTrackListServicesr   GetMatchingServicesr   messagesNetworkSettings$IngressTrafficAllowedValueValuesEnumINGRESS_TRAFFIC_ALLOWED_ALLingress%INGRESS_TRAFFIC_ALLOWED_INTERNAL_ONLY'INGRESS_TRAFFIC_ALLOWED_INTERNAL_AND_LBr   CallAndCollectOpErrorsSetIngressTrafficAllowedidMiscOperationErrorsix	text_typeitemsr   )selfargs
api_clientall_servicesr   errorsserviceingress_traffic_allowederrcombined_error_msg	error_msgs              r   Run
Update.Run;   sb   %::4;L;L;NOJ**,L//mmLHF



-
-//0K0K  
	(//1122 	  <<>>//1144 	 0..//#	% ( 8 &
'CC !/ 2V ;<<	  // 0 ]]3/zz0s   <,E**F,>"F''F,r   N)
r   r   r   r   r   detailed_helpstaticmethodr(   rG   r   r   r   r   r   r   "   s1      - 8 8=r   r   )r   
__future__r   r   r   googlecloudsdk.api_lib.appr   r   r   googlecloudsdk.callioper	   googlecloudsdk.corer
   r:   Errorr   ReleaseTracksr,   GABETACommandr   r   r   r   <module>rT      s|    , &  ' ; 6 3 ( * 
*** 
 D%%(($*;*;*@*@A7=T\\ 7= B7=r   