
    6                     z    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j                        Zy
)$VMware Engine network policy client.    )absolute_import)division)unicode_literals)
list_pager)util)NetworksClientc                   R     e Zd ZdZ fdZd Z	 	 	 ddZ	 	 	 	 d	dZd Zd Z	 xZ
S )
NetworkPoliciesClientr   c                 ~    t         t        |           | j                  j                  | _        t               | _        y )N)superr   __init__client"projects_locations_networkPoliciesservicer	   networks_client)self	__class__s    4lib/googlecloudsdk/api_lib/vmware/networkpolicies.pyr   zNetworkPoliciesClient.__init__   s-    	
/1;;AADL)+D    c                     | j                   j                  |j                               }| j                  j	                  |      }|S N)name)messages6VmwareengineProjectsLocationsNetworkPoliciesGetRequestRelativeNamer   Get)r   resourcerequestresponses       r   r   zNetworkPoliciesClient.Get"   sA    mmRR""$ S &G||(HOr   c                 T   |j                         j                         }|j                         j                         j                         }|j                         }	| j                  j	                  |      }
| j                  j                  |      }| j                  j                  |      }| j                  j                  ||      }|j                  |
_	        ||
_
        ||
_        ||
_        | j                  j                  ||
|	      }| j                  j                  |      S )N)descriptionenabled)parentnetworkPolicynetworkPolicyId)Parentr   Namer   NetworkPolicyNetworkServicer   GetByIDr   vmwareEngineNetworkedgeServicesCidrinternetAccess
externalIp9VmwareengineProjectsLocationsNetworkPoliciesCreateRequestr   Create)r   r   vmware_engine_network_idedge_services_cidrr"   internet_accessexternal_ip_accessr%   projectnetwork_policy_idnetwork_policyinternet_access_objexternal_ip_access_objvenr   s                  r   r2   zNetworkPoliciesClient.Create(   s	    __++-Foo&&(--/G ]]00[0IN--666O!]]99" : $



&
&w0H
IC),N&&8N#$7N! 6NOO(- 	P 	
  <<w''r   c                    | j                  |      }g }|||_        |j                  d       |||_        |j                  d       |4| j                  j                  |      }||_        |j                  d       |4| j                  j                  |      }	|	|_        |j                  d       | j                  j                  ||j                         dj                  |            }
| j                  j                  |
      S )Nr"   r4   r#   zinternet_access.enabledzexternal_ip.enabled,)r&   r   
updateMask)r   r"   appendr.   r   r+   r/   r0   8VmwareengineProjectsLocationsNetworkPoliciesPatchRequestr   joinr   Patch)r   r   r"   r4   r5   r6   r9   update_maskr:   r;   r   s              r   UpdatezNetworkPoliciesClient.UpdateF   s    XXh'NK#.n '%(:n%-." MM88! 9 #&9n#23%#}};;$  <  &"8n./NN(&&(xx, 	O 	
  <<g&&r   c                     | j                   j                  | j                  j                  |j	                                     S r   )r   Deleter   9VmwareengineProjectsLocationsNetworkPoliciesDeleteRequestr   )r   r   s     r   rG   zNetworkPoliciesClient.Deleteg   s=    <<OO&&( 	P 	
 r   c                     |j                         }| j                  j                  |      }t        j                  | j
                  |dd      S )N)r%   pageSizenetworkPolicies)batch_size_attributefield)r   r   7VmwareengineProjectsLocationsNetworkPoliciesListRequestr   YieldFromListr   )r   location_resourcelocationr   s       r   ListzNetworkPoliciesClient.Listn   sU     --/HMM 	N 	
 
 ##'	! !r   )NNN)NNNN)__name__
__module____qualname____doc__r   r   r2   rE   rG   rR   __classcell__)r   s   @r   r   r      s?    ,,
 (@  $! $'B!r   r   N)rV   
__future__r   r   r   apitools.base.pyr   googlecloudsdk.api_lib.vmwarer   &googlecloudsdk.api_lib.vmware.networksr	   VmwareClientBaser    r   r   <module>r^      s0    + &  ' ' . A_!D11 _!r   