
    Z7                         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	\5      r " S
 S\5      r " S S\5      rg)z;Commands for interacting with the Network Connectivity API.    )absolute_import)division)unicode_literals)
list_pager)networkconnectivity_util)basec                       \ rS rSrSr\R                  R                  4S jrS r	S r
S rS r     SS	 jrSS
 jrSS jrSS jrSS jrSrg)SpokesClient   z5Client for spoke service in network connectivity API.c                     Xl         [        R                  " U5      U l        [        R                  " U5      U l        U R                  R                  U l        U R                  R                  U l	        g N)
release_trackr   GetClientInstanceclientGetMessagesModulemessagesprojects_locations_spokesspoke_serviceprojects_locations_operationsoperation_serviceselfr   s     Jlib/googlecloudsdk/api_lib/network_connectivity/networkconnectivity_api.py__init__SpokesClient.__init__   sP    &*<<]KDK,>>}MDM>>D![[FFD    c                     U R                   R                  UR                  5       S9nU R                  R	                  U5      $ )z'Call API to activate an existing spoke.name)r   9NetworkconnectivityProjectsLocationsSpokesActivateRequestRelativeNamer   Activate)r   	spoke_refactivate_reqs      r   r"   SpokesClient.Activate$   sF     	OO'') 	P 	
 
 &&|44r   c                     U R                   R                  UR                  5       S9nU R                  R	                  U5      $ )z)Call API to deactivate an existing spoke.r   )r   ;NetworkconnectivityProjectsLocationsSpokesDeactivateRequestr!   r   
Deactivate)r   r#   deactivate_reqs      r   r(   SpokesClient.Deactivate-   sA    ]]^^##% _ N ((88r   c                     U R                   R                  UR                  5       S9nU R                  R	                  U5      $ )z%Call API to delete an existing spoke.r   )r   7NetworkconnectivityProjectsLocationsSpokesDeleteRequestr!   r   Delete)r   r#   
delete_reqs      r   r-   SpokesClient.Delete4   sF     	MM'') 	N 	
 
 $$Z00r   c                     U R                   R                  UR                  5       S9nU R                  R	                  U5      $ )z"Call API to get an existing spoke.r   )r   4NetworkconnectivityProjectsLocationsSpokesGetRequestr!   r   Get)r   r#   get_reqs      r   r2   SpokesClient.Get=   sF     	JJ'') 	K 	
 
 !!'**r   Nc                     U R                   R                  UR                  5       UUUUS9n[        R                  " U R
                  USUSS9$ )Call API to list spokes.)parentfilterorderBypageSize	pageTokenspokesr:   )fieldlimitbatch_size_attribute)r   5NetworkconnectivityProjectsLocationsSpokesListRequestr!   r   YieldFromListr   )r   
region_refr>   filter_expressionorder_by	page_size
page_tokenlist_reqs           r   ListSpokesClient.ListF   sc     	KK**,$  	L 	
  ##' r   c                     UR                  5       R                  5       nUR                  5       nU R                  R	                  XCX%S9nU R
                  R                  U5      $ )Call API to create a new spoke.)r7   	requestIdspokespokeIdParentr!   Namer   7NetworkconnectivityProjectsLocationsSpokesCreateRequestr   Creater   r#   rM   
request_idr7   spoke_id
create_reqs          r   CreateSpokeSpokesClient.CreateSpokea   sb    ,,.F~~H 	MMu 	N 	
 
 $$Z00r   c                     UR                  5       R                  5       nUR                  5       nU R                  R	                  UUUUS9nU R
                  R                  U5      $ )rK   )r7   rL   )googleCloudNetworkconnectivityV1betaSpokerN   rO   rT   s          r   CreateSpokeBetaSpokesClient.CreateSpokeBetam   si    ,,.F~~H 	MM 6;	 	N 	
  $$Z00r   c                     UR                  5       nSR                  U5      nU R                  R                  UUUUS9nU R                  R                  U5      $ )$Call API to update a existing spoke.,)r   rL   rM   
updateMaskr!   joinr   6NetworkconnectivityProjectsLocationsSpokesPatchRequestr   Patchr   r#   rM   update_maskrU   r   update_mask_string
update_reqs           r   UpdateSpokeSpokesClient.UpdateSpoke|   sc    !!#D+. 	LL )	 	M 	
  ##J//r   c                     UR                  5       nSR                  U5      nU R                  R                  UUUUS9nU R                  R                  U5      $ )r_   r`   )r   rL   r[   ra   rb   rf   s           r   UpdateSpokeBetaSpokesClient.UpdateSpokeBeta   sc    !!#D+. 	LL 6;)	 	M 	
  ##J//r   )r   r   r   r   r   )NN NNr   )__name__
__module____qualname____firstlineno____doc__r   ReleaseTrackGAr   r"   r(   r-   r2   rH   rX   r\   rj   rm   __static_attributes__ r   r   r
   r
      sX    =#'#4#4#7#7 G591+ 6
1100r   r
   c                       \ rS rSrSr\R                  R                  4S jr       SS jr	S r
S rS rS	 rS
 rS rS rS r     SS jrS rSS jrSrg)
HubsClient   z3Client for hub service in network connectivity API.c                     Xl         [        R                  " U5      U l        [        R                  " U5      U l        U R                  R                  U l        U R                  R                  U l	        g r   )
r   r   r   r   r   r   projects_locations_global_hubshub_servicer   r   r   s     r   r   HubsClient.__init__   sP    &*<<]KDK,>>}MDM{{AAD![[FFDr   Nc	           
          U R                   R                  UR                  5       UUUUUUS9n	[        R                  " U R
                  U	SUSSS9$ )r6   )r   spokeLocationsr8   r9   r:   r;   viewr<   r:   
ListSpokesr=   r>   r?   method)r   ?NetworkconnectivityProjectsLocationsGlobalHubsListSpokesRequestr!   r   rA   r~   )
r   hub_refspoke_locationsr>   rC   rD   rE   rF   r   rG   s
             r   ListHubSpokesHubsClient.ListHubSpokes   si     }}\\!!#&  ] H ##' r   c                     U R                   R                  US9nU R                   R                  UR                  5       US9nU R                  R                  U5      $ )z>Call API to accept a spoke into a hub in the GA release track.spokeUri)r   acceptHubSpokeRequest)r   AcceptHubSpokeRequest@NetworkconnectivityProjectsLocationsGlobalHubsAcceptSpokeRequestr!   r~   AcceptSpoker   r   rM   accept_hub_spoke_req
accept_reqs        r   r   HubsClient.AcceptSpoke   s\    ==>>>N__!!#;O ` J ''
33r   c                     U R                   R                  US9nU R                   R                  UR                  5       US9nU R                  R                  U5      $ )z@Call API to accept a spoke into a hub in the BETA release track.r   )r   9googleCloudNetworkconnectivityV1betaAcceptHubSpokeRequest)r   9GoogleCloudNetworkconnectivityV1betaAcceptHubSpokeRequestr   r!   r~   r   r   s        r   AcceptSpokeBetaHubsClient.AcceptSpokeBeta   h     	OO 	P 	
 
 __!!#BV ` J ''
33r   c                     U R                   R                  X#S9nU R                   R                  UR                  5       US9nU R                  R                  U5      $ )zMCall API to accept proposal to update spoke in a hub in the GA release track.r   	spokeEtag)r   acceptSpokeUpdateRequest)r   AcceptSpokeUpdateRequestFNetworkconnectivityProjectsLocationsGlobalHubsAcceptSpokeUpdateRequestr!   r~   AcceptSpokeUpdater   r   rM   
spoke_etagaccept_spoke_update_reqreqs         r   r   HubsClient.AcceptSpokeUpdate   sd    "mmDD E  --
^
^!!#!8 _ C --c22r   c                     U R                   R                  X#S9nU R                   R                  UR                  5       US9nU R                  R                  U5      $ )zOCall API to accept proposal to update spoke in a hub in the BETA release track.r   )r   <googleCloudNetworkconnectivityV1betaAcceptSpokeUpdateRequest)r   <GoogleCloudNetworkconnectivityV1betaAcceptSpokeUpdateRequestr   r!   r~   r   r   s         r   AcceptSpokeUpdateBeta HubsClient.AcceptSpokeUpdateBeta   sh     	RR 	S 	
 
 --
^
^!!#E\ _ C --c22r   c                     U R                   R                  X#S9nU R                   R                  UR                  5       US9nU R                  R                  U5      $ )z>Call API to reject a spoke from a hub in the GA release track.r   details)r   rejectHubSpokeRequest)r   RejectHubSpokeRequest@NetworkconnectivityProjectsLocationsGlobalHubsRejectSpokeRequestr!   r~   RejectSpoker   r   rM   r   reject_hub_spoke_req
reject_reqs         r   r   HubsClient.RejectSpoke   sc    ==>> ?  __!!#;O ` J ''
33r   c                     U R                   R                  X#S9nU R                   R                  UR                  5       US9nU R                  R                  U5      $ )z@Call API to reject a spoke from a hub in the BETA release track.r   )r   9googleCloudNetworkconnectivityV1betaRejectHubSpokeRequest)r   9GoogleCloudNetworkconnectivityV1betaRejectHubSpokeRequestr   r!   r~   r   r   s         r   RejectSpokeBetaHubsClient.RejectSpokeBeta   r   r   c                     U R                   R                  X#US9nU R                   R                  UR                  5       US9nU R                  R                  U5      $ )zMCall API to reject proposal to update spoke in a hub in the GA release track.r   r   r   )r   rejectSpokeUpdateRequest)r   RejectSpokeUpdateRequestFNetworkconnectivityProjectsLocationsGlobalHubsRejectSpokeUpdateRequestr!   r~   RejectSpokeUpdater   r   rM   r   r   reject_spoke_update_reqr   s          r   r   HubsClient.RejectSpokeUpdate
  sf    "mmDDg E  --
^
^!!#!8 _ C --c22r   c                     U R                   R                  X#US9nU R                   R                  UR                  5       US9nU R                  R                  U5      $ )zOCall API to reject proposal to update spoke in a hub in the BETA release track.r   )r   <googleCloudNetworkconnectivityV1betaRejectSpokeUpdateRequest)r   <GoogleCloudNetworkconnectivityV1betaRejectSpokeUpdateRequestr   r!   r~   r   r   s          r   RejectSpokeUpdateBeta HubsClient.RejectSpokeUpdateBeta  sj     	RR' 	S 	
 
 --
^
^!!#E\ _ C --c22r   c           	          U R                   R                  UR                  5       UUUUS9n[        R                  " U R
                  USUSSS9$ )z9Call API to query a hub's status in the GA release track.)r   r:   r8   r9   groupByhubStatusEntriesr:   QueryStatusr   )r   @NetworkconnectivityProjectsLocationsGlobalHubsQueryStatusRequestr!   r   rA   r~   )r   r   rC   group_byrD   rE   r>   query_hub_status_reqs           r   QueryHubStatusHubsClient.QueryHubStatus"  sd      ==ii!!#  j  ## ' r   c                     U R                   R                  UR                  5       S9nU R                  R	                  U5      $ )z Call API to get an existing hub.r   )r   8NetworkconnectivityProjectsLocationsGlobalHubsGetRequestr!   r~   r2   )r   r   r3   s      r   r2   HubsClient.Get<  sF     	NN%%' 	O 	
 
 ((r   c                     UR                  5       nSR                  U5      nU R                  R                  UUUUS9nU R                  R                  U5      $ )z3Call API to update a hub in the BETA release track.r`   )r   rL   'googleCloudNetworkconnectivityV1betaHubra   )r!   rc   r   :NetworkconnectivityProjectsLocationsGlobalHubsPatchRequestr~   re   )r   r   hubrg   rU   r   rh   ri   s           r   UpdateHubBetaHubsClient.UpdateHubBetaE  s^    !D+.YY03%	 Z J !!*--r   )r   r~   r   r   r   )NNNro   NNN)Nro   ro   d   i  r   )rp   rq   rr   rs   rt   r   ru   rv   r   r   r   r   r   r   r   r   r   r   r   r2   r   rw   rx   r   r   rz   rz      s    ;#'#4#4#7#7 G  B44	3344	33  4).r   rz   c                   f    \ rS rSrSr\R                  R                  4S jrS	S jr	S	S jr
S rSrg)
GroupsClientiS  z5Client for group service in network connectivity API.c                     Xl         [        R                  " U5      U l        [        R                  " U5      U l        U R                  R                  U l        U R                  R                  U l	        g r   )
r   r   r   r   r   r   %projects_locations_global_hubs_groupsgroup_servicer   r   r   s     r   r   GroupsClient.__init__V  sP    &*<<]KDK,>>}MDMJJD![[FFDr   Nc                     UR                  5       nSR                  U5      nU R                  R                  UUUUS9nU R                  R                  U5      $ )z%Call API to update an existing group.r`   )r   rL   groupra   r!   rc   r   @NetworkconnectivityProjectsLocationsGlobalHubsGroupsPatchRequestr   re   r   	group_refr   rg   rU   r   rh   ri   s           r   UpdateGroupGroupsClient.UpdateGroup]  s^    !!#D+.__%	 ` J ##J//r   c                     UR                  5       nSR                  U5      nU R                  R                  UUUUS9nU R                  R                  U5      $ )z?Call API to update an existing group in the BETA release track.r`   )r   rL   )googleCloudNetworkconnectivityV1betaGroupra   r   r   s           r   UpdateGroupBetaGroupsClient.UpdateGroupBetaj  s^    !!#D+.__27%	 ` J ##J//r   c                     U R                   R                  UR                  5       S9nU R                  R	                  U5      $ )z"Call API to get an existing group.r   )r   >NetworkconnectivityProjectsLocationsGlobalHubsGroupsGetRequestr!   r   r2   )r   r   r3   s      r   r2   GroupsClient.Getw  sA    mmZZ##% [ G !!'**r   )r   r   r   r   r   r   )rp   rq   rr   rs   rt   r   ru   rv   r   r   r   r2   rw   rx   r   r   r   r   S  s)    =#'#4#4#7#7 G00+r   r   N)rt   
__future__r   r   r   apitools.base.pyr   +googlecloudsdk.api_lib.network_connectivityr   googlecloudsdk.callioper   objectr
   rz   r   rx   r   r   <module>r      sG    B &  ' ' P (~06 ~0Bu. u.p)+6 )+r   