
                             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  G d
 dej                        Zy))VMware Engine VPC network peering client.    )absolute_import)division)unicode_literals)
list_pager)util)networks)	arg_utils)	resourcesc                   T     e Zd ZdZ fdZd Z	 	 	 	 	 	 	 	 	 ddZd Zd Zd Z	 xZ
S )	NetworkPeeringClientr   c                     t         t        |           | j                  j                  | _        t        j                         | _        y )N)	superr   __init__client"projects_locations_networkPeeringsservicer	   NetworksClientnetworks_client)self	__class__s    3lib/googlecloudsdk/api_lib/vmware/networkpeering.pyr   zNetworkPeeringClient.__init__   s3    	
.0;;AADL#224D    c                     | j                   j                  |j                               }| j                  j	                  |      }|S N)name)messages6VmwareengineProjectsLocationsNetworkPeeringsGetRequestRelativeNamer   Get)r   resourcerequestresponses       r   r    zNetworkPeeringClient.Get$   sF    LL&&( 	M 	
 
 ||(HOr   c                    |j                         j                         j                         }||}|j                         j                         }|j                         }| j                  j	                  |      }t        j                  d| j                  j                  j                  d       j                  t        j                  |            }||_
        t        j                  j                  d d|r|n|d|d      j                         |_        || j                  j                  j                  j                  k(  rd	j!                  ||
      |_        ndj!                  ||
      |_        |r||_        ||_        |	|_        |
|_        ||_        ||_        | j                  j1                  |||      }| j2                  j5                  |      S )N)descriptionzpeer-network-typec                 
    d| vS )NUNSPECIFIED )xs    r   <lambda>z-NetworkPeeringClient.Create.<locals>.<lambda>H   s	    a!7r   )arg_namemessage_enuminclude_filterz4vmwareengine.projects.locations.vmwareEngineNetworksglobal)
projectsIdlocationsIdvmwareEngineNetworksId)line
collectionparamszEprojects/{project}/locations/global/vmwareEngineNetworks/{network_id})project
network_idz/projects/{project}/global/networks/{network_id})parentnetworkPeeringnetworkPeeringId)ParentNamer   r   NetworkPeeringr
   ChoiceEnumMapperPeerNetworkTypeValueValuesEnumGetEnumForChoiceEnumNameToChoicepeerNetworkTyper   REGISTRYParsevmwareEngineNetworkVMWARE_ENGINE_NETWORKformatpeerNetworkpeer_mtuexportCustomRoutesimportCustomRoutesexportCustomRoutesWithPublicIpimportCustomRoutesWithPublicIpexchangeSubnetRoutes9VmwareengineProjectsLocationsNetworkPeeringsCreateRequestr   Create)r   r!   vmware_engine_network_idpeer_network_idpeer_network_typer%   peer_projectrH   export_custom_routesimport_custom_routes#export_custom_routes_with_public_ip#import_custom_routes_with_public_ipexchange_subnet_routesvmware_engine_network_projectr5   r7   
peering_idpeeringpeer_network_type_enumr"   s                       r   rO   zNetworkPeeringClient.Create-   s     oo&&(--/Gl__++-FJmm**{*CG&77$]]11	'	'7	9 :J9I&&'89:;	  5G"+"4"4":":I 1 .#&>
 #; # ln  	==''FF\\	] djj? k g
 <
B
B" C  
 !g!5G!5G-PG*-PG*#9G OO'J 	P 	
  <<w''r   c                    | j                  |      }g }||_        |j                  d       | j                  j	                  ||j                         dj                  |            }| j                  j                  |      S )Nr%   ,)r8   r   
updateMask)	r    r%   appendr   8VmwareengineProjectsLocationsNetworkPeeringsPatchRequestr   joinr   Patch)r   r!   r%   r[   update_maskr"   s         r   UpdatezNetworkPeeringClient.Updatet   sz    hhx GK%G}%NN"&&(xx, 	O 	
  <<g&&r   c                     | j                   j                  | j                  j                  |j	                                     S r   )r   Deleter   9VmwareengineProjectsLocationsNetworkPeeringsDeleteRequestr   )r   r!   s     r   rg   zNetworkPeeringClient.Delete   s=    <<OO&&( 	P 	
 r   c                     |j                         }| j                  j                  |      }t        j                  | j
                  |dd      S )N)r7   pageSizenetworkPeerings)batch_size_attributefield)r   r   7VmwareengineProjectsLocationsNetworkPeeringsListRequestr   YieldFromListr   )r   location_resourcelocationr"   s       r   ListzNetworkPeeringClient.List   sU     --/HMM 	N 	
 
 ##'	! !r   )	NNNTTTTTN)__name__
__module____qualname____doc__r   r    rO   re   rg   rr   __classcell__)r   s   @r   r   r      sC    15
 *.*.!$(E(N'!r   r   N)rv   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.vmwarer   r	   $googlecloudsdk.command_lib.util.apisr
   googlecloudsdk.corer   VmwareClientBaser   r(   r   r   <module>r~      s6    0 &  ' ' . 2 : )x!400 x!r   