
    Z7                         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
  G d d	e      Z G d
 de      Z G d de      Zy)z;Commands for interacting with the Network Connectivity API.    )absolute_import)division)unicode_literals)
list_pager)networkconnectivity_util)basec                       e Zd ZdZej
                  j                  fdZd Zd Z	d Z
d Z	 	 	 	 	 ddZdd	Zdd
ZddZddZy)SpokesClientz5Client for spoke service in network connectivity API.c                     || _         t        j                  |      | _        t        j                  |      | _        | j                  j                  | _        | j                  j                  | _	        y 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__zSpokesClient.__init__   sR    &D*<<]KDK,>>}MDM>>D![[FFD    c                     | j                   j                  |j                               }| j                  j	                  |      S )z'Call API to activate an existing spoke.name)r   9NetworkconnectivityProjectsLocationsSpokesActivateRequestRelativeNamer   Activate)r   	spoke_refactivate_reqs      r   r    zSpokesClient.Activate$   sF     	OO'') 	P 	
 
 &&|44r   c                     | j                   j                  |j                               }| j                  j	                  |      S )z)Call API to deactivate an existing spoke.r   )r   ;NetworkconnectivityProjectsLocationsSpokesDeactivateRequestr   r   
Deactivate)r   r!   deactivate_reqs      r   r%   zSpokesClient.Deactivate-   sA    ]]^^##% _ N ((88r   c                     | j                   j                  |j                               }| j                  j	                  |      S )z%Call API to delete an existing spoke.r   )r   7NetworkconnectivityProjectsLocationsSpokesDeleteRequestr   r   Delete)r   r!   
delete_reqs      r   r)   zSpokesClient.Delete4   sF     	MM'') 	N 	
 
 $$Z00r   c                     | j                   j                  |j                               }| j                  j	                  |      S )z"Call API to get an existing spoke.r   )r   4NetworkconnectivityProjectsLocationsSpokesGetRequestr   r   Get)r   r!   get_reqs      r   r-   zSpokesClient.Get=   sF     	JJ'') 	K 	
 
 !!'**r   Nc                     | j                   j                  |j                         ||||      }t        j                  | j
                  |d|d      S )Call API to list spokes.)parentfilterorderBypageSize	pageTokenspokesr4   )fieldlimitbatch_size_attribute)r   5NetworkconnectivityProjectsLocationsSpokesListRequestr   r   YieldFromListr   )r   
region_refr8   filter_expressionorder_by	page_size
page_tokenlist_reqs           r   ListzSpokesClient.ListF   sc     	KK**,$  	L 	
  ##' r   c                     |j                         j                         }|j                         }| j                  j	                  ||||      }| j
                  j                  |      S )Call API to create a new spoke.)r1   	requestIdspokespokeIdParentr   Namer   7NetworkconnectivityProjectsLocationsSpokesCreateRequestr   Creater   r!   rF   
request_idr1   spoke_id
create_reqs          r   CreateSpokezSpokesClient.CreateSpokea   sf    ,,.F~~H 	MMZuh 	N 	
 
 $$Z00r   c                     |j                         j                         }|j                         }| j                  j	                  ||||      }| j
                  j                  |      S )rD   )r1   rE   )googleCloudNetworkconnectivityV1betaSpokerG   rH   rM   s          r   CreateSpokeBetazSpokesClient.CreateSpokeBetam   si    ,,.F~~H 	MM 6;	 	N 	
  $$Z00r   c                     |j                         }dj                  |      }| j                  j                  ||||      }| j                  j                  |      S )$Call API to update a existing spoke.,)r   rE   rF   
updateMaskr   joinr   6NetworkconnectivityProjectsLocationsSpokesPatchRequestr   Patchr   r!   rF   update_maskrN   r   update_mask_string
update_reqs           r   UpdateSpokezSpokesClient.UpdateSpoke|   sc    !!#D+. 	LL )	 	M 	
  ##J//r   c                     |j                         }dj                  |      }| j                  j                  ||||      }| j                  j                  |      S )rV   rW   )r   rE   rS   rX   rY   r]   s           r   UpdateSpokeBetazSpokesClient.UpdateSpokeBeta   sc    !!#D+. 	LL 6;)	 	M 	
  ##J//r   )NN NNr   )__name__
__module____qualname____doc__r   ReleaseTrackGAr   r    r%   r)   r-   rB   rQ   rT   ra   rc    r   r   r
   r
      sX    =#'#4#4#7#7 G591+ 6
1100r   r
   c                       e Zd ZdZej
                  j                  fdZ	 	 	 	 	 	 	 ddZd Z	d Z
d Zd Zd	 Zd
 Zd Zd Z	 	 	 	 	 ddZd ZddZy)
HubsClientz3Client for hub service in network connectivity API.c                     || _         t        j                  |      | _        t        j                  |      | _        | j                  j                  | _        | j                  j                  | _	        y r   )
r   r   r   r   r   r   projects_locations_global_hubshub_servicer   r   r   s     r   r   zHubsClient.__init__   sR    &D*<<]KDK,>>}MDM{{AAD![[FFDr   Nc	           	          | j                   j                  |j                         ||||||      }	t        j                  | j
                  |	d|dd      S )r0   )r   spokeLocationsr2   r3   r4   r5   viewr6   r4   
ListSpokesr7   r8   r9   method)r   ?NetworkconnectivityProjectsLocationsGlobalHubsListSpokesRequestr   r   r;   rp   )
r   hub_refspoke_locationsr8   r=   r>   r?   r@   rs   rA   s
             r   ListHubSpokeszHubsClient.ListHubSpokes   si     }}\\!!#&  ] H ##' r   c                     | j                   j                  |      }| j                   j                  |j                         |      }| j                  j                  |      S )z>Call API to accept a spoke into a hub in the GA release track.spokeUri)r   acceptHubSpokeRequest)r   AcceptHubSpokeRequest@NetworkconnectivityProjectsLocationsGlobalHubsAcceptSpokeRequestr   rp   AcceptSpoker   rx   rF   accept_hub_spoke_req
accept_reqs        r   r   zHubsClient.AcceptSpoke   s\    ==>>>N__!!#;O ` J ''
33r   c                     | j                   j                  |      }| j                   j                  |j                         |      }| j                  j                  |      S )z@Call API to accept a spoke into a hub in the BETA release track.r|   )r   9googleCloudNetworkconnectivityV1betaAcceptHubSpokeRequest)r   9GoogleCloudNetworkconnectivityV1betaAcceptHubSpokeRequestr   r   rp   r   r   s        r   AcceptSpokeBetazHubsClient.AcceptSpokeBeta   sh     	OO 	P 	
 
 __!!#BV ` J ''
33r   c                     | j                   j                  ||      }| j                   j                  |j                         |      }| j                  j                  |      S )zMCall API to accept proposal to update spoke in a hub in the GA release track.r}   	spokeEtag)r   acceptSpokeUpdateRequest)r   AcceptSpokeUpdateRequestFNetworkconnectivityProjectsLocationsGlobalHubsAcceptSpokeUpdateRequestr   rp   AcceptSpokeUpdater   rx   rF   
spoke_etagaccept_spoke_update_reqreqs         r   r   zHubsClient.AcceptSpokeUpdate   sf    "mmDD* E  --
^
^!!#!8 _ C --c22r   c                     | j                   j                  ||      }| j                   j                  |j                         |      }| j                  j                  |      S )zOCall API to accept proposal to update spoke in a hub in the BETA release track.r   )r   <googleCloudNetworkconnectivityV1betaAcceptSpokeUpdateRequest)r   <GoogleCloudNetworkconnectivityV1betaAcceptSpokeUpdateRequestr   r   rp   r   r   s         r   AcceptSpokeUpdateBetaz HubsClient.AcceptSpokeUpdateBeta   sj     	RRj 	S 	
 
 --
^
^!!#E\ _ C --c22r   c                     | j                   j                  ||      }| j                   j                  |j                         |      }| j                  j                  |      S )z>Call API to reject a spoke from a hub in the GA release track.r}   details)r   rejectHubSpokeRequest)r   RejectHubSpokeRequest@NetworkconnectivityProjectsLocationsGlobalHubsRejectSpokeRequestr   rp   RejectSpoker   rx   rF   r   reject_hub_spoke_req
reject_reqs         r   r   zHubsClient.RejectSpoke   se    ==>> ?  __!!#;O ` J ''
33r   c                     | j                   j                  ||      }| j                   j                  |j                         |      }| j                  j                  |      S )z@Call API to reject a spoke from a hub in the BETA release track.r   )r   9googleCloudNetworkconnectivityV1betaRejectHubSpokeRequest)r   9GoogleCloudNetworkconnectivityV1betaRejectHubSpokeRequestr   r   rp   r   r   s         r   RejectSpokeBetazHubsClient.RejectSpokeBeta   sj     	OOG 	P 	
 
 __!!#BV ` J ''
33r   c                     | j                   j                  |||      }| j                   j                  |j                         |      }| j                  j                  |      S )zMCall API to reject proposal to update spoke in a hub in the GA release track.r}   r   r   )r   rejectSpokeUpdateRequest)r   RejectSpokeUpdateRequestFNetworkconnectivityProjectsLocationsGlobalHubsRejectSpokeUpdateRequestr   rp   RejectSpokeUpdater   rx   rF   r   r   reject_spoke_update_reqr   s          r   r   zHubsClient.RejectSpokeUpdate
  sh    "mmDD*g E  --
^
^!!#!8 _ C --c22r   c                     | j                   j                  |||      }| j                   j                  |j                         |      }| j                  j                  |      S )zOCall API to reject proposal to update spoke in a hub in the BETA release track.r   )r   <googleCloudNetworkconnectivityV1betaRejectSpokeUpdateRequest)r   <GoogleCloudNetworkconnectivityV1betaRejectSpokeUpdateRequestr   r   rp   r   r   s          r   RejectSpokeUpdateBetaz HubsClient.RejectSpokeUpdateBeta  sl     	RRj' 	S 	
 
 --
^
^!!#E\ _ C --c22r   c                     | j                   j                  |j                         ||||      }t        j                  | j
                  |d|dd      S )z9Call API to query a hub's status in the GA release track.)r   r4   r2   r3   groupByhubStatusEntriesr4   QueryStatusru   )r   @NetworkconnectivityProjectsLocationsGlobalHubsQueryStatusRequestr   r   r;   rp   )r   rx   r=   group_byr>   r?   r8   query_hub_status_reqs           r   QueryHubStatuszHubsClient.QueryHubStatus"  sd      ==ii!!#  j  ## ' r   c                     | j                   j                  |j                               }| j                  j	                  |      S )z Call API to get an existing hub.r   )r   8NetworkconnectivityProjectsLocationsGlobalHubsGetRequestr   rp   r-   )r   rx   r.   s      r   r-   zHubsClient.Get<  sF     	NN%%' 	O 	
 
 ((r   c                     |j                         }dj                  |      }| j                  j                  ||||      }| j                  j                  |      S )z3Call API to update a hub in the BETA release track.rW   )r   rE   'googleCloudNetworkconnectivityV1betaHubrX   )r   rZ   r   :NetworkconnectivityProjectsLocationsGlobalHubsPatchRequestrp   r\   )r   rx   hubr^   rN   r   r_   r`   s           r   UpdateHubBetazHubsClient.UpdateHubBetaE  s^    !D+.YY03%	 Z J !!*--r   )NNNrd   NNN)Nrd   rd   d   i  r   )re   rf   rg   rh   r   ri   rj   r   rz   r   r   r   r   r   r   r   r   r   r-   r   rk   r   r   rm   rm      s    ;#'#4#4#7#7 G  B44	3344	33  4).r   rm   c                   X    e Zd ZdZej
                  j                  fdZddZddZ	d Z
y)GroupsClientz5Client for group service in network connectivity API.c                     || _         t        j                  |      | _        t        j                  |      | _        | j                  j                  | _        | j                  j                  | _	        y r   )
r   r   r   r   r   r   %projects_locations_global_hubs_groupsgroup_servicer   r   r   s     r   r   zGroupsClient.__init__V  sR    &D*<<]KDK,>>}MDMJJD![[FFDr   Nc                     |j                         }dj                  |      }| j                  j                  ||||      }| j                  j                  |      S )z%Call API to update an existing group.rW   )r   rE   grouprX   r   rZ   r   @NetworkconnectivityProjectsLocationsGlobalHubsGroupsPatchRequestr   r\   r   	group_refr   r^   rN   r   r_   r`   s           r   UpdateGroupzGroupsClient.UpdateGroup]  s^    !!#D+.__%	 ` J ##J//r   c                     |j                         }dj                  |      }| j                  j                  ||||      }| j                  j                  |      S )z?Call API to update an existing group in the BETA release track.rW   )r   rE   )googleCloudNetworkconnectivityV1betaGrouprX   r   r   s           r   UpdateGroupBetazGroupsClient.UpdateGroupBetaj  s^    !!#D+.__27%	 ` J ##J//r   c                     | j                   j                  |j                               }| j                  j	                  |      S )z"Call API to get an existing group.r   )r   >NetworkconnectivityProjectsLocationsGlobalHubsGroupsGetRequestr   r   r-   )r   r   r.   s      r   r-   zGroupsClient.Getw  sA    mmZZ##% [ G !!'**r   r   )re   rf   rg   rh   r   ri   rj   r   r   r   r-   rk   r   r   r   r   S  s)    =#'#4#4#7#7 G00+r   r   N)rh   
__future__r   r   r   apitools.base.pyr   +googlecloudsdk.api_lib.network_connectivityr   googlecloudsdk.callioper   objectr
   rm   r   rk   r   r   <module>r      sG    B &  ' ' P (~06 ~0Bu. u.p)+6 )+r   