
    m                         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 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)zGUtilities for gkeonprem API clients for VMware admin cluster resources.    )absolute_import)division)unicode_literals)	Generator)
exceptions)
list_pager)client)update_mask)parser_extensions)flags)
properties)gkeonprem_v1_messagesc                   H    e Zd ZdZ fdZ	 ddej                  fdZdej                  dej                  fdZ
dej                  deej                  ddf   fdZ	 	 ddej                  dej                  fd	Z	 ddej                  fd
Z	 ddej                  fdZ xZS )AdminClustersClientz,Client for clusters in gkeonprem vmware API.c                 b    t        t        | 
  di | | j                  j                  | _        y )N )superr   __init___client&projects_locations_vmwareAdminClusters_service)selfkwargs	__class__s     Glib/googlecloudsdk/api_lib/container/gkeonprem/vmware_admin_clusters.pyr   zAdminClustersClient.__init__$   s'    	
t-77LLGGDM    Nreturnc                    |r|n| j                  |      |r|n| j                  |      d}t        j                  |r|n| j	                  |      t        j
                  di |      }| j                  j                  |      S )z-Enrolls an admin cluster to Anthos on VMware.)
membershipvmwareAdminClusterId)parentenrollVmwareAdminClusterRequestr   )_admin_cluster_membership_name_admin_cluster_idmessages:GkeonpremProjectsLocationsVmwareAdminClustersEnrollRequest_admin_cluster_parentEnrollVmwareAdminClusterRequestr   Enroll)r   argsr   vmware_admin_cluster_idr!   r   reqs          r   r)   zAdminClustersClient.Enroll(   s      44T: ' $''-F 
M
MvT%?%?%E(0(P(P )
)
C ==$$r   r*   c                     | j                  |      | j                  |d      | j                  |d      | j                  |d      d}t        j                  di |}| j                  j                  |      S )z,Unenrolls an Anthos on VMware admin cluster.validate_onlyallow_missingignore_errors)namevalidateOnlyallowMissingignoreErrorsr   )_admin_cluster_nameGetFlagr%   <GkeonpremProjectsLocationsVmwareAdminClustersUnenrollRequestr   Unenroll)r   r*   r   r,   s       r   r8   zAdminClustersClient.Unenroll@   st     ((.T?;T?;T?;	F 
O
O 
C ==!!#&&r   c           
          |j                   r|j                   n1t        j                  j                  j                   j	                         }dj                  |d      }t        j                  |      }	 | j                  j                  j                  |      }d|j                         vr9t        j                  j                  j                   j	                         sd|_        t        j"                  | j%                  |            }t'        j(                  | j*                  |dt-        j                  |d      t-        j                  |d	      d
      S # t        j                  t        j                  f$ r Y w xY w)z3Lists Admin Clusters in the GKE On-Prem VMware API.z'projects/{project}/locations/{location}zus-west1)projectlocation)r!   r;   -vmwareAdminClusters	page_sizelimitpageSize)field
batch_sizer?   batch_size_attribute)r:   r   VALUEScoreGetformatr%   AGkeonpremProjectsLocationsVmwareClustersQueryVersionConfigRequestr   !projects_locations_vmwareClustersQueryVersionConfigapitools_exceptionsHttpUnauthorizedErrorHttpForbiddenErrorGetSpecifiedArgsDictcontainer_vmwarer;   8GkeonpremProjectsLocationsVmwareAdminClustersListRequest_location_namer   YieldFromListr   r   )r   r*   r:   r!   dummy_request_list_reqs          r   ListzAdminClustersClient.ListM   sL    **;*;*@*@*H*H*L*L*N  7==* > F ^^M

,,
8
8
K
K
a 	$3355!!22;;??Adm 	II&&t,	
  ###99T;/iig&' ' 	11..  s   5%E #E=<E=c                     t        j                  |t         j                        }|rd}|r|j                         n| j	                  |      || j                  ||      d}t        j                  di |}| j                  j                  |      S )z-Updates an admin cluster to Anthos on VMware. )r1   
updateMaskvmwareAdminClusterr   )
r
   get_update_mask)VMWARE_ADMIN_CLUSTER_ARGS_TO_UPDATE_MASKSRelativeNamer5   _vmware_admin_clusterr%   9GkeonpremProjectsLocationsVmwareAdminClustersPatchRequestr   Patch)r   r*   cluster_refis_user_cluster_upgrademaskr   r,   s          r   UpdatezAdminClustersClient.Update~   s     &&kCCD d
  $$&))$/"88)

F 
L
L 
C ==s##r   c                     i }|r| j                  |d      |d<   n.| j                  |d      |d<   t        j                  |d      |d<   t        |j	                               rt        j                  di |S y)z,Constructs proto message VmwareAdminCluster.TplatformConfigFversiononPremVersionNr   )_platform_configr   rF   anyvaluesr%   VmwareAdminCluster)r   r*   rb   r   s       r   r^   z)AdminClustersClient._vmware_admin_cluster   sv     F!%!6!6tT!Bf!%!6!6tU!Cf %		$	 :f_
6==?((2622r   c                     t        j                  |d      }||rt        j                  |d      }d|i}t        |j                               rt	        j
                  di |S y)z/Constructs proto message field platform_config.required_platform_versionNrg   requiredPlatformVersionr   )r   rF   rj   rk   r%   VmwarePlatformConfig)r   r*   rb   rn   r   s        r   ri   z$AdminClustersClient._platform_config   sf     !&		$0K L (-D"'))D)"< 	"#<F 6==?**4V44r   )NNN)NF)F)__name__
__module____qualname____doc__r   r%   	Operationr)   r   	Namespacer8   r   rl   rV   rd   r^   ri   __classcell__)r   s   @r   r   r   !   s    4H
 IM%%0',66 '8;M;M '/#--/,,dD89/h #	$''$
 $> HM#--  HM#--r   r   N)rt   
__future__r   r   r   typingr   apitools.base.pyr   rK   r   *googlecloudsdk.api_lib.container.gkeonpremr	   r
   googlecloudsdk.callioper   +googlecloudsdk.command_lib.container.vmwarer   googlecloudsdk.corer   2googlecloudsdk.generated_clients.apis.gkeonprem.v1r   r%   
ClientBaser   r   r   r   <module>r      sC    N &  '  > ' = B 5 = * `W&++ Wr   