
    4                    n   S r SSKJr  SSKJr  SSKJr  SSKrSSKrSSKrSSKrSSK	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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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'r'SSK(J)r)  SSK*r'Sr+Sr,Sr-Sr.Sr/Sr0Sr1Sr2Sr3Sr4S r5S!r6S"r7S#r8S$r9S%r:S&r;S'r<S(r=S)r>S*r?S+r@S,rAS-rBS.rCS/rDS0rES1rFS2rGS3rHS4rIS5rJS6rKS7rLS8rMS9rNS:rOS;rPS<rQS=rRS>rSS?rTS@rUSArVSBrWSCrXSDrYSErZSFr[SGr\SHr]SIr^SJr_SKr`SLraSMrbSNrcSOrdSPreSQrfSRrgSSrhSTriSUrjSVrkSWrlSXrmSYrnSZroS[rpS\rqS]rrS^rsS_rtS`ruSarvSbrwScrxSdrySerzSfr{Sgr|Shr}Sir~SjrSkrSlrSmrSnrSorSprSqrSrrSsrStrSurSvrSwrSxrSyrSzrS{rS|rS}rS~rSrSrSrSrSrSrSrSrSrSr\z\{/rSS/rS/r\\|\\\\\\~\\\\\\/-   r\\\/-   r\\}/-   rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr\\\\\\\\\\/
r\\\\\\\\\\\\\\\\/r\\\\/rSS/rSS/rSrSrSr\" 1 Sk5      rSrSrS rS rS rS rS rS rS rSrS rS r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS Gr S GrS GrS GrS GrSS jGrS GrS Grg)z'Api client adapter containers commands.    )absolute_import)division)unicode_literalsN)
exceptions)http_wrapper)	constants)util)apis)base)	arg_utils)labels_util)log)
properties)	resources)yaml)
console_io)progress_tracker)timesrangezU{error}
Could not find [{name}] in [{wrong_zone}].
Did you mean [{name}] in [{zone}]?z/{error}
No cluster named '{name}' in {project}.z)No node pool named '{name}' in {cluster}.z0Please specify one of the following node pools:
z`Cannot use --master-authorized-networks if --enable-master-authorized-networks is not specified.z,Node autoprovisioning is currently in beta.
zIMust specify both --max-cpu and --max-memory to enable autoprovisioning.
zNMust enable node autoprovisioning to specify resource limits for autoscaling.
zQMust enable node autoprovisioning to specify defaults for node autoprovisioning.
a  Must specify both 'maxSurgeUpgrade' and 'maxUnavailableUpgrade' in 'upgradeSettings' in --autoprovisioning-config-file, or both '--autoprovisioning-max-surge-upgrade' and '--autoprovisioning-max-unavailable-upgrade' from cmd argument to set a surge upgrade strategy.
zMust specify both 'autoUpgrade' and 'autoRepair' in 'management' in --autoprovisioning-config-file to set management settings.
zMust specify both 'enableSecureBoot' and 'enableIntegrityMonitoring' in 'shieldedInstanceConfig' in --autoprovisioning-config-file to set management settings.
zYMust specify both or none of --shielded-secure-boot and --shielded-integrity-monitoring.
zSMust specify --enable-autoprovisioning to specify resource limits for autoscaling.
zQMaximum and minimum accelerator limits must be set on the same accelerator type.
z5No label named '{name}' found on cluster '{cluster}'.z,Cluster '{cluster}' has no labels to remove.zNInvalid key '{key}' for --create-subnetwork (must be one of 'name', 'range').
zKCannot specify both --subnetwork and --create-subnetwork at the same time.
zS
Invalid key '{key}' for --create-pod-ipv4-range (must be one of 'name', 'range').
zcInvalid value [{key}={value}] for argument --node-taints. Node taint is of format key=value:effect
z}Invalid taint effect [{effect}] for argument --node-taints. Valid effect values are NoSchedule, PreferNoSchedule, NoExecute'
zfInvalid local SSD format [{err_format}] for argument --local-ssd-volumes. Valid formats are fs, block
zeInvalid option '{option}' for '--workload-metadata' (must be one of 'gce_metadata', 'gke_metadata').
z_Flag --allow-route-overlap must be used with either --enable-ip-alias or --no-enable-ip-alias.
zrFlag --cluster-ipv4-cidr must be fully specified (e.g. `10.96.0.0/14`, but not `/14`) with --allow-route-overlap.
zFlag --services-ipv4-cidr must be fully specified (e.g. `10.96.0.0/14`, but not `/14`) with --allow-route-overlap and --enable-ip-alias.
z1Cannot specify --{opt} without --{prerequisite}.
zFlag --enable-stackdriver-kubernetes requires Cloud Logging and Cloud Monitoring enabled with --enable-cloud-logging and --enable-cloud-monitoring.
zThe CloudRun-on-GKE addon (--addons=CloudRun) requires System Logging and Monitoring to be enabled via the --monitoring=SYSTEM and --logging=SYSTEM flags.
zThe CloudRun-on-GKE addon (--addons=CloudRun) requires HTTP Load Balancing to be enabled via the --addons=HttpLoadBalancing flag.
zThe ConfigConnector-on-GKE addon (--addons=ConfigConnector) requires System Logging and Monitoring to be enabled via the --monitoring=SYSTEM and --logging=SYSTEM flags.
zThe ConfigConnector-on-GKE addon (--addons=ConfigConnector) requires workload identity to be enabled via the --workload-pool=WORKLOAD_POOL flag.
zCloud Build for Anthos (--addons=CloudBuild) requires System Logging and Monitoring to be enabled via the --monitoring=SYSTEM and --logging=SYSTEM flags.
zBCannot use --default-max-pods-per-node without --enable-ip-alias.
z:Cannot use --max-pods-per-node without --enable-ip-alias.
zLCannot use --alpha-cluster-feature-gates without --enable-kubernetes-alpha.
zNothing to update.
z]Cannot specify both --[no-]enable-private-nodes and --[no-]private-cluster at the same time.
z\Cannot use --[no-]enable-network-egress-metering without --resource-usage-bigquery-dataset.
zbCannot use --[no-]enable-resource-consumption-metering without --resource-usage-bigquery-dataset.
z=Cannot use --disable-default-snat without --enable-ip-alias.
zBCannot use --disable-default-snat without --enable-private-nodes.
z@Must specify --reservation for --reservation-affinity=specific.
zDCannot specify --reservation for --reservation-affinity={affinity}.
zfInvalid provider '{provider}' for argument --datapath-provider. Valid providers are legacy, advanced.
zyInvalid '{mode}' for argument --dataplane-v2-observability-mode. Valid modes are DISABLED, INTERNAL_VPC_LB, EXTERNAL_LB.
zMust specify sandbox type.
z.Provided sandbox type '{type}' not supported.
zDCannot specify --tpu-ipv4-cidr with --enable-tpu-service-networking.zvInvalid gpu sharing strategy [{gpu-sharing-strategy}] for argument --accelerator. Valid values are time-sharing, mps'
z}Invalid gpu driver version [{gpu-driver-version}] for argument --accelerator. Valid values are default, latest, or disabled'
z;Provided maintenance interval type '{type}' not supported.
zkInvalid managed config type '{type}' for argument --managed-config. Valid values are: autofleet, disabled'
zQInvalid mode '{mode}' for '--compliance' (must be one of 'enabled', 'disabled').
zACannot specify --compliance-standards with --compliance=disabled
zCCannot enable Auto Monitoring without enabling Managed Prometheus.
znInvalid value '{standards}' for --compliance-standards: must provide a list of standards separated by commas.
zfInvalid mode '{mode}' for '--security-posture' (must be one of 'disabled', 'standard', 'enterprise').
zuInvalid mode '{mode}' for '--workload-vulnerability-scanning' (must be one of 'disabled', 'standard', 'enterprise').
zCProvided host maintenance interval type '{type}' is not supported.
z}Provided opportunistic maintenance field '{field}' with value '{value}' is not supported. This field must end with 's' only.
zOnodePoolDefaults.nodeKubeletConfig is not supported on GKE Autopilot clusters.
zLCan not remove subnetwork {subnetwork}: not found in additional subnetworks
zKCan not remove pod ipv4 range {range}: not found in additional subnetworks
z1Provided cluster tier '{tier}' is not supported.
z9Provided network tier '{network_tier}' is not supported.
zxInvalid format '{topology}' for argument --tpu-topology. Must provide 2-3 integers separated by 'x' (e.g. 2x4 or 2x2x4)
zhInvalid machine type '{machine_type}' for argument --machine-type. Unable to parse the number of chips.
zQInvalid type '{type}' for '--confidential-node-type' (must be one of {choices}).
z9Anonymous authentication mode '{mode}' is not supported.
z1Fleet membership type '{type}' is not supported.
z=Route-based clusters are not supported with stack type IPV6.
z0Control plane egress '{mode}' is not supported.
zSResource policy '{policy_name}' not found in project '{project}' region '{region}'.zResource policy '{policy_name}' was not found in region '{wrong_region}', but a policy with the same name exists in region '{region}'. Did you mean to specify that region?'i  d   2   HttpLoadBalancingHorizontalPodAutoscalingKubernetesDashboard
CloudBuildBackupRestoreConfigConnectorGcePersistentDiskCsiDriverGcpFilestoreCsiDriverGcsFuseCsiDriver
StatefulHAParallelstoreCsiDriverHighScaleCheckpointingLustreCsiDriverRayOperatorIstioNetworkPolicyNodeLocalDNSApplicationManagerresourceLimitsserviceAccountminCpuPlatformupgradeSettingsmaxSurgeUpgrademaxUnavailableUpgrade
managementautoUpgrade
autoRepairscopesautoprovisioningLocationsbootDiskKmsKey
diskSizeGbdiskType	imageTypeshieldedInstanceConfigenableSecureBootenableIntegrityMonitoringCloudRunKubeRunNONESYSTEMWORKLOAD	APISERVER
API_SERVER	SCHEDULERCONTROLLER_MANAGERADDON_MANAGERKCP_SSHDKCP_CONNECTIONKCP_HPASTORAGEHPAPOD	DAEMONSET
DEPLOYMENTSTATEFULSETCADVISORKUBELETDCGMJOBSETUNSPECIFIEDCOMPACTBALANCEDANYz@^https://www.googleapis.com/compute/[a-z1-9_]+/(?P<resource>.*)$^[^-]+-[^-]+-[^-]+$z^\d{1,3}x\d{1,3}(x\d{1,3})?$>   ct3-hightpu-4tct3p-hightpu-4tct4l-hightpu-4tct4p-hightpu-4tct5l-hightpu-1tct5l-hightpu-4tct5l-hightpu-8tct5p-hightpu-4tct5lp-hightpu-1tct5lp-hightpu-4tct5lp-hightpu-8tct6e-standard-1tct6e-standard-4tct6e-standard-8ttpu7x-standard-1ttpu7x-standard-4tclusternodepoolc                     U R                   S:X  a  [        R                  R                  U 5      e[        R
                  " U 5      $ )z5Wrap http_wrapper.CheckResponse to skip retry on 503.i  )status_codeapitools_exceptions	HttpErrorFromResponser   CheckResponse)responses    3lib/googlecloudsdk/api_lib/container/api_adapter.pyrp   rp     s8    S 

'
'
4
4X
>>		#	#H	--    c                     U [         R                  R                  :X  a  gU [         R                  R                  :X  a  gU [         R                  R                  :X  a  g[        SR                  U 5      5      e)Nv1v1beta1v1alpha1zUnsupported Release Track: {})r   ReleaseTrackGABETAALPHA
ValueErrorformat)release_tracks    rr   APIVersionFromReleaseTrackr     s^    d''***))...))///
4;;MJ
KKrs   c                 V    U S:X  a
  [        5       $ U S:X  a
  [        5       $ [        5       $ )Nrw   rv   )NewV1Alpha1APIAdapterNewV1Beta1APIAdapterNewV1APIAdapter)api_versions    rr   NewAPIAdapterr     s-    J ""i!!rs   c                  "    [        S[        5      $ )Nru   )InitAPIAdapter	V1Adapter rs   rr   r   r     s    	i	((rs   c                  "    [        S[        5      $ )Nrv   )r   V1Beta1Adapterr   rs   rr   r   r     s    		>	22rs   c                  "    [        S[        5      $ )Nrw   )r   V1Alpha1Adapterr   rs   rr   r   r      s    	
O	44rs   c                 h   [         R                  " SU 5      n[        Ul        [         R                  " SU 5      n[         R                  " SS5      n[         R                  " SS5      n[
        R                  R                  5       nUR                  SU 5        UR                  SS5        U" XbX5U5      $ )zInitialize an api adapter.

Args:
  api_version: the api version we want.
  adapter: the api adapter constructor.

Returns:
  APIAdapter object.
	containercomputeru   )		core_apisGetClientInstancerp   check_response_funcGetMessagesModulecloud_resourcesREGISTRYCloneRegisterApiByName)r   adapter
api_clientmessagescompute_api_clientcompute_messagesregistrys          rr   r   r   $  s     **;D*#0* ((kB( 229dC00DA%%++-(
[+6
Y-	H8J
 rs   )z.https://www.googleapis.com/auth/cloud-platformz.https://www.googleapis.com/auth/userinfo.emailc                 T   U R                   (       aZ  U R                   Ul        / nU R                   H1  nUS:X  a  UR                  [        5        M   UR                  U5        M3     X l        [        U R                  5      U l        [        [        U R                  5      5      Ul	        g)a  Convert node identity options into node config.

If scopes are specified with the `--scopes` flag, respect them.
If no scopes are presented, 'gke-default' will be passed here indicating that
we should use the default set:
- If no service account is specified, default set is GKE_DEFAULT_SCOPES which
  is handled by ExpandScopeURIs:
  - https://www.googleapis.com/auth/devstorage.read_only,
  - https://www.googleapis.com/auth/logging.write',
  - https://www.googleapis.com/auth/monitoring,
  - https://www.googleapis.com/auth/servicecontrol,
  - https://www.googleapis.com/auth/service.management.readonly,
  - https://www.googleapis.com/auth/trace.append,
- If a service account is specified, default set is _SERVICE_ACCOUNT_SCOPES:
  - https://www.googleapis.com/auth/cloud-platform
  - https://www.googleapis.com/auth/userinfo.email
Args:
  options: the CreateCluster or CreateNodePool options.
  node_config: the messages.node_config object to be populated.
zgke-defaultN)
service_accountr,   r4   extend_SERVICE_ACCOUNT_SCOPESappendExpandScopeURIssortedsetoauthScopes)optionsnode_configreplaced_scopesscopes       rr   NodeIdentityOptionsToNodeConfigr   E  s    * !(!8!8KO	-	67u%	  
 %N"7>>2'."3w~~#67+rs   c                 ~    / nU  H4  n[         R                  R                  X"/5      nUR                  U5        M6     U$ )aH  Expand scope names to the fully qualified uris.

Args:
  scopes: [str,] list of scope names. Can be short names ('compute-rw') or
    full urls ('https://www.googleapis.com/auth/compute'). See SCOPES in
    api_lib/container/constants.py & api_lib/compute/constants.py.

Returns:
  list of str, full urls for recognized scopes.
)r   SCOPESgetr   )r4   
scope_urisr   expandeds       rr   r   r   h  sC     *e ##E73Hh	 
 
rs   c                   (   \ rS rSrSr                                                                                                                                                                                                                                                                   SS jrSrg)CreateClusterOptionsi}  z!Options to pass to CreateCluster.Nc                    Xl         X l        X0l        X@l        XPl        X`l        Xpl        Xl        Xl        Xl	        Xl
        Xl        Xl        Xl        Xl        UU l        UU l        U4U l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        U U l        U!U l         U"U l!        U#U l"        U$U l#        U%U l$        U&U l%        U'U l&        U(U l'        U)U l(        U*U l)        U+U l*        U,U l+        U-U l,        U/U l-        U0U l.        U1U l/        U2U l0        U3U l1        U4U l2        U5U l3        U6U l4        U7U l5        U8U l6        U9U l7        U:U l8        U;U l9        U<U l:        U=U l;        U>U l<        U?U l=        W@U l>        WCU l?        WDU l@        WAU lA        WBU lB        WEU lC        WFU lD        WGU lE        WHU lF        WIU lG        WJU lH        WKU lI        WLU lJ        WMU lK        WNU lL        WOU lM        WPU lN        WQU lO        WRU lP        WSU lQ        WTU lR        WUU lS        WVU lT        WWU lU        WXU lV        WZU lW        WYU lX        U.U lY        W[U lZ        W\U l[        W]U l\        W^U l]        W_U l^        W`U l_        WaU l`        WbU la        WcU lb        WdU lc        WeU ld        WfU le        WgU lf        WhU lg        WiU lh        WjU li        WkU lj        WlU lk        WmU ll        WnU lm        WoU ln        WpU lo        WqU lp        WrU lq        WsU lr        GWU ls        WtU lt        WuU lu        WvU lv        WwU lw        WxU lx        WyU ly        WzU lz        W{U l{        W|U l|        W}U l}        W~U l~        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        GW U Gl         GWU Gl        GWU Gl        g N(  node_machine_typenode_source_imagenode_disk_size_gbr4   	num_nodesadditional_zonesnode_locationsuserpasswordcluster_versionnode_versionnetworkcluster_ipv4_cidrenable_cloud_loggingenable_cloud_monitoringenable_stackdriver_kubernetes%enable_logging_monitoring_system_onlyenable_workload_monitoring_eap
subnetworkaddonsistio_configcloud_run_configlocal_ssd_countdata_cache_countlocal_ssd_volume_configsephemeral_storageephemeral_storage_local_ssdlocal_nvme_ssd_blockboot_disk_kms_keynode_pool_nametagstag_bindingsautoprovisioning_network_tagsnode_labelsnode_taintsenable_autoscaling	min_nodes	max_nodestotal_min_nodestotal_max_nodeslocation_policy
image_typeimageimage_projectimage_familymax_nodes_per_poolenable_kubernetes_alphaalpha_cluster_feature_gatesenable_cloud_run_alphapreemptiblespotplacement_typeplacement_policyenable_queued_provisioningmax_run_durationconsolidation_delay
flex_startenable_autorepairenable_autoupgrader   !enable_master_authorized_networksmaster_authorized_networksenable_legacy_authorizationenable_network_policyenable_l4_ilb_subsettinglabels	disk_typeservices_ipv4_cidrenable_ip_aliascreate_subnetworkcluster_secondary_range_nameservices_secondary_range_nameacceleratorsenable_binauthzbinauthz_evaluation_modebinauthz_policy_bindingsmin_cpu_platformworkload_metadataworkload_metadata_from_nodemaintenance_windowenable_pod_security_policyallow_route_overlapprivate_clusterenable_private_nodesenable_private_endpointmaster_ipv4_cidrtpu_ipv4_cidrenable_tpu_service_networking
enable_tpuissue_client_certificatedefault_max_pods_per_nodemax_pods_per_noderesource_usage_bigquery_datasetsecurity_groupenable_private_ipv6_accessenable_intra_node_visibilityenable_vertical_pod_autoscaling,enable_experimental_vertical_pod_autoscalingsecurity_profilesecurity_profile_runtime_rulesautoscaling_profilehpa_profiledatabase_encryption_keymetadataenable_network_egress_metering$enable_resource_consumption_meteringworkload_poolidentity_providerenable_workload_certificatesenable_mesh_certificatesenable_altsenable_gke_oidcenable_identity_serviceenable_shielded_nodeslinux_sysctls*enable_kernel_module_signature_enforcementdisable_default_snatdataplane_v2enable_dataplane_v2_metricsdisable_dataplane_v2_metrics&enable_dataplane_v2_flow_observability'disable_dataplane_v2_flow_observabilitydataplane_v2_observability_modeshielded_secure_bootshielded_integrity_monitoringsystem_config_from_filemaintenance_window_startmaintenance_window_endmaintenance_window_recurrenceenable_cost_allocationgpudirect_strategymax_surge_upgrademax_unavailable_upgradeenable_autoprovisioningautoprovisioning_config_file autoprovisioning_service_accountautoprovisioning_scopesautoprovisioning_locationsmin_cpumax_cpu
min_memory
max_memorymin_acceleratormax_acceleratorautoprovisioning_image_type"autoprovisioning_max_surge_upgrade(autoprovisioning_max_unavailable_upgrade#enable_autoprovisioning_autoupgrade"enable_autoprovisioning_autorepairreservation_affinityreservation!autoprovisioning_min_cpu_platformenable_master_global_accessgvnicenable_master_metricsmaster_logsrelease_channelnotification_config	autopilotprivate_ipv6_google_access_typeenable_confidential_nodesconfidential_node_typeenable_confidential_storagestorage_poolslocal_ssd_encryption_modecluster_dnscluster_dns_scopecluster_dns_domainadditive_vpc_scope_dns_domaindisable_additive_vpc_scope!kubernetes_objects_changes_target#kubernetes_objects_snapshots_targetenable_gcfsenable_image_streamingprivate_endpoint_subnetworkcross_connect_subnetworksenable_service_externalipsthreads_per_coreenable_nested_virtualizationperformance_monitoring_unitlogging
monitoringenable_managed_prometheusauto_monitoring_scopemanaged_otel_scopemaintenance_intervaldisable_pod_cidr_overprovision
stack_typeipv6_access_typeenable_workload_config_audit&enable_workload_vulnerability_scanning%enable_autoprovisioning_surge_upgrade*enable_autoprovisioning_blue_green_upgrade(autoprovisioning_standard_rollout_policy(autoprovisioning_node_pool_soak_durationenable_google_cloud_accessmanaged_configfleet_projectenable_fleetmembership_typegateway_apilogging_variantenable_multi_networkingenable_security_posturenetwork_performance_config%enable_insecure_kubelet_readonly_port6autoprovisioning_enable_insecure_kubelet_readonly_portenable_k8s_beta_apis
compliancecompliance_standardssecurity_postureworkload_vulnerability_scanning$enable_runtime_vulnerability_insightworkload_policiesenable_fqdn_network_policyhost_maintenance_intervalin_transit_encryptioncontainerd_config_from_fileresource_manager_tags&autoprovisioning_resource_manager_tagsenable_secret_managerenable_secret_manager_rotation secret_manager_rotation_intervalenable_secret_syncenable_secret_sync_rotationsecret_sync_rotation_interval(enable_cilium_clusterwide_network_policyenable_ray_cluster_loggingenable_ray_cluster_monitoring,enable_insecure_binding_system_authenticated.enable_insecure_binding_system_unauthenticatedenable_dns_access
cluster_caaggregation_caetcd_api_caetcd_peer_caservice_account_signing_keys!service_account_verification_keys!control_plane_disk_encryption_key!gkeops_etcd_backup_encryption_key%disable_l4_lb_firewall_reconciliationtierenable_ip_access.enable_authorized_networks_on_private_endpointanonymous_authentication_configpatch_updateenable_auto_ipamenable_k8s_tokens_via_dnsenable_legacy_lustre_portenable_default_compute_classenable_k8s_certs_via_dnsboot_disk_provisioned_iops boot_disk_provisioned_throughputnetwork_tiercontrol_plane_egress_modeenable_pod_snapshotsautopilot_privileged_admissionenable_lustre_multi_nicenable_slice_controller(  selfr   r   r   r4   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  re  rh  ri  rj  rk  rl  rm  rn  ro  rp  rq  rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  rf  rg  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rW  rX  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r'  r  r  s                                                                                                                                                                                                                                                                      rr   __init__CreateClusterOptions.__init__  s]   L /..KN,(IM*$L. 4#: )FD&- 	. ,J*KD' DODK$D,D*D,D$<D!.D'BD$ 4D.D(DDI$D)FD&"D"D0DDNDN*D*D*D DODJ&D$D0D#:D 'BD$"8D"DDI(D,D&@D#,D2D DO.D0D*D-ND*&@D#'BD$!6D$<D!DKDN0D*D.D(DD%)FD&$D*D$<D!$<D!,D.D'BD$0D&@D#2D*D 4D#:D ,D&D)FD& DO$<D!%>D".D+JD((D&@D#(DD%+JD(4 	5 -D*HD'2D"D#:D DM*HD', 	- 'D.D(DD%$<D!"D*D#:D !6D&D2 	3 !5D$D'BD$(DD%. 	/ 	0 	0 ,KD( 4D)FD&#:D $<D!"8D)FD&"8D0D.D#:D #:D (DD%,LD)#:D &@D#DLDL DO DO*D*D'BD$.PD+0 	1 	, 	, /QD+ 4D"D-ND*'BD$DJ!6D"D*D2DDN+JD(%>D""8D'BD$&D%>D""D.D0D)FD&&@D#-ND*+ 	, #D"8D'BD$%>D"&@D#,D(DD%'BD$DL DO%>D"!6D0D 4D*HD' DO,D(DD%. 	/ 	. 	. 	3 	3 	1 	1 	1 	1 'AD#(D&D$D*D"D*D#:D #:D &@D#- 	. 	? 	? !5D DO 4D,D+JD(, 	- /D&@D#%>D"!6D'BD$!6D. 	/ "7D*HD',LD)0D'BD$)FD&0 	1 'AD#)FD&4 	5 	7 	7 /D DO(D"D$D(DD%-ND*-ND*-ND*- 	. DI,D6 	7 ,KD($D,D%>D"%>D"(DD%$<D!&@D#,LD)$D%>D" 4D*HD'#:D #:D rs   (  r   r   r\  r   r  r  r   r  rk  rR  r  r:  r  rD  r=  rE  rF  rK  r   rv  r  r<  r;  ru  r  r   r   r   r  r  r   r  rY  r[  rZ  r   r   r   r  r  rU  r   r  r  r  r   rc  r   r  r)  r.  r  r]  r-  r+  r(  r  rn  r   r"  r  r  r9  rH  rG  rt  rs  r   r   r   r   r  r   r   r   rT  rV  r5  r,  r*  r  r  r  rz  r  r`  r#  rw  r$  ra  r  r  r  r  r  r   r  r  r  r'  r   r   r   r  r   r  rj  r   rL  rN  r!  r~  rf  r  r   r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  rd  r%  r  r   r  r  r  r   rq  r   rr  r   r   r  r  ry  r   r|  r  r6  rM  r  r  r  r   r   r   r   r  rp  r  r   r^  r_  r   r&  r   r   rX  r   r   rh  r}  rm  r  r3  r4  r2  rx  rl  r   r	  rO  rC  r?  rA  r   r   r  r   r7  r8  r{  r  rB  r>  r   r@  r   ri  r   r  r  r   r   r   r   r   r   r   r   rQ  r   r   r  rg  r   r   r   r  rb  rS  rP  rJ  rI  r  r  r4   r  r  r  r  r  r  r   r  r  r   r   r0  r/  r   ro  rW  r   r1  r   r   re  r  r   r   r
  r   r  r  r  r  r  (  NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN__name__
__module____qualname____firstlineno____doc__r  __static_attributes__r   rs   rr   r   r   }  s   ) "$(,0%)#"&$(#""&!!%(,!%"& ##'$(##"&!%"$( $&*!%#'&*37%)"%)+/#'#" "&#'-1.2&*$("#!$(!""#''+"!%"&)-/3*.)-(,"& &* $!"&$(!%(,*.!"& $!% $ %)#'-1,015/3/3!%""#'"&!%,0=A&*+/!% $ "& -1 %)'+"&$(/3 $!%$(3759#'(,(,(,,059&* $ $#'#!%'+ $%)15""Iw;rs   r   c                      \ rS rSrSr                                                                                                                                                                                           SS jrSrg)UpdateClusterOptionsi  z!Options to pass to UpdateCluster.Nc                 X
   Xl         [        U5      U l        [        U5      U l        X@l        XPl        X`l        Xpl        UU l        Xl	        Xl
        Xl        Xl        Xl        Xl        Xl        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        U U l         U!U l!        U"U l"        U#U l#        U$U l$        U%U l%        U(U l&        U)U l'        U*U l(        U+U l)        U&U l*        U'U l+        U,U l,        U-U l-        U.U l.        U/U l/        U0U l0        U1U l1        U2U l2        U3U l3        U4U l4        U5U l5        U6U l6        U7U l7        U8U l8        U9U l9        U:U l:        U;U l;        U<U l<        U=U l=        U>U l>        U?U l?        W@U l@        WAU lA        WBU lB        WCU lC        WDU lD        WEU lE        WFU lF        WGU lG        WHU lH        WIU lI        WJU lJ        WKU lK        WLU lL        WMU lM        WNU lN        WOU lO        WPU lP        WRU lQ        WQU lR        WSU lS        WTU lT        WUU lU        WVU lV        WWU lW        WXU lX        WYU lY        WZU lZ        W[U l[        W\U l\        W]U l]        W^U l^        W_U l_        W`U l`        WaU la        WbU lb        WcU lc        WdU ld        WeU le        WfU lf        WgU lg        WhU lh        WiU li        WjU lj        WkU lk        WlU ll        WmU lm        WnU ln        WoU lo        WpU lp        WqU lq        WrU lr        WsU ls        WtU lt        WuU lu        WvU lv        WwU lw        WxU lx        WyU ly        WzU lz        W{U l{        W|U l|        W}U l}        W~U l~        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        WU l        UU l        WU l        g r   )versionboolupdate_masterupdate_nodes	node_poolmonitoring_servicelogging_servicer   r   r   no_master_logsrO  rN  rh  ri  disable_addonsr   r   rY  rZ  r[  r]  r\  r   r   r   r   r   r   r   r   r   	locationsr   r   r  r  r  r  r  r  r  r  r   enable_peering_route_sharingr  r  disable_workload_identityr   r!  r"  r#  r$  r%  r(  r  r  r  r  disable_database_encryptionr5  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rP  rD  rE  rF  rG  rH  rK  r  r
  r  rL  rQ  rS  r^  r_  disable_autopilotadd_cross_connect_subnetworks remove_cross_connect_subnetworksclear_cross_connect_subnetworksrd  r  r`  r   ra  rj  disable_managed_prometheusrk  rl  rm  r)  r*  r+  r,  r-  r.  rq  rr  rs  rt  ru  rv  r  rw  ro  r|  r}  additional_pod_ipv4_ranges"removed_additional_pod_ipv4_rangesry  rz  r{  unset_membership_typeclear_fleet_projectr  r  r  r  r  r  r  r  r  remove_workload_policiesr  r  r  r~  r  r  convert_to_autopilotconvert_to_standardr  r  r  r  r  r  r  r  r  r  r  r  r  additional_ip_rangesremove_additional_ip_rangesdrain_additional_ip_rangesundrain_additional_ip_rangesr  r  r  $enable_l4_lb_firewall_reconciliationr  autoprovisioning_cgroup_moder  r  r  'enable_autopilot_compatibility_auditingr  r  r  r  r  r  disable_auto_ipamr  r  r  r  r  r  r  r  control_plane_soak_durationr  r  )r  r  r  r  r  r  r  r   r   r   rO  r  rN  rh  ri  r  r   r   rY  rZ  r[  r]  r\  r   r   r   r   r   r   r   r   r   r  r   r   r  r  r  r  r   r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r(  r  r  r  r  r  r5  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rP  rD  rE  rF  rG  rH  rK  r  r
  rL  r  rQ  rS  r^  r_  r  r  r  r  rd  r  r`  r   ra  rj  r  rk  rl  rm  r)  r*  r+  r,  r-  r.  rq  rr  rs  rt  ru  rv  r  rw  ro  r|  r}  r  r  ry  rz  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  s                                                                                                                                                                                               rr   r  UpdateClusterOptions.__init__  sD   | Lm,D\*DN0*)F&- 	. +I'("!6L O($D,D"D.D0D&@D#)FD&0DDNDN*D*D*D DODJ&DDN-ND*&@D#&@D#+JD(4 	5 -D*HD'2D"D(DD%$<D!(DD%&D.D%>D"(DD%$<D!"D*D#:D !6D 4D+JD(*HD', 	- $;D 'BD$"8D#:D (DD%,LD)#:D &@D#DLDL DO DO*D*D*D'BD$.PD+0 	1 	, 	, /QD+-ND* DO&D)FD&'BD$2D+JD(-ND*+ 	, /D)FD&,LD)+JD(&@D#(D"D)FD&"8D%>D"&@D#!6D0D 4D$D'BD$(DD%. 	/ 	0 	0 ,KD((DD%. 	/ 	. 	. 	3 	3 	1 	1 	1 	1 $;D &@D# DO"D*D&@D#.PD+&D$D*D!6D2D#:D &@D# 4D DO 4D,D+JD(, 	- /D$<D!&@D#%>D"!6D#:D 'BD$. 	/ !5D2D!6D*HD',LD)0D'BD$)FD&0 	1 	. 	. 	? 	? 'AD#)FD&4 	5 	7 	7 !5D'BD$&@D#(DD% 4D.D- 	. 	- 	- DI(DD%,D6 	7 +ID'/ 	0 .OD*(DD%-ND*+JD($D,D.D%>D"%>D"(DD%$<D!&@D#,LD)$D%>D"'BD$ 4D*HD'#:D rs   )r  r  r  r\  r  rk  r  r  r:  r  rD  r=  rE  rF  rK  r   rv  r  r<  r;  ru  r  r  r  r  r  r   rY  r[  rZ  r  r  r  r  r  r  r  r  r  r)  r.  r]  r  r  r  r  r-  r+  r(  r  r  r  r  r"  r  r  r  r9  rH  rG  rt  rs  r   r  r5  r,  r*  r  r  r  rz  r  r`  r#  rw  r$  ra  r  r  r  r  r  r  r  r  r   r  r  r   rj  r   rL  rN  r!  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rd  r%  r  r   r  r  r  r   rq  r   rr  ry  r|  r  r  r  r   r   r   r  r   r^  r_  r   r  rh  r  r}  rm  rl  r   rO  rC  r?  rA  r   r{  rB  r>  r@  r   ri  r  r  r  r  r  rQ  r  rS  rP  r  r  r  r  r  r  r  r  r  r  r  r  r  ro  r  r   r   r
  r  r  r  r  r  r  r  r  )NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNr  r   rs   rr   r  r    s?   ) $(,0%) !%$((,!%!%&*37#'#%)#' $#'#" &*%)+/""&!"#''+"!%"&)-/3*.)-(,"&$(&*(,*.$('+&*!%$(! $!% "&#'-1.2&*#'-1,015/3/3"!%!%)- "!%&*+/#!% $ ""&-1 %)'+"&$(/3,0=A!%$(3759"&!%#',0+/#'59.2#'(,(,&* $ $#'#!%'+ $"&%)"yi;rs   r  c                   .    \ rS rSrSrSrSrSrS	S jrSr	g)
SetMasterAuthOptionsii  z!Options to pass to SetMasterAuth.SetPasswordGeneratePasswordSetUsernameNc                 (    Xl         X l        X0l        g r   )actionusernamer   )r  r  r  r   s       rr   r  SetMasterAuthOptions.__init__p  s    KMMrs   )r  r   r  NNN)
r  r  r  r  r  SET_PASSWORDGENERATE_PASSWORDSET_USERNAMEr  r  r   rs   rr   r  r  i  s    ),(,rs   r  c                       \ rS rSrS rSrg)SetNetworkPolicyOptionsiv  c                     Xl         g r   enabled)r  r  s     rr   r   SetNetworkPolicyOptions.__init__x  s    Lrs   r  N)r  r  r  r  r  r  r   rs   rr   r  r  v  s    rs   r  c                       \ rS rSrSr                                                                                                         SS jrSrg)CreateNodePoolOptionsi|  z"Options to pass to CreateNodePool.Ncj                    Xl         X l        X0l        X@l        XPl        X`l        WbU l        Xpl        Xl        Xl	        Xl
        Xl        Xl        Xl        Xl        Xl        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        U U l         U!U l!        U"U l"        U#U l#        U$U l$        U%U l%        U&U l&        U'U l'        U(U l(        U)U l)        U*U l*        U+U l+        U,U l,        U-U l-        U.U l.        U/U l/        U0U l0        U1U l1        U2U l2        U3U l3        U4U l4        U5U l5        U6U l6        U7U l7        U8U l8        U9U l9        U:U l:        U;U l;        U<U l<        U=U l=        U>U l>        U?U l?        W@U l@        WAU lA        WTU lB        WUU lC        WBU lD        WCU lE        WDU lF        WEU lG        WFU lH        WGU lI        WHU lJ        WIU lK        WJU lL        WKU lM        WLU lN        WMU lO        WNU lP        WOU lQ        WPU lR        WQU lS        WRU lT        WSU lU        WVU lV        WWU lW        WXU lX        WYU lY        WZU lZ        W[U l[        W\U l\        W]U l]        W^U l^        W_U l_        W`U l`        WaU la        WcU lb        WdU lc        WeU ld        WfU le        WgU lf        WhU lg        WiU lh        g r   )imachine_typedisk_size_gbr4   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r9  r   r   r   r   r   r   r   r   r   tpu_topologyr   r   r   r   r   r   r   r   r   r   r  r  r  sandboxr  r&  r6  r7  r8  r   r/  r0  r1  rI  rJ  
node_groupr`  ra  rM  pod_ipv4_rangecreate_pod_ipv4_ranger  re  rf  rg  enable_blue_green_upgradeenable_surge_upgradenode_pool_soak_durationstandard_rollout_policyautoscaled_rollout_policyrm  r  rT  rU  rV  rn  enable_fast_socketr}  windows_os_versionenable_best_effort_provisionmin_provision_nodesadditional_node_networkadditional_pod_networksole_tenant_node_affinity_filesole_tenant_min_node_cpusr  opportunistic_maintenancer  r  r  secondary_boot_disksrW  rX  r  r  accelerator_network_profiler'  runner_pool_control_modecontrol_node_poolenable_attestation
tee_policyr  )jr  r  r  r4   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r9  r   r   r   r   r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r  r  r  r   r  r&  r6  r7  r8  r   r/  r0  r1  rI  rJ  r  r`  ra  rM  r  r  r  re  r  r  r  r  r  rm  r  rT  rU  rV  rn  r	  r}  r
  r  r  r  r  rf  rg  r  r  r  r  r  r  r  r  rW  rX  r  r  r   r  r'  r  r  r  r  r  sj                                                                                                             rr   r  CreateNodePoolOptions.__init__  s)   X %$K$N*,D$<!.'B$ 4.I$K""D0DDNDN*D*D#:D  DO*DDJ&D$D"DDI(D,D$D&@D#,D2D DO.D0D*DDN$D,D.D'BD$.DDLDM&D0D.D#:D (D 4D)FD&#:D  4D"D DO"D"8DDJ(D!6D 4D,D(DD%'BD$%>D" 4D#:D #:D %>D" 4D&@D#%>D""8D'BD$*HD'0D*D0D(DD%2D#:D "8D*HD'%>D"%>D"%>D"- 	. "7D'BD$ 4D&D%>D"&@D#,LD)'BD$2 	3 %=D!.D0D DO#:D rs   )ir  r   r  r  r  r   r  r  rU  r   r  r  r  r   rn  r  r   r  r9  r   r   r   r  r  rT  rV  r	  r`  ra  r  r'  r  rf  r  r   r  r   r   r   r6  rM  r  r   r   r   r   r   r&  r   r   rX  r   r   r}  r  rm  r   r  r   r7  r8  r  r   r   r  r  r  r   r   r  r   r   r   r  rg  r   r   r  r   rJ  rI  r  r  r   r4   r  r   r0  r/  r  r  r   r  rW  r1  r   r   r  re  r   r   r  r
  r  r  )iNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNr  r   rs   rr   r  r  |  sI   * #"&"!%"&"$("!  $"" $!% $!"&%)#'"!#'"&%) $ $ $,0 "& $!%'+"&15#"UX;rs   r  c                       \ rS rSrSr                                                   S	S jrS rS rS rSr	g)
UpdateNodePoolOptionsiZ  z"Options to pass to UpdateNodePool.Nc4                    Xl         X l        X0l        X@l        XPl        U"U l        X`l        Xpl        Xl        Xl	        Xl
        Xl        Xl        Xl        Xl        Xl        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        UU l        U U l         U!U l!        U#U l"        U$U l#        U%U l$        U&U l%        U'U l&        U(U l'        U)U l(        U*U l)        U+U l*        U,U l+        U-U l,        U.U l-        U/U l.        U$U l#        U0U l/        U1U l0        U2U l1        U3U l2        g r   )3r   r   r   r   r   r   r   r   r   r9  r  r  r   r7  r8  r1  r   r   r   r   r  r`  rM  ra  r  r  r  r  r  r  rT  rU  r	  r}  r
  r  r  r  r  r  r   r  r   r   r   r   rW  provisioned_iopsprovisioned_throughputr'  r  )4r  r   r   r   r   r   r   r   r   r9  r  r  r   r7  r8  r1  r   r   r   r   r  r`  rM  ra  r  r  r  r  r  r  rT  rU  r	  r}  r   r
  r  r  r  r  r  r   r  r   r   r   r   rW  r  r  r'  r  s4                                                       rr   r  UpdateNodePoolOptions.__init__]  s   l /00NN$D***#: .'B$(.#: #: DK"D"DDI 4D"DDJ"8D%>D" 4D#:D #:D %>D"&@D#%>D""8D0D*D0D- 	. "7D'BD$ 4D$DDN$D&@D#,D2D DO&D- 	. 7D"BD2 	3 $;D rs   c                    U R                   S L=(       dw    U R                  S L=(       db    U R                  S L=(       dM    U R                  S L=(       d8    U R                  S L=(       d#    U R
                  S L=(       d    U R                  S L$ r   )r   r   r   r   r   r9  r   r  s    rr   IsAutoscalingUpdate)UpdateNodePoolOptions.IsAutoscalingUpdate  s    t+ 	,>>%	,>>%	, t+	, t+		,
 ''t3	, t+rs   c                 H    U R                   S L=(       d    U R                  S L$ r   )r   r   r   s    rr   IsNodePoolManagementUpdate0UpdateNodePoolOptions.IsNodePoolManagementUpdate  s(    d* 	/""$.rs   c                    U R                   S L=(       GdF    U R                  S L=(       Gd0    U R                  S L=(       Gd    U R                  S L=(       Gd    U R                  S L=(       Gd    U R
                  S L=(       Gd    U R                  S L=(       Gd    U R                  S L=(       Gd    U R                  S L=(       Gd    U R                  S L=(       Gd    U R                  S L=(       Gdj    U R                  S L=(       GdT    U R                  S L=(       Gd>    U R                  S L=(       Gd(    U R                  S L=(       Gd    U R                  S L=(       Gd    U R                   S L=(       Gd    U R"                  S L=(       Gd    U R$                  S L=(       Gd    U R&                  S L=(       Gd    U R(                  S L=(       Gd    U R*                  S L=(       Gdx    U R,                  S L=(       Gdb    U R.                  S L=(       GdL    U R0                  S L=(       Gd6    U R2                  S L=(       Gd     U R4                  S L=(       Gd
    U R6                  S L=(       d    U R8                  S L=(       d    U R:                  S L=(       d    U R<                  S L=(       d    U R>                  S L=(       d    U R@                  S L=(       d    U RB                  S L=(       dw    U RD                  S L=(       db    U RF                  S L=(       dM    U RH                  S L=(       d8    U RJ                  S L=(       d#    U RL                  S L=(       d    U RN                  S L$ r   )(r  r  r   r7  r8  r1  r   r   r   r   r  r`  rM  ra  r  r  r  r  r  r  rT  rU  r	  r}  r
  r   r  r  r  r   r  r   r   r   r   rW  r  r  r'  r  r   s    rr   IsUpdateNodePoolRequest-UpdateNodePoolOptions.IsUpdateNodePoolRequest  s   d* '	4 '	4++47'	4 '	4d*'	4 '	4 !!-'	4 '	4 ''t3	'	4 '	4
 ''t3'	4 '	4 ;;d"'	4 '	4 4''	4 '	4 4''	4 '	4 99D '	4 '	4 $$D0'	4 '	4 4''	4 '	4 ::T!'	4 '	4 &&d2'	4 '	4 $$D0'	4 '	4 ))5'	4 '	4  ''t3!'	4 '	4" ''t3#'	4 '	4$ ))5%'	4 '	4& **$6''	4 '	4( ))5)'	4 '	4* &&d2+'	4 '	4, ""$.-'	4 '	4. t+/'	4 '	40 ""$.1'	4 '	42 D(3'	4 '	44 %%T15'	4 '	46 ++477'	48 D(9'	4: >>%;'	4< D(='	4> **$6?'	4@   ,A'	4B ##4/C'	4D ??$&E'	4F T)G'	4H   ,I'	4J &&d2K'	4L ::$FM'	4N ''t3Q)rs   )3r   r  rU  r   r  r  r   r9  r   r   r   r  rT  r	  r`  ra  r  r'  r  r  r   r  r   rM  r   r   r}  r  r   r   r7  r8  r   r  r   r   r  r   r  r  r  r  r  rW  r1  r   r   r   r
  r  r  )3NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)
r  r  r  r  r  r  r!  r$  r'  r  r   rs   rr   r  r  Z  s    * ""&""! $"" $!% $!,0 "&!%!%'+15"io;b	*rs   r  c                   >   \ rS rSrSrS rS|S jrS|S jrS|S j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S rS rS rS rS rS rS rS rS rS rS rS rS r S  r!S~S! jr"S" r#S# r$S$ r%S% r&S& r'S' r(S( r)S) r*S* r+S+ r,S, r-S- r.S. r/                  SS/ jr0S0 r1S1 r2S2 r3S3 r4S4 r5S5 r6S6 r7S7 r8S8 r9S9 r:S: r;S; r<S< r=S= r>S> r?S? r@S@ rASA rBSB rCS|SC jrDSD rESE rFSF rGSG rHSH rISI rJSJ rKSK rLS|SL jrMSM rNSN rOSO rPS|SP jrQSQ rRSR rSSS rTST rUSU rVS|SV jrWSW rXSX rYSY rZSZ r[S[ r\S\ r]S] r^S^ r_S_ r`S` raSa rbSb rcSc rdSd reSe rfSf rgSg rhSh riSi rj   SSj jrkSk rlSl rmSm rnSn roSo rpSp rqSq rrSr rsSs rtSt ruSu rvSv rwSw rxSx rySy rzSz r{S{r|g)
APIAdapteri  z6Handles making api requests in a version-agnostic way.c                 @    Xl         X l        X0l        X@l        XPl        g r   )r   clientr   r   compute_client)r  r   r,  r   r   r-  s         rr   r  APIAdapter.__init__  s     MKM,(rs   Nc                     U=(       d2    [         R                  R                  R                  R	                  5       nU R
                  R                  [        R                  " U5      UUS.SS9$ )N	projectIdzonez!container.projects.zones.clustersparams
collection	r   VALUEScoreproject	GetOrFailr   Parser	   LocationalResourceToZonal)r  namelocationr9  s       rr   ParseClusterAPIAdapter.ParseCluster  sc    C**//77AACG ==&&t, 
 7   rs   c                     U=(       d2    [         R                  R                  R                  R	                  5       nU R
                  R                  [        R                  " U5      UUS.SS9$ )Nr0  z#container.projects.zones.operationsr3  r6  )r  operation_idr>  r9  s       rr   ParseOperationAPIAdapter.ParseOperation&  sa    C**//77AACG==&&|4 
 9   rs   c                 6   U=(       d2    [         R                  R                  R                  R	                  5       nU R
                  R                  [        R                  " U5      U[         R                  R                  R                  R                  US.SS9$ )N)r1  	clusterIdr2  z+container.projects.zones.clusters.nodePoolsr3  )r   r7  r8  r9  r:  r   r;  r	   r<  r   ri   )r  node_pool_idr>  r9  s       rr   ParseNodePoolAPIAdapter.ParseNodePool1  s}    C**//77AACG==&&|4 #**44<<FF

 A   rs   c           	          U R                   R                  R                  U R                  R	                  [        UR                  UR                  UR                  5      S95      $ ! [        R                   a@  n[        R                  " U[        R                  5      nU R                  X5         SnAgSnAf[        R                    a*  n[        R                  " U[        R                  5      eSnAff = f)a-  Get a running cluster.

Args:
  cluster_ref: cluster Resource to describe.

Returns:
  Cluster message.
Raises:
  Error: if cluster cannot be found or caller is missing permissions. Will
    attempt to find similar clusters in other zones for a more useful error
    if the user has list permissions.
r=  N)r,  projects_locations_clustersGetr   ,ContainerProjectsLocationsClustersGetRequestProjectLocationClusterr1  r2  rF  rm   HttpNotFoundErrorr   HttpExceptionr	   HTTP_ERROR_FORMATCheckClusterOtherZonesrn   r  cluster_referror	api_errors       rr   
GetClusterAPIAdapter.GetCluster=  s    D[[4488
--
D
D)'')9)9;;P;P E   00 :**5$2H2HIi
!!+99(( D$$UD,B,BCCD$   A$A' 'C7;6B66C7%C22C7c           	          U R                   R                  R                  U R                  R	                  [        UR                  UR                  UR                  5      S95      $ ! [        R                   a@  n[        R                  " U[        R                  5      nU R                  X5         SnAgSnAf[        R                    a*  n[        R                  " U[        R                  5      eSnAff = f)aI  Get cluster upgrade info.

Args:
  cluster_ref: cluster Resource to get upgrade info for.

Returns:
  Cluster Upgrade Info message.
Raises:
  Error: if cluster cannot be found or caller is missing permissions. Will
    attempt to find similar clusters in other zones for a more useful error
    if the user has list permissions.
rK  N)r,  rL  FetchClusterUpgradeInfor   @ContainerProjectsLocationsClustersFetchClusterUpgradeInfoRequestrO  r1  r2  rF  rm   rP  r   rQ  r	   rR  rS  rn   rT  s       rr   GetClusterUpgradeInfo APIAdapter.GetClusterUpgradeInfoY  s    D[[44LL
--
X
X)'')9)9;;P;P Y   00 :**5$2H2HIi
!!+99(( D$$UD,B,BCCDrZ  c                    [         R                  " SU5      (       a  USUR                  S5       nOUn U R                  R	                  UUUS9nU R
                  R                  R                  U5      $ ! [        R                   aA  n[        R                  " U[        R                  5      nU R                  X!XG5         SnAgSnAf[        R                   a*  n[        R                  " U[        R                  5      eSnAff = f)a|  Fetches a GCE Resource Policy from the Compute API.

Args:
  policy_name (str): The name of the resource policy to retrieve.
  project (str): The Google Cloud project that contains the resource policy.
  location (str): The location of the policy. This can be a region (e.g.,
    'us-central1') or a zone (e.g., 'us-central1-a').

Returns:
  The complete ResourcePolicy message object, populated with its
  configuration data and status.

Raises:
  exceptions.Error: If the resource policy is not found in the specified
    project and region.
  exceptions.HttpException: For other underlying API errors, such as
    permission denied.
rX   N-)r9  regionresourcePolicy)rematchrfindr   !ComputeResourcePoliciesGetRequestr-  resourcePoliciesrM  rm   rP  r   rQ  r	   rR  CheckPolicyOtherRegionsrn   )r  policy_namer9  r>  rb  get_requestrV  rW  s           rr   GetResourcePolicyAPIAdapter.GetResourcePolicyu  s    & 
xx&11-(..-.ffD))KK$ L k   1155kBB00 L**5$2H2HIi
""7KK(( D$$UD,B,BCCDs#   ?A5 5D	7CD%DDc           	      @    U R                   R                  R                  U R                  R	                  [        UR                  UR                  UR                  5      S95      nU R                  UR                  UR                  5      $ ! [        R                   a@  n[        R                  " U[        R                   5      nU R#                  X5         SnAgSnAf[        R$                   a*  n[        R                  " U[        R                   5      eSnAff = f)a~  Complete control plane upgrade for a cluster.

Args:
  cluster_ref: cluster Resource to complete control plane upgrade for.

Returns:
  The operation to be executed.
Raises:
  exceptions.HttpException: if cluster cannot be found or caller is missing
    permissions. Will attempt to find similar clusters in other zones for a
    more useful error if the user has list permissions.
rK  N)r,  rL  CompleteControlPlaneUpgrader   DContainerProjectsLocationsClustersCompleteControlPlaneUpgradeRequestrO  r1  r2  rF  rC  r=  rm   rP  r   rQ  r	   rR  rS  rn   r  rU  oprV  rW  s        rr   ro  &APIAdapter.CompleteControlPlaneUpgrade  s    D;;22NN
--
\
\)'')9)9;;P;P ] b   +*:*:;;00 :**5$2H2HIi
!!+99(( D$$UD,B,BCCD$   B
B D!6CD3%DDc           	          U R                   R                  R                  U R                  R	                  [        UR                  UR                  UR                  5      S95      $ ! [        R                   a@  n[        R                  " U[        R                  5      nU R                  X5         SnAgSnAf[        R                    a*  n[        R                  " U[        R                  5      eSnAff = f)aX  Check autopilot compatibility of a cluster.

Args:
  cluster_ref: cluster resource to check.

Returns:
  A list of autopilot compatibility issues.
Raises:
  Error: if cluster cannot be found or caller is missing permissions. Will
    attempt to find similar clusters in other zones for a more useful error
    if the user has list permissions.
rK  N)r,  rL  CheckAutopilotCompatibilityr   DContainerProjectsLocationsClustersCheckAutopilotCompatibilityRequestrO  r1  r2  rF  rm   rP  r   rQ  r	   rR  rS  rn   rT  s       rr   rv  &APIAdapter.CheckAutopilotCompatibility  s    D[[44PP
--
\
\)'')9)9;;P;P ]   00 :**5$2H2HIi
!!+99(( D$$UD,B,BCCDrZ  c           
         [         R                  " [        R                  UUR                  UR
                  S95      n U R                  UR
                  5      R                  nU H  nUR                  UR                  :X  d  M  UR                  UR                  :X  a  Ue[         R                  " [         R                  UUR                  U R#                  U5      UR                  S95      e   Ue! [        R                   a    Ue[        R                   a*  n[        R                  " U[         R                  5      eSnAff = f)aC  Searches for similar clusters in other locations and reports via error.

Args:
  cluster_ref: cluster Resource to look for others with the same ID in
    different locations.
  api_error: current error from original request.

Raises:
  Error: wrong zone error if another similar cluster found, otherwise not
  found error.
)rV  r=  r9  N)rV  r=  
wrong_zoner2  )r	   ErrorNO_SUCH_CLUSTER_ERROR_MSGr}   rF  r1  ListClustersclustersrm   HttpForbiddenErrorrn   r   rQ  rR  r=  r2  WRONG_ZONE_ERROR_MSGZone)r  rU  rW  not_found_errorr~  rV  ri   s          rr   rS  !APIAdapter.CheckClusterOtherZones  s)    jj!((&&)) 	) 	
OD"";#8#89BBh 	..	. <<;+++/ jj '' **99[1\\	 ( 
 	
 $ 1 11  (( D$$UD,B,BCCDs   %C2 2)E%E  Ec           
         [         R                  " [        R                  UUUS95      n U R                  R                  US9nU R                  R                  R                  U5      nUR                  R                    H  n	U	R"                  n
U
R                  (       d  M"  U
R                   Ha  nUR$                  U:X  d  M  UR&                  R)                  S5      S   nX:X  a  Ue[         R                  " [*        R                  UUUS95      e   M     Ue! [        R                   a    Ue[        R                   a*  n[        R                  " U[         R                  5      eSnAff = f)a  Searches for a resource policy in other regions to provide a better error.

Args:
  project (str): The project to search in.
  policy_name (str): The name of the resource policy to find.
  region (str): The region that was searched in previously.
  api_error: current error from original request.

Raises:
  util.Error: A more helpful error if a match is found elsewhere.
  exceptions.HttpException: The original error if no helpful suggestion can
  be made.
)rj  rb  r9  r9  N/)wrong_regionrb  rj  )r	   r{  !NO_SUCH_RESOURCE_POLICY_ERROR_MSGr}   r   ,ComputeResourcePoliciesAggregatedListRequestr-  rh  AggregatedListrm   r  rn   r   rQ  rR  itemsadditionalPropertiesvaluer=  rb  split&WRONG_REGION_RESOURCE_POLICY_ERROR_MSG)r  r9  rj  rb  rW  r  aggregated_list_requestall_policiesrV  propscoped_listpolicypolicy_regions                rr   ri  "APIAdapter.CheckPolicyOtherRegions	  s`    jj)00# 	1 	
OD



L
L M  
 ((99HH
!l ""77JJk		%	%	%!22F[[K'"MM//4R8M&o**6==!'( + >   3 8$ / 11 (( D$$UD,B,BCCDs   >D )E+%E&&E+c                    SnU(       aW  UR                    H  nUR                  U:X  d  M  Us  $    [        R                  UR                  US9[        R
                  -   nO([        UR                   5      S:X  a  UR                   S   $ U[        [        R
                  R                  UR                    Vs/ s H  oDR                  PM     sn5      -   -  n[        R                  " U5      es  snf )z6Find the node pool with the given name in the cluster. ri   r=     r   )	nodePoolsr=  NO_SUCH_NODE_POOL_ERROR_MSGr}   oslineseplenNO_NODE_POOL_SELECTED_ERROR_MSGjoinr	   r{  )r  ri   	pool_namemsgnps        rr   FindNodePoolAPIAdapter.FindNodePool;	  s    
C!!"77i) " &
,
,ll -  JJ 
 
W	1	$q!!*RZZ__",,-,R,-.  C **S/ 	.s   6C,c           	          U R                   R                  R                  U R                  R	                  [        UR                  UR                  UR                  5      S95      $ NrK  )	r,  projects_locations_operationsrM  r   .ContainerProjectsLocationsOperationsGetRequestProjectLocationOperationr1  r2  operationId)r  operation_refs     rr   GetOperationAPIAdapter.GetOperationP	  sZ    ;;4488DD)''"")) 	E 	
 rs   c                    ^ ^^^^^ UUU 4S jmUUUU U4S jnU" 5       nUR                   (       a(  [        R                  " SU S3UR                    -   5      eU$ )a  Poll container Operation until its status is done or timeout reached.

Args:
  operation_ref: operation resource.
  message: str, message to display to user while polling.
  timeout_s: number, seconds to poll with retries before timing out.
  poll_period_s: number, delay in seconds between requests.

Returns:
  Operation: the return value of the last successful operations.get
  request.

Raises:
  Error: if the operation times out or finishes with an error.
c                  J  > [        S5       H  n  TR                  T5      s  $    g! [        R                   ag  n[        R
                  " SU S-   U5        [        R                  " T5        U S:X  a%  [        R                  " U[        R                  5      e SnAM  SnAff = f)z@Gets the operation or throws an exception, with limited retries.   z$GetOperation failed (attempt %d): %sr     N)r   r  rm   rn   r   debugtimesleepr   rQ  r	   rR  )attemptrV  r  poll_period_sr  s     rr   _MustGetOperation6APIAdapter.WaitForOperation.<locals>._MustGetOperationn	  s     1X'	J""=1
1  #,, 	J
)):GaK
O
**]
#\**5$2H2HII 	Js   'B"ABB"c                    >^ Sm[         R                  " TSU4S jS9   [        R                  " 5       n T" 5       nT[        R                  " 5       U -
  :  a  TR                  U5      (       aA  [        R                  " 5       U -
  n[        R
                  " SU SUS S35        UsSSS5        $ UR                  m[        R                  " T5        T" 5       nT[        R                  " 5       U -
  :  a  M  [        R                  R                  S	U 35        [        R                  " S
U S3SUR                   S3-   5      e! , (       d  f       g= f)zDRetries getting the operation until it finishes, times out or fails.NTc                     > T $ r   r   )detail_messages   rr   <lambda>HAPIAdapter.WaitForOperation.<locals>._WaitForOperation.<locals>.<lambda>	  s    .rs   )autotickdetail_message_callbackz
Operation z finished after z.3z secondsz Timed out waiting for operation Operation [z)] is still running, check its status via z&'gcloud container operations describe ')r   ProgressTrackerr  IsOperationFinishedr   infodetailr  errPrintr	   r{  r=  )	
start_timerr  durationr  r  messager  r  	timeout_ss	      @rr   _WaitForOperation6APIAdapter.WaitForOperation.<locals>._WaitForOperation~	  s   n++
D:P YY[
 499;34%%b))yy{Z/HHHz"%5hr](KL  99.
**]
# "" 499;34 	8=>jj"FG6rwwiqAB
 	
! s   BE/AE6AE
Er  z] finished with error: )statusMessager	   r{  )r  r  r  r  r  r  	operationr  s   `````  @rr   WaitForOperationAPIAdapter.WaitForOperation[	  s]    &J 
 
0 "#IJJ	{"9
:&&') 
 rs   c                     UR                   $ r   )r2  r  rU  s     rr   r  APIAdapter.Zone	  s    rs   c                 q   U R                  U5      nU R                  X#5      nU R                  R                  UR                  US9nUR
                  (       a  U R                  R                  R                  [        UR
                  R                  5       5       VVs/ s H2  u  pgU R                  R                  R                  R                  XgS9PM4     snnS9Ul
        UR                  (       a(  [        UR                  /UR                  -   5      Ul        UR                  (       a  [        UR                  5      Ul        UR                  (       a  UR                  Ul        UR"                  (       a  UR"                  Ul        UR$                  (       a  UR$                  Ul        UR(                  by  UR(                  (       aY  SUl        SUl        UR.                  b  UR.                  (       d  SUl        UR0                  b  UR0                  (       d  SUl        OiSUl        SUl        OZUR.                  b   UR.                  (       a  SUl        OSUl        UR0                  b   UR0                  (       a  S	Ul        OSUl        UR2                  (       a  UR2                  Ul        UR4                  (       Ga  U R7                  UR4                  R9                  [:        S
5      (       + =(       a    UR<                  (       + UR4                  R9                  [>        S
5      (       + =(       a    UR<                  (       + UR4                  R9                  [@        S
5      (       + UR4                  R9                  [B        S
5      (       + UR4                  R9                  [D        5      UR4                  R9                  [F        S
5      UR4                  R9                  [H        S
5      UR4                  R9                  [J        S
5      UR4                  R9                  [L        S
5      UR4                  R9                  [N        S
5      UR4                  R9                  [P        S
5      UR4                  R9                  [R        S
5      UR4                  R9                  [T        S
5      UR4                  R9                  [V        S
5      UR4                  R9                  [X        S
5      UR4                  R9                  [Z        S
5      S9n[\        UR4                  ;   a  UR(                  (       d\  UR^                  b  [`        UR^                  ;  d!  URb                  b.  [`        URb                  ;  a  [d        Rf                  " [h        5      eURj                  c  [d        Rf                  " [l        5      eU R                  Ro                  SS9Ul8        URr                  b2  U R                  Ru                  URr                  S9URv                  l<        URz                  b2  U R                  R}                  URz                  S9URv                  l?        UR                  b  UR                  UR                  lB        XlC        UR                  bT  UR                  c  U R7                  5       UlC        U R                  R                  UR                  S9UR                  lF        UR                  bT  UR                  c  U R7                  5       UlC        U R                  R                  UR                  S9UR                  lI        UR                  (       a  UR                  UlK        UR                  (       a=  UR                  (       d  [d        Rf                  " [        5      eUR                  UlN        O/ UlN        UR                  bS  UR                  (       d  [d        Rf                  " [        5      eU R                  R                  UR                  S9UlS        UR                  (       a  UR                  (       d  [d        Rf                  " [        5      eUR                  (       d  [d        Rf                  " [        5      eU R                  R                  UR                  S9n	UR                  c  U R                  R                  U	S9UlY        OXR                  l[        UR                  bv  UR                  (       ae  UR                  c  U R                  R                  5       UlY        U R                  R                  R                  R                  UR                  l_        UR                  (       aQ  UR                  c)  U R                  R                  UR                  S9UlY        OUR                  UR                  la        U R                  U5      n
U
b<  UR                  c  U R                  R                  U
S9UlY        OXR                  lc        U R                  U5      nUb<  UR                  c  U R                  R                  US9UlY        OXR                  le        UR                  b1  U R                  R                  [        UR                  5      S9Uli        UR                  (       aQ  U R                  R                  UR                  U R                  R                  R                  R                  S9Uln        UR                  b(  U R                  R                  UR                  S9Ulq        UR                  Gb7  UR                  b  U R                  R                  [d        R                  " U R                  S
S9R                  UR                  5      S9Ulq        UR                   Hq  nUR                  R                  R                  U R                  R                  US   SU;   a(  U R                  R                  R                  US   5      OSS95        Ms     OTU R                  R                  [d        R                  " U R                  S
S9R                  UR                  5      S9Ulq        UR                  (       a9  UR                  (       d(  [d        Rf                  " [        R                  SSS95      eUR                  bW  U R                  R                  U R                  R                  U R                  R                  UR                  S9S9S9Ul        OUGR                  b  UGR                  GR                  5       nUGR                  GR                  5       nU R                  R                  U R                  R                  U R                  GR	                  U R                  GR                  XS 9UGR                  S!9S"9S9Ul        U GR                  X%5        UGR                  b*  U R                  GR                  UGR                  S9Ul        UGR                  b  G[        X R                  5      Ul        UGR                  b+  U R                  GR                  SUGR                  S#9Ul        UGR"                  b*  U R                  GR%                  UGR"                  S9Ul        URj                  (       a)  U R                  GR)                  URj                  S$9Ul        UGR,                  =(       a/    UGR,                  GR/                  5       G[0        GR2                  :H  nU(       d  U GR5                  X%5        U GR7                  X%5        U GR9                  X%5        U GR;                  X%5        UGR<                  b*  U R                  GR?                  UGR<                  S9Ul        UGRB                  (       a  U R                  GRE                  UGRB                  S%9nU R                  GRG                  US&9Ul        UGRJ                  (       a  SUGRH                  l        UGRN                  b5  U R                  GRQ                  UGRN                  S9UGRH                  l        ORUGRJ                  b  [d        Rf                  " G[T        5      eUGRN                  b  [d        Rf                  " G[V        5      eUGRX                  c  UGRZ                  by  U R                  GR]                  UGRX                  UGR^                  S'9Ul        UGRZ                  b5  U R                  GRc                  UGRZ                  S(9UGR`                  l        UGRf                  bS  UR                  c*  U R                  R                  UGRf                  S)9UlY        OUGRf                  UR                  l        UGRj                  (       aV  U R                  GRm                  UGRj                  U R                  GRl                  GRn                  GRp                  S*9Ul        UGRt                  (       a1  UGRv                   H   nUGRt                  UGRx                  l        M"     G[}        X R                  5      Ul        UGR                  b  G[        X R                  5      Ul        UR<                  (       Gae  U R                  GR                  5       Ul        UR<                  UR<                  l        UGR                  (       a-  UGR                  c  U R                  GR                  S
S9Ul        UGR                  (       a-  UGR                  c  U R                  GR                  S
S9Ul        UGRt                  (       a  UGR                  c   U R                  GR                  5       Ul        UGR                  GR                  c+  U R                  GR                  5       UGR                  l        UGRt                  UGR                  GR                  l        UGR                  (       a  UR<                  c1  U R                  GR                  5       Ul        S
UR<                  l        UR<                  GR                  c*  U R                  GR                  5       UR<                  l        UGR                  S+:X  a  SUR<                  GR                  l        UGR                  (       a*  U R                  GR                  UGR                  S9Ul        UGR                  b?  U R                  GR                  UGR                  G[        X R                  5      S,9Ul        UGR                  bu  UR                  c  U R                  R                  5       UlY        [d        GR                  " U R                  S
S9R                  UGR                  5      UR                  l        UGR                  Gb+  UR<                  (       a  [d        Rf                  " G[        5      eUGR                  c   U R                  GR                  5       Ul        UGR                  GR                  c+  U R                  GR                  5       UGR                  l        UGR                  GR                  GR                  c6  U R                  GR                  5       UGR                  GR                  l        UGR                  UGR                  GR                  GR                  l        UGR                   b  UGR                  c   U R                  GR                  5       Ul        UGR                  GR                  c+  U R                  GR                  5       UGR                  l        UGR                  UGR                  GR                  l        UGR                  (       a  UGR                  c   U R                  GR                  5       Ul        UGR                  GR                  c+  U R                  GR                  5       UGR                  l        U R                  GR                  UGR                  S9UGR                  GR                  l        UGR                  b  UGR                  c   U R                  GR                  5       Ul        UGR                  GR                  c+  U R                  GR                  5       UGR                  l        U R                  GR                  5       UGR                  GR                  l        [d        GR                  " UGR                  GR                  GR                  UGR                  U R                  5        UGR                  (       ac  UGR                  c   U R                  GR                  5       Ul        U R                  GR                  UGR                  S-9UGR                  l        UGR                  b]  UGR                  c   U R                  GR                  5       Ul        U GR                  UGR                  5      nUUGR                  l        UGR                  (       a  UGR                  c   U R                  GR                  5       Ul        UGR                  GR                  c+  U R                  GR                  5       UGR                  l        U R                  GR                  UGR                  S9UGR                  GR                  l        UGR                  (       a  UGR                  c   U R                  GR                  5       Ul        UGR                  GR                  c+  U R                  GR                  5       UGR                  l        G[        X R                  5      UGR                  GR                  l        UGR                  (       a  URj                  (       d(  [d        Rf                  " [        R                  S.S/S95      eUGR                  c   U R                  GR                  5       Ul        UGR                  UGR                  l        G[        XRU R                  5        G[        X R                  5      Ul        G[        X R                  S
S5      Ul        UGR                  (       a  G[        X R                  5      UGl         UGR                  ba  UR                  c  U R                  R                  5       UlY        U R                  GR                  UGR                  S9UR                  Gl        UGR                  (       a+  U R                  GR                  UGR                  S9UGl        UGR                  b  UGR                  c9  U R                  GR                  U R                  GR                  5       S09UGl        UGR                  (       aJ  U R                  GR                  GR                  GR                  UGR                  GR                  Gl        OIU R                  GR                  GR                  GR                  UGR                  GR                  Gl        UGR                   b  UGR                  c!  U R                  GR                  5       UGl        UGR                   (       a?  U R                  GR                  GR"                  GR                  UGR                  Gl        O>U R                  GR                  GR"                  GR                  UGR                  Gl        UGR&                  b  UGR(                  c!  U R                  GR+                  5       UGl        UGR&                  GR/                  5       S1:X  a?  U R                  GR*                  GR,                  GR.                  UGR(                  Gl        O^UGR&                  GR/                  5       S:X  a>  U R                  GR*                  GR,                  GR2                  UGR(                  Gl        UGR4                  Gb  UGR4                  GR/                  5       S2:X  aL  U R                  GR7                  U R                  GR6                  GR8                  GR:                  S39UGl        OUGR4                  GR/                  5       S4:X  aL  U R                  GR7                  U R                  GR6                  GR8                  GR                  S39UGl        O3[d        Rf                  " G[>        R                  UGR4                  S395      eUGR@                  (       a  UGRB                  c!  U R                  GRE                  5       UGl!        UGRF                  UGRB                  Gl$        UGRJ                  b)  G[M        UU R                  UGRB                  5      UGl!        UGRN                  (       a  UGRB                  c!  U R                  GRE                  5       UGl!        UGRN                  UGRB                  Gl$        UGRJ                  b)  G[M        UU R                  UGRB                  5      UGl!        UGRP                  Gb-  UGR                  c   U R                  GR                  5       Ul        UGR                  GR                  c+  U R                  GR                  5       UGR                  l        UGR                  GR                  GR                  c6  U R                  GRS                  5       UGR                  GR                  l        U R                  GRU                  G[W        U R                  UGRP                  5      S59UGR                  GR                  GR                  Gl,        UGRZ                  (       a   U R                  GR]                  SS9UGl/        UGR`                  (       aT  UR                  c*  U R                  R                  UGR`                  S69UlY        OUGR`                  UR                  Gl1        UGRd                  Gb/  UGRf                  c!  U R                  GRi                  5       UGl3        UGRd                  GR/                  5       S7:X  a?  U R                  GRh                  GRj                  GRl                  UGRf                  Gl7        OUGRd                  GR/                  5       S4:X  a?  U R                  GRh                  GRj                  GR                  UGRf                  Gl7        OB[d        Rf                  " G[p        R                  UGRd                  GR/                  5       S895      eUGRr                  b  UGRd                  b;  UGRd                  GR/                  5       S4:X  a  [d        Rf                  " G[t        5      eUGRd                  c!  U R                  GRi                  5       UGl3        UGRr                  GRw                  S95       Vs/ s H  nU R                  GRy                  US:9PM     snUGRf                  Gl=        UGR|                  b  UGR~                  c!  U R                  GR                  5       UGl?        UGR|                  (       a?  U R                  GR                  GRj                  GR                  UGR~                  Gl7        O>U R                  GR                  GRj                  GR                  UGR~                  Gl7        UGR                  Gb  UGR~                  c!  U R                  GR                  5       UGl?        UGR                  GR/                  5       S;:X  a@  U R                  GR                  GRj                  GR                  UGR~                  Gl7        GO UGR                  GR/                  5       S<:X  a?  U R                  GR                  GRj                  GR                  UGR~                  Gl7        OUGR                  GR/                  5       S4:X  a?  U R                  GR                  GRj                  GR                  UGR~                  Gl7        OB[d        Rf                  " G[        R                  UGR                  GR/                  5       S895      eUGR                  Gb  UGR~                  c!  U R                  GR                  5       UGl?        UGR                  GR/                  5       S<:X  a@  U R                  GR                  GR                  GR                  UGR~                  GlG        GO UGR                  GR/                  5       S4:X  a?  U R                  GR                  GR                  GR                  UGR~                  GlG        OUGR                  GR/                  5       S;:X  a?  U R                  GR                  GR                  GR                  UGR~                  GlG        OB[d        Rf                  " G[        R                  UGR                  GR/                  5       S895      eUGR                  b  UGR                  c!  U R                  GR                  5       UGlL        UGR                  (       a?  U R                  GR                  GRj                  GR                  UGR                  Gl7        O>U R                  GR                  GRj                  GR                  UGR                  Gl7        UGR                  (       aP  U GR                  U5      nUR                  c  U R                  R                  US=9UlY        OUUR                  GlQ        UGR                  (       a?  U R                  GR                  5       UGlT        UGR                  UGR                  GlU        UGR                  (       a  UGR                  c   U R                  GR                  5       Ul        UGR                  GR                  c+  U R                  GR                  5       UGR                  l        G[        X R                  G[        5      UGR                  GR                  GlY        UGR                  bw  UR                  c  U R                  R                  5       UlY        [d        GR                  " U R                  5      R                  UGR                  5      UR                  Gl\        UGR                  bK  UGR                  c   U R                  GR                  5       Ul        UGR                  UGR                  l        UGR                  b  UGR                  c   U R                  GR                  5       Ul        UGR                  GR                  c,  U R                  GR                  5       UGR                  Gl^        UGR                  UGR                  GR                  l        UGR                  b  UGR                  c   U R                  GR                  5       Ul        UGR                  GR                  c,  U R                  GR                  5       UGR                  Gl^        UGR                  UGR                  GR                  Gla        UGR                  bK  UGR                  c   U R                  GR                  5       Ul        UGR                  UGR                  l        UGR                  b  UGR                  c   U R                  GR                  5       Ul        UGR                  GR                  c,  U R                  GR                  5       UGR                  Gl^        UGR                  UGR                  GR                  l        UGR                  b  UGR                  c   U R                  GR                  5       Ul        UGR                  GR                  c,  U R                  GR                  5       UGR                  Gl^        UGR                  UGR                  GR                  Gla        UGR                  bI  UR                  c  U R                  R                  5       UlY        UGR                  UR                  Glf        UGR                  bI  UR                  c  U R                  R                  5       UlY        UGR                  UR                  Glh        UGR                  bM  UGR                  c!  U R                  GR                  5       UGlj        UGR                  UGR                  Gll        UGR                  bM  UGR                  c!  U R                  GR                  5       UGlj        UGR                  UGR                  Gln        UGR                  b  UR<                  c1  U R                  GR                  5       Ul        S
UR<                  l        UR<                  GR                  c?  U R                  GR                  UGR                  =(       d    S>/S?9UR<                  Glp        UGR                  bM  UGR                  c!  U R                  GR                  5       UGls        UGR                  UGR                  Glu        UGR                  bM  UGR                  c!  U R                  GR                  5       UGls        UGR                  UGR                  Glw        UGR                  bM  UGR                  c!  U R                  GR                  5       UGls        UGR                  UGR                  Gly        UGR                  bM  UGR                  c!  U R                  GR                  5       UGls        UGR                  UGR                  Gl{        UGR                  bb  UGR                  c!  U R                  GR                  5       UGls        UGR                  GR                  GR                  UGR                  5        UGR                  bb  UGR                  c!  U R                  GR                  5       UGls        UGR                  GR                   GR                  UGR                  5        UGR                  bM  UGR                  c!  U R                  GR                  5       UGls        UGR                  UGR                  Gl        UGR                  bM  UGR                  c!  U R                  GR                  5       UGls        UGR                  UGR                  Gl        UGR
                  bI  UR                  c  U R                  R                  5       UlY        UGR
                  UR                  Gl        UGR                  b  G[        X R                  5      UGl        U GR                  X%5        UR                  bH  UR                  c  U R                  R                  5       UlY        UR                  UR                  Gl        UGR                  b  G[        X R                  5      UGl        UGR                  bZ  UGR                   c!  U R                  GR#                  5       UGl        U R                  GR%                  SS9UGR                   Gl        UGR(                  bV  UGR                   c!  U R                  GR#                  5       UGl        G[+        X R                  5      UGR                   Gl        UGR.                  bK  UGR0                  c!  U R                  GR3                  5       UGl        G[5        X R                  5      UGl        UGR6                  ba  UR<                  (       aP  UGR                  c   U R                  GR                  5       Ul        G[9        UGR                  X R                  5        U$ s  snnf s  snf )@a~  Returns a CreateCluster operation.

This function is for code that is common across all channels, and the
return value is intended to be modified by each.

Args:
  cluster_ref: A Cluster message from the calling channel.
  options: User selected options passed to the cluster creation.

Returns:
  A CreateCluster operation.

Raises:
  A util.Error if options selected are invalid.
)r=  r  keyr  )r  N!logging.googleapis.com/kubernetes$monitoring.googleapis.com/kubernetesnonezlogging.googleapis.comzmonitoring.googleapis.comF)disable_ingressdisable_hpadisable_dashboarddisable_network_policyenable_node_local_dnsenable_gcepd_csi_driverenable_filestore_csi_driverenable_application_managerenable_cloud_buildenable_backup_restoreenable_gcsfuse_csi_driverenable_stateful_haenable_parallelstore_csi_driverenable_high_scale_checkpointingenable_lustre_csi_driverenable_ray_operatorTr  maxPodsPerNodedisabled)defaultSnatStatus)enableL4ilbSubsetting)	dnsConfig)gatewayApiConfigr  providerhidden)evaluationModer=  enforcement-moder=  enforcementModezbinauthz-evaluation-modezbinauthz-policy-bindingsprerequisiteopt	startTime)dailyMaintenanceWindowwindowr  endTimer  
recurrence)recurringWindowr  securityGroupworkloadPool	datasetIdbigqueryDestinationr  r   )issueClientCertificate)enableIntraNodeVisibilitykeyNamestateallow-net-adminr  confidentialInstanceTyper   workload-poolzenable-mesh-certificates)workloadConfigperformance	autofleettyper  variant)enableMultiNetworkingr  mode,standard
enterpriser*  )networkPerformanceConfigr  allowlistPaths(  ParseNodeConfigParseNodePoolsr   ClusterrF  r   	TagsValuer   r  AdditionalPropertyr   r   r2  r  r   r   initialClusterVersionr   r   clusterIpv4Cidrr   loggingServicemonitoringServicer   r   r   r   _AddonsConfigr   INGRESSrR  rK   	DASHBOARDNETWORK_POLICYNODELOCALDNSGCEPDCSIDRIVERGCPFILESTORECSIDRIVERAPPLICATIONMANAGER
CLOUDBUILDBACKUPRESTOREGCSFUSECSIDRIVER
STATEFULHAPARALLELSTORECSIDRIVERHIGHSCALECHECKPOINTINGLUSTRECSIDRIVERRAYOPERATORCONFIGCONNECTORri  r@   rh  r	   r{  9CONFIGCONNECTOR_STACKDRIVER_KUBERNETES_DISABLED_ERROR_MSGr  4CONFIGCONNECTOR_WORKLOAD_IDENTITY_DISABLED_ERROR_MSGConfigConnectorConfigconfigConnectorConfigr  RayClusterLoggingConfigrayOperatorConfigrayClusterLoggingConfigr  RayClusterMonitoringConfigrayClusterMonitoringConfigr  lustreCsiDriverConfigenableLegacyLustrePortaddonsConfigr  PodSnapshotConfigpodSnapshotConfigr  SliceControllerConfigsliceControllerConfigr   enableKubernetesAlphar   EALPHA_CLUSTER_FEATURE_GATES_WITHOUT_ENABLE_KUBERNETES_ALPHA_ERROR_MSGalphaClusterFeatureGatesr  r   4DEFAULT_MAX_PODS_PER_NODE_WITHOUT_IP_ALIAS_ERROR_MSGMaxPodsConstraintdefaultMaxPodsConstraintr(  /DISABLE_DEFAULT_SNAT_WITHOUT_IP_ALIAS_ERROR_MSGr  4DISABLE_DEFAULT_SNAT_WITHOUT_PRIVATE_NODES_ERROR_MSGDefaultSnatStatusnetworkConfigNetworkConfigr  r)  DatapathProviderValueValuesEnumADVANCED_DATAPATHdatapathProviderr   r  ParseClusterDNSOptionsr  ParseGatewayOptionsr  r   
LegacyAbacr  
legacyAbacr   r(   ProviderValueValuesEnumCALICOnetworkPolicyr   BinaryAuthorizationbinaryAuthorizationr   r   GetBinauthzEvaluationModeMapperGetEnumForChoicepolicyBindingsr   PolicyBindingEnforcementModeValueValuesEnumPREREQUISITE_OPTION_ERROR_MSGr}   r  MaintenancePolicyMaintenanceWindowDailyMaintenanceWindowmaintenancePolicyr2  	isoformatr3  RecurringTimeWindow
TimeWindowr4  ParseResourceLabelsr  PodSecurityPolicyConfigpodSecurityPolicyConfigr  _GetGkeAutoUpgradeConfiggkeAutoUpgradeConfigr  AuthenticatorGroupsConfigauthenticatorGroupsConfigr%  ShieldedNodesshieldedNodesWorkloadIdentityConfigworkloadIdentityConfigro  lowergke_constantsIPV6_STACK_TYPEParseIPAliasOptionsParseAllowRouteOverlapOptionsParsePrivateClusterOptionsParseTpuOptionsr  VerticalPodAutoscalingverticalPodAutoscalingr  BigQueryDestinationResourceUsageExportConfigresourceUsageExportConfigr  enableNetworkEgressMeteringr  ConsumptionMeteringConfigconsumptionMeteringConfig(ENABLE_NETWORK_EGRESS_METERING_ERROR_MSG.ENABLE_RESOURCE_CONSUMPTION_METERING_ERROR_MSGr   r  
MasterAuthr   
masterAuthClientCertificateConfigclientCertificateConfigr  r  r  DatabaseEncryptionStateValueValuesEnum	ENCRYPTEDdatabaseEncryptionr   r  configr6   _GetReleaseChannelreleaseChannel	Autopilotr  r  secretManagerConfigSecretManagerConfigr  secretSyncConfigSecretSyncConfigautoscalingClusterAutoscaling autoprovisioningNodePoolDefaults AutoprovisioningNodePoolDefaultsr  workloadPolicyConfigWorkloadPolicyConfigallowNetAdminrT  ConfidentialNodesconfidentialNodesrU  #_ConfidentialNodeTypeEnumFromStringrS  $GetPrivateIpv6GoogleAccessTypeMapperprivateIpv6GoogleAccessr  .NODECONFIGDEFAULTS_READONLY_PORT_NOT_SUPPORTEDnodePoolDefaultsNodePoolDefaultsnodeConfigDefaultsNodeConfigDefaultsnodeKubeletConfigNodeKubeletConfig"insecureKubeletReadonlyPortEnabledr  nodePoolAutoConfigNodePoolAutoConfigr`  
GcfsConfig
gcfsConfigr  ContainerdConfigcontainerdConfigLoadContainerdConfigFromYAMLr   NetworkTagsnetworkTagsr  _ResourceManagerTagsresourceManagerTagsra  rm  _GetStableFleetConfigstableFleetConfigr!  meshCertificatesMeshCertificatesenableCertificates_AddNotificationConfigToCluster_GetLoggingConfigloggingConfig_GetMonitoringConfigmonitoringConfigrl  _GetManagedOpenTelemetryConfigmanagedOpentelemetryConfigrd  ServiceExternalIPsConfigserviceExternalIpsConfigr$  IdentityServiceConfigidentityServiceConfigrq  protectConfigProtectConfigWorkloadConfigAuditModeValueValuesEnumBASICr  	auditModeDISABLEDrr  (WorkloadVulnerabilityModeValueValuesEnumworkloadVulnerabilityModer  podAutoscalingPodAutoscalingHpaProfileValueValuesEnumPERFORMANCE
hpaProfiler?   rx  ManagedConfigTypeValueValuesEnum	AUTOFLEETmanagedConfig MANGED_CONFIG_TYPE_NOT_SUPPORTEDrz  fleetFleetr1  r9  r{  _GetFleetMembershipTypery  r}  NodePoolLoggingConfigLoggingVariantConfigVariantConfigEnumFromStringvariantConfigr5  CostManagementConfigcostManagementConfigr~  r%  r  compliancePostureConfigCompliancePostureConfigModeValueValuesEnumENABLEDr'  COMPLIANCE_MODE_NOT_SUPPORTEDr  !COMPLIANCE_DISABLED_CONFIGURATIONr  ComplianceStandardcomplianceStandardsr  securityPostureConfigSecurityPostureConfigr  
ENTERPRISE#SECURITY_POSTURE_MODE_NOT_SUPPORTEDr   VulnerabilityModeValueValuesEnumVULNERABILITY_BASICvulnerabilityModeVULNERABILITY_DISABLEDVULNERABILITY_ENTERPRISE2WORKLOAD_VULNERABILITY_SCANNING_MODE_NOT_SUPPORTEDr  !runtimeVulnerabilityInsightConfig!RuntimeVulnerabilityInsightConfigPREMIUM_VULNERABILITY_SCANr  #_GetClusterNetworkPerformanceConfigr,  r  K8sBetaAPIConfigenableK8sBetaApisenabledApisr  _GetHostMaintenancePolicyCLUSTERhostMaintenancePolicyr  (GetCreateInTransitEncryptionConfigMapperinTransitEncryptionConfigr  rotationConfigRotationConfigr  rotationIntervalr  SyncRotationConfigr  r  $enableCiliumClusterwideNetworkPolicyr  enableFqdnNetworkPolicyr  rbacBindingConfigRBACBindingConfig(enableInsecureBindingSystemAuthenticatedr  *enableInsecureBindingSystemUnauthenticatedr  privilegedAdmissionConfigPrivilegedAdmissionConfigr  userManagedKeysConfigUserManagedKeysConfig	clusterCar  aggregationCar  
etcdPeerCar  	etcdApiCar  serviceAccountVerificationKeysr   r  serviceAccountSigningKeysr  controlPlaneDiskEncryptionKeyr  gkeopsEtcdBackupEncryptionKeyr  !disableL4LbFirewallReconciliationr  _GetEnterpriseConfigenterpriseConfig!_ParseControlPlaneEndpointsConfigdefaultEnablePrivateNodesr  !_GetAnonymousAuthenticationConfiganonymousAuthenticationConfigr  ipAllocationPolicyIPAllocationPolicyAutoIpamConfigautoIpamConfigr  _GetNetworkTierConfignetworkTierConfigr  controlPlaneEgressControlPlaneEgress_GetControlPlaneEgressr'  0_AddKernelModuleSignatureEnforcementToNodeConfig)r  rU  r   r   poolsri   kvr   default_snat_status
dns_configgateway_configbindingwindow_start
window_endis_cluster_ipv6bigquery_destinationpoolrm_tagsr*  perfs                        rr   CreateClusterCommonAPIAdapter.CreateClusterCommon	  s+     &&w/K5Emm##)>)>%#PG]]**44 !!5!5!;!;!=> >$! mm##--@@Q@P>  5 gl  +"2"2!3g6N6N!NOg !7!78g&-&=&=g#go   ' 9 9g,,8		.	.!D$J!
 ((400#)'
 ++733&,'
#!'$*! 
	%	%	1''#;'
 #)'
 		(	(	4**&A'
#&,'
#"--g~~~!!%nn00%@@ $###!..,,S%88 $### ' 2 29e DD%,^^%7%7%N!N ' 2 2< @").."4"4^U"K&-nn&8&8#U' &-^^%7%7 %& %^^//
EB ' 2 2=% H$+NN$6$67G$O$^^//
EB*1..*<*<$e+ +2..*<*<$e+ $+>>#5#5ou#M%nn00eD5 " f: 
GNN	*44"".'"4"44+goo0M

G    (

OP
P'+}}'J'J (K (
$ 
	+	+	7MM11:: 2  	  8
 
	.	.	:MM44== 5  	  ;
 
	*	*	6-- 	$$; $##/				%#113/3}}/N/N.. 0O 0g, &&2				%#113
--
-
-55 .  0 &&&-&E&Eg#**,,jjQ
 	
 *1)L)Lg&)+g&((4$$jjMNN)-)H)H :: *I *g& ##$$jjHII))jjMNN MM;;// <  
			& $ ; ;1 !< !
 3F/'G,@,@				& $ ; ; =
--
%
%
E
E
W
W , ''				& $ ; ;")"B"B !< !

 ,, 	3 ,,W5J				& $ ; ;  !< !
 +5'--g6N!				& $ ; ;+ !< !
 2@.**6==33w::; 4 g
 $$"mm99//==..FFMM : g
 *$(MM$E$E)) %F %g! ''3		)	)	5&*mm&G&G??ew??@ 'H '
#
 77G

%
%
4
4
;
;mm))v (72 #'--"="="\"\01#  * 	 8 '+mm&G&G??ew??@ 'H '
# 	((00JJ
'
.
.5, /   !!-"&--"A"A00%)]]%I%I#66 &J & 1  #B #g 
	)	)	555??Al11;;=j"&--"A"A00"mm??11 , 2  %BB	 @  1  #B 	#g 	W.))5(,(M(M44 )N )g% '%=
==&g" ) --
1
1'*@*@ 2  '
 $$0"mm99// : g '+}}'K'K,, (L (g$
 	 	H$$&-*G*GG  
w0&&w8##G5*..:'+}}'K'K99 (L (g$ ...!]]>>;; ?  --
1
1"6 2  '
 
	/	/	/HL))E		5	5	AMM33DD 4  	))C
 
	/	/	;JJ?@@		5	5	AJJEFF ||7#C#C#O==33<<'*:*: 4 g 
	)	)	5MM11'.'G'G 2  	2 ++7				& $ ; ;&-&J&J !< !

 00 	7 &&&#'==#C#C1100EEOO $D $g 
    ##$%,%>%>" $ 0GG'%=
==&g" --113g")"3"3g		&	&	&&&.(,(I(I )J )'
% 
	#	#	###+%)]]%C%C &D &'
" 
	"	"	"& $ @ @ B'
??Gmm<<> 


> %% 	<<K    				" MM335$)!				/	/	7MM..0 	. 
	"	"&7	7?C..<((("&--"A"A33 #B #g %%1"&--"A"A33#F}}$ #B #g ..:				& $ ; ; =

3
3mmEWDDE 3 44@			jjGHH		!	!	)#'==#A#A#C 		!	!	4	4	<MM,,. 	  3 
	!	!	4	4	F	F	NMM++- 	  33E
 
7
7 11CCf 	FF	 
	#	#	+%)]]%E%E%G"		#	#	5	5	=MM++- 	""4
 
H
H   22U 		!	!	)#'==#A#A#C 		!	!	4	4	<MM,,. 	  3 --
"
"7+>+>
"
? 11< **6		!	!	)#'==#A#A#C 		!	!	4	4	<MM,,. 	  3 --
(
(
* 11B ''

"
"
5
5
F
F

-
-
-- ,,,		#	#	+%)]]%E%E%G"/3}}/H/H44 0I 0g  , 55A		#	#	+%)]]%E%E%G"))

8
8g 8?g  4%%%		!	!	)#'==#A#A#C 		!	!	4	4	<MM,,. 	  3 --
"
"7+I+I
"
J 11< ###		!	!	)#'==#A#A#C 		!	!	4	4	<MM,,. 	  3  
7 11C '''""jj)00,2L 1 
 	

 
	!	!	)#'==#A#A#C 

*
* 1 $GdmmD-g}}EG3t G !!!+I
==,g( ))5				& $ ; ; =
--
0
088 1  4 &&&&*mm&I&I11 'J 'g# ++7				& $ ; ;==779 !< !
 
	-	-	-MM((AAGG 	,,6
 MM((AAJJ 	,,6 55A				& $ ; ; =		7	7	7MM''PPVV 	7
 MM''PPYY 	7 &				'!%!=!=!?				"	"	$	5MM((BBNN 	) $$&&0MM((BBGG 	) )				%	%	';	6 $ ; ;,,@@JJ !< !
 !!'')Z7 $ ; ;,,@@II !< !
 jj,339O9O3P
 	
 		++-)33gmm		 	 	,/04w}}N 		++-%33gmm		 	 	,/04w}}N *		!	!	)#'==#A#A#C 		!	!	4	4	<MM,,. 	  3 
	!	!	4	4	B	B	JMM//1 	  33A QUP]P]PrPr-mmW44 Qs Qg11??M %%%%)]]%G%G &H &g" &&&				& $ ; ;")"A"A !< !

 ++ 	3 %		(	(	0MM113 	' 
			!	!	#y	0MM11EEMM 	'', ##%3MM11EENN 	'', jj)00''--/ 1 
 	
 ##/ 


(  &&(J6jj:;;				#MM113 	' "66<<SA=Ah --
*
*H
*
=A=g%%9
 &&2		&	&	.(,(K(K(M%		(	(	(MM//CCII 	%%*
 MM//CCLL 	%%* +		&	&	.(,(K(K(M%		!	!	'	'	)\	9MM//CCNN 	%%* ##))+z9MM//CCII 	%%* ##))+z9MM//CCLL 	%%* jj/66--335 7 
 	
 ..:		&	&	.(,(K(K(M%		0	0	6	6	8J	FMM//PPdd 	%%7 2288:jHMM//PPgg 	%%7 2288:lJMM//PPii 	%%7 jj>EE<<BBD F 
 	
 33?		2	2	:MM;;= 	1 
	5	5	5MM;;OOjj 	116
 MM;;OOXX 	116 )))55g>d				& $ ; ;%) !< !
 :>6###"&--"@"@"Bg.5.J.Jg+(((		!	!	)#'==#A#A#C 		!	!	4	4	<MM,,. 	  3 $G]]G
D 11G $$0				& $ ; ; =

7
7mmW::; 5 $$0		$	$	,&*mm&G&G&I#,3,I,Ig!!)--9		$	$	,&*mm&G&G&I#		$	$	3	3	;MM((* 	##2 
0
0 !!008 //;		$	$	,&*mm&G&G&I#		$	$	3	3	;MM((* 	##2 
2
2 !!00A !!-		!	!	)#'==#A#A#C )0)C)Cg&**6		!	!	)#'==#A#A#C 		!	!	0	0	8MM,,. 	  / 
-
- --5 ,,8		!	!	)#'==#A#A#C 		!	!	0	0	8MM,,. 	  / 
/
/ --> 77C				& $ ; ; =

:
: @ ))5				& $ ; ; =

,
, 3 ;;G		"	"	*$(MM$C$C$E!

>
> H ==I		"	"	*$(MM$C$C$E!

@
@ J --9				" MM335$)!				4	4	<6:mm6]6] #AAIbT 7^ 7
3
 %		&	&	.(,(K(K(M%070B0Bg##-)		&	&	.(,(K(K(M%4;4J4Jg##1'		&	&	.(,(K(K(M%181E1Eg##.&		&	&	.(,(K(K(M%070C0Cg##-00<		&	&	.(,(K(K(M%##BBII

3
3 ++7		&	&	.(,(K(K(M%##==DD

.
. 00<		&	&	.(,(K(K(M%

3
3 ##A 00<		&	&	.(,(K(K(M%

3
3 ##A 44@				& $ ; ; =

7
7 = ||!5g}}!Mg**7<##/				& $ ; ; =

&
& 5 ..:.O
==/g+ +		#	#	+%)]]%E%E%G"26--2N2N 3O 3g  / '		#	#	+%)]]%E%E%G"5J7TaTa5bg  2((4		#	#	+%)]]%E%E%G"#9'==#Qg 99E			%%-'+}}'G'G'I'
$8&&	
 N_ d=s   9Ca>
Y5$Cbc                 
   UR                   nU R                  R                  5       nU HV  nUR                  SS5      R	                  5       nU(       d  M,  U R                  R                  R                  U5      Ul        MX     U$ )Ntotal-egress-bandwidth-tierr  )r  r   ClusterNetworkPerformanceConfigr   upper'TotalEgressBandwidthTierValueValuesEnumtotalEgressBandwidthTierr  r   network_perf_argsnetwork_perf_configsr  
total_tiers         rr   r	  .APIAdapter._GetClusterNetworkPerformanceConfig  sy    ::==HHJ#::;R@FFHj	8<8e8e  9N  9N9
5 $  rs   c                 
   U R                   R                  5       nUR                  (       a  UR                  Ul        UR                  (       a  UR                  Ul        UR                  (       a  UR                  Ul        UR                  (       a  [        R                  " S5      eUR                  (       d  UR                  (       a  U R                  U5      Ul        [        X5        UR                   (       a  UR                   Ul        U R%                  X!5        U R'                  X!5        U R)                  X!5        U R+                  X!5        U R-                  X!5        U R/                  X!5        U R1                  X!5        UR2                  (       a  UR2                  Ul        O/ Ul        UR4                  (       a  UR4                  Ul        U R9                  X5        [;        X!5        [=        X!5        [?        X!5        U RA                  X!5        URB                  b"  URB                  nU RE                  U5      Ul#        URH                  (       a  URH                  Ul$        URJ                  (       a  URJ                  Ul%        U RM                  X5        URN                  b  URN                  Ul(        U RS                  X!U R                   5        [U        X!U R                   5        [W        X!U R                   5        [Y        X!U R                   5        URZ                  b  [        R\                  " UURZ                  UR^                  U R                   5        UR^                  c@  UR`                  b3  UR`                  Rb                   b  UR`                  Rb                  Ul/        U Re                  X5        URf                  b)  U R                   Ri                  URf                  S9nXBl3        URj                  b  URj                  S:X  aG  U R                   Rm                  U R                   Rl                  Rn                  Rp                  S9Ul9        OVURj                  S:X  aF  U R                   Rm                  U R                   Rl                  Rn                  Rt                  S9Ul9        URv                  b  URv                  Ul<        URz                  b  URz                  Ul>        UR~                  b  UR~                  Ul@        UR                  b^  UR                  c  U R                   R                  5       UlB        U R                   R                  UR                  S9UR                  lE        U$ )z1Creates node config based on node config options.z4cannot specify node source image in container v1 apir  RDMAgpuDirectStrategyTCPX)Fr   
NodeConfigr   machineTyper   r7   r   r8   r   r	   r{  r  r  ParseBootDiskConfigbootDiskr   r   localSsdCount%_AddLocalSSDVolumeConfigsToNodeConfig _AddEphemeralStorageToNodeConfig(_AddEphemeralStorageLocalSsdToNodeConfig!_AddLocalNvmeSsdBlockToNodeConfig)_AddEnableConfidentialStorageToNodeConfig_AddStoragePoolsToNodeConfig&_AddLocalSsdEncryptionModeToNodeConfigr   r   r9   ParseCustomNodeConfig_AddNodeLabelsToNodeConfig_AddLabelsToNodeConfig_AddMetadataToNodeConfig_AddNodeTaintsToNodeConfigr  r  r  r   r   ParseAcceleratorOptionsr   r-    _AddWorkloadMetadataToNodeConfig_AddLinuxNodeConfigToNodeConfig&_AddShieldedInstanceConfigToNodeConfig#_AddReservationAffinityToNodeConfigr1  LoadSystemConfigFromYAMLr  kubeletConfigr  ParseAdvancedMachineFeaturesrM  
VirtualNICr6  GPUDirectConfig GpuDirectStrategyValueValuesEnumrU  gpuDirectConfigrX  r   maxRunDurationr   consolidationDelayr   	flexStartr  lustreConfigLustreConfig	MultiRail	multiRail)r  r   r   r   rM  s        rr   r/  APIAdapter.ParseNodeConfig  s:   --**,K   ' 9 9k  &88k$..k  JJMNN**33!55g>k#G9")"9"9k..{D))+?11+G**;@22;H%%k;//E|| kk%00kw4{4;0[2##K9$$0**d(,(A(A$(Gk% ' 3 3k|| k  6+#*#;#;k ))+N#K$--H*;O'dmmL&&2
##


)
)

7
7
--	 
	6	6	>%%1))LL ''JJ 
7 	%%g;}} mm&&w}}&=e!!-		#	#v	-&*mm&C&C--NNSS 'D '
#
 %%/&*mm&C&C--NNSS 'D '
# +#*#;#;k "".'.'B'Bk$%%00k&&2		!	!	)#'==#=#=#? +/==+B+B11 ,C ,k( rs   c                     U R                   R                  5       nUR                  (       a  UR                  Ul        UR                  (       a  UR                  Ul        U$ r   )r   BootDiskr  provisionedIopsr  provisionedThroughput)r  r   boot_disk_configs      rr   r[  APIAdapter.ParseBootDiskConfig/  sO    }}--/)))0)K)K&//

2
2 , rs   c                    U R                   R                  5       nUR                  (       a  UR                  Ul        UR                  (       a  UR                  Ul        UR                  (       a.  UR                  UR                  R                  5       5      Ul	        UR                  (       d"  UR                  (       d  UR                  (       a  X2l
        gg)z4Parses advanced machine feature node config options.N)r   AdvancedMachineFeaturesre  threadsPerCorerf  enableNestedVirtualizationrg  (PerformanceMonitoringUnitValueValuesEnumrL  performanceMonitoringUnitadvancedMachineFeatures)r  r   r   featuress       rr   rq  'APIAdapter.ParseAdvancedMachineFeatures9  s    }}446H ' 8 8h++,3,P,Ph)**

;
;11779 ( 	  //..,4) /rs   c                 x   U R                   R                  5       nUR                  (       a  UR                  Ul        UR                  (       a  UR                  Ul        UR
                  (       a  UR
                  Ul        UR                  (       d"  UR                  (       d  UR
                  (       a  X2l        gg)z"Parses custom node config options.N)r   CustomImageConfigr   r   imageProjectr   imageFamilynodeImageConfig)r  r   r   custom_configs       rr   re   APIAdapter.ParseCustomNodeConfigN  sx    MM335M}}#MMm#*#8#8m ")"6"6m}}--1E1E$1! 2Frs   c           
         UR                   =(       d    [        nUR                  U-   S-
  U-  nUS:X  a  S/nO+[        SU5       Vs/ s H  nSR	                  U5      PM     nn/ nUR                  [        U5      -   S-
  [        U5      -  nUR                  nU GH  n	X:  a  UOUn
U R                  R                  U	U
UUR                  U R                  U5      S9nUR                  (       a  U R                  R                  UR                  UR                  UR                  UR                  UR                  S9Ul        UR"                  b/  [%        U R                  UR"                  5      UR                   l        UR(                  (       aS  UR*                  (       d  [,        R.                  " [0        5      eU R                  R3                  UR(                  S9Ul        UR6                  c  UR8                  bU  U R                  R;                  5       Ul        UR6                  UR<                  l        UR8                  UR<                  l         URB                  S:X  d  URD                  b  U R                  RG                  5       Ul$        URB                  S:X  a9  U R                  RF                  RJ                  RL                  URH                  l'        URD                  b  URD                  URH                  l(        URR                  b:  U R                  RU                  5       Ul+        URR                  URV                  l,        UR[                  U5        X-  nGM     U$ s  snf )	Creates a list of node pools for the cluster by parsing options.

Args:
  options: cluster creation options
  node_config: node configuration for nodes in the node pools

Returns:
  List of node pools.
r  default-poolr   zdefault-pool-{0}r=  initialNodeCountr  r  r1   r  minNodeCountmaxNodeCounttotalMinNodeCounttotalMaxNodeCountr  rU   ).r   DEFAULT_MAX_NODES_PER_POOLr   r   r}   r  r   NodePoolr   _GetNodeManagementr   NodePoolAutoscalingr   r   r   r   r  r   LocationPolicyEnumFromStringlocationPolicyr  r   r	   r{  ,MAX_PODS_PER_NODE_WITHOUT_IP_ALIAS_ERROR_MSGr]  maxPodsConstraintr7  r8  UpgradeSettingsr.   maxSurgemaxUnavailabler   r   PlacementPolicyplacementPolicyr  rU   r"  
policyNamer   QueuedProvisioningqueuedProvisioningr  r   )r  r   r   r   r9  
pool_namesiper_poolto_addr=  nodesrD  s               rr   r0  APIAdapter.ParseNodePoolsZ  s    	""@&@  !33a7<NNEz"#j ;@5/J/Q&--a0/jJE!!C
O3a7C
OKHF!,h6e]]## &&,,W5 $ d 
	#	#==<<.. ** **%55%55 = 
 "".,HmmW44-$


) 
	"	"&&

GH
H!%!@!@"44 "A "
 
#
#
/,,8#}}<<>(/(A(A%.5.M.M+

 
 I
-%%1#}}<<>			9	,MM))==EE 	! 
	!	!	-*1*B*B'		+	+	7"&--"B"B"D*1*L*L'll4ofc d Lo Ks   M"c                 ~   UR                   Gb  UR                   S   n[        UR                   R                  SS5      5      nU R                  R	                  X4S9nUR                   R                  SS5      nU(       a  Xel        [        UR                   R                  SS	5      5      nU(       a  UUl        UR                   R                  S
S5      nUR                   R                  SS5      n	U	(       d  U(       a  U	c  Sn	O[        U	5      n	U R                  R                  R                  n
Uc  U
R                  nO@US:X  a  U
R                  nO-US:X  a  U
R                  nO[        R                  " [        5      eU R                  R                  U	US9nXl        UR                   R                  SS5      nUb  UR                  5       S:X  a+  U R                  R                   R"                  R$                  nOUR                  5       S:X  a+  U R                  R                   R"                  R&                  nOYUR                  5       S:X  a+  U R                  R                   R"                  R(                  nO[        R                  " [*        5      eU R                  R!                  US9nUUl        U/Ul         gg)z9Parses accrelerator options for the nodes in the cluster.Nr"  countr  )acceleratorTypeacceleratorCountzgpu-partition-sizer  zmax-time-shared-clients-per-gpur   zgpu-sharing-strategyzmax-shared-clients-per-gpur  ztime-sharingmps)maxSharedClientsPerGpugpuSharingStrategyzgpu-driver-versiondefaultlatestr  )gpuDriverVersion)r   intr   r   AcceleratorConfiggpuPartitionSizemaxTimeSharedClientsPerGpuGPUSharingConfig!GpuSharingStrategyValueValuesEnumTIME_SHARINGMPSr	   r{  GPU_SHARING_STRATEGY_ERROR_MSGgpuSharingConfigr  GPUDriverInstallationConfigGpuDriverVersionValueValuesEnumDEFAULTLATESTINSTALLATION_DISABLEDGPU_DRIVER_VERSION_ERROR_MSGgpuDriverInstallationConfig)r  r   r   	type_namer  accelerator_configgpu_partition_sizemax_time_shared_clients_per_gpugpu_sharing_strategymax_shared_clients_per_gpustrategy_enumgpu_sharing_configgpu_driver_versiongpu_driver_installation_configs                 rr   rj  "APIAdapter.ParseAcceleratorOptions  s   '&&v.i'&&**7A67e==::# ;  #//334H"M	.@+(+



"
"#Da
H)% 
)+ 	5 %1155
 $ $+#7#7#;#;
&$  
$';%-'(
$'*+E'F
$ MM**LL 	  '!.!;!;
!^3!.!;!;
!U*!.!2!2


9:
:!]];;#=3 < 
 /A+"//334H$O		'##%2mm77WW__   %%'83mm77WW^^   %%':5mm77WWmm  

78
8 MM55!3 6  	' + 	6
 "k] (rs   c                 $   UR                   b  U R                  R                  R                  5       n/ n[	        [
        R                  " UR                   5      5       H#  u  pVUR                  UR                  XVS95        M%     XCl	        X2l
        gg)z/Parses resource labels options for the cluster.Nr  )r   r   r1  ResourceLabelsValuer   six	iteritemsr   r3  r  resourceLabels)r  r   ri   r   propsr:  r;  s          rr   r}  APIAdapter.ParseResourceLabels  sr    ~~!}}$$88:few~~67$!V..1.>? 8$)!% "rs   c                    SUR                   4SUR                  4SUR                  4SUR                  4SUR                  4SUR
                  4SUR                  4/nUR                  (       d:  U H4  u  pEU(       d  M  [        R                  " [        R                  SUS	95      e   UR                  (       a'  UR                  b  [        R                  " [        5      eUR                  (       Ga  S
nS
nUR                  bx  UR                   H0  nUS;  d  M  [        R                  " [        R                  US95      e   UR                  R                  SS
5      nUR                  R                  SS
5      nU R                   R#                  UR                  UR                  S
LUUR$                  UUR                   UR                  UR                  S9n	UR                  b(  U R                   R'                  UR                  S9U	l        UR*                  (       a  UR*                  U	l        UR
                  b>  [        R.                  " U R                   5      R1                  UR
                  5      U	l        UR                  b>  [        R4                  " U R                   5      R1                  UR                  5      U	l        S
Ul        Xl        U$ UR                  b  U R                   R#                  SS9Ul        U$ )z Parses the options for IP Alias.zservices-ipv4-cidrzcreate-subnetworkzcluster-secondary-range-namezservices-secondary-range-namezdisable-pod-cidr-overprovisionz
stack-typezipv6-access-typeenable-ip-aliasr  Nr=  r   r  r=  r   )useIpAliasescreateSubnetworksubnetworkNameclusterIpv4CidrBlocknodeIpv4CidrBlockservicesIpv4CidrBlockclusterSecondaryRangeNameservicesSecondaryRangeNamedisableT)	useRoutes)r   r   r   r   rn  ro  rp  r   r	   r{  ru  r}   r   +CREATE_SUBNETWORK_WITH_SUBNETWORK_ERROR_MSG'CREATE_SUBNETWORK_INVALID_KEY_ERROR_MSGr   r   r0  r   PodCIDROverprovisionConfigpodCidrOverprovisionConfigr
  tpuIpv4CidrBlockGetCreateStackTypeMapperrq  	stackTypeGetIpv6AccessTypeMapperipv6AccessTyper5  r/  )
r  r   ri   ip_alias_only_optionsr=  r   subnetwork_namenode_ipv4_cidrr  r  s
             rr   r  APIAdapter.ParseIPAliasOptions  s    
w99:	g778	')M)MN+11	

 -22	
 
w))*	W556 "",)$3

+220d 3   - g77CJJBCCon		"	"	.,,C))**7>>3>G  -
 "3377E 2266wE}}//.."44D@(&88* ' : :$+$H$H%,%J%J 0 	f 
	/	/	;MM44>> 5  	)
 
		")"7"7				'88MM


7--
. 	 
	!	!	- $ < <MM!


733
4 	 !%g#)  N 
	 	 	,#'==#C#C $D $g  Nrs   c                    UR                   (       d  gUR                  c  [        R                  " [        5      eUR
                  c  [        R                  " [        5      eUR                  (       a'  UR                  c  [        R                  " [        5      eUR                  c   U R                  R                  SS9nX2l	        gSUR                  l        g)z*Parse the options for allow route overlap.NT)allowRouteOverlap)r  r   r	   r{  1ALLOW_ROUTE_OVERLAP_WITHOUT_EXPLICIT_NETWORK_MODEr   2ALLOW_ROUTE_OVERLAP_WITHOUT_CLUSTER_CIDR_ERROR_MSGr   3ALLOW_ROUTE_OVERLAP_WITHOUT_SERVICES_CIDR_ERROR_MSGr/  r   r0  r  )r  r   ri   r  s       rr   r  (APIAdapter.ParseAllowRouteOverlapOptionsQ  s    &&&JJHII  (JJIJJ7#=#=#EJJJKK !!)}}//$/Gf#) 59g  2rs   c                    UR                   b'  UR                  b  [        R                  " [        5      eUR                   c  UR                  Ul         UR                   (       a9  UR
                  (       d(  [        R                  " [        R                  SSS95      eUR                  (       a9  UR                   (       d(  [        R                  " [        R                  SSS95      eUR                  (       a9  UR                   (       d(  [        R                  " [        R                  SSS95      eUR                  (       a?  U R                  R                  UR                   UR                  UR                  S9nX2l        U$ )zEParses the options for Private Clusters (for backward compatibility).r  zenable-private-nodesr  zenable-private-endpointzmaster-ipv4-cidr)enablePrivateNodesenablePrivateEndpointmasterIpv4CidrBlock)r  r  r	   r{  3ENABLE_PRIVATE_NODES_WITH_PRIVATE_CLUSTER_ERROR_MSGr   ru  r}   r  r	  r   PrivateClusterConfigprivateClusterConfig)r  r   ri   r  s       rr   r  %APIAdapter.ParsePrivateClusterOptionsd  sG    	$$0##/JJJKK##+%,%<%<g"##G,C,CJJ
'
.
.,2H /   &&w/K/KJJ
'
.
.17P /   (D(DJJ
'
.
.17I /   }}11$99 ' ? ?%66 2 f
 &,"Nrs   c                    UR                   (       a9  UR                  (       d(  [        R                  " [        R                  SSS95      eUR                   (       d9  UR                  (       a(  [        R                  " [        R                  SSS95      eUR                   (       d9  UR                  (       a(  [        R                  " [        R                  SSS95      eUR                   (       ac  UR                   Ul        UR                  (       a@  U R                  R                  UR                   UR                  UR                  S9nX2l        ggg)zParses the options for TPUs.r  z
enable-tpur  ztpu-ipv4-cidrzenable-tpu-service-networkingr  ipv4CidrBlockuseServiceNetworkingN)r  r   r	   r{  ru  r}   r
  r  	enableTpur   	TpuConfig	tpuConfig)r  r   ri   
tpu_configs       rr   r  APIAdapter.ParseTpuOptions  s   '"9"9JJ
'
.
.,, /   '"7"7JJ
'
.
.'_ /   '"G"G JJ
'
.
.'-L /   !,,g		.	.]],,&&!//!(!F!F - 


 ' 
/ rs   c                    UR                   (       a+  UR                  (       d  [        R                  " [        5      eUR                  c@  UR
                  b2  UR
                  R                  b  SUR
                  R                  l        OUR                  (       dF  U R                  R                  SS9nU R                  U5        UUR
                  R                  l        OU R                  R                  UR                  S9nUR                   (       aE  UR                    H5  nUR                  R                  U R                  R                  US95        M7     U R                  U5        UUR
                  R                  l        UR                  b  U R                  U5        UR
                  R                  R                   c2  U R                  R                  SS9UR
                  R                  l        UR                  UR
                  R                  R                  l        UR                   b  U R                  U5        UR
                  R                  R                   c2  U R                  R                  SS9UR
                  R                  l        UR                   UR
                  R                  R                  l        gg)z2Parses the options for master authorized networks.NFr  	cidrBlock)r   r   r	   r{  &MISMATCH_AUTHORIZED_NETWORKS_ERROR_MSGcontrolPlaneEndpointsConfigipEndpointsConfigauthorizedNetworksConfigr   MasterAuthorizedNetworksConfig _InitIPEndpointsConfigIfRequired
cidrBlocksr   	CidrBlockrw  gcpPublicCidrsAccessEnabledr  !privateEndpointEnforcementEnabled)r  r   ri   authorized_networksr   s        rr   #ParseMasterAuthorizedNetworkOptions.APIAdapter.ParseMasterAuthorizedNetworkOptions  sg    	**99 JJ=>>		2	2	:

-
-
911CCO  //AAZ66 MMHH I  ++G4  
-
-
?
?
X !MMHH;; I  
	+	+99G

(
(
/
/mm%%%8 : ++G4  
-
-
?
?
X ))5
++G4

-
-
?
?
X
X

 MM888G //AAZ 
,
, 
-
-
?
?
X
X
t ==I
++G4

-
-
?
?
X
X

 MM888G //AAZ 
@
@ 
-
-
?
?
X
X
z Jrs   c                    UR                   cr  UR                  (       a(  [        R                  " [        R                  SSS95      eUR                  (       a(  [        R                  " [        R                  SSS95      eUR                   c<  UR                  c/  UR                  c"  U(       a  UR                  c  UR                  c  gU R                  R                  5       nU(       aS  U R                  U5      nUR                  (       a1  UR                  R                  (       a  UR                  R                  nUR                   b  U R                  R                  R                  nUR                   R                  5       S:X  a  UR                   nO7UR                   R                  5       S:X  a  UR"                  nOUR$                  nXtR&                  :w  a"  U(       a  [(        R*                  " SS	S
9  Xtl        UR                  ba  U R                  R                  R,                  nUR                  R                  5       S:X  a  UR.                  Ul        OUR2                  Ul        UR                  b  UR                  Ul        UR                  b  UR                  Ul        U(       a  UR                  (       a  SUl        U$ )z"Parses the options for ClusterDNS.Nzcluster-dnszcluster-dns-scoper  zcluster-dns-domainclouddnskubednszAll the node-pools in the cluster need to be re-created by the user to start using the new DNS provider. It is highly recommended to perform this step shortly after completing the update.Tr  cancel_on_nori   r  )rY  rZ  r	   r{  ru  r}   r[  r]  r\  r   	DNSConfigrX  rb  r  ClusterDnsValueValuesEnumr  	CLOUD_DNSKUBE_DNSPLATFORM_DEFAULT
clusterDnsr   PromptContinueClusterDnsScopeValueValuesEnumCLUSTER_SCOPEclusterDnsScope	VPC_SCOPEclusterDnsDomainadditiveVpcScopeDnsDomain)	r  r   	is_updaterU  r=  ri   provider_enumdesired_cluster_dns
scope_enums	            rr   rg  !APIAdapter.ParseClusterDNSOptions  sL   "		"	"jj)00*0C 1 
 	

 
	#	#jj)00*0D 1 
 	
 	#%%-&&.g@@H119((*J,g			7#8#8#B#B**44
&mm--GGm				"	"	$
	2+55$$&)3+44+<<	 5 5	5

#
#+
   !4  ,==**IIj		"	"	(	(	*i	7%/%=%=
"%/%9%9
"!!-$+$>$>j!,,8

/
/ * W77-/j*rs   c                 |   UR                   c  gU R                  R                  5       nU R                  R                  R                  nUR                   R	                  5       S:X  a  UR
                  Ul        U$ UR                   R	                  5       S:X  a  UR                  Ul        U$ UR
                  Ul        U$ )zParses the options for Gateway.Nr  r*  )r|  r   GatewayAPIConfigChannelValueValuesEnumr  CHANNEL_DISABLEDchannelCHANNEL_STANDARD)r  r   r>  channel_enums       rr   rh  APIAdapter.ParseGatewayOptions<  s     "]]335N==11HHL  "j0+<<n  
			"	"	$
	2+<<n   ,<<nrs   c                   ^ U R                  UT5      nTR                  c  TR                  c  TR                  b  U R	                  UTS5      Ul        TR                  (       a  [        U4S j[         5       5      (       a  TR                  (       d\  TR                  b  [        TR                  ;  d!  TR                  b.  [        TR                  ;  a  [        R                  " [        5      e[         TR                  ;  a  [        R                  " ["        5      e[%        TU R&                  5      nU R&                  R)                  SUS9UR*                  l        U R&                  R/                  [1        UR2                  UR4                  5      US9nU R6                  R8                  R;                  U5      nU R=                  UR>                  UR4                  5      $ )a  Handles CreateCluster options that are specific to a release track.

Overridden in each release track.

Args:
  cluster_ref: Name and location of the cluster.
  options: An UpdateClusterOptions containining the user-specified options.

Returns:
  The operation to be executed.
Fc              3   @   >#    U  H  oTR                   ;   v   M     g 7fr   r   .0r;  r   s     rr   	<genexpr>+APIAdapter.CreateCluster.<locals>.<genexpr>c       <Oq7>>!O   r  loadBalancerTypeparentri   ) rG  r9  r  r  CreateClusterAutoscalingCommonr  r   anyCLOUDRUN_ADDONSr   ri  r@   rh  r	   r{  2CLOUDRUN_STACKDRIVER_KUBERNETES_DISABLED_ERROR_MSGr9  .CLOUDRUN_INGRESS_KUBERNETES_DISABLED_ERROR_MSG_GetCloudRunLoadBalancerTyper   CloudRunConfigrT  cloudRunConfigCreateClusterRequestProjectLocationr1  r2  r,  rL  CreaterC  r=  )r  rU  r   ri   load_balancer_typereqr  s     `    rr   CreateClusterAPIAdapter.CreateClusterL  s    &&{G<G''3&&2//; ??
wg ~~	<O<	<	<44"".'"4"44+goo0M

MN
N'..(

IJ
J9T]]
 /3mm.J.J-? /K /
+ --
,
,{44k6F6FG - C 77>>sCIy~~{/?/?@@rs   c                 z	   U R                   R                  5       nU(       ai  U(       a  U R                  U5      OSnU(       aG  UR                  (       a6  UR                  R                  Ul        UR                  R
                  Ul        OUR                  Ul        UR                  b(  U R                   R                  UR                  S9Ul        / nUR                  Gb  [        R                  " UR                  5        [        R                  " UR                  5      nUR                  [        5      nUR                  [         5      nUR                  ["        5      n	Sn
SnUR                  [$        5      nU(       a*  UR                  [&        5      n
UR                  [(        5      nUR                  [*        5      nSnSnU(       a*  UR                  [,        5      nUR                  [.        5      nUR                  [0        5      nUR                  [2        5      nUR                  [4        5      nUR                  [6        5      nUR                  [8        5      nUR                  [:        5      nUR                  [<        5      nSnSnU(       a*  UR                  [>        5      nUR                  [@        5      nOU RC                  U5      nURD                  nURF                  n	URH                  n
URJ                  nURL                  nURN                  nURP                  nURR                  nURT                  nSnSnSnSnSnUR                  Gb5  UR                  Ul        Uc  / nXdl+        U	c  / n	SnSnU
c?  Uc<  URX                  (       d+  URZ                  (       d  UR\                  c  UR^                  b  U Ra                  X*U5      nUc  Ub  U R                   Rc                  XS9nSnUc  Ub(  U R                   Re                  5       nUUl3        UUl4        U(       a(  U R                   Rk                  UU	UUUUUUUUS9
Ul6        O'U R                   Rk                  UU	UUUUUUUUS9
Ul6        U(       a  [o        U5      Ul8        URr                  b  U Ru                  U5      Ul;        U Ry                  XC5        U$ Create cluster's autoscaling configuration.

Args:
  cluster_ref: Cluster reference.
  options: Either CreateClusterOptions or UpdateClusterOptions.
  for_update: Is function executed for update operation.

Returns:
  Cluster's autoscaling configuration.
Nr  r2   r3   
r,   r   r.   r1   r-   r6   r7   r8   r9   r:   )=r   r  rX  r  enableNodeAutoprovisioningdefaultComputeClassConfigr9  r  DefaultComputeClassConfigr:  r	   "ValidateAutoprovisioningConfigFiler   loadr   RESOURCE_LIMITSSERVICE_ACCOUNTr   UPGRADE_SETTINGSMAX_SURGE_UPGRADEMAX_UNAVAILABLE_UPGRADENODE_MANAGEMENTENABLE_AUTO_UPGRADEENABLE_AUTO_REPAIRAUTOPROVISIONING_LOCATIONSMIN_CPU_PLATFORM
IMAGE_TYPEBOOT_DISK_KMS_KEY	DISK_TYPEDISK_SIZE_GBSHIELDED_INSTANCE_CONFIGENABLE_SECURE_BOOTENABLE_INTEGRITY_MONITORINGResourceLimitsFromFlagsr;  r<  rE  rF  rG  rH  r=  rK  rD  r+   rt  rs  ru  rv  UpdateUpgradeSettingsForNAPNodeManagementShieldedInstanceConfigr;   r<   r  r  r   r5   r  CreateAutoscalingProfileCommonautoscalingProfileValidateClusterAutoscaling)r  rU  r   
for_updater  ri   resource_limitsr  r   r4   r7  r8  upgrade_settingsmanagement_settingsr   r   r=  r   rD  r   r   r  shielded_instance_configenable_secure_bootenable_integrity_monitoringr1   s                             rr   rP  )APIAdapter.CreateClusterAutoscalingCommon|  s    --224K0;,g	W((:: 	. 99 	- 07/N/Nk,++7
--
1
1:: 2  +
 O++7
--

.
. yy==>f

?3o

?3ozz&!f $$45	,001BC"2"6"67N"O"JJ7	0445HI/334FG#)::.H#I $45$*JJz$:! **%67**Y'iZZ-l!',D!E$(!	!599:LM&>&B&B''
# 44W=o@@o..f!DD ' P P"FF!DD#*#E#E  BB$+$G$G!il$(!&&2/6/N/Nk,		 #2 	j

'$0??::==I==I;;(?
 
	&*<*H]]11* 2 

 "&

((4#'==#G#G#I 4F 1' 	!: 
MM::." 0%/0'"5'? ;  	4  MM::." 0%/0'"5'? ;  	4 
$06&1
- "".'+'J'J
(k$ 	##K<rs   c                 "   UR                   (       a'  UR                  (       a  [        R                  " S5      eU R                  R                  5       nX$l        X4l        UR                   (       a/  U R                  R
                  R                  R                  Ul
        UR                  (       a/  U R                  R
                  R                  R                  Ul
        UR                  c  UR                  b  U R                  XA5      Ul        U$ )z7Updates upgrade settings for autoprovisioned node pool.zUpgradeSettings must contain only one of: --enable-autoprovisioning-surge-upgrade, --enable-autoprovisioning-blue-green-upgrade)rs  rt  r	   r{  r   r  r  r  StrategyValueValuesEnumSURGEstrategy
BLUE_GREENru  rv  UpdateBlueGreenSettingsForNAPblueGreenSettings)r  r   	max_surgemax_unavailabler  s        rr   r{  &APIAdapter.UpdateUpgradeSettingsForNAP  s     	55>>JJ:  }}446 )&5#44
--
'
'
?
?
E
E  99
--
'
'
?
?
J
J  	88D;;G+/+M+M
,( rs   c                 ~   UR                   =(       d    U R                  R                  5       nUR                  b  UR                  Ul        UR
                  b  UR                  =(       d    U R                  R                  5       nSUR
                  ;   a&  SUR
                  ;   a  [        R                  " S5      eS=Ul
        Ul        SUR
                  ;   a  UR
                  S   Ul        O$SUR
                  ;   a  UR
                  S   Ul
        SUR
                  ;   a  UR
                  S   Ul        XCl        U$ )zSUpdate blue green settings field in upgrade_settings for autoprovisioned node pool.Nbatch-node-countbatch-percentz`Autoprovisioning StandardRolloutPolicy must contain only one of: batch-node-count, batch-percentbatch-soak-duration)r  r   BlueGreenSettingsrv  nodePoolSoakDurationru  standardRolloutPolicyStandardRolloutPolicyr	   r{  batchPercentagebatchNodeCountbatchSoakDuration)r  r  r   blue_green_settingsr  s        rr   r  (APIAdapter.UpdateBlueGreenSettingsForNAP?  sK    	**Odmm.M.M.O  77C

:
: . 77C

3
3 3]]002   P P
P==> jj/
 	
 -
!
0	wOO	O<<=OP 	 . gNNN<<_M 	 /
  ==> <<% 	 1
 3J/rs   c                 0   U R                   R                  nUR                  nUR                  5        Vs/ s H!  nUS:w  d  M  [        R
                  " U5      PM#     nn[        R                  " [        R
                  " UR                  5      UUS9$ s  snf )zCreate and validate cluster's autoscaling profile configuration.

Args:
  options: Either CreateClusterOptions or UpdateClusterOptions.

Returns:
  Cluster's autoscaling profile configuration.
zprofile-unspecified)choice	enum_typevalid_choices)r   r  !AutoscalingProfileValueValuesEnumnamesr   EnumNameToChoiceChoiceToEnumr  )r  r   cluster_autoscalingprofiles_enumnr  s         rr   r~  )APIAdapter.CreateAutoscalingProfileCommonq  s     --::'IIM $$&&A%% 	&	""1%&  
 !!))'*E*EF# s   
BBc                    UR                   (       Ga  U(       a  UR                  (       Ga  [        S UR                   5       5      n[        S UR                   5       5      nU(       a  U(       d  [        R                  " [
        5      eUR                  nU(       Ga"  UR                  (       aO  UR                  R                  SLnUR                  R                  SLnXv:w  a  [        R                  " [        5      eUR                  (       aO  UR                  R                  SLnUR                  R                  SLn	X:w  a  [        R                  " [        5      eUR                  (       aP  UR                  R                   SLn
UR                  R"                  SLnX:w  a  [        R                  " [$        5      eggggUR                  (       a  [        R                  " [&        5      eUR                  (       aQ  UR                  R(                  (       d  UR                  R*                  (       a  [        R                  " [,        5      egg)Validate cluster autoscaling configuration.

Args:
  autoscaling: autoscaling configuration to be validated.
  for_update: Is function executed for update operation.

Raises:
  Error if the new configuration is invalid.
c              3   >   #    U  H  oR                   S :H  v   M     g7fcpuNresourceTyperG  limits     rr   rH  8APIAdapter.ValidateClusterAutoscaling.<locals>.<genexpr>  s      
5OE%'5Os   c              3   @   #    U  H  nUR                   S :H  v   M     g7fmemoryNr  r  s     rr   rH  r    s"      
3 (*3s   N)rd  r+   rQ  r	   r{  $NO_AUTOPROVISIONING_LIMITS_ERROR_MSGr  r.   r  r  0BOTH_AUTOPROVISIONING_UPGRADE_SETTINGS_ERROR_MSGr1   r2   r3   3BOTH_AUTOPROVISIONING_MANAGEMENT_SETTINGS_ERROR_MSGr:   r;   r<   :BOTH_AUTOPROVISIONING_SHIELDED_INSTANCE_SETTINGS_ERROR_MSG#LIMITS_WITHOUT_AUTOPROVISIONING_MSGr,   r   %DEFAULTS_WITHOUT_AUTOPROVISIONING_MSG)r  r  r  	cpu_found	mem_founddefaultsmax_surge_foundmax_unavailable_foundauto_upgrade_foundauto_repair_foundsecure_boot_foundintegrity_monitoring_founds               rr   r  %APIAdapter.ValidateClusterAutoscaling  s    ---;555 
5@5O5O
 
	  
$33
 
	 	

?@
@??%%&66??tKO((77tC " %7JJOPP  !)!4!4!@!@!L ( 3 3 > >d J 6JJE  ,,//@@L  //II ' !>JJL  ? -  6L 
	#	#JJ:;;		5	544CC77CCJJ<== D 
6rs   c                    UR                   b;  UR                   (       d*  U R                  R                  R                  R                  $ UR                   (       a  US:X  d  US:X  a  gUR                   (       a6  US:w  a0  US:w  a*  U R                  R                  R                  R
                  $ UR                  (       a*  U R                  R                  R                  R                  $ g)z/Gets the cluster telemetry from create options.Nr  )r   r   ClusterTelemetryr  r  r  r   SYSTEM_ONLY)r  r   r  r  s       rr   _GetClusterTelemetryType#APIAdapter._GetClusterTelemetryType  s     	--955]]++??HHH ,,6!%76%A 	--v%&(]]++??GGG
 44]]++??KKKrs   c           
      <   / nUR                   c  UR                  b>  UR                  U R                  R	                  SUR                   UR                  S95        UR
                  c  UR                  b>  UR                  U R                  R	                  SUR
                  UR                  S95        UR                  b  UR                  R                  S5      nSnUR                  bU  UR                  R                  S5      U:w  a  [        R                  " [        5      eUR                  R                  SS5      nUR                  U R                  R	                  UR                  R                  S5      UUR                  R                  SS5      S95        U$ )zCreate cluster's autoscaling resource limits from command line flags.

Args:
  options: Either CreateClusterOptions or UpdateClusterOptions.

Returns:
  Cluster's new autoscaling resource limits.
r  )r  minimummaximumr  r"  r   r  )r>  r?  r   r   ResourceLimitr@  rA  rC  r   rB  r	   r{  *MISMATCH_ACCELERATOR_TYPE_LIMITS_ERROR_MSG)r  r   new_resource_limitsaccelerator_type	min_counts        rr   rz  "APIAdapter.ResourceLimitsFromFlags  sx    "goo&A  
--
%
% oooo &  %););)G  
--
%
%#(((( &  * 0044V<i		 	 	,""&&v.2BB

EF
F++//;	  
--
%
%"2266v>--11'1= &  rs   c                 `j   SnUR                   (       d  SUl         UR                  (       a  U R                  R                  UR                   UR                  UR
                  UR                  UR                  S9nUR                  b(  U R                  R                  UR                  S9Ul
        GOUR                  (       a  U R                  R                  UR                   S9nUR                  b(  U R                  R                  UR                  S9Ul
        UR                  b(  U R                  R                  UR                  S9Ul        GOlUR                  (       a*  U R                  R                  5       nSUl        SUl        GO1UR                  b*  U R                  R                  5       nS	Ul        S	Ul        GOUR$                  (       d  UR&                  (       a`  U R                  R                  5       nUR$                  (       a  UR$                  Ul        UR&                  (       a  UR&                  Ul        GOxUR(                  (       d  UR*                  (       d  UR,                  (       dx  UR.                  (       dg  UR0                  (       dV  UR2                  (       dE  UR4                  (       d4  UR6                  (       d#  UR8                  (       d  UR:                  (       Ga  [=        X R                  5      nUR:                  (       d"  UR6                  (       d  UR8                  (       a  UR2                  c  UR4                  cx  U R?                  U5      nU(       a`  UR@                  (       aO  UR@                  RB                  (       a4  UR@                  RB                  RD                  (       a  S
Ul        OS
Ul        SnUR0                  (       a  U R?                  U5      nUc  [F        RH                  " S5      eUR@                  RJ                  b%  UR@                  RJ                  RL                  (       d*  UR0                  S:X  a  [F        RH                  " [N        5      eUR@                  RJ                  RL                  (       a  [Q        X R                  S
S
5      nO/[Q        X R                  S
S5      nO[Q        X R                  SS5      nU R                  R                  5       nU(       a  XCl)        U(       a  Xcl*        G	OURV                  (       Ga  URV                  RY                  [Z        5      nU R]                  URV                  RY                  [^        5      URV                  RY                  [`        5      URV                  RY                  [b        5      URV                  RY                  [d        5      Ub  U(       + OSS9nURV                  RY                  [f        5      b@  U R                  Ri                  URV                  RY                  [f        5      (       + S9Ul5        URV                  RY                  [l        5      b@  U R                  Ro                  URV                  RY                  [l        5      (       + S9Ul8        URV                  RY                  [r        5      b@  U R                  Ru                  URV                  RY                  [r        5      (       + S9Ul;        URV                  RY                  [x        5      b@  U R                  R{                  URV                  RY                  [x        5      (       + S9Ul>        URV                  RY                  [~        5      b@  U R                  R                  URV                  RY                  [~        5      (       + S9UlA        URV                  RY                  [        5      b@  U R                  R                  URV                  RY                  [        5      (       + S9UlD        URV                  RY                  [        5      b@  U R                  R                  URV                  RY                  [        5      (       + S9UlG        URV                  RY                  [        5      b@  U R                  R                  URV                  RY                  [        5      (       + S9UlJ        URV                  RY                  [        5      b@  U R                  R                  URV                  RY                  [        5      (       + S9UlM        URV                  RY                  [        5      b@  U R                  R                  URV                  RY                  [        5      (       + S9UlP        U R                  R                  US9nGOUR                  c  UR                  c  UR                  b  U R]                  X R                  5      nUR                  b2  U R                  R                  UR                  S9UR                  lU        UR                  b2  U R                  R                  UR                  S9UR                  lW        UR                  b  UR                  UR                  lX        U R                  R                  US9nGOUR                  b  U R                  R                  UR                  S9n	UR                  (       av  UR                  U	l\        UR                  U	l^        UR                  U	l`        UR                  U	lb        UR                  b%  [        U R                  UR                  5      U	le        U R                  R                  UR                  U	S9nGO1UR                  (       a%  U R                  R                  UR                  S9nGOUR                  c  UR                  c  UR                  b-  U R                  XS
5      n	U R                  R                  U	S9nGOUR                  b>  U R                  R                  UR                  S9n
U R                  R                  U
S9nGO\UR                  b>  U R                  R                  UR                  S9nU R                  R                  US9nGOUR                  b  U R                  R                  U R                  R                  UR                  S9S9nUR                  (       a  S
Uls        UR                  b(  U R                  R                  UR                  S9Ulv        U R                  R                  US9nGObUR                  b  [F        RH                  " [        5      eUR                  b  [F        RH                  " [        5      eUR                  b4  U R                  R                  5       nU R                  R                  US9nOUR                  b=  U R                  R                  UR                  S9nU R                  R                  US9nOUR                  b=  U R                  R                  UR                  S9nU R                  R                  US9nO?UR                  (       a.  [        X R                  5      nU R                  R                  US9nUR                  bT  U R                  R                  U R                  GR                  UR                  S9S9nU R                  R                  US9nUGR                  bU  U R                  R                  U R                  GR                  UGR                  S9S9nU R                  R                  US9nUR                  b/  UGR                  b!  UGR                  (       + UR                  l        UGR
                  (       a-  UGR                  (       d  [F        RH                  " G[        5      eUGR                  (       ai  U R                  R                  U R                  GR                  UGR                  U R                  GR                  GR                  GR                  S9S9nOnUGR                  (       a\  U R                  R                  U R                  GR                  U R                  GR                  GR                  GR                  S 9S9nUGR                  b<  U R                  R                  U R                  GR                  UGR                  S9S!9nUGR                   b-  U R                  R                  G[#        X R                  5      S"9nUGR$                  b-  U R                  R                  G['        X R                  5      S#9nUGR(                  b-  U R                  R                  G[+        X R                  5      S$9nUGR,                  b>  U R                  GR/                  UGR,                  S%9nU R                  R                  US&9nUGR0                  b>  U R                  GR3                  UGR0                  S9nU R                  R                  US'9nUGR4                  bR  U R                  R                  [F        GR6                  " U R                  SS(9GR9                  UGR4                  5      S)9nU GR;                  US
US*9nUb  U R                  R                  US+9nU GR=                  U5      nUb  U R                  R                  US,9nUGR>                  b-  U R                  R                  G[A        X R                  5      S-9nUGRB                  b1  U R                  R                  U R                  GRE                  SS9S.9nUGRF                  b=  U R                  R                  U R                  GRI                  S
UGRF                  S/9S09nUGRJ                  b<  U R                  R                  U R                  GRM                  UGRJ                  S9S19nUGRN                  b<  U R                  R                  U R                  GRQ                  UGRN                  S29S39nUGRR                  b8  UGRR                  nU GRU                  U5      nU R                  R                  US49nUGRV                  b<  U R                  R                  U R                  GRM                  UGRV                  S9S19nUGRX                  b<  U R                  R                  U R                  GR[                  UGRX                  S59S69nUGR\                  b-  U R                  R                  G[_        X R                  5      S79nUGR`                  b<  U R                  R                  U R                  GRc                  UGR`                  S9S89nUGRd                  b<  U R                  R                  U R                  GRg                  UGRd                  S9S99nUGRh                  c  UGRj                  Gbt  U R                  GRm                  5       nUGRh                  b  U R                  GRo                  5       Ul        UGRh                  (       a>  U R                  GRn                  GRr                  GRt                  UGRp                  l        O=U R                  GRn                  GRr                  GRx                  UGRp                  l        UGRj                  bw  UGRj                  (       a3  U R                  GRl                  GRz                  GRt                  Ul        O2U R                  GRl                  GRz                  GRx                  Ul        U R                  R                  US:9nUGR~                  b  UGR~                  S;:X  a_  U R                  GR                  U R                  GR                  GR                  GR                  S<9nU R                  R                  US=9nOoUGR~                  S	:X  a^  U R                  GR                  U R                  GR                  GR                  GR                  S<9nU R                  R                  US=9nUGR                  bs  U R                  GR                  5       nU R                  GR                  G[        U R                  UGR                  5      S>9Ul        U R                  R                  US?9nUGR                  (       d  UGR                  (       a  U R                  R                  5       nUGR                  (       a*  U R                  GR                  UGR                  S@9Ul        UGR                  (       a*  U R                  GR                  UGR                  S@9Ul        UGR                  bS  U R                  R                  [F        GR                  " U R                  5      GR9                  UGR                  5      SA9nUGR                  b<  U R                  R                  U R                  GR                  UGR                  S9SB9nU R                  GR                  GR                  GR                  U R                  GR                  GR                  GR                  SC.nUGR                  (       aX  U R                  R                  U R                  GR                  UGR                  URY                  UGR                  S5      SD9SE9nUGR                  (       aX  U R                  R                  U R                  GR                  UGR                  URY                  UGR                  S5      SD9SE9nUGR                  (       a~  UGR                  =(       d    UGR                  nU R                  R                  U R                  GR                  U R                  GR                  GR                  GR                  USF9SE9nUGR                  bF  U R                  GR                  5       nUGR                  Ul        U R                  R                  USG9nUGR                  (       a1  U R                  R                  U R                  GR                  SHSI9SE9nUGR                  c  UGR                  GbS  UGR                  SJ:X  a-  UGR                  (       a  [F        RH                  " G[        5      eU R                  GR                  5       nU R?                  U5      nUGR                  (       a  UGR                  GR                  5       OSnUc,  UGR                  b  UGR                  GR                  Ul        OUSJ:X  a3  U R                  GR                  GR                  GRx                  Ul        OmUSK:X  a3  U R                  GR                  GR                  GR                  Ul        O4[F        RH                  " G[        GR                  UGR                  SL95      eUGR                  c,  UGR                  b  UGR                  GR                  Ul        OUGR                  (       d4  [F        RH                  " G[        GR                  UGR                  SM95      eUGR                  GR                  SN5       Vs/ s H  nU R                  GR                  USO9PM     snUl        U R                  R                  USP9nUGR                  b  U R                  GR                  5       nUGR                  (       a3  U R                  GR                  GR                  GRt                  Ul        O2U R                  GR                  GR                  GRx                  Ul        U R                  R                  USQ9nUGR                  Gbp  U R                  GR                  5       nUGR                  GR                  5       SR:X  a3  U R                  GR                  GR                  GR                  Ul        OUGR                  GR                  5       SS:X  a3  U R                  GR                  GR                  GRt                  Ul        OUGR                  GR                  5       SJ:X  a3  U R                  GR                  GR                  GRx                  Ul        OC[F        RH                  " G[        GR                  UGR                  GR                  5       SL95      eU R                  R                  USQ9nUGR                  Gbp  U R                  GR                  5       nUGR                  GR                  5       SS:X  a3  U R                  GR                  GR                  GR                  Ul        OUGR                  GR                  5       SJ:X  a3  U R                  GR                  GR                  GR                  Ul        OUGR                  GR                  5       SR:X  a3  U R                  GR                  GR                  GR                  Ul        OC[F        RH                  " G[        GR                  UGR                  GR                  5       SL95      eU R                  R                  USQ9nUGR                  b  U R                  GR                  5       n UGR                  (       a3  U R                  GR                  GR                  GR                  U l        O2U R                  GR                  GR                  GRx                  U l        U R                  R                  U ST9nUGR                  (       a+  U GR                  U5      n!U R                  R                  U!SU9nUGR                  bM  U R                  GR                  5       n"UGR                  SV:X  a  S
U"Gl        U R                  R                  U"SW9nUGR                  bM  U R                  GR                  5       n"UGR                  SV:X  a  SU"Gl        U R                  R                  U"SW9nUGR                  b3  U R                  R                  G[	        X R                  G[
        5      SX9nUGR                  bS  U R                  R                  [F        GR                  " U R                  5      GR9                  UGR                  5      SY9nUGR                  b$  U R                  R                  UGR                  SZ9nUGR                  bk  U R                  R                  U R                  GR                  5       S[9n[F        GR                  " UGR                  UGR                  U R                  5        UGR                  c  UGR                  c  UGR                  Gbf  U R?                  U5      n#U#GR                   n$UGR                  b0  U$c  U R                  GR#                  5       n$UGR                  U$l&        UGR                  bj  U$c  U R                  GR#                  5       n$U$GR$                  c!  U R                  GR'                  5       U$Gl        UGR                  U$GR$                  l&        UGR                  bk  U$c  U R                  GR#                  5       n$U$GR$                  c!  U R                  GR'                  5       U$Gl        UGR                  U$GR$                  Gl        U R                  R                  U$S\9nUGR*                  c  UGR,                  c  UGR.                  Gbf  U R?                  U5      n#U#GR0                  n%UGR*                  b0  U%c  U R                  GR3                  5       n%UGR*                  U%l&        UGR.                  bj  U%c  U R                  GR3                  5       n%U%GR$                  c!  U R                  GR5                  5       U%Gl        UGR.                  U%GR$                  l&        UGR,                  bk  U%c  U R                  GR3                  5       n%U%GR$                  c!  U R                  GR'                  5       U%Gl        UGR,                  U%GR$                  Gl        U R                  R                  U%S]9nUGR6                  b$  U R                  R                  UGR6                  S^9nUGR8                  b$  U R                  R                  UGR8                  S_9nUGR:                  c  UGR<                  bv  U R                  GR?                  5       n&UGR:                  b  UGR:                  U&Gl         UGR<                  b  UGR<                  U&Gl!        U R                  R                  U&S`9nUGRD                  bF  U R                  R                  U R                  GRG                  UGRD                  =(       d    SH/Sa9Sb9nUGRH                  b$  U R                  R                  UGRH                  Sc9nUGRJ                  cp  UGRL                  cb  UGRN                  cT  UGRP                  cF  UGR                  c8  UGRR                  c*  UGRT                  c  UGRV                  c  UGRX                  b+  U GR[                  X5      n'U R                  R                  U'Sd9nUGR\                  c  UGR^                  GbW  U R?                  U5      n0 n(0 n)UGR`                  (       aj  UGR`                  GRb                  n
U
(       aK  U
 HE  n*G[e        U*GRf                  5      n+U+U(U*GRh                  '   U*GRj                  U)U*GRh                  '   MG     UGR\                  bp  UGR\                   H_  n*G[m        U*Se   UGR                  UGRn                  5      n,U,U(;   a  U(U,   O
G[e        5       n+U+GRq                  U*Sf   5        U+U(U,'   SU)U,'   Ma     UGR^                  b  UGR^                   H  n-G[m        U-Se   UGR                  UGRn                  5      n,U,U(;  a)  [F        RH                  " G[r        GR                  U,Sg95      eSfU-;   a;  U-Sf   n. U(U,   GRu                  U.5        U(U,   (       d  U(GRw                  U,5        M  M  U(GRw                  U,5        M     U R                  R                  U R                  GR}                  U(GR                  5        V,V+s/ s H/  u  n,n+U R                  GR                  U,G[        U+5      U)U,   Si9PM1     sn+n,Sj9Sk9nUGR                  c  UGR                  Gbr  U R?                  U5      n0 n(0 n)UGR`                  (       aj  UGR`                  GRb                  n
U
(       aK  U
 HE  n*G[e        U*GRf                  5      n+U+U(U*GRh                  '   U*GRj                  U)U*GRh                  '   MG     UGR                  b  UGR                   H  n/G[m        U/Se   UGR                  UGRn                  5      n,U,U(;  a)  [F        RH                  " G[r        GR                  U,Sg95      eU(U,   n+U+U(U,'   U R                  GR                  GR                  GR                  U)U,'   M     UGR                  b  UGR                   H  n0G[m        U0Se   UGR                  UGRn                  5      n,U,U(;  a)  [F        RH                  " G[r        GR                  U,Sg95      eU(U,   n+U+U(U,'   U R                  GR                  GR                  GR                  U)U,'   M     U R                  R                  U R                  GR}                  U(GR                  5        V,V+s/ s H/  u  n,n+U R                  GR                  U,G[        U+5      U)U,   Si9PM1     sn+n,Sj9Sk9nUGR                  (       a  U R                  R                  S
Sl9nUGR                  (       a  U R                  R                  SSl9nUGR                  b-  U R                  R                  G[        X R                  5      Sm9nUGR                  bG  U R                  GR                  5       n"UGR                  U"GlL        U R                  R                  U"SW9nUGR                  bs  U R?                  U5      nU R                  GR                  5       n1UGR                  b  UGR                  n1UGR                  U1GlP        U R                  R                  U1Sn9nUGR                  bs  U R?                  U5      nU R                  GR                  5       n1UGR                  b  UGR                  n1UGR                  U1GlR        U R                  R                  U1Sn9nUGR                  bs  U R?                  U5      nU R                  GR                  5       n1UGR                  b  UGR                  n1UGR                  U1GlT        U R                  R                  U1Sn9nUGR                  (       a1  U R                  R                  U R                  GR                  SS9So9nUGR                  (       a1  U R                  R                  U R                  GR                  S
S9So9nUGR                  b  U R                  GR                  GR                  GR                  U R                  GR                  GR                  GR                  Sp.n2U R                  GR                  5       n
U2UGR                     U
l        U R                  R                  U
Sq9nUGR                  b-  U R                  R                  G[        X R                  5      Sr9nUGR                  b  U R                  GR                  GR                  GR                  U R                  GR                  GR                  GR                  Ss.n2U R                  GR                  5       n
U2UGR                     U
l        U R                  R                  U
St9nU$ s  snf ! G[x         a*    [F        RH                  " G[z        GR                  U.Sh95      ef = fs  sn+n,f s  sn+n,f )u#Returns an UpdateCluster operation.Nra  desiredNodeVersiondesiredNodePoolIddesiredImageTypedesiredImagedesiredImageProjectrK  desiredMasterVersioncontrolPlaneSoakDurationr  r  r  T:Cannot enable Auto Monitoring. The cluster does not exist.ALLF)r  r  r  r  r  r  desiredAddonsConfigr  desiredNodePoolAutoscalingdesiredLocationsdesiredClusterAutoscalingdesiredPodSecurityPolicyConfigdesiredVerticalPodAutoscalingr  r   desiredResourceUsageExportConfigsecurityProfile desiredIntraNodeVisibilityConfig!desiredManagedOpentelemetryConfig)rV  )rX  r  desiredDatabaseEncryptionr  desiredShieldedNodesdesiredTpuConfigdesiredReleaseChannelr  r  desiredDefaultSnatStatusdesiredL4ilbSubsettingConfigr  desiredPrivateIpv6GoogleAccessr6  rU  desiredDnsConfigdesiredGatewayApiConfigdesiredNotificationConfigdesiredAutopilotr   desiredAuthenticatorGroupsConfigdesiredGcfsConfigr  $desiredNodePoolAutoConfigNetworkTags,desiredNodePoolAutoConfigResourceManagerTagsr  desiredMeshCertificatesdesiredStableFleetConfigdesiredServiceExternalIpsConfigdesiredIdentityServiceConfigdesiredProtectConfigr  r  desiredPodAutoscalingr#  desiredNodePoolLoggingConfigpodRangeNamesdesiredStackTypedesiredCostManagementConfigLIGHTWEIGHTMEMBERSHIP_TYPE_UNSPECIFIEDr9  membershipTypedesiredFleetr4  r9  desiredK8sBetaApisr  r  r  r  r&  	standardsr(  r)  desiredCompliancePostureConfigdesiredSecurityPostureConfigr+  r*  (desiredRuntimeVulnerabilityInsightConfigdesiredNetworkPerformanceConfigr  $desiredAutopilotWorkloadPolicyConfigdesiredHostMaintenancePolicy desiredInTransitEncryptionConfigdesiredEnableMultiNetworkingdesiredContainerdConfigdesiredSecretManagerConfigdesiredSecretSyncConfig+desiredEnableCiliumClusterwideNetworkPolicydesiredEnableFqdnNetworkPolicydesiredRBACBindingConfigr-   desiredPrivilegedAdmissionConfig desiredDefaultEnablePrivateNodes"desiredControlPlaneEndpointsConfigr   pod-ipv4-ranger   r   r   podIpv4RangeNamesstatusadditionalIpRangesConfigsdesiredAdditionalIpRangesConfig(desiredDisableL4LbFirewallReconciliationdesiredEnterpriseConfigdesiredUserManagedKeysConfigdesiredAutoIpamConfigLIMITEDr  $desiredAnonymousAuthenticationConfigdesiredNetworkTierConfigr?   VIA_CONTROL_PLANE)desiredControlPlaneEgress(`  r  r  r   ClusterUpdater  r   r   r   r  SecurityProfiler  r  r  RollbackSafeUpgradedesiredRollbackSafeUpgrader   desiredLoggingServicedesiredMonitoringServicer  r  rh  ri  rj  r  rk  r*  r+  r,  r-  r.  r  rX  r  #advancedDatapathObservabilityConfigenableMetricsr	   r{  managedPrometheusConfigr  8AUTO_MONITORING_NOT_SUPPORTED_WITHOUT_MANAGED_PROMETHEUSr  desiredLoggingConfigdesiredMonitoringConfigr  r   r<  r8  r9  rK   r:  r;  rH  rK  rL  r=   GcePersistentDiskCsiDriverConfig gcePersistentDiskCsiDriverConfigr>  GcpFilestoreCsiDriverConfiggcpFilestoreCsiDriverConfigrB  GcsFuseCsiDriverConfiggcsFuseCsiDriverConfigrC  StatefulHAConfigstatefulHaConfigrD  ParallelstoreCsiDriverConfigparallelstoreCsiDriverConfigrE  HighScaleCheckpointingConfighighScaleCheckpointingConfigrF  LustreCsiDriverConfigrR  rA  GkeBackupAgentConfiggkeBackupAgentConfigrG  RayOperatorConfigrN  r  r  r  rM  rO  rP  rQ  rS  r   r  r   r  r   r  r   r  r   r  r   r  r  r  r9  r  r  rP  r  r~  r  r  r  r  r  r  r  r  r  r  r  r  %clear_resource_usage_bigquery_datasetr  IntraNodeVisibilityConfigrl  r  r  AddonsConfigrU  r  rW  r  disableRuntimeRulesr   r   r  r  r  r  r  r  	DECRYPTEDr%  r  r  _GetTpuConfigForClusterUpdaterP  r  r  r  r(  ra  r   ILBSubsettingConfigrS  -GetPrivateIpv6GoogleAccessTypeMapperForUpdaterq  rg  rh  rQ  &_GetNotificationConfigForClusterUpdater  r  r  r  r`  r  r   r  r  r  ra  r!  r  rm  r  rd  r  r$  r  rq  rr  r  r  r  r  r  r  r  r  r  r  r  r  r  r?   r}  r  r  r  r  r  r  AdditionalPodRangesConfigadditionalPodRangesConfig removedAdditionalPodRangesConfigro  GetUpdateStackTypeMapperr5  r  r  MembershipTypeValueValuesEnumr1  r2  rz  r1  r{  ry  r  r  r
  r  r  r  r  r  r  r  r  r'  r  r  r  r}   r  *COMPLIANCE_INVALID_STANDARDS_CONFIGURATIONr  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r  r  (GetUpdateInTransitEncryptionConfigMapperr~  r  r  r  rM  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rL  r  rw  r  r  r  &_GetDesiredControlPlaneEndpointsConfigr  r  r/  rd  r   ra  r   rb  SubnetworkNameToPathr2  add ADDITIONAL_SUBNETWORKS_NOT_FOUNDremovepopKeyError*ADDITIONAL_SUBNETWORKS_POD_RANG_ENOT_FOUNDDesiredAdditionalIPRangesConfigr  AdditionalIPRangesConfiglistr  r  StatusValueValuesEnumDRAININGACTIVEr  r  r  _GetDesiredEnterpriseConfigr  %autopilotCompatibilityAuditingEnabledr  r  r  r$  r  r%  r  r&  r  r1  r  r  $DesiredAnonymousAuthenticationConfigrp  r  r3  r  DesiredControlPlaneEgressrv  )3r  rU  r   updaterh  ri   ri  disable_node_local_dnsr   r  r  vertical_pod_autoscalingexport_configr  intra_node_visibility_configmanaged_otel_configr(  ilb_subsettting_configr=  r>  r   rE  protect_configpod_autoscaling_configlogging_configmembership_typesry  
config_objcompliance_updatecompliance_moder*  security_posture_config$runtime_vulnerability_insight_configrF  r  old_clustersecret_manager_configsecret_sync_configconfgcp_endpoints_configdesired_ip_rangesdesired_statusesip_rangesecondary_rangesr   	ip_removeremoved_rangesubnet_to_drainsubnet_to_undrain updated_user_managed_keys_configmodess3                                                      rr   UpdateClusterCommonAPIAdapter.UpdateClusterCommon  s-   F??go}}**$__#--"--}}%33 + f 
	!	!	-!%!>!>)) "? "
 
		}}***Pf		!	!	-!%!>!>)) "? "

 
	,	,	8,0MM,M,M%,%H%H -N -
) 
	.	.}}**,f%Hf"(Nf%		.	.	:}}**,f%+f"(.f%		#	#w'>'>}}**,f		#	#*1*D*D'		 	 '.'>'>$,,--((..//99::222!'==9g 55??@@11922://+.((((LL &&JJXX26G/37G0j		&	&//+.?

J 
 $$<<D++CCKK++u4

F  ##;;CC+G]]D$O*+G]]D%P*)'==%N
}}**,f	&-#	)3&				&5599,G!!!0044W=,,005#2266yA!(!7!7!;!;N!K#/ %; : " f 
			#	#O	4	@'+}}'J'J //33ODD (K (
$ 
			#	#N	3	?MM::#2266~FF ;  	/
 
			#	#$9	:	FMM55#22667LMM 6  	*
 
			#	#$4	5	A(,(L(L..223CDD )M )
% 
			#	#J	/	;"&--"@"@..22:>> #A #
 
			#	#$:	;	GMM66#22667MNN 7  	+
 
			#	#$:	;	GMM66#22667MNN 7  	+
 
			#	#O	4	@MM//#2266GG 0  	$
 
			#	#M	2	>&*mm&H&H..22=AA 'I '
# 
			#	#K	0	<#'==#B#B..22;?? $C $
  }}**v*Ff**600<,,8!!'==9f		+	+	7MM11:: 2  	  8 
	.	.	:MM44== 5  	  ; 
	*	*	6-- 	$$; }}**v*Ff		#	#	/MM55,, 6 k 
	#	##*#4#4 #*#4#4 (/(?(?%(/(?(?%"".'CmmW44(+
$ }}**#--%0 + f 
		}}**G<M<M*Nf''3&&2//;77
k }}**$/ + f 
	+	+	7}}4444 5 f }}**)/ + f 
	0	0	<!%!E!E99 "F " }}**(@ + f 
	0	0	<mm=="mm???? @  > m
 
	/	/481		5	5	AMM33DD 4  	/
 }}**+8 + f 
	/	/	;JJ?@@		5	5	AJJEFF		6	6	Bmm==?m}}**+8 + f 
	!	!	-66'' 7  }}**;K*Lf		-	-	9%)]]%L%L66 &M &" }}**+G + f 
	#	#:
== }}**,? + Af ##/}})) MM;;22 < 4 * 5f }}**v*Ff&&2}})) $ C C55 !D ! * f
 }}**v*Ff 	  ,22> 44
4 0 	***999 JJ=>>&&&}}**$(MM$D$D55MM44IISS %E % + f 
	,	,	,}}**$(MM$D$DMM44IISS %E % + f $$0}}**#}}::33  ;   + f
 %}}**8--P + f *}}** 27MM J + f '}}**7O + f ##/!]]<<// =  }}**#7 + f ''3#}}@@22  A   }}**'= + f ..:}}**)-)[)[mmE*55 + f ,,4[ - J }}**J*Gf--g6N!}}**"0 + f "".}}**$J}}% + f   ,}}**==2252A + f )}}**+/==+R+R'*@*@ ,S , + f &}}** MM44)) 5  + f ,,8}}**/3}}/H/H88 0I 0 + f 55A;;d))$/g}}**7> + f %%1}}** MM4444 5  + f ''3}}**"&--"@"@!(!A!A #A # + f ##/}}**#8--#P + f ))5}}***.--*P*P88 +Q + + f &&2}}**'+}}'J'J55 (K ( + f 	,,899E}}224n		-	-	9(,(D(D(F%///mm**CCII 
'
'
1
 mm**CCLL 
'
'
1 
	7	7	C999mm))RRXX 
2
 mm))RR[[ 
2 }}***Of&				-!%!=!=}}33MMYY "> "
 ,,"8 - 
 &(!%!=!=}}33MMRR "> "
 ,,"8 - 
 *}}::<n%)]]%G%G-mmW44 &H &n"
 }}**'5 + f
 	***555}}**,f		+	+	+MM33%@@ 4  	(
 
	3	3	3MM33%HH 4  	/ %}}**88mmW//0 + f %%1}}**&*mm&H&H44 'I ' + f MM==II MM==YY }}**}}**!++-11'2I2I4P +  + f }}**}}**++-11'2I2I4P +  + f $$$++D{/D/Dm}}**}}**----KKgg  + " + f ##/==113j&;;j}}**j*If"""}}**}}**2*6 + f
 	&''3 
		z	)g.J.J.Jjj:;; --??A,g )0(:(:(:'


"
"
$  
!**6#*#B#B#G#G

 j(MM11EENN 	 i'MM11EEMM 	 jj)00g6H6H0I
 	
 
	%	%	-**6--AA 
/ +++jj6==!66 > 
 	
 $88>>sC1
C MM,,h,?C1
-
 }}**): + f &&2 $ C C E		(	(	(MM//CCII 	 $
 MM//CCLL 	 $ }}**'> + f + $ C C E		!	!	'	'	)\	9MM//CCNN 	 $ ##))+z9MM//CCII 	 $ ##))+z9MM//CCLL 	 $ jj/66--335 7 
 	

 }}**'> + f ..: $ C C E		0	0	6	6	8J	FMM//PPdd 	 1 2288:jHMM//PPgg 	 1 2288:lJMM//PPii 	 1 jj>EE<<BBD F 
 	

 }}**'> + f 33?
--
9
9
; + 
	5	5	5MM;;OOjj 	-1
 MM;;OOXX 	-1 }}**2 + f )))55g>d}}**4*Pf  ,--<<>		"	"&7	7*.'}}**/@ + f ''3--<<>		)	)->	>*/'}}**/@ + f ((4}}**'@}}g( + f $$0}}**+/+X+Xmm,++ + f &&2}}**'.'F'F + f **6}}**"&--"@"@"B + f ''

(
(

-
-
-- 	..:33?((4OOK0k)==		&	&	2 ("&--"C"C"E
(/(E(E%		/	/	; ("&--"C"C"E
 //7151M1M1O

.22 	,,4 
	1	1	= ("&--"C"C"E
 //7151M1M1O

.44 	,,= }}**%: + f
 	"".00<..:OOK0k&77		#	#	/%#}}==?
%,%?%?"		,	,	8%#}}==?
,,4.2mm.N.N.P

+// 	))1 
	.	.	:%#}}==?
,,4.2mm.J.J.L

+11 	)): }}**"4 + f 77C}}**>> + f ))5}}**)0)K)K + f
 	<<HAAMmm--/e		=	=	I@@ 	6 
	?	?	KBB 	8 }}**E*Jf--9}}**+/==+R+R$CCKt ,S , + f ##/}}**+2+G+G + f
 	!!-##/..:**644@--9AAM,,8++7 GG
 }}**-@ + f
 	$$0..:,g		#	#	#++EE h"8#=#=>5Eh1124<OOX001 !
 
	%	%	144H+|$k&;&;[=M=M*
 00  
+5 
 

x(89
:*:
J
')-
:
& 5 
	,	,	8 <<I+%{'<'<k>N>N* 00**077:7N  *%&67M	
+22=A&z2!%%j1 3 !!*-+ =. }}***.--*W*W 7H6M6M6O) 7P2j"2 --88!+(,-=(>-j9 9 
 7P) +X 	+ + f 	**6//;,g		#	#	#++EE h"8#=#=>5Eh1124<OOX001 !
 
	+	+	7&AAO+l+##*
 00**077:7N  /z:
*:
J
'mm44JJSS :
&  B  
	-	-	9!(!E!E+-##*
 00**077:7N  /z:
*:
J
'mm44JJQQ :
& "F  }}***.--*W*W 7H6M6M6O) 7P2j"2 --88!+(,-=(>-j9 9 
 7P) +X 	+ + f 444}}**37 + f 333}}**38 + f ||}}**"=}}# + f 66B--<<>

9
9 = }}**/@ + f 00<,g)-)L)L)N&		&	&	2+2+H+H(

3
3 'E }}**'G + f ++7,g)-)L)L)N&		&	&	2+2+H+H(

.
. '@ }}**'G + f 00<,g)-)L)L)N&		&	&	2+2+H+H(

3
3 'D }}**'G + f    }}** $ < <U < K + f }}** $ < <T < J + f ..: mm@@TT\\ mm@@TT\\e }}AACf'AABfk}}**/5 + f '}}**#8}}$ + f ((4 mm55IINN mm55II[[e }}668f';;<fk}}**$* + f MS1
^	  JJ<CC) D  )|)s(   |$CS't 1CS,v
6CT$@6CT*S,5CT!c           	        ^ U R                  UT5      nTR                  (       a;  U R                  R                  U R                  R	                  TR                  S9S9nOATR
                  (       a0  U R                  R                  U R                  R	                  SS9S9nU(       d  [        R                  " [        5      eTR                  bt  [        U4S j[         5       5      (       aV  [        TU R                  5      nU R                  R                  [        U4S j[         5       5      US9UR                  l        U R                   R"                  R%                  U R                  R'                  [)        UR*                  UR,                  UR.                  5      US95      nU R1                  UR2                  UR,                  5      $ )a  Handles UpdateCluster options that are specific to a release track.

Overridden in each release track.

Args:
  cluster_ref: Name and location of the cluster.
  options: An UpdateClusterOptions containining the user-specified options.

Returns:
  The operation to be executed.
r  desiredWorkloadIdentityConfigr  c              3   ^   >#    U  H"  nTR                   R                  U5      S Lv   M$     g 7fr   r  r   rF  s     rr   rH  +APIAdapter.UpdateCluster.<locals>.<genexpr>  *      ?N!7!!%%a(4   *-c              3   l   >#    U  H)  nTR                   R                  U5      =(       d    S v   M+     g7fFNr  rF  s     rr   rH  r    1      , **..q1:U:,   14rL  r=  r  )r  r  r   rx  r  r  r	   r{  NOTHING_TO_UPDATE_ERROR_MSGr  rQ  rR  rU  rV  r  rW  r,  rL  UpdateUpdateClusterRequestrO  r1  r2  rF  rC  r=  )r  rU  r   r  r[  rr  s     `   rr   UpdateClusterAPIAdapter.UpdateClusterz  s    %%k7;F}}**(,(L(L"00 )M ) + f
 
	*	*}}**(,(L(L )M ) + f  JJ233)	 ?N 
 
 :T]]
 MM(( ,  "4 )  	""1 
	0	0	7	7**'%%{'7'79N9N 	 	+ 	

B rww(8(899rs   c           	         U R                   R                  R                  U R                  R	                  [        UR                  UR                  UR                  5      US95      nU R                  UR                  UR                  5      $ )N)r=  r6  )r,  rL  
SetLoggingr   SetLoggingServiceRequestrO  r1  r2  rF  rC  r=  )r  rU  r  rr  s       rr   SetLoggingServiceAPIAdapter.SetLoggingService  sx    		0	0	;	;..'%%{'7'79N9N +	 	/ 	

B rww(8(899rs   c           	      ,   U R                   R                  R                  U R                  R	                  [        UR                  UR                  UR                  5      [        U5      S95      nU R                  UR                  UR                  5      $ )N)r=  r  )r,  rL  SetLegacyAbacr   SetLegacyAbacRequestrO  r1  r2  rF  r  rC  r=  )r  rU  r   rr  s       rr   SetLegacyAuthorization!APIAdapter.SetLegacyAuthorization  s~    		0	0	>	>**'%%{'7'79N9N 45	 	+ 	

B rww(8(899rs   c                 >   U R                   R                  5       nUb  U R                   R                  US9Ul        Ub  U R                   R	                  US9Ul        Ub  U R                   R                  US9Ul        Ub  U R                   R                  US9Ul	        Ub  U R                   R                  US9Ul        U(       a  U R                   R                  SS9Ul        U(       a  U R                   R                  SS9Ul        U(       a  U R                   R!                  SS9Ul        U	(       a  U R                   R%                  SS9Ul        U
(       a  U R                   R)                  SS9Ul        U(       a  U R                   R-                  SS9Ul        U(       a  U R                   R1                  SS9Ul        U(       a  U R                   R5                  SS9Ul        U(       a  U R                   R9                  SS9Ul        U(       a  U R                   R=                  SS9Ul        Ub  U R                   RA                  US9Ul!        U(       a  U R                   RE                  SS9Ul#        U(       a  U R                   RI                  SS9Ul%        U$ )aJ  Generates an AddonsConfig object given specific parameters.

Args:
  disable_ingress: whether to disable the GCLB ingress controller.
  disable_hpa: whether to disable the horizontal pod autoscaling controller.
  disable_dashboard: whether to disable the Kubernetes Dashboard.
  disable_network_policy: whether to disable NetworkPolicy enforcement.
  enable_node_local_dns: whether to enable NodeLocalDNS cache.
  enable_gcepd_csi_driver: whether to enable GcePersistentDiskCsiDriver.
  enable_filestore_csi_driver: wherher to enable GcpFilestoreCsiDriver.
  enable_application_manager: whether to enable ApplicationManager.
  enable_cloud_build: whether to enable CloudBuild.
  enable_backup_restore: whether to enable BackupRestore.
  enable_gcsfuse_csi_driver: whether to enable GcsFuseCsiDriver.
  enable_stateful_ha: whether to enable StatefulHA addon.
  enable_parallelstore_csi_driver: whether to enable ParallelstoreCsiDriver.
  enable_high_scale_checkpointing: whether to enable HighScaleCheckpointing.
  enable_lustre_csi_driver: whether to enable LustreCsiDriver.
  enable_pod_snapshots: whether to enable PodSnapshots.
  enable_ray_operator: whether to enable RayOperator.
  enable_slice_controller: whether to enable SliceController.

Returns:
  An AddonsConfig object that contains the options defining what addons to
  run in the cluster.
r  r  T)&r   r  r   httpLoadBalancingr   horizontalPodAutoscalingr   kubernetesDashboardNetworkPolicyConfignetworkPolicyConfigDnsCacheConfigdnsCacheConfigr  r  r  r  
KalmConfig
kalmConfigCloudBuildConfigcloudBuildConfigr  r  r  r  r  r  r  r  r  r  r  rR  rU  rV  r  rN  rW  rX  )r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   s                       rr   r8  APIAdapter._AddonsConfig  s   ^ ]]'')F"!%!@!@" "A "f (,(N(N )O )f% $#'==#D#D$ $E $f  )#'==#D#D) $E $f  ("mm::' ; f 
--
8
8
8
F - #
--
3
3D
3
A ( "--2242@f $ > >t > Lf$(MM$F$F %G %f! !&*mm&J&J 'K 'f#  $ > >t > Lf&
--
4
4T
4
B ) '
--
4
4T
4
B )  
--
-
-d
-
; " '!%!@!@& "A "f !%!@!@!@!Nf%)]]%H%H &I &f" Mrs   c           	         UR                   (       d  gU R                  R                  R                  n/ nUR                    H  n[	        US   5      nUS   R                  5       nUS   R                  5       S:X  a  UR                  nONUS   R                  5       S:X  a  UR                  nO*[        R                  " [        R                  US   S95      eUR                  U R                  R                  XgUS95        M     XAl        g)	z(Add LocalSSDVolumeConfigs to nodeConfig.Nr  r"  r}   fsblock)
err_format)r  r"  r}   )r   r   LocalSsdVolumeConfigFormatValueValuesEnumr  r  FSBLOCKr	   r{  $LOCAL_SSD_INCORRECT_FORMAT_ERROR_MSGr}   r   localSsdVolumeConfigs)	r  r   r   format_enumlocal_ssd_volume_configs_listr  r  ssd_type
ssd_formats	            rr   r^  0APIAdapter._AddLocalSSDVolumeConfigsToNodeConfigE  s    ++--44JJK$&!22&/"e%%'h					!T	) ^^
(!!#w. &&
jj077!(+ 8 
 	

 $**
--
,
, -  3$ )F%rs   c                     UR                   c  g UR                   nS nSU;   a  US   nU R                  R                  US9Ul        g )Nzlocal-ssd-countr]  )r   r   EphemeralStorageConfigephemeralStorageConfigr  r   r   r  r  s        rr   r_  +APIAdapter._AddEphemeralStorageToNodeConfig_  sT      (&&FEF"&'e)-)M)M *N *K&rs   c                    UR                   c  UR                  c  gUR                   c?  UR                  b2  U R                  R                  [	        UR                  5      S9Ul        gUR                   nSnSU;   a  US   nSnUR                  b  [	        UR                  5      nU R                  R                  XES9Ul        g)z1Add EphemeralStorageLocalSsdConfig to nodeConfig.N)dataCacheCountr  )r]  r  )r   r   r   EphemeralStorageLocalSsdConfigr  ephemeralStorageLocalSsdConfig)r  r   r   r  r  dcounts         rr   r`  3APIAdapter._AddEphemeralStorageLocalSsdToNodeConfigj  s     	++3$$,++3$$0 --
6
6 !9!9: 7  0
 00FE&WoeF+7++,f44 	5 	
 .rs   c                     UR                   c  g UR                   nS nSU;   a  US   nU R                  R                  US9Ul        g )Nr  r  )r   r   LocalNvmeSsdBlockConfiglocalNvmeSsdBlockConfigr  s        rr   ra  ,APIAdapter._AddLocalNvmeSsdBlockToNodeConfig  sR    ##+))FE&Woe*.--*O*O +P +K'rs   c                 J    UR                   (       d  g UR                   Ul        g r   )rV  enableConfidentialStorager  r   r   s      rr   rb  4APIAdapter._AddEnableConfidentialStorageToNodeConfig  s    ..,3,O,OK)rs   c                 J    UR                   (       d  g UR                   Ul        g r   )rW  storagePoolsr!  s      rr   rc  'APIAdapter._AddStoragePoolsToNodeConfig  s      &44Krs   c                     UR                   bY  UR                   S:X  a  UR                  R                  Ul        gUR                   S:X  a  UR                  R                  Ul        ggg)z)Add localSsdEncryptionMode to nodeConfig.NEPHEMERAL_KEY_ENCRYPTIONSTANDARD_ENCRYPTION)rX  %LocalSsdEncryptionModeValueValuesEnumr'  localSsdEncryptionModer(  r!  s      rr   rd  1APIAdapter._AddLocalSsdEncryptionModeToNodeConfig  sg    ((4		*	*.H	H==VV 	* ,,0EE==QQ 	* F 5rs   c           	         UR                   c  g/ nU R                  R                  R                  n[	        [
        R                  " UR                   5      5       H  u  pVUR                  S5      n[        U5      S:w  a'  [        R                  " [        R                  XVS95      eUS   nUS   nUS:X  a  UR                  n	OPUS:X  a  UR                  n	O=US	:X  a  UR                  n	O*[        R                  " [         R                  US   S
95      eUR#                  U R                  R                  XVU	S95        M     X1l        g)zAdd nodeTaints to nodeConfig.N:r  r  r   r  
NoSchedulePreferNoSchedule	NoExecuteeffectr  r  r2  )r   r   	NodeTaintEffectValueValuesEnumr   r  r  r  r  r	   r{  %NODE_TAINT_INCORRECT_FORMAT_ERROR_MSGr}   NO_SCHEDULEPREFER_NO_SCHEDULE
NO_EXECUTE%NODE_TAINT_INCORRECT_EFFECT_ERROR_MSGr   taints)
r  r   r   r;  effect_enumr  r  strstaint_effectr2  s
             rr   ri  %APIAdapter._AddNodeTaintsToNodeConfig  s(   "F--))??KS]]7+>+>?@
[[d	Tajj188S8N
 	
 1ge!Wl		%((--//;&''jj188Q8H
 	
 mm
--
!
!cv
!
F% A,  rs   c                    Uc  g U R                   R                  R                  5       n/ n[        R                  " U5       H#  u  pEUR                  UR                  XES95        M%     X2l        U R                   R                  US9$ )Nr  r  )r   ResourceManagerTagsr2  r  r  r   r3  r  )r  r   rE  r  r  r  s         rr   r  APIAdapter._ResourceManagerTags  st    |mm//99;GEmmD)
ll7--#-CD *#( ==,,',::rs   c                 $   UR                   b  UR                   nUS:X  a3  UR                  UR                  R                  R                  S9Ul        gUS:X  a3  UR                  UR                  R                  R
                  S9Ul        g[        R                  " [        R                  US95      eUR                  GbP  UR                  nUS:X  a3  UR                  UR                  R                  R                  S9Ul        gUS:X  a3  UR                  UR                  R                  R
                  S9Ul        gUS:X  a3  UR                  UR                  R                  R                  S9Ul        gUS:X  a3  UR                  UR                  R                  R                  S9Ul        gUS	:X  a3  UR                  UR                  R                  R                  S9Ul        g[        R                  " [        R                  US95      eg)
z$Adds WorkLoadMetadata to NodeConfig.NGCE_METADATAr&  GKE_METADATA)optionSECURE)nodeMetadataEXPOSEDGKE_METADATA_SERVER)r  WorkloadMetadataConfigr  rD  workloadMetadataConfigrE  r	   r{  #UNKNOWN_WORKLOAD_METADATA_ERROR_MSGr}   r  NodeMetadataValueValuesEnumrG  EXPOSErJ  )r  r   r   r   rF  s        rr   rk  +APIAdapter._AddWorkloadMetadataToNodeConfig  s     ,((f	>	!-5-L-L00DDQQ .M .
* ^#-5-L-L00DDQQ .M .
* jj/66f6E
 	
 
	,	,	822f	>	!-5-L-L00DDQQ .M .
* ^#-5-L-L00DDQQ .M .
* X-5-L-L!88TT[[ .M .
* Y-5-L-L!88TT[[ .M .
* **-5-L-L!88TThh .M .
* jj/66f6E
 	
1 
9rs   c                     U R                   R                  UR                  U R                   R                  R                  R                  S9$ )z%Returns a SetNetworkPolicy operation.r  )r   r(   r  rk  rl  )r  r   s     rr   SetNetworkPolicyCommon!APIAdapter.SetNetworkPolicyCommon  s>    ==&&,,DDKK '  rs   c                 <   U R                  U5      nU R                  R                  [        UR                  UR
                  UR                  5      US9nU R                  U R                  R                  R                  U5      R                  UR
                  5      $ )N)r=  rm  )rR  r   SetNetworkPolicyRequestrO  r1  r2  rF  rC  r,  rL  SetNetworkPolicyr=  )r  rU  r   netpolr\  s        rr   rV  APIAdapter.SetNetworkPolicy  s    ((1F
--
/
/#!!;#3#3[5J5J
 	 0 C //@@EJJ rs   c                    U R                   R                  UR                  UR                  S9nUR                  [
        R                  :X  a-  U R                   R                  R                  R                  nX#4$ UR                  [
        R                  :X  a-  U R                   R                  R                  R                  nX#4$ U R                   R                  R                  R                  nX#4$ )zReturns a SetMasterAuth action.r  )r   r  r  r   r  r  r  SetMasterAuthRequestActionValueValuesEnumr  r  )r  r   r  r  s       rr   SetMasterAuthCommonAPIAdapter.SetMasterAuthCommon  s    ]]%%!!G,<,< & F ~~-:::
--
,
,
B
B
O
O  > 
/AA	A
--
,
,
B
B
T
T  > --
,
,
B
B
O
O  >rs   c                 F   U R                  U5      u  p4U R                  R                  [        UR                  UR
                  UR                  5      UUS9nU R                  R                  R                  U5      nU R                  UR                  UR
                  5      $ )N)r=  r  r  )r\  r   rZ  rO  r1  r2  rF  r,  rL  SetMasterAuthrC  r=  )r  rU  r   r  r  r\  rr  s          rr   r_  APIAdapter.SetMasterAuth'  s    --g6NF
--
,
,#!!;#3#3[5J5J
  - C 
	0	0	>	>s	CBrww(8(899rs   c           	         U R                   R                  R                  U R                  R	                  [        UR                  UR                  UR                  5      US95      nU R                  UR                  UR                  5      $ )N)r=  rotateCredentials)r,  rL  StartIpRotationr   StartIPRotationRequestrO  r1  r2  rF  rC  r=  )r  rU  rotate_credentialsr  s       rr   rc  APIAdapter.StartIpRotation3  sx    77GG,,'%%{'7'79N9N 1	 	- 	
I y~~{/?/?@@rs   c           	         U R                   R                  R                  U R                  R	                  [        UR                  UR                  UR                  5      S95      nU R                  UR                  UR                  5      $ r  )r,  rL  CompleteIpRotationr   CompleteIPRotationRequestrO  r1  r2  rF  rC  r=  )r  rU  r  s      rr   rh  APIAdapter.CompleteIpRotation>  ss    77JJ//'%%{'7'79N9N 	0 	
I y~~{/?/?@@rs   c                    U R                   R                  [        UR                  UR                  UR
                  5      US9nU R                  R                  R                  U5      nU R                  UR                  UR                  5      $ )zOGiven a policy, sends a SetMaintenancePolicy request and returns the operation.)r=  ry  )r   SetMaintenancePolicyRequestrO  r1  r2  rF  r,  rL  SetMaintenancePolicyrC  r=  )r  rU  r  r\  r  s        rr   _SendMaintenancePolicyRequest(APIAdapter._SendMaintenancePolicyRequestH  s    
--
3
3#!!;#3#3[5J5J
 !	 4 C 77LLI y~~{/?/?@@rs   c                 r   US:X  a  SnOU R                   R                  US9nUc  U R                   R                  5       nUR                  c  U R                   R	                  5       Ul        [        UR                  S5      (       a  SUR                  l        XBR                  l        U R                  X5      $ )z0Sets the daily maintenance window for a cluster.NoneNr  r
  )	r   rx  rv  r  rw  hasattrr
  r  rn  )r  rU  existing_policyr  daily_windows        rr   SetDailyMaintenanceWindow$APIAdapter.SetDailyMaintenanceWindowU  s     V#l]]99& : l 779o%#}}>>@o %%'899/3o,4@1--kKKrs   c           	          U R                   R                  R                  U R                  R	                  [        UR                  UR                  UR                  5      S95      nU R                  UR                  UR                  5      $ ! [        R                   a@  n[        R                  " U[        R                   5      nU R#                  X5         SnAgSnAff = f)a/  Delete a running cluster.

Args:
  cluster_ref: cluster Resource to describe

Returns:
  Cluster message.
Raises:
  Error: if cluster cannot be found or caller is missing permissions. Will
    attempt to find similar clusters in other zones for a more useful error
    if the user has list permissions.
rK  N)r,  rL  Deleter   /ContainerProjectsLocationsClustersDeleteRequestrO  r1  r2  rF  rC  r=  rm   rP  r   rQ  r	   rR  rS  )r  rU  r  rV  rW  s        rr   DeleteClusterAPIAdapter.DeleteClustero  s    :++99@@
--
G
G)'')9)9;;P;P H i   1A1ABB00 :**5$2H2HIi
!!+99:s   B
B C!!6CC!c                     U(       d  SnU R                   R                  [        X5      S9nU R                  R                  R                  U5      $ Nra  rO  )r   -ContainerProjectsLocationsClustersListRequestrY  r,  rL  Listr  r9  r>  r\  s       rr   r}  APIAdapter.ListClusters  sI    h
--
E
Ew1 F C ;;2277<<rs   c           	      "   U R                   R                  5       nUR                  (       a  UR                  Ul        UR                  (       a  UR                  Ul        UR                  (       a  UR                  Ul        UR                  (       a  UR                  Ul	        UR                  (       d  UR                  (       a  U R                  U5      Ul        U R                  X#5        U R                   R                  5       nUR                   (       a  UR                   Ul        UR"                  (       a  UR"                  Ul        UR&                  (       a  UR&                  Ul        UR                   (       d"  UR"                  (       d  UR&                  (       a  XCl        [-        X#5        UR.                  (       a  UR.                  Ul        U R3                  X25        U R5                  X25        U R7                  X25        U R9                  X25        U R;                  X25        U R=                  X25        UR>                  (       a  UR>                  Ul         URB                  (       a  URB                  Ul"        URF                  (       a  URF                  Ul#        O/ Ul#        U RI                  X#5        [K        X25        [M        X25        [O        X25        U RQ                  X25        URR                  b"  URR                  nU RU                  U5      Ul+        URX                  (       a  URX                  Ul,        URZ                  (       a  URZ                  Ul-        UR\                  b  UR\                  Ul/        UR`                  b  UR`                  Ul1        URd                  b)  U R                   Rg                  URd                  S9nXcl4        URj                  b)  U R                   Rg                  URj                  S9nXcl4        URl                  b)  U R                   Ro                  URl                  S9nXsl6        URp                  b  URp                  Ul9        URt                  b  URt                  Ul;        URx                  b  URx                  Ul=        UR|                  (       a)  U R                   R                  UR|                  S9nXl@        UR                  b<  U R                   R                  UR|                  [        X R                   SS9S9nXl@        UR                  b)  U R                   R                  UR                  S9n	XlE        UR                  (       a  [        X R                   5      UlH        UR                  b\  U R                   R                  5       n
U R                   R                  [        U R                   UR                  5      S9U
lM        XlN        UR                  (       d  UR                  (       a  [        X R                   [        5      UlS        UR                  bU  U R                   R                  5       UlV        [        R                  " UR                  UR                  U R                   5        U R                  X2U R                   5        [        X2U R                   5        [        X2U R                   5        [        X2U R                   5        [        X2U R                   5        [        X2U R                   5        UR                  S:X  aH  U R                   R                  U R                   R                  R                  R                  S9Ulc        GOZUR                  (       Ga  U R                   R                  UR                  U R                   R                  5       S	9Ulg        UR                  (       aD  U R                   R                  R                  R                  UR                  R                  lk        OCU R                   R                  R                  R                  UR                  R                  lk        UR                  (       a%  UR                  UR                  R                  ln        O8UR                  (       d  UR                  (       a  [        R                  " S
5      eUR                  c  SnUR                  [        ;   nUR                  b  UR                  nOU(       a~  UR                  bq  U R                  UR                  UR                  UR                  S9nUR                  (       a1  UR                  R                  (       a  UR                  R                  nU(       a  [        XR                  5      Ulp        OSUlp        U R                   R                  UR                  UR                  UUR                  U R                  U5      S9nUR                  (       d  UR                  (       a   U R                   GR                  5       Ul        UR                  (       a  UR                  UGR                  l        UGR                  UGR                  l        UGR
                  UGR                  l        UGR                  UGR                  l        UGR                  UGR                  l        UGR                  b2  G[        U R                   UGR                  5      UGR                  l        UGR                  (       aO  U R                   GR                  5       Ul        SUGR                   l        UGR"                  UGR                   l        UR                  (       a  UR                  UGR                  l        UGR(                  b*  U R                   GR+                  UGR(                  S9Ul        UGR.                  (       dX  UGR0                  (       dF  UGR2                  c8  UGR4                  c*  UGR6                  c  UGR8                  c  UGR:                  b6  U R                   GR=                  5       Ul        U GRA                  SX.S9Ul        UGRB                  b  G[E        UGRB                  5      Ul        UGRH                  b:  [        GRJ                  " UUGRH                  UGRL                  U R                   5        UGRL                  bK  UGRN                  c   U R                   GRQ                  5       Ul        UGRL                  UGRN                  l        U GRU                  U5      Ul        UGRX                  (       a"  U GR[                  U5      UGRV                  l        UGR^                  S:X  d  UR                  b   U R                   GRa                  5       Ul        UGR^                  S:X  a=  U R                   GR`                  GRd                  GRf                  UGRb                  l        UR                  b  UR                  UGRb                  l        UGRl                  b  UGRl                  S:X  aK  U R                   GRo                  U R                   GRn                  GRp                  GRr                  S9Ul        O[UGRl                  S:X  aJ  U R                   GRo                  U R                   GRn                  GRp                  GRv                  S9Ul        UR                  (       aJ  UGRb                  c   U R                   GRa                  5       Ul        UR                  UGRb                  l        UGRz                  b=  U R                   GR}                  5       Ul        UGRz                  UGR~                  l        UGR                  b2  [        GR                  " UGR                  U R                   5      Ul        UGR                  bK  UGR                  c   U R                   GR                  5       Ul        UGR                  UGR                  l        UGR                  b  U R                   GR                  R                  nSUGR                  0n/ Ul        UGR                   He  nUS   nSnSU;   a  US   U;   a	  UUS      nOUGR                  nUGR                  GR                  U R                   GR                  UUS95        Mg     UGR                  bc  UGR                  c   U R                   GR                  5       Ul        U R                   GR                  UGR                  S9UGR                  l        U$ )z#Returns a CreateNodePool operation.Nr  Tfor_node_poolr  r#  confidentialr&  )controlNodePoolattestationzU--enable-attestation and --tee-policy can only be specified with --control-node-pool.)r9  r>  rj  r  r  r  )rD  rU   rU  rV  rX  CONTAINER_IMAGE_CACHEz
disk-imager'  )	diskImager'  )r   rY  r  rZ  r  r7   r   r8   r   r9   r  r  r[  r\  rq  r  r   r   r  r   r  r  r   r   r]  r^  r_  r`  ra  rc  rd  rV  r   r   r6   r   rj  rh  rg  rf  ri  r  r  r  r   r   r   r-   r  	nodeGroupr`  r  r  ra  rM  rr  r   rv  r   rw  r   rx  rT  r  r  rU  r  r	  
FastSocket
fastSocketrm  r  r  r}  r  r  r  r  r  r  r  r  NODEPOOLr  r  r  r  r	   r  rk  rl  rm  rn  _AddSandboxConfigToNodeConfig!_AddWindowsNodeConfigToNodeConfigr  RunnerPoolControlr  CONFIDENTIALrunnerPoolControlr  RunnerPoolConfigAttestationConfigrunnerPoolConfigr  r  r  r'  r  r  	teePolicyr{  r   TPU_MACHINE_TYPESr  r   rl  r1  r2  workloadPolicyacceleratorTopologyTpuTopologyToNumNodesr  
nodePoolIdr   r  r   r9  r  r  r  r   r  r   r  r   r  r   r  r   r  r  r  BestEffortProvisioningbestEffortProvisioningr  minProvisionNodesautoprovisionedr  r]  r  r  r  r7  r8  r  r  r  r  r.   UpdateUpgradeSettingsr   r   r  r1  ro  r  rp  r  r  _GetNetworkConfigrb  r  _GetNetworkPerformanceConfigr,  r   r  r  r  rU   r"  r  r6  rs  rt  rU  ru  rX  tpuTopologyr   r  r  r  (LoadSoleTenantConfigFromNodeAffinityYamlsoleTenantConfigr  SoleTenantConfigminNodeCpusr  SecondaryBootDiskr  secondaryBootDisksMODE_UNSPECIFIEDr   r  ry  rz  r{  r|  )r  node_pool_refr   r   r  r   gcfs_configrM  confidential_nodesfast_socketr  r  is_tpuresource_policyrD  	mode_enummode_mapdisk_config
disk_imager'  s                       rr   CreateNodePoolCommonAPIAdapter.CreateNodePoolCommon  s   --**,K ' 4 4k&33k$..k%00k**33!55g>k%%g;MM335M}}#MMm#*#8#8m ")"6"6m}}--1E1E$1!#G9")"9"9k..{D))+?11+G**;@%%k;//E**

-
- +   #*#<#<k || kk  6[2;0{4##K9$$0**d(,(A(A$(Gk% ' 3 3k|| k+#*#;#;k %%00k&MM,,W5H5H,Ik*%%1MM,,00 - k  +}} mm&&w}}&=e+#*#;#;k "".'.'B'Bk$%%00k((==::33 ;  '9#%%1==::33#F}}D$ ;  '9#!!-MM,,W5O5O,Pk*##&;
=='k# *}}::<n%)]]%G%G-mmW44 &H &n"
 #1((G,M,M*C
==(+k' **6%)]]%C%C%Ek"
''

&
&

-
-
-- 	))+N#K$--H*;O'dmmL!+F%kDMMJ''>9&*mm&E&E}}..BBOO 'F 'k# 
	"	"	"%)]]%C%C!33mm557 &D &k" 
	#	#MM++??GG 	$$005
 MM++??HH 	$$005 
		=D=O=O$$00:		#	#w'9'9JJ!   l##'88f				)++g..:00!++"''00 1 
 **..BB(77KK,	1..
 ==!!%% **$$**73 " D !!W%D%D::<d!!!(!;!;d&-&7&7d#&-&7&7d#+2+B+Bd(+2+B+Bd(		 	 	,*FMM722+
' +++$(MM$H$H$Jd!,0d!!)

%
% !!3 &&)0)H)Hd&  ,#}}>> 22  ?  d
 	$$$,,,$$0**6**6,,8**6!]]::<d!77
 8 d )g445dn&&2
##


)
)

7
7
--	 44@		"	"	*$(MM$C$C$E!

7
7 B //8D)))

+
+G
4 1
 	)+##/!]]::<d*
--
'
'
;
;
C
C  +(/(@(@d%!!-		#	#v	-&*mm&C&C--NNSS 'D '
#
 %%/&*mm&C&C--NNSS 'D '
# 				%#}}<<>)0)=)=d&))5 $ @ @ Bd(/(J(Jd% --9

7
744dmm "
 ((4		%	%	-'+}}'E'E'G$

+
+ "". ##/--11EEi
!9#B#Bh (*k$ 55+ .
 [  H,K/0D--D&&--MM++$ , 	
 6$ &&2		!	!	)#'==#=#=#? +/==+B+B11 ,C ,k( Krs   c                 @   U R                  X5      nU R                  R                  U[        UR                  UR
                  UR                  5      S9nU R                  R                  R                  U5      nU R                  UR                  UR
                  5      $ )z=CreateNodePool creates a node pool and returns the operation.nodePoolrO  r  r   CreateNodePoolRequestrO  r1  r2  rF  r,  %projects_locations_clusters_nodePoolsrZ  rC  r=  r  r  r   rD  r\  r  s         rr   CreateNodePoolAPIAdapter.CreateNodePool  s    $$]<D
--
-
-%##]%7%79P9P
 . C AAHHMIy~~}/A/ABBrs   c                     U R                   R                  [        UR                  UR                  UR
                  5      S9nU R                  R                  R                  U5      $ )Nr~  )	r   6ContainerProjectsLocationsClustersNodePoolsListRequestrO  r1  r2  rF  r,  r  r  )r  rU  r\  s      rr   ListNodePoolsAPIAdapter.ListNodePools  sZ    
--
N
N%!!;#3#3[5J5J
 O C
 ;;<<AA#FFrs   c                     U R                   R                  [        UR                  UR                  UR
                  UR                  5      S9nU R                  R                  R                  U5      $ r  )
r   5ContainerProjectsLocationsClustersNodePoolsGetRequestProjectLocationClusterNodePoolr1  r2  rF  r  r,  r  rM  r  r  r\  s      rr   GetNodePoolAPIAdapter.GetNodePool  se    
--
M
M+####$$	
 N C ;;<<@@EErs   c                     U R                   R                  [        UR                  UR                  UR
                  UR                  5      S9nU R                  R                  R                  U5      $ )zGet node pool upgrade info.

Args:
  node_pool_ref: NodePool Resource to get upgrade info for.

Returns:
  NodePool Upgrade Info message.
rK  )
r   JContainerProjectsLocationsClustersNodePoolsFetchNodePoolUpgradeInfoRequestr  r1  r2  rF  r  r,  r  FetchNodePoolUpgradeInfor  s      rr   GetNodePoolUpgradeInfo!APIAdapter.GetNodePoolUpgradeInfo  sl     --
b
b+####$$	
 c C ;;<<UU rs   c                     U R                  U5      nUR                  nUc  U R                  R                  5       nUR                  b  UR                  Ul        UR                  b  UR                  Ul        U$ )zUpdates node pool's node management configuration.

Args:
  node_pool_ref: node pool Resource to update.
  options: node pool update options

Returns:
  Updated node management configuration.
)r  r1   r   r|  r   r3   r   r2   )r  r  r   rD  node_managements        rr   UpdateNodePoolNodeManagement'APIAdapter.UpdateNodePoolNodeManagement/  so     M*DooO446o  ,#*#<#<o !!-$+$>$>o!rs   c                 J   U R                  U5      nUR                  nUc  U R                  R                  5       nUR                  bt  UR                  Ul        UR
                  (       dR  SUl        SUl        SUl        SUl	        SUl
        U R                  R                  R                  R                  Ul        UR                  b0  UR                  Ul
        UR                  (       a  SUl        SUl        UR                  b  UR                  Ul        UR                   b  UR                   Ul        UR"                  b  UR"                  Ul	        UR$                  b  UR$                  Ul        UR&                  b%  [)        U R                  UR&                  5      Ul        U$ )zUpdate node pool's autoscaling configuration.

Args:
  node_pool_ref: node pool Resource to update.
  options: node pool update options

Returns:
  Updated autoscaling configuration for the node pool.
r   F)r  r  r   r  r   r  r  r  r  r  r  LocationPolicyValueValuesEnumLOCATION_POLICY_UNSPECIFIEDr  r9  r   r   r   r   r   r  )r  r  r   rD  r  s        rr   UpdateNodePoolAutoscaling$APIAdapter.UpdateNodePoolAutoscalingC  sp    M*D""KMM557k!!-#66k  #$ #$ ()%()%&+#MM--KKgg 	" &&2$+$C$Ck!		$	$#$ ()%$!(!2!2k$!(!2!2k*&-&=&=k#*&-&=&=k#*#?
--00$k  rs   c                    UR                   b#  UR                  b  [        R                  " S5      eUR                  =(       d    U R
                  R                  5       nUR                  b  UR                  Ul        UR                   b  UR                  =(       d    U R
                  R                  5       nSUR                   ;   a&  SUR                   ;   a  [        R                  " S5      eSUl        SUl        SUR                   ;   a  UR                   S   Ul        O$SUR                   ;   a  UR                   S   Ul        SUR                   ;   a  UR                   S   Ul        XCl	        SUl        U$ UR                  be  UR                  =(       d    U R
                  R                  5       nSUl        SUR                  ;   a  UR                  S   Ul        XSl        SUl	        U$ )z5Update blue green settings field in upgrade_settings.NzbBlueGreenSettings must contain only one of: --standard-rollout-policy, --autoscaled-rollout-policyr  r  zOStandardRolloutPolicy must contain only one of: batch-node-count, batch-percentr  zwait-for-drain-duration)r  r  r	   r{  r  r   r  r  r  r  r  r  r  r  autoscaledRolloutPolicyAutoscaledRolloutPolicywaitForDrainDuration)r  r  r   r  r  r  s         rr   UpdateBlueGreenSettings"APIAdapter.UpdateBlueGreenSettingsq  s    	''3--9JJD 
 	**Odmm.M.M.O  &&2181P1P.&&2

3
3 3]]002   ? ?
?!@!@@jj
 	

 04,04-	w>>	>++,>? 	 . g===++O< 	 / 
'"A"A	A++,AB 	 1 3J/481  
	*	*	6

5
5 5]]224  
 8<4	"g&G&G	G--.GH 	"6 5N126/rs   c                    Uc  U R                  U5      nUR                  (       a'  UR                  (       a  [        R                  " S5      eUR
                  nUc  U R                  R                  5       nUR                  b  UR                  Ul	        UR                  b  UR                  Ul        UR                  (       a/  U R                  R                  R                  R                  Ul        UR                  (       a/  U R                  R                  R                  R                  Ul        UR                   c  UR"                  c  UR$                  b  U R'                  XB5      Ul        U$ )z%Updates node pool's upgrade settings.z]UpgradeSettings must contain only one of: --enable-surge-upgrade, --enable-blue-green-upgrade)r  r  r  r	   r{  r.   r   r  r7  r  r8  r  r  r  r  r  r  r  r  r  r  )r  r  r   rD  r  s        rr   r   APIAdapter.UpdateUpgradeSettings  s6   |m,d##(I(IJJ) 
 ++668  ,")";";&&2(/(G(G%##
--
'
'
?
?
E
E  ((
--
'
'
?
?
J
J  	''3**6,,8+/+G+G
,( rs   c           	      j   U R                   R                  [        UR                  UR                  UR
                  UR                  5      S9nU R                  X#5        UR                  c  UR                  b  U R                  X2U R                   5        U$ UR                  b  [        UR                  5      Ul        U$ UR                  (       dR  UR                  (       dA  UR                   c4  UR"                  c'  UR$                  c  UR&                  c  UR(                  b  U R+                  X5      Ul        U$ UR.                  c  UR0                  b  U R                   R3                  5       nUR.                  b7  [4        R6                  " UUR.                  UR0                  U R                   5        UR0                  bG  UR8                  c  U R                   R;                  5       Ul        UR0                  UR8                  l        UR>                  Ul        UR8                  Ul        U$ UR@                  bM  U R                   RC                  5       n[4        RD                  " XRR@                  U R                   5        XSl#        U$ URH                  b  U R                   RK                  5       nURM                  5       n/ n[N        RP                  " URH                  5       H#  u  pURS                  URU                  XS95        M%     Xl+        Xvl$        Xcl,        U$ URZ                  b  U R                   R]                  5       nURM                  5       n/ n[N        RP                  " URZ                  5       H#  u  pURS                  URU                  XS95        M%     Xl+        X{l$        Xl$        U$ UR^                  Gb[  / nU R                   R`                  Rb                  n[        [N        RP                  " UR^                  5      5       H  u  pU
Re                  S5      n[g        U5      S:w  a'  [4        Rh                  " [j        Rm                  XS95      eUS   n
US   nUS:X  a  URn                  nOPUS:X  a  URp                  nO=US	:X  a  URr                  nO*[4        Rh                  " [t        Rm                  US   S
95      eURS                  U R                   Ra                  XUS95        M     U R                   Rw                  5       nUUl<        UUl<        U$ URz                  b4  U R                   R}                  5       nURz                  Ul=        UUl=        U$ UR~                  b4  U R                   R                  5       nUR~                  UlA        UUlB        U$ UR                  b,  U R                   R                  UR                  S9nUUlE        U$ UR                  b,  U R                   R                  UR                  S9nUUlF        U$ UR                  b  UR                  UlI        U$ UR                  b  UR                  UlK        U$ UR                  b  UR                  UlM        U$ UR                  b,  U R                   R                  UR                  S9nUUlE        U$ UR                  b9  U R                   R                  5       nU R                  U5      UlQ        UUlB        U$ UR                  b,  U R                   R                  UR                  S9nUUlT        U$ UR                  b4  U R                   R                  [        X R                   SS9S9nUUlT        U$ UR                  b,  U R                   R                  UR                  S9nUUlY        U$ UR                  b_  U R                   R                  5       nU R                   R                  [        U R                   UR                  5      S9Ul^        UUl_        U$ UR                  b  U R                   R                  5       nUR                  S:X  a0  U R                   R                  R                  R                  Uld        O/U R                   R                  R                  R                  Uld        UUlf        U$ UR                  b$  UR                  nU R                  U5      Uli        U$ UR                  c4  UR                  c'  UR                  c  UR                  c  UR                  b  UR                  Ulo        UR                  Ulp        UR                  Ulq        UR                  c  UR                  b]  U R                   R                  5       nUR                  b  UR                  Uls        UR                  b  UR                  Ult        UUlu        U$ UR                  b<  U R                   R                  5       Ulx        UR                  UR                  ly        U$ UR                  b  UR                  Ul{        U$ UR                  b  [        X2U R                   5        U$ UR                  bS  U R                   R                  5       Ul        U R                   GR                  UR                  S9UGR                   l        U$ )zCreates an UpdateNodePoolRequest from the provided options.

Arguments:
  node_pool_ref: The node pool to act on.
  options: UpdateNodePoolOptions with the user-specified options.

Returns:

  An UpdateNodePoolRequest.
rK  r  r-  r  r   r  r.  r/  r0  r1  r3  r  Tr  )r  r#  ltsc2022)r   UpdateNodePoolRequestr  r1  r2  rF  r  rj  r  r  rk  r   r   r  r  r  r7  r8  r  r  r  r  r.   r1  r  rY  r	   ro  rp  r  r  linuxNodeConfigr  r  r  r  r   ResourceLabelsLabelsValuer  r  r   r3  r  r  r   
NodeLabelsr   r4  r5  r  r  r{  r6  r}   r7  r8  r9  r:  
NodeTaintsr;  r   r  r  NodeNetworkConfigr  nodeNetworkConfigr`  r  r  rM  rr  r   rv  r   rw  r   rx  ra  r  r  r,  rT  r  r  rU  r  r	  r  r  r}  r  r  r  r  r  r
  WindowsNodeConfigOsVersionValueValuesEnumOS_VERSION_LTSC2022	osVersionOS_VERSION_LTSC2019windowsNodeConfigr  r  r  r  r   r  r  r  rZ  r8   r7   r  r  r  r\  r   r  r  r  rW  r$  r'  r8  r  rz  ry  r{  r|  )r  r  r   update_requestr   containerd_configresource_labelsr   r  r  r  r   r;  r<  r=  r>  r2  r   	node_tagsnetwork_configr  rM  r  r  r  windows_node_configr   boot_disk_cfgs                               rr   r   APIAdapter.UpdateNodePoolRequest  s?
    ]]88+####$$	
 9 N 	  9 	!!-..:
++
4==L G 
			+!'(>(>!?nD A 	))''$$0**6**6**6,,8'+'A'A
(n$p i 	''388DMM,,.k		(	(	4%%++99MM		
 
	6	6	B$$,&*mm&E&E&G+
#99 	!!D
 (3'B'Bn$%0%>%>n"@ } 
	,	,	8--88:
''
@@$-- ):%r q 
	#446o**,fegnn5*#V..3.DE 6$)!%&5#` _ 
			(MM,,.k&&(feg&9&9:*#V..3.DE ;$)!!)N M 
			(fMM++AAks}}W-@-@AB*#{{3t9>

3::s:P  QAw<'**&//11&[())&

3::$q':J  	MM###H	
% C* MM,,.k!k)nX W 
	!--++-i||in%nP O 
	%	%	1}}668n*1*F*Fn')7n&H G 
			(MM,,W5H5H,Ik"-nB A 
	"mm&&w}}&=e"n| { 
	!	!	-&-&>&>n#x w 
	$	$	0*1*E*En't s 
			'!(!3!3np o 
	'	'	3MM,,00 - k #.nf e 
	+	+	7}}668n

+
+G
4 - *8n&Z Y 
	*	*	6==::33 ;  *<n&P O 
	'	'	3==::#F}}D$ ; 
 *<n&B A 
	#	#	/MM,,W5O5O,Pk"-n| { 
	 	 	,}}::<n%)]]%G%G-mmW44 &H &n"
 &4n"l k 
	#	#	/ MM;;=		#	#z	1MM++DDXX 	%
 MM++DDXX 	% *=n&V U 
	&	&	2**d+/+D+DT+Jn(P M 	((+##/))5#*#7#7n  ' 1 1n")"6"6n 
"
"
.++7..0##/*1*B*B-
'))5070N0N-
-"/$ ! 
	+	+	7*.--*J*J*Ln'

,
, ''/  
			*$+$9$9n!  
	;	;	G6
4==  
	(	(	4$(MM$>$>$@n!.2mm.E.E11 /F /n!!+ rs   c           	         UR                  5       (       a  U R                  X5      nU R                  R                  UR                  US9nU R
                  R                  R                  U R                  R                  [        UR                  UR                  UR                  5      US95      nU R                  UR                  UR                  5      $ UR                  5       (       a  U R!                  X5      nU R                  R#                  [%        UR                  UR                  UR                  UR                  5      US9nU R
                  R&                  R)                  U5      nObUR+                  5       (       a7  U R-                  X5      nU R
                  R&                  R                  U5      nO[.        R0                  " S5      eU R                  UR                  UR                  5      $ )zUpdates nodePool on a cluster.r  r  r=  r1   Unhandled node pool update moder!  r  r   rx  r  r,  rL  r  r  rO  r1  r2  rF  rC  r=  r$  r  SetNodePoolManagementRequestr  r  SetManagementr'  r  r	   r{  r  r  r   r  r  r  r1   r\  s           rr   UpdateNodePoolAPIAdapter.UpdateNodePool  s   ""$$22=Jk}}**)44%0 + f ++99@@
--
,
,)))$$))
  - 	i   1C1CDD		+	+	-	-44]LjMM66-%%  %%&&	   7 c ++
;
;
I
I#
N  
	(	(	*	*&&}>c++CCJJ3OiJJ899y~~}/A/ABBrs   c           
      .   U R                   R                  R                  U R                  R	                  [        UR                  UR                  UR                  UR                  5      S95      nU R                  UR                  UR                  5      $ r  )r,  r  rx  r   8ContainerProjectsLocationsClustersNodePoolsDeleteRequestr  r1  r2  rF  r  rC  r=  )r  r  r  s      rr   DeleteNodePoolAPIAdapter.DeleteNodePool  s    AAHHNN/''""''((	 	O 	
	I y~~}/A/ABBrs   c           
      0   U R                   R                  R                  U R                  R	                  [        UR                  UR                  UR                  UR                  5      US95      nU R                  UR                  UR                  5      $ )z&Rolls back an upgrade for a node pool.)r=  
respectPdb)r,  r  Rollbackr   RollbackNodePoolUpgradeRequestr  r1  r2  rF  r  rC  r=  )r  r  respect_pdbr  s       rr   RollbackUpgradeAPIAdapter.RollbackUpgrade  s    AAJJ44/''""''((	 # 	5 	

I y~~}/A/ABBrs   c                     U R                   R                  [        UR                  UR                  UR
                  UR                  5      S9nU R                  R                  R                  U5      $ r  )
r   AContainerProjectsLocationsClustersNodePoolsCompleteUpgradeRequestr  r1  r2  rF  r  r,  r  CompleteUpgrader  s      rr   CompleteNodePoolUpgrade"APIAdapter.CompleteNodePoolUpgrade  sj    
--
Y
Y+####$$	
 Z C ;;<<LL rs   c                     U R                   R                  [        UR                  UR                  UR
                  5      S9nU R                  R                  R                  U5      $ r  )	r   CancelOperationRequestr  r1  r2  r  r,  r  Cancel)r  op_refr\  s      rr   CancelOperationAPIAdapter.CancelOperation
  sW    
--
.
.%fkk6+=+=
 / C
 ;;44;;C@@rs   c                 p    UR                   U R                  R                  R                  R                  :H  $ r   )rb  r   r1  r  RUNNINGr  ri   s     rr   	IsRunningAPIAdapter.IsRunning  s'    >>T]]22HHPPPPrs   c                 p    UR                   U R                  R                  R                  R                  :H  $ r   )rb  r   r1  r  DEGRADEDr  s     rr   
IsDegradedAPIAdapter.IsDegraded  s)    $--//EENNNrs   c                    UR                   (       a[  UR                    Vs/ s H  o"R                  PM     nnUR                    Vs/ s H  o"R                  PM     nnSR                  X45      $ [        R
                  $ s  snf s  snf )NzCodes: {0}
Messages: {1}.)
conditionscoder  r}   r  DEFAULT_DEGRADED_WARNING)r  ri   	conditioncodesr   s        rr   GetDegradedWarningAPIAdapter.GetDegradedWarning  so    /6/A/AB/A)~~/AeB5<5G5GH5G	##5GhH*225CC333	 CHs   A=Bc                     U(       d  SnU R                   R                  [        X5      S9nU R                  R                  R                  U5      $ r}  )r   /ContainerProjectsLocationsOperationsListRequestrY  r,  r  r  r  s       rr   ListOperationsAPIAdapter.ListOperations"  sI    h
--
G
Gw1 H C ;;4499#>>rs   c                 p    UR                   U R                  R                  R                  R                  :H  $ r   )rb  r   	Operationr  DONE)r  r  s     rr   r  APIAdapter.IsOperationFinished*  s+    DMM33IINNNrs   c                     U R                   R                  [        X5      S9nU R                  R                  R                  U5      $ r  )r   0ContainerProjectsLocationsGetServerConfigRequestrY  r,  projects_locationsGetServerConfigr  s       rr   r4  APIAdapter.GetServerConfig/  sA    
--
H
HW/ I C ;;))99#>>rs   c                     U R                   R                  [        UR                  UR                  UR
                  U5      US9nU R                  R                  R                  U5      nU R                  UR                  UR                  5      $ )N)r=  	nodeCount)r   SetNodePoolSizeRequestr  r1  r2  rF  r,  r  SetSizerC  r=  )r  rU  r  sizer\  r  s         rr   ResizeNodePoolAPIAdapter.ResizeNodePool5  s    
--
.
.+!!!!	
  / C AAII#NIy~~{/?/?@@rs   c                     UR                   c  UR                  c  gU R                  R                  5       nUR                   Ul        UR                  Ul        U$ )aI  Gets a wrapper containing the options for how nodes are managed.

Args:
  options: node management options

Returns:
  A NodeManagement object that contains the options indicating how nodes
  are managed. This is currently quite simple, containing only two options.
  However, there are more options planned for node management.
N)r   r   r   r|  r3   r2   )r  r   r  s      rr   r  APIAdapter._GetNodeManagementB  sR       (W-G-G-Omm224O!(!:!:O")"<"<Ors   c                    UR                   c\  UR                  cO  UR                  cB  UR                  c5  UR                  c(  UR
                  c  UR                  c  UR                  c  gU R                  R                  5       nUR                   b  UR                   Ul
        UR                  b  UR                   H0  nUS;  d  M  [        R                  " [        R                  US95      e   SUl        UR                  R!                  SS5      Ul
        UR                  R!                  SS5      Ul        UR                  b  UR                  Ul        UR                  b(  U R                  R'                  UR                  S9Ul        UR
                  bc  / Ul        UR
                   HL  nU R                  R-                  5       nUS   Ul        US	   Ul        UR*                  R3                  U5        MN     UR                  b  / Ul        UR                   H  nU R                  R7                  5       nUR!                  S	S5      Ul        US
   Ul        U R                  R;                  UR!                  SS5      S9Ul        UR4                  R3                  U5        M     UR                  b  UR                  Ul        U$ )zGets a wrapper containing the network config for the node pool.

Args:
  options: Network config options

Returns:
  A NetworkConfig object that contains the options for how the network
  for the nodepool needs to be configured.
Nr  r  Tr=  r   r  r   r   r^  zmax-pods-per-noder  ) r  r  r  r  rn  r  r  r  r   r  podRanger	   r{  &CREATE_POD_RANGE_INVALID_KEY_ERROR_MSGr}   createPodRanger   podIpv4CidrBlockr  r  r  additionalNodeNetworkConfigsAdditionalNodeNetworkConfigr   r   r   additionalPodNetworkConfigsAdditionalPodNetworkConfigsecondaryPodRanger]  r  acceleratorNetworkProfile)r  r   r  r  node_network_optionnode_network_config_msgpod_network_optionpod_network_config_msgs           rr   r  APIAdapter._GetNetworkConfigU  s    	&))1((0..622:++3**2//7]]446N) ' 6 6n$$0..#''

4;;;D  /
 '+n# ' = = A A&$ On(/(E(E(I(I
4)n% ##/*1*F*Fn'--9
--
2
2<< 3  / &&246n1!(!@!@
"&--"K"K"M*=i*H'-@-N*33::#	
	 "A %%135n0 ' > >
!%!I!I!K,>,B,B$-
) 4F4
0 150O0O-112EtL 1P 1
- 	2299"	
 !? **6

-
- . rs   c                 
   UR                   nU R                  R                  5       nU HV  nUR                  SS5      R	                  5       nU(       d  M,  U R                  R                  R                  U5      Ul        MX     U$ )z6Get NetworkPerformanceConfig message for the instance.rJ  r  )r  r   NetworkPerformanceConfigr   rL  rM  rN  rO  s         rr   r  'APIAdapter._GetNetworkPerformanceConfig  s{      ::==AAC#::;R@FFHj	8<8^8^  9G  9G9
5 $  rs   c                    Sn U R                  U5      nU R                  R                  R                  5       n/ n[        [        R                  " U5      5       H#  u  pxUR                  UR                  XxS95        M%     Xel        XSR"                  4$ ! [        R                   a     N[        R                   a*  n[        R
                  " U[        R                  5      eSnAff = f)zUpdate labels on a cluster.

Args:
  cluster_ref: cluster to update.
  update_labels: labels to set.

Returns:
  Operation ref for label set operation.
Nr  )rX  rm   rP  rn   r   rQ  r	   rR  r   SetLabelsRequestr  r   r  r  r   r3  r  labelFingerprint)	r  rU  update_labelsclusrV  r   r  r:  r;  s	            rr   UpdateLabelsCommonAPIAdapter.UpdateLabelsCommon  s     DD__[)d ]]++??AFEs}}]34ll6,,,<= 5"'(((( 00 
(( D$$UD,B,BCCDs   B C'*C'=%C""C'c           	      B   U R                  X5      u  p4U R                  R                  R                  U R                  R                  [        UR                  UR                  UR                  5      UUS95      nU R                  UR                  UR                  5      $ )zUpdates labels for a cluster.r=  r  rT  )rW  r,  rL  SetResourceLabelsr   rS  rO  r1  r2  rF  rC  r=  )r  rU  rU  r   fingerprintr  s         rr   UpdateLabelsAPIAdapter.UpdateLabels      11+MF77II&&'%%{'7'79N9N "( 	' 	
I y~~{/?/?@@rs   c           	         Sn U R                  U5      n0 nUR                  (       a>  UR                  R                   H$  n[        UR                  5      XVR                  '   M&     U(       d1  [        R                  " [        R                  UR                   S95      eU H  n UR#                  U5        M     U R(                  R*                  R-                  5       n[/        [0        R2                  " U5      5       H-  u  pyUR                  R5                  UR7                  XyS95        M/     XR8                  4$ ! [        R                   a     GN<[        R                   a*  n[        R
                  " U[        R                  5      eSnAff = f! [$         a3    [        R                  " [&        R                  UR                   US95      ef = f)zRemoves labels from a cluster.

Args:
  cluster_ref: cluster to update.
  remove_labels: labels to remove.

Returns:
  Operation ref for label set operation.
N)ri   r  r  )rX  rm   rP  rn   r   rQ  r	   rR  r  r  strr  r  r{  NO_LABELS_ON_CLUSTER_ERROR_MSGr}   r=  r  r  NO_SUCH_LABEL_ERROR_MSGr   rS  r  r   r  r  r   r3  rT  )
r  rU  remove_labelsrV  rV  clus_labelsitemr:  r   r;  s
             rr   RemoveLabelsCommonAPIAdapter.RemoveLabelsCommon  s    DD__[)d K%%::$ #DJJHH ; JJ5<<TYY<OPP
  ]]++??AFs}}[12!!((

#
#
#
3 3 ((((9 00 
(( D$$UD,B,BCCD  
jj#**4991*E
 	

s)   D: $F:FF$%F		F=Gc           	      B   U R                  X5      u  p4U R                  R                  R                  U R                  R                  [        UR                  UR                  UR                  5      UUS95      nU R                  UR                  UR                  5      $ )zRemoves labels from a cluster.rZ  )rg  r,  rL  r[  r   rS  rO  r1  r2  rF  rC  r=  )r  rU  rd  r   r\  r  s         rr   RemoveLabelsAPIAdapter.RemoveLabels  r_  rs   c                     [        S5      eNzGetIamPolicy is not overriddenNotImplementedErrorr  s     rr   GetIamPolicyAPIAdapter.GetIamPolicy      
>
??rs   c                     [        S5      erm  rn  r  s     rr   SetIamPolicyAPIAdapter.SetIamPolicy  rr  rs   c                    U R                   R                  U R                   R                  UR                  5       UR                  5       S9US9nUc  U R                   R	                  5       nUR
                  c  U R                   R                  5       Ul        SUR
                  l        XbR
                  l        U R                  X5      $ )a  Sets a recurring maintenance window as the maintenance policy for a cluster.

Args:
  cluster_ref: The cluster to update.
  existing_policy: The existing maintenance policy, if any.
  window_start: Start time of the window as a datetime.datetime.
  window_end: End time of the window as a datetime.datetime.
  window_recurrence: RRULE str defining how the window will recur.

Returns:
  The operation from this cluster update.
r  r  N)
r   r{  r|  rz  rv  r  rw  r  r
  rn  )r  rU  rs  r@  rA  window_recurrencerecurring_windows          rr   SetRecurringMaintenanceWindow(APIAdapter.SetRecurringMaintenanceWindow  s    ( }}88}}''",,.
8L8L8N ( 
 %	 9  779o%#}}>>@o48O1-=*--kKKrs   c                    Ub;  UR                   b.  UR                   R                  c1  UR                   R                  c  [        R                  " [
        5      eSUR                   l        SUR                   l        U R                  X5      $ )z2Removes the recurring or daily maintenance policy.N)r  r  r
  r	   r{  r  rn  )r  rU  rs  s      rr   RemoveMaintenanceWindow"APIAdapter.RemoveMaintenanceWindow;  sy     	!!)""99A&&66> JJ23348O1-1O*--kKKrs   c                 `   U R                   R                  R                  5       nUc2  U R                   R                  U R                   R                  US9S9nU$ UR                  c   U R                   R                  US9Ul        U$ UR                  R
                  c  X!R                  l        U$ )aF  Given a maintenance policy (can be None), return a normalized form.

This makes it easier to add and remove blackouts because the blackouts
list will definitely exist.

Args:
  policy: The policy to normalize.

Returns:
  The modified policy (note: modifies in place, but there might not have
  even been an existing policy).
)maintenanceExclusionsr  )r   rw  MaintenanceExclusionsValuerv  r  r  )r  r  
empty_excls      rr   (_NormalizeMaintenanceExclusionsForPolicy3APIAdapter._NormalizeMaintenanceExclusionsForPolicyJ  s     00KKMJ~}}..00$. 1  / f M 
	 mm55 * 6 fm
 M 
	,	,	4,6mm)Mrs   c                     UR                   R                  R                   Vs/ s H  nUR                  PM     sn$ s  snf )z>Returns a list of maintenance exclusion names from the policy.)r  r  r  r  )r  maintenance_policyps      rr   _GetMaintenanceExclusionNames(APIAdapter._GetMaintenanceExclusionNamesh  s?     $**@@UUUA 	
U  s   <c                    U R                  U5      nUc$  [        R                  " [        R                  5      nUc5  S[        R                  " [        R                  5      R	                  5       -   nX0R                  U5      ;   a%  [        R                  " SR                  U5      5      eUb  U(       d
  Uc  U(       d  [        R                  " S5      eUR                  R                  nSn	U(       a  UR	                  5       n	U R                  R                  UR	                  5       U	S9n
Ub  US:X  aF  U R                  R                  U R                  R                  R                  R                  S9U
l        US:X  aF  U R                  R                  U R                  R                  R                  R"                  S9U
l        US	:X  aF  U R                  R                  U R                  R                  R                  R$                  S9U
l        U(       a  U
R                   cG  U R                  R                  U R                  R                  R&                  R(                  S
9U
l        O9U R                  R                  R&                  R(                  U
R                   l        UR,                  R/                  UR1                  X:S95        U R3                  X5      $ )a  Adds a maintenance exclusion to the cluster's maintenance policy.

Args:
  cluster_ref: The cluster to update.
  existing_policy: The existing maintenance policy, if any.
  window_name: Unique name for the exclusion. Can be None (will be
    autogenerated if so).
  window_start: Start time of the window as a datetime.datetime. Can be
    None.
  window_end: End time of the window as a datetime.datetime.
  window_scope: Scope that the current exclusion will apply to.
  window_until_end_of_support: End time of the window is the end of the
    cluster version's support.

Returns:
  Operation from this cluster update.

Raises:
  Error if a maintenance exclusion of that name already exists.
Nzgenerated-exclusion-z1A maintenance exclusion named {0} already exists.zMaintenance exclusion must contain exactly one of: --add-maintenance-exclusion-end, --add-maintenance-exclusion-until-end-of-supportr  no_upgradesr   no_minor_upgradesno_minor_or_node_upgrades)endTimeBehaviorr  )r  r   NowUTCrz  r  r	   r{  r}   r  r  r   r|  MaintenanceExclusionOptionsScopeValueValuesEnumNO_UPGRADESmaintenanceExclusionOptionsNO_MINOR_UPGRADESNO_MINOR_OR_NODE_UPGRADESEndTimeBehaviorValueValuesEnumUNTIL_END_OF_SUPPORTr  r  r   r3  rn  )r  rU  rs  window_namer@  rA  window_scopewindow_until_end_of_support
exclusionsend_timer  s              rr   AddMaintenanceExclusion"APIAdapter.AddMaintenanceExclusiono  sx   < CCO YYuyy)l +UYYuyy-A-K-K-MMk88IIJJ
=
D
D  	'

%@JJ>  !''==JH%%'h]]%%((*H & F 		&-1]]-V-V--;;PP\\ .W .
* 
,	,-1]]-V-V--;;PPbb .W .
* 
4	4-1]]-V-V--;;PPjj .W .
* #		+	+	3-1]]-V-V99XXmm .W .
* MM55TTii 	**: ##**%%+%D --kKKrs   c                    U R                  U5      nU R                  U5      nX4;  a7  SR                  USR                  U5      5      n[        R
                  " U5      e/ nUR                  R                  R                   H&  nUR                  U:w  d  M  UR                  U5        M(     XbR                  R                  l        U R                  X5      $ )zDRemoves a maintenance exclusion from the maintenance policy by name.zHNo maintenance exclusion with name {0} exists. Existing exclusions: {1}., )r  r  r}   r  r	   r{  r  r  r  r  r   rn  )r  rU  rs  exclusion_nameexisting_exclusionsr  r  exs           rr   RemoveMaintenanceExclusion%APIAdapter.RemoveMaintenanceExclusion  s     CCO <<_M0~tyy)<=>  JJwE$$::OO	>	!R P IN00E--kKKrs   c                    / nUb  UR                  SU-   5        Ub  UR                  U5        SR                  U5      nU R                  R                  UR	                  5       SUS9nU R
                  R                  R                  U5      $ )a  List usable subnets for a given project.

Args:
  project_ref: project where clusters will be created.
  network_project: project ID where clusters will be created.
  filter_arg: value of filter flag.

Returns:
  Response containing the list of subnetworks and a next page token.
znetworkProjectId=z AND i  )rO  pageSizefilter)r   r  r   7ContainerProjectsAggregatedUsableSubnetworksListRequestRelativeNamer,  %projects_aggregated_usableSubnetworksr  )r  project_refnetwork_project
filter_argfiltersr\  s         rr   ListUsableSubnetsAPIAdapter.ListUsableSubnets  s     G"nn(?:;nnZ ll7#G
--
O
O'') P C ;;<<AA#FFrs   c           	      :   UR                   nU(       a  / nU(       a#  U Vs/ s H  owR                  U;  d  M  UPM     nnU(       ae  [        U Vs/ s H  owR                  PM     sn5      nUR                  U V	s/ s H#  n	X;  d  M
  U R                  R                  U	S9PM%     sn	5        U R                  R                  UR                  US9n
U R                  R                  U
S9nU R                  R                  US9nU R                  R                  R                  U R                  R                  [        UR                  UR                   UR"                  5      US95      nU R%                  UR&                  UR                   5      $ s  snf s  snf s  sn	f )zOAdd/Remove/Clear cross connect subnetworks and schedule cluster update request.r_  )r\  r  )crossConnectConfig)desiredPrivateClusterConfigr  )r  r   r   r   r   CrossConnectItemCrossConnectConfigr\  r  rx  r,  rL  r  r  rO  r1  r2  rF  rC  r=  )r  rU  existing_cross_connect_configadd_subnetworksremove_subnetworksclear_all_subnetworksr  xexisting_subnetworksr   cross_connect_configprivate_cluster_configr  rr  s                 rr   ModifyCrossConnectSubnetworks(APIAdapter.ModifyCrossConnectSubnetworks  s    *//EeJ%Q<<7I#Iq%eJ !>1,,!>?ll++j3 @$--
(
(J
(
?+ 	  ==;;1==U <  "]]??/ @  ]](($: ) F 
	0	0	7	7**'%%{'7'79N9N 	 	+ 	

B rww(8(8997 K!>s   FFF;	FFc           	         U R                   R                  UR                  UR                  US9nU R                   R	                  US9nU R
                  R                  R                  U R                   R                  [        UR                  UR                  UR                  5      US95      nU R                  UR                  UR                  5      $ )zFUpdate enable_google_cloud_access and schedule cluster update request.)r  r  r  )%desiredMasterAuthorizedNetworksConfigr  )r   r  r  r  rx  r,  rL  r  r  rO  r1  r2  rF  rC  r=  )r  rU  existing_authorized_networksgoole_cloud_accessr!  r  rr  s          rr   ModifyGoogleCloudAccess"APIAdapter.ModifyGoogleCloudAccess.  s     --FF,44/::$6 G 
 ]]((.A ) F 
	0	0	7	7**'%%{'7'79N9N 	 	+ 	

B rww(8(899rs   c           	         U R                   R                  US9nU R                   R                  5       nX4l        U R                  R
                  R                  U R                   R                  [        UR                  UR                  UR                  5      US95      nU R                  UR                  UR                  5      $ )z<Updates default for Kubelet Readonly Port on new node-pools.r  r  )r   r  rx  desiredNodeKubeletConfigr,  rL  r  r  rO  r1  r2  rF  rC  r=  )r  rU  readonly_port_enablednkcr  rr  s         rr   (ModifyInsecureKubeletReadonlyPortEnabled3APIAdapter.ModifyInsecureKubeletReadonlyPortEnabledD  s     --
)
)+@ * C ]]((*F&)#		0	0	7	7**'%%{'7'79N9N 	 	+ 	

B rww(8(899rs   c           	      b   U R                   R                  5       nU R                   R                  5       nU R                   R                  R                  nU(       a  UR                  Ul        OUR                  Ul        XCl        U R                   R                  5       nX6l	        U R                  R                  R                  U R                   R                  [        UR                  UR                   UR"                  5      US95      nU R%                  UR&                  UR                   5      $ )zJUpdates default for Kernel Module Signature Enforcement on new node-pools.r  )r   LinuxNodeConfigNodeKernelModuleLoadingPolicyValueValuesEnumENFORCE_SIGNED_MODULESr  DO_NOT_ENFORCE_SIGNED_MODULESnodeKernelModuleLoadingrx  (desiredNodePoolAutoConfigLinuxNodeConfigr,  rL  r  r  rO  r1  r2  rF  rC  r=  )r  rU  r'  lncmodule_loading_configpolicy_enumr  rr  s           rr   &ModifyKernelModuleSignatureEnforcement1APIAdapter.ModifyKernelModuleSignatureEnforcementW  s     --
'
'
)C MMAAC--77MMK1%0%G%G"%0%N%N""7]]((*F693		0	0	7	7**'%%{'7'79N9N 	 	+ 	

B rww(8(899rs   c           	      ~   U R                   R                  US9nU R                   R                  US9nU R                  R                  R                  U R                   R                  [        UR                  UR                  UR                  5      US95      nU R                  UR                  UR                  5      $ )zXUpdates the kubelet readonly port on autoprovsioned node-pools or on autopilot clusters.r  )&desiredNodePoolAutoConfigKubeletConfigr  )r   r  rx  r,  rL  r  r  rO  r1  r2  rF  rC  r=  )r  rU  request_roport_enabledr  r  rr  s         rr   8ModifyAutoprovisioningInsecureKubeletReadonlyPortEnabledCAPIAdapter.ModifyAutoprovisioningInsecureKubeletReadonlyPortEnabledo  s     --
)
)+A * C ]]((/2 ) F 
	0	0	7	7**'%%{'7'79N9N 	 	+ 	

B rww(8(899rs   c           
      R   Ub/  U R                   R                  UR                  UR                  S9nOU R                   R                  5       nUb[  U(       a:  [	        U R                   UR                  5      (       a  [
        R                  " SSS9  U R                   R                  US9nOUb_  [        R                  " U R                   SS9R                  U5      Ul        [	        U R                   UR                  5      (       d  / Ul        Ubt  / Ul        U Hg  nUR                  R                  U R                   R                  US	   S
U;   a(  U R                   R                  R                  US
   5      OSS95        Mi     U R                   R                  US9nU R                  R                  R!                  U R                   R#                  [%        UR&                  UR(                  UR*                  5      US95      n	U R-                  U	R.                  UR(                  5      $ )z)Updates the binary_authorization message.N)r  rr  z_This will cause the current version of Binary Authorization to be downgraded (not recommended).Tr'  r  Fr  r=  r  r  )desiredBinaryAuthorizationr  )r   rn  r  rr  $BinauthzEvaluationModeRequiresPolicyr   r/  r	   rp  rq  r   rs  rt  rx  r,  rL  r  r  rO  r1  r2  rF  rC  r=  )
r  rU  existing_binauthz_configr   r   r   binary_authorizationr?  r  rr  s
             rr   ModifyBinaryAuthorization$APIAdapter.ModifyBinaryAuthorization  s      +!]]>>1@@1@@ ? 
 "]]>>@"	A
---<<  	!!4 	
 "]]>>! ?  
"	-00e78 	+ 4MM/>>
 
 13

-	!	- /1+/G

-
-
4
4mm))v (72 #'--"="="\"\01#  * 	 0 ]]((#7 ) F 
	0	0	7	7**'%%{'7'79N9N 	 	+ 	

B rww(8(899rs   c           	         U R                   R                  SU R                   R                  US9S9nU R                   R                  US9nU R                   R	                  US9nU R
                  R                  R                  U R                   R                  [        UR                  UR                  UR                  5      US95      nU R                  UR                  UR                  5      $ )z@Enables Ray cluster log collection when using RayOperator addon.Tr  )r  rO  rN  r  r  )r   r  rM  r  rx  r,  rL  r  r  rO  r1  r2  rF  rC  r=  )r  rU  r  ray_operator_configaddons_configr  rr  s          rr   ModifyRayClusterLoggingConfig(APIAdapter.ModifyRayClusterLoggingConfig  s    
 --99 $ E E. !F !
 :  MM..- / M ]]((](KF		0	0	7	7**'%%{'7'79N9N 	 	+ 	

B rww(8(899rs   c           	         U R                   R                  SU R                   R                  US9S9nU R                   R                  US9nU R                   R	                  US9nU R
                  R                  R                  U R                   R                  [        UR                  UR                  UR                  5      US95      nU R                  UR                  UR                  5      $ )zDEnables Ray cluster metrics collection when using RayOperator addon.Tr  )r  rQ  r  r  r  )r   r  rP  r  rx  r,  rL  r  r  rO  r1  r2  rF  rC  r=  )r  rU  r  r  r  r  rr  s          rr    ModifyRayClusterMonitoringConfig+APIAdapter.ModifyRayClusterMonitoringConfig  s    
 --99#'==#K#K1 $L $
 :  MM..- / M ]]((](KF		0	0	7	7**'%%{'7'79N9N 	 	+ 	

B rww(8(899rs   c           	         U R                   R                  5       nUb  UUl        Ub  UUl        U R                   R	                  US9nU R
                  R                  R                  U R                   R                  [        UR                  UR                  UR                  5      US95      nU R                  UR                  UR                  5      $ )z%Modify the RBACBindingConfig message.)desiredRbacBindingConfigr  )r   r  r  r  rx  r,  rL  r  r  rO  r1  r2  rF  rC  r=  )r  rU  r  r  rbac_binding_configr  rr  s          rr   ModifyRBACBindingConfig"APIAdapter.ModifyRBACBindingConfig  s     --99;3?
6 B 6A
8 D ]]((!4 ) F 
	0	0	7	7**'%%{'7'79N9N 	 	+ 	

B rww(8(899rs   c           	      ~   U R                   R                  R                  R                  U R                   R                  R                  R                  U R                   R                  R                  R
                  S.nU R                   R                  X2   S9nU R                   R                  US9nU R                  R                  R                  U R                   R                  [        UR                  UR                  UR                  5      US95      nU R                  UR                   UR                  5      $ )zOUpdates the cgroup mode on autoprovisioned node-pools or on autopilot clusters.)r  ru   v2)
cgroupMode)r  r  )r   r  CgroupModeValueValuesEnumCGROUP_MODE_UNSPECIFIEDCGROUP_MODE_V1CGROUP_MODE_V2rx  r,  rL  r  r  rO  r1  r2  rF  rC  r=  )r  rU  cgroup_modecgroup_mode_maplinux_configr  rr  s          rr    ModifyAutoprovisioningCgroupMode+APIAdapter.ModifyAutoprovisioningCgroupMode"  s   
 MM))CC[[ MM))CCRR MM))CCRR
O ==00"/ 1 L ]]((1= ) F 
	0	0	7	7**'%%{'7'79N9N 	 	+ 	

B rww(8(899rs   c           	      >   U R                   R                  5       nU R                   R                  R                  R                  U R                   R                  R                  R
                  S.nUb   U R                   R                  XB   S9Ul        U R                  R                  R                  U R                   R                  [        UR                  UR                  UR                  5      US95      nU R                  UR                   UR                  5      $ )z;Updates the anonymous authentication config on the cluster.ro  r&  r  )r   rx  AnonymousAuthenticationConfigr  rp  r  rr  r,  rL  r  r  rO  r1  r2  rF  rC  r=  )r  rU  r  r  available_modesrr  s         rr   #ModifyAnonymousAuthenticationConfig.APIAdapter.ModifyAnonymousAuthenticationConfig@  s     ]]((*F MM77KKSS MM77KKSSO '2
--
5
5"C 6  1
 
	0	0	7	7**'%%{'7'79N9N 	 	+ 	

B rww(8(899rs   c           	         U R                   R                  SUS9nU R                   R                  US9nU R                   R                  US9nU R                  R
                  R                  U R                   R                  [        UR                  UR                  UR                  5      US95      nU R                  UR                  UR                  5      $ )a  Enables legacy lustre port when using the Lustre Csi Driver add on.

Args:
  cluster_ref: The cluster to update.
  enable_legacy_lustre_port: Whether to enable legacy lustre port.

Returns:
  Modifies LustreCsiDriverConfig and returns the operation for update.
T)r  rS  )rR  r  r  )r   r  r  rx  r,  rL  r  r  rO  r1  r2  rF  rC  r=  )r  rU  r  lustre_csi_driver_configr  r  rr  s          rr   ModifyLegacyLustrePortEnabled(APIAdapter.ModifyLegacyLustrePortEnabled]  s      $}}BB8  C   MM..6 / M ]]((](KF		0	0	7	7**'%%{'7'79N9N 	 	+ 	

B rww(8(899rs   c           	      >   U R                   R                  5       nU R                   R                  R                  R                  U R                   R                  R                  R
                  S.nUb   U R                   R                  XB   S9Ul        U R                  R                  R                  U R                   R                  [        UR                  UR                  UR                  5      US95      nU R                  UR                   UR                  5      $ )z7Updates the control plane egress config on the cluster.ru  r&  r  )r   rx  r6  r  r?   rv  rw  r,  rL  r  r  rO  r1  r2  rF  rC  r=  )r  rU  r  r  r	  rr  s         rr   ModifyControlPlaneEgress#APIAdapter.ModifyControlPlaneEgress{  s     ]]((*F MM,,@@EE MM,,@@RRO !,
--
*
*"= +  &
 
	0	0	7	7**'%%{'7'79N9N 	 	+ 	

B rww(8(899rs   c                    U R                   R                  5       nUR                  c  UR                  c  UR                  b  U R                   R                  5       Ul        UR                  b  UR                  UR                  l        UR                  b  UR                  UR                  l        UR                  b  UR                  UR                  l	        UR                  cB  UR                  c5  UR                  c(  UR                  c  UR                  c  UR                  Gb  U R                   R!                  5       nUR                  b  UR                  Ul        UR                  b  UR                  Ul        UR                  b  UR                  (       + Ul        UR                  c  UR(                  b  UR                  c  [*        R,                  " [.        5      eU R                   R1                  UR                  S9nUR(                  (       aE  UR(                   H5  nUR2                  R5                  U R                   R7                  US95        M7     XTl        UR                  b  UR8                  c  U R;                  U5      nU R                   R1                  UR<                  R>                  R8                  R"                  UR<                  R>                  R8                  R2                  S9nXTl        UR                  UR8                  l         UR                  b  UR8                  c  U R;                  U5      nU R                   R1                  UR<                  R>                  R8                  R"                  UR<                  R>                  R8                  R2                  S9nXTl        UR                  UR8                  l!        XCl        U$ )z9Gets the DesiredControlPlaneEndpointsConfig from options.r  r  )r  r  )"r   ControlPlaneEndpointsConfigr  r  r  DNSEndpointConfigdnsEndpointConfigallowExternalTrafficenableK8sTokensViaDnsenableK8sCertsViaDnsr  rL  r  r   rw  r  IPEndpointsConfigr  globalAccessenablePublicEndpointr   r	   r{  r  r  r  r   r  r  rX  r  r  r  r   )r  rU  r   r  ip_endpoints_configr!  r   ri   s           rr   r  1APIAdapter._GetDesiredControlPlaneEndpointsConfig  s_   --CCE 	!!-,,8++7.2mm.M.M.O+		"	"	.%% 	--B 
	*	*	6-- 	--C 
	)	)	5,, 	--B
 	  ,..:**644@--9AAM MM;;=		!	!	-&-&>&>#		,	,	8+2+N+N(		(	(	4/// 	0
 
3
3
?//;44<

AB
B"mmJJ== K 
 -- ;;g**11'''': < 8K4		+	+	777? OOK0' $ L L99KKddll <<NNggrr !M !
 :M
6 ..  88T 
	?	?	K77? OOK0' $ L L99KKddll <<NNggrr !M !
 :M
6 BB  88Z /B+rs   c                    UR                   b6  U R                  U5        UR                   UR                  R                  l        UR
                  b6  U R                  U5        UR
                  UR                  R                  l        UR                  b6  U R                  U5        UR                  UR                  R                  l        UR                  b6  U R                  U5        UR                  UR                  R                  l        UR                  b6  U R                  U5        UR                  UR                  R                  l        UR                  b;  U R                  U5        UR                  (       + UR                  R                  l        UR"                  b6  U R                  U5        UR"                  UR                  R                  l        U R'                  X5        g)zFParses the options for control plane endpoints config (creation flow).N)r   _InitDNSEndpointConfigIfRequiredr  r	  r	  r  r	  r  r	  r  r  r  r  rL  r	  r  r	  rb  privateEndpointSubnetworkr"  )r  r   ri   s      rr   r+  ,APIAdapter._ParseControlPlaneEndpointsConfig  s     ,
++G4

#
# ));;P ((4
++G4

+
+ ));;Q ''3
++G4

*
* ));;P +
++G4

"
" ));;C **6
++G4

-
- ));;H &&2
++G4--
- ));;P **6
++G4

-
- ));;U 	,,W>rs   c                     UR                   c  U R                  R                  5       Ul         UR                   R                  c*  U R                  R	                  5       UR                   l        gg)zFInitializes the DNSEndpointConfig on the cluster object if it is none.N)r  r   r	  r	  r	  r  s     rr   r	  +APIAdapter._InitDNSEndpointConfigIfRequired   ^    **2
--
3
3
5 ) **<<D
--
)
)
+ )); Ers   c                     UR                   c  U R                  R                  5       Ul         UR                   R                  c*  U R                  R	                  5       UR                   l        gg)zFInitializes the IPEndpointsConfig on the cluster object if it is none.N)r  r   r	  r  r	  r  s     rr   r  +APIAdapter._InitIPEndpointsConfigIfRequired%   r 	  rs   )r,  r-  r   r   r   r   )i     r  )NNNNNNNNNNNNNNNNNNr  )}r  r  r  r  r  r  r?  rC  rH  rX  r^  rl  ro  rv  rS  ri  r  r  r  r  rG  r	  r/  r[  rq  re  r0  rj  r}  r  r  r  r  r"  rg  rh  r]  rP  r{  r  r~  r  r  rz  r  r  r  r  r8  r^  r_  r`  ra  rb  rc  rd  ri  r  rk  rR  rV  r\  r_  rc  rh  rn  ru  rz  r}  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r'  r+  r  r4  r;  r  r  r  rW  r]  rg  rj  rp  rt  ry  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r 	  r	  r		  r	  r  r+  r	  r  r  r   rs   rr   r*  r*    s   >)	
D8D8%DND:D8-^5n*	 CDBHEN  vp5*
2IVRh&L\:&'R#'J=A~IV .A``DB0d.7>r"H(TiV#?:B	:	: ! ""&!%  $&*&*#"'rhF4	@	P
5


 <;*
X&
:	AAAL4:6=gR
CG	F*(,\>@"HaF'CRCCAQ
4?
?A&M^ )2A))VA@@ LDL<_LBL.GB  (:T:,:&:0:(N:`:2:2:::<:::<::Wr'?R		rs   r*  c                       \ rS rSrSrSrg)r   i1   zAPIAdapter for v1.r   N)r  r  r  r  r  r  r   rs   rr   r   r   1   s    rs   r   c                   N    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rSrg)r   i5   zAPIAdapter for v1beta1.c                    ^ U R                  UT5      nTR                  (       Ga  [        U4S j[         5       5      (       a  TR                  (       d\  TR
                  b  [        TR
                  ;  d!  TR                  b.  [        TR                  ;  a  [        R                  " [        5      e[        TR                  ;  a  [        R                  " [        5      e[        TU R                  5      nU R                  R                  SUS9UR                   l        [$        TR                  ;   a  TR                  (       d\  TR
                  b  [        TR
                  ;  d!  TR                  b.  [        TR                  ;  a  [        R                  " [&        5      eU R                  R)                  SS9UR                   l        [,        TR                  ;   a(  U R                  R/                  SS9UR                   l        [2        TR                  ;   a  U R                  R4                  R6                  R8                  nU R                  R4                  R6                  R:                  nTR<                  nUb  UR?                  S5      nUb  US:X  a  UnU R                  R5                  SUS9UR                   l         TRB                  Gc  TRD                  Gc  TRF                  c  TRH                  c  TRJ                  c  TRL                  c  TRN                  c  TRP                  c  TRR                  c  TRT                  c  TRV                  c  TRX                  c  TRZ                  cu  TR\                  ch  TR^                  c[  TR`                  cN  TRb                  cA  TRd                  c4  TRf                  c'  TRh                  c  TRj                  c  TRl                  b  U Ro                  S TS5      Ul8        TRr                  (       a  TRt                  (       d(  [        R                  " [v        Ry                  S	S
S95      eURz                  c  U R                  R}                  5       Ul=        TRr                  URz                  l?        TR                  (       a  TRt                  (       d(  [        R                  " [v        Ry                  S	SS95      eUR                  c  U R                  R                  5       UlA        TR                  UR                  lC        TR                  (       a(  U R                  R                  TR                  S9UlF        TR                  (       a(  U R                  R                  TR                  S9UlI        TR                  b)  U R                  R                  STR                  S9UlL        [        UTU R                  5        U R                  TUR                  UR                  5      n	U	b/  U R                  R                  5       UlR        XR                  lS        UR                  (       a  S UlO        S UlP        TR                  (       a  SUlU        TR                  b^  UR                  c  U R                  R                  5       UlW        U R                  R                  TR                  S9UR                  lZ        TR                  (       aU  TRt                  (       a  TR                  UR                  l]        O([        R                  " [v        Ry                  S	SS95      eTR                  Gb  UR                  c  U R                  R                  5       UlW        TR                  R                  5       S:X  a:  U R                  R                  R                  R                  UR                  lb        OTR                  R                  5       S:X  a:  U R                  R                  R                  R                  UR                  lb        O1[        R                  " [        Ry                  TR                  S95      e[        TU R                  5      Ulf        [        TU R                  5      Ulh        TR                  bJ  U R                  R                  TR                  S9Ulk        TR                  (       a  SUR                  ll        TR                  (       a  U R                  R                  SS9Ulo        TR                  b  TR                  R                  5       [        R                  :X  a  U R                  TU5        OH[        R                  " U R                  5      R                  TR                  5      UR                  lw        TR                  bH  [        R                  " U R                  5      R                  TR                  5      UR                  lz        U R                  R                  [        UR                  UR                  5      US9n
U R                  GR                   GR                  U
5      nU GR                  UGR                  UR                  5      $ )Nc              3   @   >#    U  H  oTR                   ;   v   M     g 7fr   rE  rF  s     rr   rH  /V1Beta1Adapter.CreateCluster.<locals>.<genexpr><   rJ  rK  FrL  Tr  authMTLS_STRICTr  r)	  r  enable-workload-certificatesr  enable-altsr  identity-providerlegacyadvancedr  enableExperimentalFeaturesrN  )rG  r   rQ  rR  r   ri  r@   rh  r	   r{  rS  r9  rT  rU  r   rV  rT  rW  r@  4CLOUDBUILD_STACKDRIVER_KUBERNETES_DISABLED_ERROR_MSGr  r  rA  r  r  ISTIOIstioConfigAuthValueValuesEnum	AUTH_NONEAUTH_MUTUAL_TLSr   r   istioConfigr9  r?  r>  rA  r@  rD  rC  rB  r;  r<  rs  rt  rE  rF  ru  rv  rG  rH  r=  rK  r  r  rP  r  r   r  ru  r}   workloadCertificatesWorkloadCertificatesr  r"  workloadAltsConfigWorkloadALTSConfig
enableAltsr#  GkeOidcConfiggkeOidcConfigr$  r  r  r  r  r  6_AddPSCPrivateClustersOptionsToClusterForCreateClusterr  r6  r7  r  clusterTelemetryr"  r   workloadMonitoringEnabledEaprd  rb  rc  r  r  r  r  identityProviderdatapath_providerr  rd  LEGACY_DATAPATHrf  re  )DATAPATH_PROVIDER_ILL_SPECIFIED_ERROR_MSG_GetMasterForClusterCreatemaster1_GetKubernetesObjectsExportConfigForClusterCreatekubernetesObjectsExportConfigr  r  r  r  r5  r  r  ro  r  r  _ParseIPv6Optionsr  rq  r/  r  rp  r  r  rX  rY  r1  r2  r,  rL  rZ  rC  r=  )r  rU  r   ri   r[  
istio_authmtlsr   auth_configcluster_telemetry_typer\  r  s     `         rr   r]  V1Beta1Adapter.CreateCluster8   s   &&{G<G~~~	<O<	<	<44"".'"4"44+goo0M

MN
N'..(

IJ
J9T]]
 /3mm.J.J-? /K /
+ 
w~~	%44"".'"4"44+goo0M

OP
P040N0N 1O 1
- 
'..	(MM..t.< 	1 
'..	 ]]..BBLL
}}((<<LL++#$((0+$m+j+/==+D+D ,E ,
( 	''3??&??&))..:""."".33?**688D==I55A;;G;;G;;G66B55A--944@&&2//; ??
g ++""jj)00,2P 1 
 	

 
	%	%	-'+}}'I'I'K$

.
. ""5 ""jj)00,- 1 
 	

 
	#	#	+%)]]%E%E%G".5.A.Ag  +"mm99)) : g &&&*mm&I&I11 'J 'g# ) --
1
1'*@*@ 2  '
 ;$-- "::'')B)B )!%!?!?!Ag&<##g"&g---1g*))5				& $ ; ; =
--
0
088 1  4
   			%% 	&&7 jj)00,2E 1 
 	
   ,				& $ ; ; =		"	"	(	(	*h	6MM''GGWW 	. $$**,
:MM''GGYY 	. jj5<< 22 = 
 	
 0GGN 	:T]]	
 ) ;;G'+}}'K'K%,%Y%Y (L (g$ 
	=	=15&&.%%%)]]%G%G &H &g" %				!	!	#}'D'D	Dw0/3/L/LMM0


7--
. 	"", +262N2N
--3112   / --
,
,{44k6F6FG - C 77>>sCIy~~{/?/?@@rs   c                 @   U R                  X5      nU R                  R                  U[        UR                  UR
                  UR                  5      S9nU R                  R                  R                  U5      nU R                  UR                  UR
                  5      $ Nr  r  r  s         rr   r  V1Beta1Adapter.CreateNodePool!      $$]<D
--
-
-%##]%7%79P9P
 . C AAHHMIy~~}/A/ABBrs   c                 ~h   SnUR                   (       d  SUl         UR                  (       a  U R                  R                  UR                   UR                  UR
                  UR                  UR                  S9nUR                  b(  U R                  R                  UR                  S9Ul
        GOUR                  (       a  U R                  R                  UR                   S9nUR                  b(  U R                  R                  UR                  S9Ul
        UR                  b(  U R                  R                  UR                  S9Ul        GOUR                  (       a*  U R                  R                  5       nSUl        SUl        GOUR                  b*  U R                  R                  5       nS	Ul        S	Ul        GO|UR$                  (       d  UR&                  (       a`  U R                  R                  5       nUR$                  (       a  UR$                  Ul        UR&                  (       a  UR&                  Ul        GOUR(                  (       d  UR*                  (       d  UR,                  (       dx  UR.                  (       dg  UR0                  (       dV  UR2                  (       dE  UR4                  (       d4  UR6                  (       d#  UR8                  (       d  UR:                  (       Ga  [=        X R                  5      nUR:                  (       d"  UR6                  (       d  UR8                  (       a  UR2                  c  UR4                  cx  U R?                  U5      nU(       a`  UR@                  (       aO  UR@                  RB                  (       a4  UR@                  RB                  RD                  (       a  S
Ul        OS
Ul        SnUR0                  (       a  U R?                  U5      nUc  [F        RH                  " S5      eUR@                  RJ                  b%  UR@                  RJ                  RL                  (       d*  UR0                  S:X  a  [F        RH                  " [N        5      eUR@                  RJ                  RL                  (       a  [Q        X R                  S
S
5      nO/[Q        X R                  S
S5      nO[Q        X R                  SS5      nU R                  R                  5       nU(       a  XCl)        U(       a  Xcl*        G
O0URV                  (       d  URX                  Gb  URV                  nUc  0 nUR[                  [\        5      nU R_                  UR[                  [`        5      UR[                  [b        5      UR[                  [d        5      UR[                  [f        5      Ub  U(       + OSURX                  S9n	UR[                  [h        5      b6  U R                  Rk                  UR[                  [h        5      (       + S9U	l6        UR[                  [n        5      b6  U R                  Rq                  UR[                  [n        5      (       + S9U	l9        UR[                  [t        5      b6  U R                  Rw                  UR[                  [t        5      (       + S9U	l<        UR[                  [z        5      b6  U R                  R}                  UR[                  [z        5      (       + S9U	l?        UR[                  [        5      b6  U R                  R                  UR[                  [        5      (       + S9U	lB        UR[                  [        5      b6  U R                  R                  UR[                  [        5      (       + S9U	lE        UR[                  [        5      b6  U R                  R                  UR[                  [        5      (       + S9U	lH        UR[                  [        5      b6  U R                  R                  UR[                  [        5      (       + S9U	lK        UR[                  [        5      b6  U R                  R                  UR[                  [        5      (       + S9U	lN        UR[                  [        5      b6  U R                  R                  UR[                  [        5      (       + S9U	lQ        U R                  R                  U	S9nGOdUR                  c  UR                  c  UR                  b  U R_                  X R                  5      n	UR                  b2  U R                  R                  UR                  S9U	R                  lV        UR                  b2  U R                  R                  UR                  S9U	R                  lX        UR                  b  UR                  U	R                  lY        U R                  R                  U	S9nGOaUR                  b  U R                  R                  UR                  S9n
UR                  (       av  UR                  U
l]        UR                  U
l_        UR                  U
la        UR                  U
lc        UR                  b%  [        U R                  UR                  5      U
lf        U R                  R                  UR                  U
S9nGOUR                  (       a%  U R                  R                  UR                  S9nGONUR                  Gc  UR                  Gc  UR                  c  UR                  c  UR                  c  UR                  c  UR                  c  UR                  c  UR                  c  UR                  c  UR                  c  UR                  c  UR                  cu  UR                  ch  UR                  c[  UR                  cN  UR                  cA  UR                  c4  UR                  c'  UR                  c  UR                  c  UR                  b-  U R                  XS
5      n
U R                  R                  U
S9nGOUR                  b?  U R                  GR                  UR                  S9nU R                  R                  US9nGOUGR                  b5  U R_                  UGR                  S9n	U R                  R                  U	S9nGOrUGR                  b@  U R                  GR                  UGR                  S9nU R                  R                  US9nGO$UGR                  b  U R                  GR                  U R                  GR                  UGR                  S9S9nUGR                  (       a  S
Ul        UGR                  b*  U R                  GR                  UGR                  S9Ul        U R                  R                  US9nGOmUGR                  b  [F        RH                  " G[        5      eUGR                  b  [F        RH                  " G[        5      eUGR                  b5  U R                  GR                  5       nU R                  R                  US9nOUR                  b=  U R                  R                  UR                  S9nU R                  R                  US9nOUGR                  b?  U R                  GR!                  UGR                  S9nU R                  R                  US9nOAUGR"                  (       a/  G[%        X R                  5      nU R                  R                  US9nUR                  b/  UGR&                  b!  UGR&                  (       + UR                  l        UGR*                  (       a-  UGR,                  (       d  [F        RH                  " G[.        5      eUGR0                  (       ai  U R                  R                  U R                  GR3                  UGR0                  U R                  GR2                  GR4                  GR6                  S9S9nOnUGR8                  (       a\  U R                  R                  U R                  GR3                  U R                  GR2                  GR4                  GR:                  S9S9nUGR<                  b<  U R                  R                  U R                  GR?                  UGR<                  S9S 9nUGR@                  b-  U R                  R                  G[C        X R                  5      S!9nUGRD                  b-  U R                  R                  G[G        X R                  5      S"9nUGRH                  b-  U R                  R                  G[K        X R                  5      S#9nUGRL                  b>  U R                  GRO                  UGRL                  S$9nU R                  R                  US%9nUGRP                  b>  U R                  GRS                  UGRP                  S9nU R                  R                  US&9nUGRT                  bR  U R                  R                  [F        GRV                  " U R                  SS'9GRY                  UGRT                  5      S(9nU GR[                  US
US)9nUb  U R                  R                  US*9nU GR]                  U5      nUb  U R                  R                  US+9nUGR^                  b-  U R                  R                  G[a        X R                  5      S,9nUGRb                  b1  U R                  R                  U R                  GRe                  SS9S-9nUGRf                  b=  U R                  R                  U R                  GRi                  S
UGRf                  S.9S/9nUGRj                  b<  U R                  R                  U R                  GRm                  UGRj                  S9S09nUGRn                  b<  U R                  R                  U R                  GRq                  UGRn                  S19S29nUGRr                  b8  UGRr                  nU GRu                  U5      nU R                  R                  US39nUGRv                  b<  U R                  R                  U R                  GRm                  UGRv                  S9S09nUGRx                  b<  U R                  R                  U R                  GR{                  UGRx                  S49S59nUGR|                  b-  U R                  R                  G[        X R                  5      S69nUGR                  b<  U R                  R                  U R                  GR                  UGR                  S9S79nUGR                  b<  U R                  R                  U R                  GR                  UGR                  S9S89nUGR                  c  UGR                  Gbt  U R                  GR                  5       nUGR                  b  U R                  GR                  5       Ul        UGR                  (       a>  U R                  GR                  GR                  GR                  UGR                  l        O=U R                  GR                  GR                  GR                  UGR                  l        UGR                  bw  UGR                  (       a3  U R                  GR                  GR                  GR                  Ul        O2U R                  GR                  GR                  GR                  Ul        U R                  R                  US99nUGR                  b  UGR                  S::X  a_  U R                  GR                  U R                  GR                  GR                  GR                  S;9nU R                  R                  US<9nOoUGR                  S	:X  a^  U R                  GR                  U R                  GR                  GR                  GR                  S;9nU R                  R                  US<9nUGR                  bs  U R                  GR                  5       nU R                  GR                  G[        U R                  UGR                  5      S=9Ul        U R                  R                  US>9nUGR                  (       d  UGR                  (       a  U R                  R                  5       nUGR                  (       a*  U R                  GR                  UGR                  S?9Ul        UGR                  (       a*  U R                  GR                  UGR                  S?9Ul        UGR                  bS  U R                  R                  [F        GR                  " U R                  5      GRY                  UGR                  5      S@9nUGR                  b<  U R                  R                  U R                  GR                  UGR                  S9SA9nU R                  GR                  GR                  GR                  U R                  GR                  GR                  GR                  SB.nUGR                  (       aX  U R                  R                  U R                  GR                  UGR                  UR[                  UGR                  S5      SC9SD9nUGR                  (       aX  U R                  R                  U R                  GR                  UGR                  UR[                  UGR                  S5      SC9SD9nUGR                  (       a~  UGR                  =(       d    UGR                  nU R                  R                  U R                  GR                  U R                  GR                  GR                  GR                  USE9SD9nUGR                  bF  U R                  GR                  5       nUGR                  Ul        U R                  R                  USF9nUGR                  (       a1  U R                  R                  U R                  GR                  SGSH9SD9nUGR                  c  UGR                  GbS  UGR                  SI:X  a-  UGR                  (       a  [F        RH                  " G[        5      eU R                  GR                  5       nU R?                  U5      nUGR                  (       a  UGR                  GR                  5       OSnUc,  UGR                  b  UGR                  GR                  Ul        OUSI:X  a3  U R                  GR                  GR                  GR                  Ul        OmUSJ:X  a3  U R                  GR                  GR                  GR                  Ul        O4[F        RH                  " G[        GR                  UGR                  SK95      eUGR                  c,  UGR                  b  UGR                  GR                  Ul        OUGR                  (       d4  [F        RH                  " G[        GR                  UGR                  SL95      eUGR                  GR                  SM5       Vs/ s H  nU R                  GR                  USN9PM     snUl        U R                  R                  USO9nUGR                  b  U R                  GR                  5       n UGR                  (       a3  U R                  GR                  GR                  GR                  U l        O2U R                  GR                  GR                  GR                  U l        U R                  R                  U SP9nUGR                   Gbp  U R                  GR                  5       n UGR                   GR                  5       SQ:X  a3  U R                  GR                  GR                  GR                  U l        OUGR                   GR                  5       SR:X  a3  U R                  GR                  GR                  GR                  U l        OUGR                   GR                  5       SI:X  a3  U R                  GR                  GR                  GR                  U l        OC[F        RH                  " G[        GR                  UGR                   GR                  5       SK95      eU R                  R                  U SP9nUGR                  Gbs  U R                  GR                  5       n UGR                  GR                  5       SR:X  a4  U R                  GR                  GR                  GR
                  U Gl        OUGR                  GR                  5       SI:X  a4  U R                  GR                  GR                  GR                  U Gl        OUGR                  GR                  5       SQ:X  a4  U R                  GR                  GR                  GR                  U Gl        OC[F        RH                  " G[        GR                  UGR                  GR                  5       SK95      eU R                  R                  U SP9nUGR                  b  U R                  GR                  5       n!UGR                  (       a3  U R                  GR                  GR                  GR                  U!l        O2U R                  GR                  GR                  GR                  U!l        U R                  R                  U!SS9nUGR                  (       a+  U GR                  U5      n"U R                  R                  U"ST9nUGR                  bM  U R                  GR!                  5       n#UGR                  SU:X  a  S
U#Gl        U R                  R                  U#SV9nUGR$                  bM  U R                  GR!                  5       n#UGR$                  SU:X  a  SU#Gl        U R                  R                  U#SV9nUGR&                  b3  U R                  R                  G[)        X R                  G[*        5      SW9nUGR,                  bS  U R                  R                  [F        GR.                  " U R                  5      GRY                  UGR,                  5      SX9nUGR0                  b$  U R                  R                  UGR0                  SY9nUGR2                  bk  U R                  R                  U R                  GR5                  5       SZ9n[F        GR6                  " UGR8                  UGR2                  U R                  5        UGR:                  c  UGR<                  c  UGR>                  Gbf  U R?                  U5      n$U$GR@                  n%UGR>                  b0  U%c  U R                  GRC                  5       n%UGR>                  U%l&        UGR:                  bj  U%c  U R                  GRC                  5       n%U%GRD                  c!  U R                  GRG                  5       U%Gl"        UGR:                  U%GRD                  l&        UGR<                  bk  U%c  U R                  GRC                  5       n%U%GRD                  c!  U R                  GRG                  5       U%Gl"        UGR<                  U%GRD                  Gl$        U R                  R                  U%S[9nUGRJ                  c  UGRL                  c  UGRN                  Gbf  U R?                  U5      n$U$GRP                  n&UGRJ                  b0  U&c  U R                  GRS                  5       n&UGRJ                  U&l&        UGRN                  bj  U&c  U R                  GRS                  5       n&U&GRD                  c!  U R                  GRU                  5       U&Gl"        UGRN                  U&GRD                  l&        UGRL                  bk  U&c  U R                  GRS                  5       n&U&GRD                  c!  U R                  GRG                  5       U&Gl"        UGRL                  U&GRD                  Gl$        U R                  R                  U&S\9nUGRV                  b$  U R                  R                  UGRV                  S]9nUGRX                  b$  U R                  R                  UGRX                  S^9nUGRZ                  c  UGR\                  bv  U R                  GR_                  5       n'UGRZ                  b  UGRZ                  U'Gl0        UGR\                  b  UGR\                  U'Gl1        U R                  R                  U'S_9nUGRd                  bF  U R                  R                  U R                  GRg                  UGRd                  =(       d    SG/S`9Sa9nUGRh                  b$  U R                  R                  UGRh                  Sb9nUGRj                  cp  UGRl                  cb  UGRn                  cT  UGRp                  cF  UGR,                  c8  UGRr                  c*  UGRt                  c  UGRv                  c  UGRx                  b+  U GR{                  X5      n(U R                  R                  U(Sc9nUGR|                  c  UGR~                  GbW  U R?                  U5      n0 n)0 n*UGR                  (       aj  UGR                  GR                  nU(       aK  U HE  n+G[        U+GR                  5      n,U,U)U+GR                  '   U+GR                  U*U+GR                  '   MG     UGR|                  bp  UGR|                   H_  n+G[        U+Sd   UGR                  UGR                  5      n-U-U);   a  U)U-   O
G[        5       n,U,GR                  U+Se   5        U,U)U-'   SU*U-'   Ma     UGR~                  b  UGR~                   H  n.G[        U.Sd   UGR                  UGR                  5      n-U-U);  a)  [F        RH                  " G[        GR                  U-Sf95      eSeU.;   a;  U.Se   n/ U)U-   GR                  U/5        U)U-   (       d  U)GR                  U-5        M  M  U)GR                  U-5        M     U R                  R                  U R                  GR                  U)GR                  5        V-V,s/ s H/  u  n-n,U R                  GR                  U-G[        U,5      U*U-   Sh9PM1     sn,n-Si9Sj9nUGR                  c  UGR                  Gbr  U R?                  U5      n0 n)0 n*UGR                  (       aj  UGR                  GR                  nU(       aK  U HE  n+G[        U+GR                  5      n,U,U)U+GR                  '   U+GR                  U*U+GR                  '   MG     UGR                  b  UGR                   H  n0G[        U0Sd   UGR                  UGR                  5      n-U-U);  a)  [F        RH                  " G[        GR                  U-Sf95      eU)U-   n,U,U)U-'   U R                  GR                  GR                  GR                  U*U-'   M     UGR                  b  UGR                   H  n1G[        U1Sd   UGR                  UGR                  5      n-U-U);  a)  [F        RH                  " G[        GR                  U-Sf95      eU)U-   n,U,U)U-'   U R                  GR                  GR                  GR                  U*U-'   M     U R                  R                  U R                  GR                  U)GR                  5        V-V,s/ s H/  u  n-n,U R                  GR                  U-G[        U,5      U*U-   Sh9PM1     sn,n-Si9Sj9nUGR                  (       a  U R                  R                  S
Sk9nUGR                  (       a  U R                  R                  SSk9nUGR                  b-  U R                  R                  G[        X R                  5      Sl9nUGR                  bG  U R                  GR!                  5       n#UGR                  U#Gl\        U R                  R                  U#SV9nUGR                  bs  U R?                  U5      nU R                  GR                  5       n2UGR                  b  UGR                  n2UGR                  U2Gl`        U R                  R                  U2Sm9nUGR                  bs  U R?                  U5      nU R                  GR                  5       n2UGR                  b  UGR                  n2UGR                  U2Glb        U R                  R                  U2Sm9nUGR                  bs  U R?                  U5      nU R                  GR                  5       n2UGR                  b  UGR                  n2UGR                  U2Gld        U R                  R                  U2Sm9nUGR                  (       a1  U R                  R                  U R                  GR                  SS9Sn9nUGR                  (       a1  U R                  R                  U R                  GR                  S
S9Sn9nUGR                  b  U R                  GR                  GR                  GR                  U R                  GR                  GR                  GR                  So.n3U R                  GR                  5       nU3UGR                     Ul        U R                  R                  USp9nUGR                  b-  U R                  R                  G[        X R                  5      Sq9nU$ s  snf ! G[         a*    [F        RH                  " G[        GR                  U/Sg95      ef = fs  sn,n-f s  sn,n-f )rr  Nra  r  rK  r  r  r  r  r  Tr  r  F)r  r  r  r  r  r  r  r  r  r  r  r  )r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r#  r  r%  r&  r#  r(  r*  r,  r.  r0  r3  r5  r7  r8  r  r  r  r  r&  r:  r(  r)  r<  r>  r+  r*  r@  rB  r  rD  rF  rH  rJ  rL  rN  rP  rR  rT  rV  r-  rX  rZ  r\  r   r^  r_  r   r`  rc  re  rg  ri  rk  rm  ro  rq  rs  (m  r  r  r   rx  r  r   r   r   r  ry  r  r  r  rz  r{  r   r|  r}  r  r  rh  ri  rj  r  rk  r*  r+  r,  r-  r.  r  rX  r  r~  r  r	   r{  r  r  r  r  r  r  r  r  r   r<  r8  r9  rK   r:  r;  rH  rK  rL  r=  r  r  r>  r  r  rB  r  r  rC  r  r  rD  r  r  rE  r  r  rF  r  rR  rA  r  r  rG  r  rN  r  r  r  rM  rO  rP  rQ  rS  r   r  r   r  r   r  r   r  r   r  r   r  r  r  r9  r?  r>  rA  r@  rD  rC  rB  r;  r<  rs  rt  rE  rF  ru  rv  rG  rH  r=  rK  r  r  rP  r  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rl  r  r  r  r   r   r  r  r  r  r  r  r  r%  r  r  r  rP  r  r  r  r(  ra  r   r  rS  r  rq  rg  rh  rQ  r  r  r  r  r  r`  r  r   r  r  r  ra  r!  r  rm  r  rd  r  r$  r  rq  rr  r  r  r  r  r  r  r  r  r  r  r  r  r  r?   r}  r  r  r  r  r  r  r  r  r  ro  r  r5  r  r  r  r1  r2  rz  r1  r{  ry  r  r  r
  r  r  r  r  r  r  r  r  r'  r  r  r  r}   r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r  r  r  r~  r  r  r  rM  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rL  r  rw  r  r  r  r  r  r  r/  rd  r   ra  r   rb  r  r2  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r  r%  r  r&  r  r1  r  r  r  rp  r  r3  )4r  rU  r   r  rh  ri   ri  r  r  r   r  r  r  r  r  r  r  r(  r  r=  r>  r   rE  r  r  r  r  ry  r  r  r  r*  r  r  rF  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  s4                                                       rr   r  "V1Beta1Adapter.UpdateClusterCommon!  sN-   F??go}}**$__#--"--}}%33 + f 
	!	!	-!%!>!>)) "? "
 
		}}***Pf		!	!	-!%!>!>)) "? "

 
	,	,	8,0MM,M,M%,%H%H -N -
) 
	.	.}}**,f%Hf"(Nf%		.	.	:}}**,f%+f"(.f%		#	#w'>'>}}**,f		#	#*1*D*D'		 	 '.'>'>$,,--((..//99::222!'==9g 55??@@11922://+.((((LL &&JJXX26G/37G0j		&	&//+.?

J 
 $$<<D++CCKK++u4

F  ##;;CC+G]]D$O*+G]]D%P*)'==%N
}}**,f	&-#	)3&			7#?#?#K--n		-11,?!!(,,W5$((-*..y9!/!3!3N!C#/ %; :&;; " 	f 
		O	,	8'+}}'J'J'++O<< (K (
$ 
		N	+	7MM::*..~>> ;  	/
 
		1	2	>MM55*../DEE 6  	*
 
		,	-	9(,(L(L&**+;<< )M )
% 
		J	'	3"&--"@"@&**:66 #A #
 
		2	3	?MM66*../EFF 7  	+
 
		2	3	?MM66*../EFF 7  	+
 
		O	,	8'+}}'J'J&**?;; (K (
$ 
		M	*	6&*mm&H&H&**=99 'I '
# 
		K	(	4#'==#B#B&**;77 $C $
  }}**v*Ff**600<,,8!!'==9f		+	+	7MM11:: 2  	  8 
	.	.	:MM44== 5  	  ; 
	*	*	6-- 	$$; }}**v*Ff		#	#	/MM55,, 6 k 
	#	##*#4#4 #*#4#4 (/(?(?%(/(?(?%"".'CmmW44(+
$ }}**#--%0 + f 
		}}**G<M<M*Nf''3??&??&))..:""."".33?**688D==I55A;;G;;G;;G66B55A--944@&&2//;77
k }}**$/ + f 
	+	+	7}}4444 5 f }}**)/ + f 
	(	(	4!!")"A"A " f }}**v*Ff		0	0	<!%!E!E99 "F " }}**(@ + f 
	0	0	<mm=="mm???? @  > m
 
	/	/	/481		5	5	AMM33DD 4  	/
 }}**+8 + f 
	/	/	;JJ?@@		5	5	AJJEFF		6	6	Bmm==?m}}**+8 + f 
	!	!	-66'' 7  }}**;K*Lf		-	-	9%)]]%L%L66 &M &" }}**+G + f 
	#	#	#:
== }}**,? + Af 	  ,22> 44
4 0 	***999 JJ=>>&&&}}**$(MM$D$D55MM44IISS %E % + f 
	,	,	,}}**$(MM$D$DMM44IISS %E % + f $$0}}**#}}::33  ;   + f
 %}}**8--P + f *}}** 27MM J + f '}}**7O + f ##/!]]<<// =  }}**#7 + f ''3#}}@@22  A   }}**'= + f ..:}}**)-)[)[mmE*55 + f ,,4[ - J }}**J*Gf--g6N!}}**"0 + f "".}}**$J}}% + f   ,}}**==2252A + f )}}**+/==+R+R'*@*@ ,S , + f &}}** MM44)) 5  + f ,,8}}**/3}}/H/H88 0I 0 + f 55A;;d))$/g}}**7> + f %%1}}** MM4444 5  + f ''3}}**"&--"@"@!(!A!A #A # + f ##/}}**#8--#P + f ))5}}***.--*P*P88 +Q + + f &&2}}**'+}}'J'J55 (K ( + f 	,,899E}}224n		-	-	9(,(D(D(F%///mm**CCII 
'
'
1
 mm**CCLL 
'
'
1 
	7	7	C999mm))RRXX 
2
 mm))RR[[ 
2 }}***Of&				-!%!=!=}}33MMYY "> "
 ,,"8 - 
 &(!%!=!=}}33MMRR "> "
 ,,"8 - 
 *}}::<n%)]]%G%G-mmW44 &H &n"
 }}**'5 + f
 	***555}}**,f		+	+	+MM33%@@ 4  	(
 
	3	3	3MM33%HH 4  	/ %}}**88mmW//0 + f %%1}}**&*mm&H&H44 'I ' + f MM==II MM==YY }}**}}**!++-11))4 +  + f }}**}}**++-11))4 +  + f $$$++D{/D/Dm}}**}}**!]]00NNjj# +  + f ##/==113j&;;j}}**j*If"""}}**}}**2*6 + f
 	&''3 
		z	)g.J.J.Jjj:;; --??A,g )0(:(:(:'


"
"
$  
!**6#*#B#B#G#G

 j(MM11EENN 	 i'MM11EEMM 	 jj)00g6H6H0I
 	
 
	%	%	-**6--AA 
/ +++jj6==!66 > 
 	
 $88>>sC1
C MM,,h,?C1
-
 }}**): + f &&2 $ C C E		(	(	(MM//CCII 	 $
 MM//CCLL 	 $ }}**'> + f + $ C C E		!	!	'	'	)\	9MM//CCNN 	 $ ##))+z9MM//CCII 	 $ ##))+z9MM//CCLL 	 $ jj/66--335 7 
 	

 }}**'> + f ..: $ C C E		0	0	6	6	8J	FMM//PPdd 	 1 2288:jHMM//PPgg 	 1 2288:lJMM//PPii 	 1 jj>EE<<BBD F 
 	

 }}**'> + f 33?
--
9
9
; + 
	5	5	5MM;;OOjj 	-1
 MM;;OOXX 	-1 }}**2 + f )))55g>d}}**4*Pf  ,--<<>		"	"&7	7*.'}}**/@ + f ''3--<<>		)	)->	>*/'}}**/@ + f ((4}}**'@}}g( + f $$0}}**+/+X+Xmm,++ + f &&2}}**'.'F'F + f **6}}**"&--"@"@"B + f ''

(
(

-
-
-- 	..:33?((4OOK0k)==		&	&	2 ("&--"C"C"E
(/(E(E%		/	/	; ("&--"C"C"E
 //7151M1M1O

.22 	,,4 
	1	1	= ("&--"C"C"E
 //7151M1M1O

.44 	,,= }}**%: + f
 	"".00<..:OOK0k&77		#	#	/%#}}==?
%,%?%?"		,	,	8%#}}==?
,,4.2mm.N.N.P

+// 	))1 
	.	.	:%#}}==?
,,4.2mm.J.J.L

+11 	)): }}**"4 + f 77C}}**>> + f ))5}}**)0)K)K + f
 	<<HAAMmm--/e		=	=	I@@ 	6 
	?	?	KBB 	8 }}**E*Jf--9}}**+/==+R+R$CCKt ,S , + f ##/}}**+2+G+G + f
 	!!-##/..:**644@--9AAM,,8++7 GG
 }}**-@ + f
 	$$0..:,g		#	#	#++EE h"8#=#=>5Eh1124<OOX001 !
 
	%	%	144H+|$k&;&;[=M=M*
 00  
+5 
 

x(89
:*:
J
')-
:
& 5 
	,	,	8 <<I+%{'<'<k>N>N* 00**077:7N  *%&67M	
+22=A&z2!%%j1 3 !!*-+ =. }}***.--*W*W 7H6M6M6O) 7P2j"2 --88!+(,-=(>-j9 9 
 7P) +X 	+ + f 	**6//;,g		#	#	#++EE h"8#=#=>5Eh1124<OOX001 !
 
	+	+	7&AAO+l+##*
 00**077:7N  /z:
*:
J
'mm44JJSS :
&  B  
	-	-	9!(!E!E+-##*
 00**077:7N  /z:
*:
J
'mm44JJQQ :
& "F  }}***.--*W*W 7H6M6M6O) 7P2j"2 --88!+(,-=(>-j9 9 
 7P) +X 	+ + f 444}}**37 + f 333}}**38 + f ||}}**"=}}# + f 66B--<<>

9
9 = }}**/@ + f 00<,g)-)L)L)N&		&	&	2+2+H+H(

3
3 'E }}**'G + f ++7,g)-)L)L)N&		&	&	2+2+H+H(

.
. '@ }}**'G + f 00<,g)-)L)L)N&		&	&	2+2+H+H(

3
3 'D }}**'G + f    }}** $ < <U < K + f }}** $ < <T < J + f ..: mm@@TT\\ mm@@TT\\e }}AACf'AABfk}}**/5 + f '}}**#8--#P + f Mq1
^	  JJ<CC) D  )|)s(   {$CO6s1CO;u6CP36CP9O;5CP0c           	        ^ U R                  UT5      nTR                  (       a;  U R                  R                  U R                  R	                  TR                  S9S9nOTR
                  (       a;  U R                  R                  U R                  R	                  TR
                  S9S9nOATR                  (       a0  U R                  R                  U R                  R	                  SS9S9nTR                  b:  U R                  R                  U R                  R                  TR                  S9S9nTR                  b:  U R                  R                  U R                  R                  TR                  S9S9nTR                  b:  U R                  R                  U R                  R                  TR                  S	9S
9nTR                  b:  U R                  R                  U R                  R                  TR                  S	9S9nTR                  (       aY  U R                  R                  U R                  R!                  U R                  R                   R"                  R$                  S9S9nOTR&                  (       aY  U R                  R                  U R                  R!                  U R                  R                   R"                  R(                  S9S9nOeTR                  bX  U R                  R                  U R                  R!                  U R                  R                   R"                  R*                  S9S9nTR,                  b:  U R                  R                  U R                  R/                  TR,                  S	9S9nTR0                  b\  U R                  R                  U R                  R3                  TR0                  S9S9nTR0                  (       a  SUR4                  l        TR8                  b;  U R                  R                  U R                  R;                  STR8                  S9S9n[=        TU R                  5      nUb  U R                  R                  US9n[?        TU R                  5      nUb  U R                  R                  US9nTR@                  b:  U R                  R                  U R                  RC                  TR@                  S	9S9nTRD                  (       aA  U R                  R                  U R                  R                  RF                  RH                  S9nTRJ                  b:  U R                  R                  U R                  RM                  TRJ                  S	9S9nTRN                  b0  U R                  R                  U R                  RQ                  SS	9S9nTRR                  b0  U R                  R                  U R                  RQ                  SS	9S9nU(       d  [T        RV                  " [X        5      eTRZ                  Gb-  TRZ                  R]                  [^        5      b  U R                  R`                  Rb                  Rd                  nU R                  R`                  Rb                  Rf                  nTRh                  nUb  UR]                  S5      n	U	b  U	S:X  a  UnU R                  Ra                  TRZ                  R]                  [^        5      US9URj                  l6        [o        U4S j[p         5       5      (       aV  [s        TU R                  5      n
U R                  Ru                  [o        U4S j[p         5       5      U
S 9URj                  l;        TRZ                  R]                  [x        5      bJ  U R                  R{                  TRZ                  R]                  [x        5      (       + S	9URj                  l>        TRZ                  R]                  [~        5      bJ  U R                  R                  TRZ                  R]                  [~        5      (       + S	9URj                  lA        U R                  R                  R                  U R                  R                  [        UR                  UR                  UR                  5      US!95      nU R                  UR                  UR                  5      $ )"Nr  r  rE	  r  r  desiredWorkloadCertificatesr?	  desiredWorkloadAltsConfigr  desiredGkeOidcConfigr!  r!  desiredClusterTelemetry"desiredWorkloadMonitoringEapConfigr2	  r  Tr  r  desiredMaster$desiredKubernetesObjectsExportConfigr  desiredDatapathProviderr.  r  Fr)	  r*	  r+	  c              3   ^   >#    U  H"  nTR                   R                  U5      S Lv   M$     g 7fr   r  rF  s     rr   rH  /V1Beta1Adapter.UpdateCluster.<locals>.<genexpr> &  r  r  c              3   l   >#    U  H)  nTR                   R                  U5      =(       d    S v   M+     g7fr  r  rF  s     rr   rH  rm	  (&  r  r  rL  r  )Lr  r  r   rx  r  r  r  r   r<	  r"  r>	  r#  r@	  r$  r  r   r  r  r  r   r  r  r   WorkloadMonitoringEapConfigr  r  r  r  r  r  _GetMasterForClusterUpdate1_GetKubernetesObjectsExportConfigForClusterUpdaterd  r  r)  &DesiredDatapathProviderValueValuesEnumre  r5  r  r  r  r  r	   r{  r  r  r   r5	  r6	  r7	  r8	  r9	  r   r  r:	  rQ  rR  rU  rV  rW  r?  r  r  r@  r  r  r,  rL  r  r  rO  r1  r2  rF  rC  r=  )r  rU  r   r  rJ	   kubernetes_objects_export_configrN	  rO	  r   rP	  r[  rr  s     `         rr   r  V1Beta1Adapter.UpdateCluster%  s   %%k7;F}}**(,(L(L"00 )M ) + f
 
	"	"}}**(,(L(L&88 )M ) + f
 
	*	*}}**(,(L(L )M ) + f ++7}}**&*mm&H&H!(!E!E 'I ' + f &}}**$(MM$D$D ,, %E % + f *}}**#}}::--  ;   + f &&2}}**'+}}'J'J55 (K ( + f ,,}}**"&--"@"@==11EEMM #A # + f
 
	6	6}}**"&--"@"@==11EEQQ #A # + f
 
	.	.	:}}**"&--"@"@==11EENN #A # + f --9}}**-1]]-V-V<< .W . + f ;;G}}**(,(L(L)0)])] )M ) + f
 
	=	=7;,,4)}}**+/==+R+R'*@*@ ,S , + f (?F}}***@f 	:T]]	
 %
 (3}}**/O + f ))5}}***.--*P*P88 +Q + + f }}**mm))PPbb + f %%1}}**&*mm&H&H44 'I ' + f ##/}}**==2242@ + f "".}}**==2252A + f  JJ233)				#	#E	*	6]]..BBLL
}}((<<LL++#$((0+$m+j151J1J++//6Z 2K 2
"". 
 ?N 
 
 :T]]
 MM(( ,  "4 )  	""1 
			#	#$6	7	C040H0H //334FGG 1I 1
""- 
			#	#J	/	;MM**$3377
CC +  	""3 
	0	0	7	7**'%%{'7'79N9N 	 	+ 	

B rww(8(899rs   c           	      @    U R                   R                  R                  U R                  R	                  [        UR                  UR                  UR                  5      S95      nU R                  UR                  UR                  5      $ ! [        R                   a@  n[        R                  " U[        R                   5      nU R#                  X5         SnAgSnAf[        R$                   a*  n[        R                  " U[        R                   5      eSnAff = f)al  Commmit the Autopilot conversion operation.

Args:
  cluster_ref: cluster resource to commit conversion.

Returns:
  The operation to be executed.

Raises:
  exceptions.HttpException: if cluster cannot be found or caller is missing
    permissions. Will attempt to find similar clusters in other zones for a
    more useful error if the user has list permissions.
rK  N)r,  rL  CompleteConvertToAutopilotr   CContainerProjectsLocationsClustersCompleteConvertToAutopilotRequestrO  r1  r2  rF  rC  r=  rm   rP  r   rQ  r	   rR  rS  rn   rq  s        rr   rv	  )V1Beta1Adapter.CompleteConvertToAutopilotD&  s    D;;22MM
--
[
[)'')9)9;;P;P \ b   +*:*:;;00 :**5$2H2HIi
!!+99(( D$$UD,B,BCCDrt  c                    U R                   R                  5       nU(       a  U R                  U5      OSnU(       aG  UR                  (       a6  UR                  R                  Ul        UR                  R
                  Ul        UR                  b(  U R                   R                  UR                  S9Ul        / nUR                  Gb  [        R                  " UR                  5      nUR                  [        5      nUR                  [        5      nUR                  [        5      n	Sn
SnUR                  [        5      nU(       a*  UR                  [         5      n
UR                  ["        5      nUR                  [$        5      nSnSnU(       a*  UR                  [&        5      nUR                  [(        5      nUR                  [*        5      nUR                  [,        5      nUR                  [.        5      nUR                  [0        5      nUR                  [2        5      nUR                  [4        5      nUR                  [6        5      nSnSnU(       a*  UR                  [8        5      nUR                  [:        5      nOU R=                  U5      nUR>                  nUR@                  n	URB                  nURD                  n
URF                  nURH                  nURJ                  nURL                  nSnSnSnURN                  nSnSnURP                  Ul        U=(       d    / Ul)        U	c  / n	SnSnU
c?  Uc<  URT                  (       d+  URV                  (       d  URX                  c  URZ                  b  U R]                  X*U5      nUc  Ub  U R                   R_                  XS9nSnUc  Ub(  U R                   Ra                  5       nUUl1        UUl2        U(       a(  U R                   Rg                  UU	UUUUUUUUS9
Ul4        O'U R                   Rg                  UU	UUUUUUUUS9
Ul4        U(       a  [k        U5      Ul6        URn                  b  U Rq                  U5      Ul9        U Ru                  XC5        U$ r`  );r   r  rX  r  rd  re  r  rf  r:  r   rh  r   ri  rj  r   rk  rl  rm  rn  ro  rp  rq  rr  rt  ru  rv  rs  rw  rx  ry  rz  r;  r<  r=  rE  rF  rG  rH  rK  rD  r9  r+   rt  rs  ru  rv  r{  r|  r}  r;   r<   r  r  r   r5   r  r~  r  r  )r  rU  r   r  r  ri   r  r  r   r4   r7  r8  r  r  r   r   r=  r   r   r   r  rD  r  r  r  r1   s                             rr   rP  -V1Beta1Adapter.CreateClusterAutoscalingCommonb&  sV    --224K.9dook*tG7&&



8
8 , 


7
7 + ++7
--
1
1:: 2  + O++7yy==>f

?3o

?3ozz&!f $$45	,001BC"2"6"67N"O"JJ7	0445HI/334FG#)::.H#I $45 **%67**Y'iZZ-l$*JJz$:!!',D!E$(!	!599:LM&>&B&B''
# 44W=o@@o..f#*#E#E !DD ' P P"FF!DD BBil$+$G$G!$(!-4-L-LK*!0!6BK~fJ%".==88;;G;;G99
&= $(:(F==//( 0 j  $&&2!%!E!E!G2D/
% 8 
--
8
8, .#-.% 3%= 9  2  --
8
8, .#-.% 3%= 9  2 ".45O.Pk+"".'+'J'J
(k$ 	##K<rs   c                    UR                   (       ax  U(       a  UR                  (       a`  [        S UR                   5       5      n[        S UR                   5       5      nU(       a  U(       d  [        R                  " [
        5      eUR                  nU(       Ga"  UR                  (       aO  UR                  R                  SLnUR                  R                  SLnXv:w  a  [        R                  " [        5      eUR                  (       aO  UR                  R                  SLnUR                  R                  SLn	X:w  a  [        R                  " [        5      eUR                  (       aP  UR                  R                   SLn
UR                  R"                  SLnX:w  a  [        R                  " [$        5      eggg)r  c              3   j   #    U  H)  nUR                   S :H  =(       a    UR                  SLv   M+     g7fr  r  r  r  s     rr   rH  <V1Beta1Adapter.ValidateClusterAutoscaling.<locals>.<genexpr>'  s3      
3 %'EEMM,EE3   13c              3   j   #    U  H)  nUR                   S :H  =(       a    UR                  SLv   M+     g7fr  r}	  r  s     rr   rH  r~	  
'  s3      
3 (*Hu}}D/HH3r	  N)rd  r+   rQ  r	   r{  r  r  r.   r  r  r  r1   r2   r3   r  r:   r;   r<   r  )r  r  r  cpu_max_setmem_max_setr  r  r  r  r  r  r  s               rr   r  )V1Beta1Adapter.ValidateClusterAutoscaling&  s    --;55 
$33
 
  
$33
 
 +

?@
@;;H		!	!"22;;4G$$334? 	 !3

KL
L			%00<<DH$//::$F2

NO
O		(	(++<<DH 	 ++EE 	# :

H  ; 
) rs   c           	         UR                  5       (       a  U R                  X5      nU R                  R                  UR                  US9nU R
                  R                  R                  U R                  R                  [        UR                  UR                  UR                  5      US95      nU R                  UR                  UR                  5      $ UR                  5       (       a  U R!                  X5      nU R                  R#                  [%        UR                  UR                  UR                  UR                  5      US9nU R
                  R&                  R)                  U5      nObUR+                  5       (       a7  U R-                  X5      nU R
                  R&                  R                  U5      nO[.        R0                  " S5      eU R                  UR                  UR                  5      $ )Nr  r  r  r  r  r  s           rr   r   V1Beta1Adapter.UpdateNodePool,'  s   ""$$22=Jk}}**)44%0 + f ++99@@
--
,
,)))$$))
  - 	i   1C1CDD		+	+	-	-44]LjMM66-%%  %%&&	   7 c ++
;
;
I
I#
N  
	(	(	*	*&&}>c++CCJJ3OiJJ899y~~}/A/ABBrs   c           	         UR                   b+  UR                   (       d  [        R                  " [        5      eUR                  (       a'  UR
                  b  [        R                  " [        5      eSnSnUR
                  bx  UR
                   H0  nUS;  d  M  [        R                  " [        R                  US95      e   UR
                  R                  SS5      nUR
                  R                  SS5      nU R                  R                  UR
                  SLUUU R                  R                  R                  R                  UR                  UR                  S9nUR                   b(  U R                  R#                  UR                   S9Ul        UR&                  b>  [        R(                  " U R                  5      R+                  UR&                  5      Ul        Xbl        U$ )z(Converts options for IPv6-only clusters.Nr  r  r=  r   )r  r  r  r  r  r  r  )r   r	   r{  7ROUTE_BASED_CLUSTERS_NOT_SUPPORTED_WITH_STACK_TYPE_IPV6r   r   r  r  r}   r   r   r0  StackTypeValueValuesEnumIPV6r   r   rn  r  r  rp  r  rq  r  r/  )r  r   ri   r  r  r  r  s          rr   rM	   V1Beta1Adapter._ParseIPv6OptionsT'  s   *73J3JJJNOOg77CJJBCCON  ,**#''

5<<<E  +
  1155fdCo0044WdCn]]-- 22$>&(MM,,EEJJ")"F"F#*#H#H . 	F --9
--
2
2<< 3  '
 +"::
--112  "(Nrs   r   N)r  r  r  r  r  r]  r  r  r  rv	  rP  r  r   rM	  r  r   rs   rr   r   r   5   s@    QAf	CiV#A:FD<Vp0d&CP*rs   r   c                   B    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
rg)r   i'  zAPIAdapter for v1alpha1.c                   ^ U R                  UT5      nTR                  Gc  TR                  Gc  TR                  c  TR                  c  TR
                  c  TR                  c  TR                  c  TR                  c  TR                  c  TR                  c  TR                  c  TR                  c  TR                  cu  TR                  ch  TR                  c[  TR                   cN  TR"                  cA  TR$                  c4  TR&                  c'  TR(                  c  TR*                  c  TR,                  b  U R/                  S TS5      Ul        TR2                  (       Ga  [5        U4S j[6         5       5      (       a  TR8                  (       d\  TR:                  b  [<        TR:                  ;  d!  TR>                  b.  [<        TR>                  ;  a  [@        RB                  " [D        5      e[F        TR2                  ;  a  [@        RB                  " [H        5      eTRJ                  b  TRJ                  OSn[M        TU RN                  5      nU RN                  RQ                  SUUS9URR                  l*        [V        TR2                  ;   a  TR8                  (       d\  TR:                  b  [<        TR:                  ;  d!  TR>                  b.  [<        TR>                  ;  a  [@        RB                  " [X        5      eU RN                  R[                  SS9URR                  l.        [^        TR2                  ;   a(  U RN                  Ra                  SS9URR                  l1        [d        TR2                  ;   a  U RN                  Rf                  Rh                  Rj                  nU RN                  Rf                  Rh                  Rl                  nTRn                  nUb  URq                  S5      n	U	b  U	S:X  a  UnU RN                  Rg                  SUS9URR                  l9        TRt                  (       a  TRv                  (       d(  [@        RB                  " [x        R{                  S	S
S95      eUR|                  c  U RN                  R                  5       Ul>        TRt                  UR|                  l@        TR                  (       a  TRv                  (       d(  [@        RB                  " [x        R{                  S	SS95      eUR                  c  U RN                  R                  5       UlB        TR                  UR                  lD        TR                  (       a(  U RN                  R                  TR                  S9UlG        TR                  (       a(  U RN                  R                  TR                  S9UlJ        TR                  bU  U RN                  R                  TR                  S9UlM        TR                  b   TR                  (       + UR                  lO        TR                  bQ  UR                  c)  U RN                  R                  TR                  S9UlQ        OTR                  UR                  lS        TR                  b^  UR                  c  U RN                  R                  5       UlQ        U RN                  R                  TR                  S9UR                  lV        TR                  b)  U RN                  R                  STR                  S9UlY        [        UTU RN                  5        [        TU RN                  5      Ul\        TR                  (       a  U RN                  R                  SS9Ul_        U R                  TUR                  UR                  5      n
U
b/  U RN                  R                  5       Uld        XR                  le        UR                  (       a  S Ula        S Ulb        TR                  (       a  SUlg        TR                  Gb  UR                  c  U RN                  R                  5       UlQ        TR                  R                  5       S:X  a:  U RN                  R                  R                  R                  UR                  ll        OTR                  R                  5       S:X  a:  U RN                  R                  R                  R                  UR                  ll        O1[@        RB                  " [        R{                  TR                  S95      eTR                  bJ  U RN                  R                  TR                  S9Ulq        TR                  (       a  SUR                  lr        TR                  (       aU  TRv                  (       a  TR                  UR                  lu        O([@        RB                  " [x        R{                  S	SS95      eTR                  b  TR                  R                  5       [        R                  :X  a  U R                  TU5        OH[@        R                  " U RN                  5      R                  TR                  5      UR                  l}        TR                  bH  [@        R                  " U RN                  5      R                  TR                  5      UR                  l        G[        TU RN                  5      Ul        G[        TU RN                  5      Ul        TGR
                  b  G[        TU RN                  5      Ul        TGR                  b  G[        TU RN                  5      Ul        U RN                  GR                  G[        UGR                  UGR                  5      US9nU GR                  GR                   GR#                  U5      nU GR%                  UGR&                  UGR                  5      $ )NFc              3   @   >#    U  H  oTR                   ;   v   M     g 7fr   rE  rF  s     rr   rH  0V1Alpha1Adapter.CreateCluster.<locals>.<genexpr>'  rJ  rK  )r  enableAlphaFeaturesrM  Tr  r)	  r*	  r+	  r  r,	  r  r-	  rK  )enablePrivateIpv6Accessr  r/	  r0	  r1	  r2	  r.	  rN  )rG  r9  r?  r>  rA  r@  rD  rC  rB  r;  r<  rs  rt  rE  rF  ru  rv  rG  rH  r=  rK  r  r  rP  r  r   rQ  rR  r   ri  r@   rh  r	   r{  rS  r9  rT  r   rU  r   rV  rT  rW  r@  r4	  r  r  rA  r  r  r5	  r6	  r7	  r8	  r9	  r   r   r:	  r   r  ru  r}   r;	  r<	  r  r"  r=	  r>	  r?	  r#  r@	  rA	  r$  r  r  r  ry  r  r  r  r  rb  rc  r	  rd  r  r  r  r  r  rB	  r  r  r5  r  r  r  r6  r7  r  rC	  r"  r   rD	  rF	  r  rd  rG	  rf  re  rH	  r  r  r  r  r  r  rE	  ro  r  r  rM	  r  rq  r/  r  rp  r  r  rI	  rJ	  rK	  rL	  r  r)  r*  r  r-  r.  rX  rY  r1  r2  r,  rL  rZ  rC  r=  )r  rU  r   ri   enable_alpha_featuresr[  rN	  rO	  r   rP	  rQ	  r\  r  s     `          rr   r]  V1Alpha1Adapter.CreateCluster'  s	   &&{G<G''3??&??&))..:""."".33?**688D==I55A;;G;;G;;G66B55A--944@&&2//; ??
g ~~~	<O<	<	<44"".'"4"44+goo0M

MN
N'..(

IJ
J --9 ** 	
 :T]]
 /3mm.J.J 5/ /K /
+ 
w~~	%44"".'"4"44+goo0M

OP
P040N0N 1O 1
- 
'..	(MM..t.< 	1 
'..	 ]]..BBLL
}}((<<LL++#$((0+$m+j+/==+D+D ,E ,
( ++""jj)00,2P 1 
 	

 
	%	%	-'+}}'I'I'K$

.
. ""5 ""jj)00,- 1 
 	

 
	#	#	+%)]]%E%E%G".5.A.Ag  +"mm99)) : g &&&*mm&I&I11 'J 'g# + $ = ='' !> !g 
	/	/	;666 	3 ))5				& $ ; ;$+$F$F !< !

 .. 	5 ))5				& $ ; ; =
--
0
088 1  4
 ) --
1
1'*@*@ 2  '
 ;$-- 0GG%%%)]]%G%G &H &g" "::'')B)B )!%!?!?!Ag&<##g"&g---1g*  ,				& $ ; ; =		"	"	(	(	*h	6MM''GGWW 	. $$**,
:MM''GGYY 	. jj5<< 22 = 
 	
 ;;G'+}}'K'K%,%Y%Y (L (g$ 
	=	=15&&.  			%% 	&&7 jj)00,2E 1 
 	
 %				!	!	#}'D'D	Dw0/3/L/LMM0


7--
. 	"", +262N2N
--3112   / 0GGN 	:T]]	
 ) ||!5gt}}!Mg..:.O
4==/g+ --
,
,{44k6F6FG - C 77>>sCIy~~{/?/?@@rs   c           	      |  ^ U R                  UT5      nTR                  (       a;  U R                  R                  U R                  R	                  TR                  S9S9nOTR
                  (       a;  U R                  R                  U R                  R	                  TR
                  S9S9nOATR                  (       a0  U R                  R                  U R                  R	                  SS9S9nTR                  b:  U R                  R                  U R                  R                  TR                  S9S9nTR                  b:  U R                  R                  U R                  R                  TR                  S9S9nTR                  b:  U R                  R                  U R                  R                  TR                  S	9S
9nTR                  b:  U R                  R                  U R                  R                  TR                  S	9S9nTR                  b:  U R                  R                  U R                  R!                  TR                  S	9S9nTR"                  b-  U R                  R                  [%        TU R                  5      S9nTR&                  (       aY  U R                  R                  U R                  R)                  U R                  R(                  R*                  R,                  S9S9nOTR.                  (       aY  U R                  R                  U R                  R)                  U R                  R(                  R*                  R0                  S9S9nOeTR&                  bX  U R                  R                  U R                  R)                  U R                  R(                  R*                  R2                  S9S9nTR4                  b:  U R                  R                  U R                  R7                  TR4                  S	9S9nTR8                  b\  U R                  R                  U R                  R;                  TR8                  S9S9nTR8                  (       a  SUR<                  l        TR@                  b;  U R                  R                  U R                  RC                  STR@                  S9S9n[E        TU R                  5      nUb  U R                  R                  US9n[G        TU R                  5      nUb  U R                  R                  US9nTRH                  b:  U R                  R                  U R                  RK                  TRH                  S	9S9nTRL                  (       aA  U R                  R                  U R                  R                  RN                  RP                  S9nTRR                  b0  U R                  R                  U R                  RU                  SS	9S9nTRV                  b0  U R                  R                  U R                  RU                  SS	9S9nTRX                  b-  U R                  R                  [[        TU R                  5      S9nTR\                  b  U R                  R^                  R`                  Rb                  U R                  R^                  R`                  R,                  S.nTR\                  U;  a1  [d        Rf                  " [h        Rk                  TR\                  S95      eU R                  R_                  5       nUTR\                     Ul6        U R                  R                  US9nU(       d  [d        Rf                  " [n        5      eTRp                  Gb-  TRp                  Rs                  [t        5      b  U R                  Rv                  Rx                  Rz                  nU R                  Rv                  Rx                  R|                  n	TR~                  n
U
b  U
Rs                  S 5      nUb  US!:X  a  U	nU R                  Rw                  TRp                  Rs                  [t        5      US"9UR                  lA        [        U4S# j[         5       5      (       aV  [        TU R                  5      nU R                  R                  [        U4S$ j[         5       5      US%9UR                  lF        TRp                  Rs                  [        5      bJ  U R                  R                  TRp                  Rs                  [        5      (       + S	9UR                  lI        TRp                  Rs                  [        5      bJ  U R                  R                  TRp                  Rs                  [        5      (       + S	9UR                  lL        U R                  R                  R                  U R                  R                  [        UR                  UR                  UR                  5      US&95      nU R                  UR                  UR                  5      $ )'Nr  r  rZ	  r  r  r[	  r]	  r^	  r  r`	  r!  r.  r   r!  rb	  rd	  r2	  r  Tr  r  rf	  rh	  r  rj	  r  Fri  ro  r&  rq  r)	  r*	  r+	  c              3   ^   >#    U  H"  nTR                   R                  U5      S Lv   M$     g 7fr   r  rF  s     rr   rH  0V1Alpha1Adapter.UpdateCluster.<locals>.<genexpr>8)  r  r  c              3   l   >#    U  H)  nTR                   R                  U5      =(       d    S v   M+     g7fr  r  rF  s     rr   rH  r	  @)  r  r  rL  r  )Wr  r  r   rx  r  r  r  r   r<	  r"  r>	  r#  r@	  r$  r  r5  r  rP  r  r   r  r  r  r   r  r  r   ro	  r  r  r  r  r  r  rp	  rq	  rd  r  r)  rr	  re  r  r  r  r  r  r  r	  r  rp  r	   r{  +ANONYMOUS_AUTHENTICATION_MODE_NOT_SUPPORTEDr}   r'  r  r  r   r5	  r6	  r7	  r8	  r9	  r   r  r:	  rQ  rR  rU  rV  rW  r?  r  r  r@  r  r  r,  rL  r  r  rO  r1  r2  rF  rC  r=  )r  rU  r   r  rJ	  rs	  r  anon_auth_configrN	  rO	  r   rP	  r[  rr  s     `           rr   r  V1Alpha1Adapter.UpdateClusterx(  sH	   %%k7;F}}**(,(L(L"00 )M ) + f
 
	"	"}}**(,(L(L&88 )M ) + f
 
	*	*}}**(,(L(L )M ) + f ++7}}**&*mm&H&H!(!E!E 'I ' + f &}}**$(MM$D$D ,, %E % + f *}}**#}}::--  ;   + f &&2}}**'+}}'J'J55 (K ( + f %%1}}**&*mm&H&H44 'I ' + f *}}** 27DMM J + f ,,}}**"&--"@"@==11EEMM #A # + f
 
	6	6}}**"&--"@"@==11EEQQ #A # + f
 
	.	.	:}}**"&--"@"@==11EENN #A # + f --9}}**-1]]-V-V<< .W . + f ;;G}}**(,(L(L)0)])] )M ) + f
 
	=	=7;,,4)}}**+/==+R+R'*@*@ ,S , + f (?F}}***@f 	:T]]	
 %
 (3}}**/O + f ))5}}***.--*P*P88 +Q + + f }}**mm))PPbb + f ##/}}**==2242@ + f "".}}**==2252A + f ||}}**"=t}}# + f ..: mm99MMUU mm99MMUUe 
	0	0	=jj7>><< ? 
 	

 DDF#G$K$KL}}**/? + f  JJ233)				#	#E	*	6]]..BBLL
}}((<<LL++#$((0+$m+j151J1J++//6Z 2K 2
"". 
 ?N 
 
 :T]]
 MM(( ,  "4 )  	""1 
			#	#$6	7	C040H0H //334FGG 1I 1
""- 
			#	#J	/	;MM**$3377
CC +  	""3 
	0	0	7	7**'%%{'7'79N9N 	 	+ 	

B rww(8(899rs   c                 @   U R                  X5      nU R                  R                  U[        UR                  UR
                  UR                  5      S9nU R                  R                  R                  U5      nU R                  UR                  UR
                  5      $ rT	  r  r  s         rr   r  V1Alpha1Adapter.CreateNodePool\)  rV	  rs   c                    SnU R                   R                  5       nU(       a  U R                  U5      nU(       a,  UR                  (       a  UR                  R                  Ul        / nUR
                  Gb  [        R                  " UR
                  5      nUR                  [        5      nUR                  [        5      nUR                  [        5      n	Sn
SnUR                  [        5      nU(       a*  UR                  [        5      n
UR                  [        5      nUR                  [        5      nSnSnUb*  UR                  [         5      nUR                  ["        5      nUR                  [$        5      nUR                  [&        5      nUR                  [(        5      nUR                  [*        5      nUR                  [,        5      nUR                  [.        5      nUR                  [0        5      nSnSnU(       a*  UR                  [2        5      nUR                  [4        5      nOU R7                  U5      nUR8                  nUR:                  n	UR<                  nUR>                  n
UR@                  nURB                  nURD                  nURF                  nSnSnSnURH                  nSnSnURJ                  Ul        Uc  / nXel&        U	c  / n	SnSnU
c?  Uc<  URN                  (       d+  URP                  (       d  URR                  c  URT                  b  U RW                  X*U5      nUc  Ub  U R                   RY                  XS9nSnUc  Ub(  U R                   R[                  5       nUUl.        UUl/        U(       a(  U R                   Ra                  UU	UUUUUUUUS9
Ul1        O'U R                   Ra                  UU	UUUUUUUUS9
Ul1        U(       a  [e        U5      Ul3        URh                  b  U Rk                  U5      Ul6        URn                  b(  U R                   Rq                  URn                  S9Ul9        U Ru                  XS5        U$ )ra  Nrb  rc  r  );r   r  rX  r  rd  r:  r   rh  r   ri  rj  r   rk  rl  rm  rn  ro  rp  rq  rr  rt  ru  rv  rs  rw  rx  ry  rz  r;  r<  r=  rE  rF  rG  rH  rK  rD  r9  r+   rt  rs  ru  rv  r{  r|  r}  r;   r<   r  r  r   r5   r  r~  r  r  rf  re  r  )r  rU  r   r  ri   r  r  r  r   r4   r7  r8  r  r  r   r   r=  r   r   r   r  rD  r  r  r  r1   s                             rr   rP  .V1Alpha1Adapter.CreateClusterAutoscalingCommong)  sH    G--224K,g7&&



8
8 , O++7yy==>f

?3o

?3ozz&!f $$45	,001BC"2"6"67N"O"JJ7		(0445HI/334FG#)::.H#I $45 **%67**Y'iZZ-l$*JJz$:!!',D!E$(!	!599:LM&>&B&B''
# 44W=o@@o..f#*#E#E !DD ' P P"FF!DD BBil$+$G$G!$(!-4-L-LK*o!0~fJ%".==88;;G;;G99
&= $(9(E==//( 0 j  $&&2!%!E!E!G2D/
% 8 
--
8
8, .#-.% 3%= 9  2  --
8
8, .#-.% 3%= 9  2 ".45O.Pk+"".'+'J'J
(k$ ++7
--
1
1:: 2  + 	##K<rs   c           
         UR                   =(       d    [        nUR                  U-   S-
  U-  nUR                  =(       d    SnUS:X  a  U/nO+[	        SU5       Vs/ s H  nSR                  XW5      PM     nn/ nUR                  U-   S-
  [        U5      -  n	UR                  n
U GH  nX:  a  U	OU
nU R                  R                  UUUUR                  U R                  U5      S9nUR                  (       a  U R                  R                  UR                  UR                  UR                  UR                  UR                   S9Ul        UR$                  b/  ['        U R                  UR$                  5      UR"                  l        UR*                  (       aS  UR,                  (       d  [.        R0                  " [2        5      eU R                  R5                  UR*                  S9Ul        UR8                  c  UR:                  bU  U R                  R=                  5       Ul        UR8                  UR>                  l         UR:                  UR>                  l!        URD                  S:X  d  URF                  b  U R                  RI                  5       Ul%        URD                  S:X  a9  U R                  RH                  RL                  RN                  URJ                  l(        URF                  b  URF                  URJ                  l)        URT                  b:  U R                  RW                  5       Ul,        URT                  URX                  l-        UR]                  U5        X-  n
GM     U$ s  snf )	r  r  r  r   z{0}-{1}r  r  r  rU   )/r   r  r   r   r   r}   r  r   r  r   r  r   r  r   r   r   r   r  r   r  r  r  r   r	   r{  r  r]  r  r7  r8  r  r.   r  r  r   r   r  r  r  rU   r"  r  r   r  r  r  r   )r  r   r   r   	num_poolsr   r  r  r9  nodes_per_poolr  r=  r  rD  s                 rr   r0  V1Alpha1Adapter.ParseNodePools*  s    	""@&@  	..2	I ++=~NA~"#j
 8=Q	7J7J!)

>
-7J   E'')3a7C
OKNF!'!8nve]]## &&,,W5 $ d 
	#	#==<<.. ** **%55%55 = 
 "".,HmmW44-$


) 
	"	"&&

GH
H!%!@!@"44 "A "
 
#
#
/,,8#}}<<>(/(A(A%.5.M.M+

 
 I
-%%1#}}<<>			9	,MM))==EE 	! 
	!	!	-*1*B*B'		+	+	7"&--"B"B"D*1*L*L'll4ofc d Lss   M.c           	          U R                   R                  R                  U R                  R	                  [        UR                  UR                  UR                  5      S95      $ )N)resource)	r,  projectsrp  r   $ContainerProjectsGetIamPolicyRequestrO  r1  r2  rF  r  s     rr   rp  V1Alpha1Adapter.GetIamPolicyT*  sW    ;;,,::+%%{'7'79N9N 	; 	
 rs   c           
          U R                   R                  R                  U R                  R	                  U R                  R                  US9[        UR                  UR                  UR                  5      S95      $ )N)r  )googleIamV1SetIamPolicyRequestr	  )
r,  r	  rt  r   $ContainerProjectsSetIamPolicyRequestGoogleIamV1SetIamPolicyRequestrO  r1  r2  rF  )r  rU  r  s      rr   rt  V1Alpha1Adapter.SetIamPolicy]*  st    ;;,,::+/==+W+W ,X , ,%%{'7'79N9N	 	; 	
	 	rs   r   N)r  r  r  r  r  r]  r  r  rP  r0  rp  rt  r  r   rs   rr   r   r   '  s2     rAhb:H	CXtQf
rs   r   c                     U R                   bd  U R                   R                  S5      nUbF  US:X  a   UR                  R                  R                  $ UR                  R                  R
                  $ g)z&Gets the Cloud Run load balancer type.Nzload-balancer-typeINTERNAL)r   r   rV  LoadBalancerTypeValueValuesEnumLOAD_BALANCER_TYPE_INTERNALLOAD_BALANCER_TYPE_EXTERNAL)r   r   input_load_balancer_types      rr   rU  rU  j*  ss    )&77;;   +	!Z	/##CC__	
 
!
!
A
A
]
] 
rs   c                     UR                   (       d  g U R                  5       n/ n[        R                  " UR                   5       H#  u  pEUR	                  UR                  XES95        M%     X2l        X l         g Nr  )r  MetadataValuer  r  r   r3  r  )r   r   r  r  r  r  s         rr   rh  rh  {*  sb    			
&&((
%MM'"2"23jc	LL,,,BC 4"'!rs   c                 N    [         R                  " XR                  5      U l        g r   )r   ParseCreateArgsr  r  )r   r   s     rr   rg  rg  *  s    *::.. +rs   c                     UR                   c  g U R                  5       n/ n[        R                  " UR                   5       H#  u  pEUR	                  UR                  XES95        M%     X2l        X l        g r	  )r   r  r  r  r   r3  r  r   )r   r   r   r  r  r  s         rr   rf  rf  *  se     
""$&
%MM'"5"56jc	LL**s*@A 7 %rs   c                 |   UR                   (       a  U R                  (       d  UR                  5       U l        U R                  R                  5       n/ n[        R
                  " UR                   5       H#  u  pVUR                  UR                  XVS95        M%     XCl        X0R                  l	        [        XU5        g)z#Adds LinuxNodeConfig to NodeConfig.r  N)r&  r  r  SysctlsValuer  r  r   r3  r  sysctlsr8  )r   r   r   r&  r  r  r  s          rr   rl  rl  *  s     &&$,$<$<$>k!//<<>MEmmG$9$9:
ll=333IJ ;).&*7'2Hrs   c                 @   UR                   b  U R                  (       d  UR                  5       U l        UR                  5       nUR                  R                  nUR                   (       a  UR
                  Ul        OUR                  Ul        X0R                  l        gg)z4Adds KernelModuleSignatureEnforcement to NodeConfig.N)	r'  r  r  r  r  r  r  r  r  )r   r   r   r  r  s        rr   r8  r8  *  s     77C&&$,$<$<$>k!$<<>22HHK99%0%G%G"%0%N%N":O7 Drs   c                 B   UR                   b  U R                  c  UR                  5       U l        UR                   S:X  a0  UR                  R                  R                  U R                  l        gUR                  R                  R                  U R                  l        gg)z%Adds WindowsNodeConfig to NodeConfig.Nr  )r
  r  r  r  r  r  r  )r   r   r   s      rr   r  r  *  s     +$$,&.&@&@&Bk#!!Z/

$
$
=
=
Q
Q ##-
 
$
$
=
=
Q
Q ##- ,rs   c                 |   UR                   c  UR                  b  UR                   SLnUR                  SLnX4:w  a  [        R                  " [        5      eUR                  5       U l        UR                   b  UR                   U R                  l        UR                  b  UR                  U R                  l        ggg)z*Adds ShieldedInstanceConfig to NodeConfig.N)	r/  r0  r	   r{  )BOTH_SHIELDED_INSTANCE_SETTINGS_ERROR_MSGr}  r:   r;   r<   )r   r   r   secure_boot_setintegrity_monitoring_sets        rr   rm  rm  *  s     "".		.	.	: 22$>O&DDDP2JJ@AA)1)H)H)JK&##/

&
& ((9 ,,8

/
/ ((B 9% 
;rs   c                 j   UR                   nUR                  (       a-  US:w  a'  [        R                  " [        R                  US95      eUR                  (       d   US:X  a  [        R                  " [        5      eUS:X  a3  UR                  UR                  R                  R                  S9U l
        gUS:X  a3  UR                  UR                  R                  R                  S9U l
        gUS:X  a@  UR                  UR                  R                  R                  SUR                  /S9U l
        gg)	z'Adds ReservationAffinity to NodeConfig.specific)affinityr  )consumeReservationTyperQ  z'compute.googleapis.com/reservation-name)r	  r  valuesN)rI  rJ  r	   r{  ARESERVATION_AFFINITY_NON_SPECIFIC_WITH_RESERVATION_NAME_ERROR_MSGr}   @RESERVATION_AFFINITY_SPECIFIC_WITHOUT_RESERVATION_NAME_ERROR_MSGReservationAffinity%ConsumeReservationTypeValueValuesEnumNO_RESERVATIONreservationAffinityANY_RESERVATIONSPECIFIC_RESERVATION)r   r   r   r	  s       rr   rn  rn  *  s'   ))(X3
**IPP 	Q 	
  
		Z!7
**H  &.&B&B';;aapp 'C 'K# 5&.&B&B';;aaqq 'C 'K# :&.&B&B';;aavv5##$ 'C 'K# rs   c                    UR                   b  SUR                   ;  a  [        R                  " [        5      eUR                  R
                  R                  UR                  R
                  R                  S.nUR                   S   U;  a4  [        R                  " [        R                  UR                   S   S95      eUR	                  X1R                   S      S9U l
        gg)z!Adds SandboxConfig to NodeConfig.Nr"  )unspecifiedgvisorr!  )r   r	   r{  SANDBOX_TYPE_NOT_PROVIDEDSandboxConfigr  rT   GVISORSANDBOX_TYPE_NOT_SUPPORTEDr}   sandboxConfig)r   r   r   sandbox_typess       rr   r  r  +  s    __ W__$JJ011--AAMM((<<CCM vm3JJ
$
+
+1H
+
I  !) 6 6??623 !7 !K !rs   c                    U R                   b  UR                  R                  R                  UR                  R                  R                  UR                  R                  R
                  S.nU R                   U;  a1  [        R                  " [        R                  U R                   S95      eUR                  UU R                      S9$ g)z#Get StableFleetConfig from options.NrT   PERIODIC	AS_NEEDEDr!  )maintenanceInterval)
rm  StableFleetConfig"MaintenanceIntervalValueValuesEnum MAINTENANCE_INTERVAL_UNSPECIFIEDr	  r	  r	   r{  'MAINTENANCE_INTERVAL_TYPE_NOT_SUPPORTEDr}   )r   r   maintenance_interval_typess      rr   r  r  +  s    !!- &&IIjj &&IIRR &&IISS
" ##+EEJJ
1
8
8// 9  
 %%6((
 &  % .rs   c                     UR                   nUbb  UR                  5       nSU;   a  US   S:H  Ul        SU;   a
  US   Ul        SU;   a  [	        US   U5      Ul        UR                  US9U l        gg)z$Adds notification config to Cluster.Npubsubr  pubsub-topicr  r	  )rQ  PubSubr  topic_GetFilterFromArgr  NotificationConfignotificationConfig)ri   r   r   ncr	  s        rr   r  r  4+  s}    """^__F2~(|y0fn'fl2~'8h?fm!)!<!<F!<!KG rs   c                    U (       d  gUR                   R                  R                  UR                   R                  R                  UR                   R                  R                  UR                   R                  R
                  S.nUR                  5       nU R                  S5       H;  nUR                  5       nX$   (       d  M  UR                  R                  X$   5        M=     U$ )z2Gets a Filter message object from a filter phrase.N)upgradeeventupgradeinfoeventupgradeavailableeventsecuritybulletinevent|)
Filter!EventTypeValueListEntryValuesEnumUPGRADE_EVENTUPGRADE_INFO_EVENTUPGRADE_AVAILABLE_EVENTSECURITY_BULLETIN_EVENTr  r  	eventTyper   )r  r   flag_event_types_to_enum	to_return
event_types        rr   r	  r	  C+  s    	 //
;
;
I
I //
;
;
N
N //
;
;
S
S //
;
;
S
S oo)$$S)j!!#J++  !9!EF * 
rs   c                    U R                   b  UR                  R                  R                  UR                  R                  R                  UR                  R                  R
                  UR                  R                  R                  UR                  R                  R                  S.nUR                  X R                      S9$ g)z%Gets the ReleaseChannel from options.N)rapidregularstableextendedrq  )r?  )rP  ReleaseChannelr=  RAPIDREGULARSTABLEEXTENDEDrT   )r   r   channelss      rr   r  r  ]+  s    (((??EE**AAII))@@GG++BBKK''>>JJH ""84K4K+L"MM )rs   c                     U R                   b_  UR                  R                  R                  UR                  R                  R                  S.nUR                  X R                   S      S9$ g)z Gets the PatchMode from options.N)acceleratedr  r   )	patchMode)r  GkeAutoUpgradeConfigPatchModeValueValuesEnumACCELERATEDPATCH_MODE_UNSPECIFIED)r   r   patch_modess      rr   r  r  j+  ss    % ))BBNN ))BBYYK ((22156 )   &rs   c                     U R                   nUb\  UR                  5       nSU;   a  US   S:H  Ul        SU;   a
  US   Ul        SU;   a  [	        US   U5      Ul        UR                  US9$ g)z0Gets the NotificationConfig from update options.Nr	  r  r	  r  r	  )rQ  r	  r  r	  r	  r  r	  )r   r   r	  r	  s       rr   r  r  z+  s{    """^__F2~(|y0fn'fl2~'8h?fm&&f&55 rs   c                     U R                   bk  U R                  (       a+  U R                  (       a  [        R                  " [
        5      eUR                  U R                   U R                  U R                  S9$ g)z'Gets the TpuConfig from update options.Nr  )r  r
  r  r	   r{  TPU_SERVING_MODE_ERRORr  )r   r   s     rr   r  r  +  sg    #!F!FJJ-..""++$BB    $rs   c                 8   U R                   c  U R                  Gb  UR                  5       nU R                   Gb4  [        U R                   ;   a9  UR                  R                  UR                  R                  R                  5        [        U R                   ;   a9  UR                  R                  UR                  R                  R                  5        [        U R                   ;   a9  UR                  R                  UR                  R                  R                  5        [        U R                   ;   a9  UR                  R                  UR                  R                  R                  5        U R                  b  U R                  Ul
        UR                  US9$ g)z$Gets the Master from create options.NsignalsConfig)rO  rN  MasterSignalsConfigrB   logEnabledComponentsr   ,LogEnabledComponentsValueListEntryValuesEnumrD   rE   rF   r  Masterr   r   r  s      rr   rI	  rI	  +  sJ    %		&	&	2))+F&	g))	)##**((UU__	
 
g))	)##**((UU__	
 
w22	2##**((UUhh	
 
'--	-##**((UUcc	
 $$0$::f???00/ 
3rs   c                    U R                   (       a  / U l        U R                  GbS  UR                  5       n[        U R                  ;   a9  UR                  R                  UR                  R                  R                  5        [        U R                  ;   a9  UR                  R                  UR                  R                  R                  5        [        U R                  ;   a9  UR                  R                  UR                  R                  R                  5        [        U R                  ;   a9  UR                  R                  UR                  R                  R                  5        UR                  US9$ U R                  bH  UR                  U R                  UR                  R                  R                  /S9nUR                  US9$ g)z$Gets the Master from update options.Nr
  )r  r
  )r  rO  r
  rB   r
  r   r
  rD   rE   rF   r
  rN  COMPONENT_UNSPECIFIEDr
  s      rr   rp	  rp	  +  s~   G$))+FG'''!!((

&
&
S
S
]
] G'''!!((

&
&
S
S
]
] W000!!((

&
&
S
S
f
f +++!!((

&
&
S
S
a
a ???00"".))33((UUkk
 * F ???00 /rs   c                 B   U R                   c  g[        S U R                    5       5      (       a5  [        R                  " SSR	                  U R                   5      -   S-   5      eUR                  5       n[        U R                   ;   a>  [        U R                   5      S:  a  [        R                  " S5      eUR                  US9$ [        U R                   ;  a  [        R                  " S	5      eUR                  R                  UR
                  R                  R                  5        [        U R                   ;   a9  UR                  R                  UR
                  R                  R                  5        [         U R                   ;   a9  UR                  R                  UR
                  R                  R"                  5        [$        U R                   ;   a9  UR                  R                  UR
                  R                  R$                  5        [&        U R                   ;   a9  UR                  R                  UR
                  R                  R&                  5        [(        U R                   ;   a9  UR                  R                  UR
                  R                  R(                  5        [*        U R                   ;   a9  UR                  R                  UR
                  R                  R*                  5        [,        U R                   ;   a9  UR                  R                  UR
                  R                  R,                  5        [.        U R                   ;   a9  UR                  R                  UR
                  R                  R.                  5        UR                  US9$ )
z6Gets the LoggingConfig from create and update options.Nc              3   2   #    U  H  o[         ;  v   M     g 7fr   )LOGGING_OPTIONSrG  cs     rr   rH  $_GetLoggingConfig.<locals>.<genexpr>+  s     ;?a/	!?   [r  z8] contains option(s) that are not supported for logging.r  3Cannot include other values when None is specified.)componentConfigz6Must include system logging if any logging is enabled.)rh  rQ  r	   r{  r  LoggingComponentConfigr?   r  LoggingConfigr@   enableComponentsr   (EnableComponentsValueListEntryValuesEnumSYSTEM_COMPONENTSrA   	WORKLOADSrC   rB   rD   rE   rF   rG   rH   rI   r
  s      rr   r  r  +  s   __ 	;7??;;;
**
))GOO
$	%
D	E  **,&	W__
7??aJJLMM!!&!997??"
**M
NN  %%NN``  
""''PPZZ 7??"
""''PPZZ '//!
""''PPZZ 7??*
""''PPcc goo%
""''PP^^  
""''PPYY w&
""''PP__ 
""''PPXX 
				77rs   c                    SnSnU R                   b  UR                  R                  R                  UR                  R                  R                  UR                  R                  R
                  S.nU R                   U;  a1  [        R                  " [        R                  U R                   S95      eUU R                      nU[        :X  Ga  U R                  b  [        R                  " SU R                  S   5      (       d5  [        R                  " [        R                  SU R                  S   S95      e[        R                  " SU R                  S   5      (       d5  [        R                  " [        R                  SU R                  S   S95      eUR                  U R                  S   U R                  S   U R                  S   S	9nUR                  UUS
9$ )z'Get HostMaintenancePolicy from options.Nr	  r!  zs$znode-idle-time)fieldr  r  z	min-nodes)nodeIdleTimeWindowmaintenanceAvailabilityWindowminNodesPerPool)r	   opportunisticMaintenanceStrategy)r  HostMaintenancePolicyr	  r	  r	  r	  r	   r{  ,HOST_MAINTENANCE_INTERVAL_TYPE_NOT_SUPPORTEDr}   r  r  rd  search-OPPORTUNISTIC_MAINTENANCE_FIELD_NOT_SUPPORTED OpportunisticMaintenanceStrategy)r   r   op_typeparsed_maintenance_interval parsed_opportunistic_maintenancer	  s         rr   r  r  ,  s    $%)"&&2 **MMnn **MMVV **MMWW
" ((0JJJJ
6
=
=44 >  
 #=))# W>>J99w001AB  JJ
7
>
>$556FG ?   99UG==hGHHJJ
7
>
>55h? ?   	11&@@   +2*K*K+ $==kJ 	2 	
 % 
	'	'5'G 
( 
 rs   c                     SnU R                   nUR                  R                  nUS:X  a  UR                  nOUS:X  a  UR                  nUR                  US9$ )zCGets the ManagedOpenTelemetryConfig from create and update options.Nr?   )COLLECTION_AND_INSTRUMENTATION_COMPONENTSr  )rl  ManagedOpenTelemetryConfigr  r?   r:
  )r   r   r   
otel_scopescope_value_enums        rr   r  r  M,  sc    
%))*))>>  6!!E@@FFE		,	,5	,	99rs   c                    SnSnSnUR                  5       nU R                  b  UR                  U R                  S9nU R                  bw  SnU R                  S:X  a!  UR                  R
                  R                  nO0U R                  S:X  a   UR                  R
                  R                  nUR	                  US9Ul        XWl	        U R                  Gc  U R                  Gb  U(       dH  U R                  c;  U R                  S:w  a+  U R                  (       d  [        R                  " [        5      eU(       a  SnU R                  S:X  a!  UR                  R
                  R                  nO0U R                  S:X  a   UR                  R
                  R                  nUR                  US9nUR	                  US9Ul        OU R                  (       a  UR                  SS9nSnU R                  S:X  a!  UR                  R
                  R                  nO0U R                  S:X  a   UR                  R
                  R                  nUR	                  US9Ul        OAUR                  SS9nUR	                  UR                  R
                  R                  S9Ul        XWl	        [        U S5      (       a8  U R                  b+  UR                  U R                  (       + S9nSUl        XWl	        U R                   GbP  [#        S	 U R                    5       5      (       a5  [        R                  " S
SR%                  U R                   5      -   S-   5      eUR'                  5       n[        U R                   ;   a7  [)        U R                   5      S:  a  [        R                  " S5      eXGl        U$ [,        U R                   ;  a  [        R                  " S5      eUR.                  R1                  UR&                  R2                  R4                  5        [6        U R                   ;   a9  UR.                  R1                  UR&                  R2                  R8                  5        [:        U R                   ;   a9  UR.                  R1                  UR&                  R2                  R<                  5        [>        U R                   ;   a9  UR.                  R1                  UR&                  R2                  R>                  5        [@        U R                   ;   a9  UR.                  R1                  UR&                  R2                  R@                  5        [B        U R                   ;   a9  UR.                  R1                  UR&                  R2                  RB                  5        [D        U R                   ;   a9  UR.                  R1                  UR&                  R2                  RF                  5        [H        U R                   ;   a9  UR.                  R1                  UR&                  R2                  RH                  5        [J        U R                   ;   a9  UR.                  R1                  UR&                  R2                  RJ                  5        [L        U R                   ;   a9  UR.                  R1                  UR&                  R2                  RL                  5        [N        U R                   ;   a9  UR.                  R1                  UR&                  R2                  RN                  5        [P        U R                   ;   a9  UR.                  R1                  UR&                  R2                  RP                  5        [R        U R                   ;   a9  UR.                  R1                  UR&                  R2                  RR                  5        [T        U R                   ;   a9  UR.                  R1                  UR&                  R2                  RT                  5        [V        U R                   ;   a9  UR.                  R1                  UR&                  R2                  RV                  5        XGl        U RX                  (       a  UR[                  SS9nU R\                  (       a  UR[                  SS9nU R^                  (       Ga  Sn	U R^                  Ra                  5       n
U
S:X  a!  URZ                  Rb                  Rd                  n	OU
S:X  a!  URZ                  Rb                  Rf                  n	OU
S:X  a!  URZ                  Rb                  Rh                  n	OXU
S:X  a!  URZ                  Rb                  Rj                  n	O1[        R                  " [l        Ro                  U R^                  S95      eU(       a  UR[                  URp                  U	S9nOUR[                  U	S9nU Rr                  (       a1  U(       a  UR[                  URp                  SS9nOUR[                  SS9nU Rt                  (       a1  U(       a  UR[                  URp                  SS9nOUR[                  SS9nUc  Uc  Uc  g[        US5      (       a  Xgl;        U$ )z9Gets the MonitoringConfig from create and update options.Nr  r  r?   r  TFr  c              3   2   #    U  H  o[         ;  v   M     g 7fr   )MONITORING_OPTIONSr
  s     rr   rH  '_GetMonitoringConfig.<locals>.<genexpr>,  s     
C0B1&&0Br!
  r"
  r  z;] contains option(s) that are not supported for monitoring.r  r#
  z<Must include system monitoring if any monitoring is enabled.)r  r  INTERNAL_CLUSTER_SERVICEINTERNAL_VPC_LBEXTERNAL_LBr&  )r  	relayMode)rE
  )r  enableRelay)rF
  r~  )<MonitoringConfigrj  ManagedPrometheusConfigrk  AutoMonitoringConfigr  r  r?   autoMonitoringConfigr  rR  r	   r{  r  rr  r  ri  rQ  r  MonitoringComponentConfigr  r$
  r@   r'
  r   r(
  r)
  rA   r*
  rC   rB   rD   rE   rJ   HPA_COMPONENTrK   rL   rM   rN   rO   rP   rQ   rR   rS   r*  #AdvancedDatapathObservabilityConfigr+  r.  rL  RelayModeValueValuesEnumr  rB
  rC
  rD
  DPV2_OBS_ERROR_MSGr}   r  r,  r-  r~  )r   r   r6  is_prometheus_enabledcomppromadv_obsr  r   
relay_mode	opts_names              rr   r  r  [,  s    
$	$'$$&&&&2++11 , D $$0e		&	&%	/--BBFF((F2--BBGG"*"?"?e"?"Ld%)" ''/

'
'
3 --5))V3!!JJOPP	e		&	&%	/--BBFF((F2--BBGG--6K-Ld"*"?"?e"?"Ld			--d-;de		&	&%	/--BBFF((F2--BBGG"*"?"?e"?"Ld --e-<d"*"?"?--BBGG #@ #d &*" W233))5--999 . d #'d'+$# 
C0B0B
CCCJJ
IIg(()*IJ  --/Dw!!!	W	 1	$jjNOO!%W'''JJ
H  	  **SSee 7%%%
""

,
,
U
U
_
_ W'''
""

,
,
U
U
_
_ G&&&
""

,
,
U
U
_
_ W///
""

,
,
U
U
h
h '$$$
""

,
,
U
U
]
] ***
""

,
,
U
U
Y
Y g   
""

,
,
U
U
Y
Y G&&&
""

,
,
U
U
_
_ W'''
""

,
,
U
U
`
` g(((
""

,
,
U
U
a
a 7%%%
""

,
,
U
U
^
^ '$$$
""

,
,
U
U
]
] w!!!
""

,
,
U
U
Z
Z ###
""

,
,
U
U
\
\ "((:::NG)):::OG,,,J77==?IJ

6
6
O
O
X
X  
0	0

6
6
O
O
h
h  
'	'

6
6
O
O
_
_  
m	#

6
6
O
O
[
[  JJ

#
#:: $  
 <<-- = g << = g 33<<--4 = g <<<Ng44<<--5 = g <<<Og	\dlwV:;;18.	-rs   c                     U R                   c  U R                  bN  UR                  5       nU R                   b  U R                   Ul        U R                  b  U R                  Ul        U$ g)z;Gets the KubernetesObjectsExportConfig from create options.N)r^  r_  KubernetesObjectsExportConfigkubernetesObjectsChangesTarget kubernetesObjectsSnapshotsTargetr
  s      rr   rK	  rK	  3-  ss     //;		4	4	@335F00<

3
3 + 22>

5
5 - M 
Ars   c                     U R                   c  U R                  bV  SnSnU R                   b  U R                   nUS:X  a  SnU R                  b  U R                  nUS:X  a  SnUR                  UUS9$ g)z;Gets the KubernetesObjectsExportConfig from update options.Nr?   r  )rY
  rX
  )r^  r_  rW
  )r   r   changes_targetsnapshots_targets       rr   rq	  rq	  E-  s     //;		4	4	@N00<@@n	6	!22> DD	V	#11)9'5 2   
Ars   c                    UR                   by  / nUR                  UR                  S9U l        [	        UR                   5       H!  nUR                  UR                  US95        M#     UR                  US9U R                  l        gg)zFAdds all PSC private cluster options to cluster during create cluster.N)r  r_  )r  )	rc  r  r  r	  r   r   r  r  r  )ri   r   r   r  r   s        rr   rB	  rB	  [-  s     &&2E#+#@#@"77 $A $G  W>>?
ll8,,
,CD @ 	##%#0   3 3rs   c                     U R                   R                  R                  nUS:X  a"  U R                   R                  R                  nU$ US:X  a   U R                   R                  R                  nU$ )z3Converts a location policy string to an enum value.rV   rW   )r  r  r  rV   rW   )r   r   location_policy_enums      rr   r  r  k-  sv     ""@@\\  
"$$BBKK  
	 %$$BBFF  
rs   c                     SU -   S-   U-   $ )N	projects/z/locations/r   )r9  r>  s     rr   rY  rY  {-  s    	w		.	99rs   c                 $    [        X5      S-   U-   $ )Nz
/clusters/rY  )r9  r>  ri   s      rr   rO  rO  -  s    		+l	:W	DDrs   c                 &    [        XU5      S-   U-   $ )Nz/nodePools/)rO  )r9  r>  ri   rj   s       rr   r  r  -  s!    W8rs   c                 $    [        X5      S-   U-   $ )Nz/operations/rc
  )r9  r>  r  s      rr   r  r  -  s    		+n	<y	HHrs   c                 $    SU -   S-   U-   S-   U-   $ )Nra
  z	/regions/z/subnetworks/r   )r9  rb  r   s      rr   ProjectLocationSubnetworkrg
  -  s8     	 		
 	rs   c                 P   [         R                  " [        S-   U 5      nU(       a  US   n U R                  S5      n[	        U5      S:X  a  US   S:X  a  US   S:X  a  US	   S
:X  a  U $ [         R                  " [
        U5      (       a  USUR                  S5       n[        XU 5      $ )z0Converts a subnetwork name to a subnetwork path.$r  r     r   r	  r  regions   subnetworksNra  )rd  re  SUBNETWORK_URL_PATTERNr  r  ZONE_PATTERNrf  rg
  )r   r9  r>  re  partss        rr   r  r  -  s    
(()C/
<%
qJ


3
%	%jAo
(j
 
(i

(m
#XXlH%%-(..-.H	"7j	AArs   c           	         [         R                  " [        U 5      nU(       d'  [        R                  " [
        R                  U S95      e[        R                  " [        R                  [        [        U R                  S5      5      5      n[         R                  " SU5      nU(       d'  [        R                  " [        R                  US95      e[        UR!                  S5      5      nX5-  $ )zPCalculates the number of nodes needed for a given TPU topology and machine type.)topologyr  z(\d+)t$)r  r  )rd  	fullmatchTPU_TOPOLOGY_PATTERNr	   r{  'TPU_TOPOLOGY_INCORRECT_FORMAT_ERROR_MSGr}   	functoolsreduceoperatormulmapr  r  r3
  'MACHINE_TYPE_INCORRECT_FORMAT_ERROR_MSGgroup)r  r  re  resultchips_matchnum_chips_per_vms         rr   r  r  -  s    
,,+\
:%	
**/666M  HLL#c<3E3Ec3J*KL&		*l3+	
**/66% 	7 	
 
 **1-.		##rs   c                 B    U R                  SS5      R                  5       $ )zConverts an evaluation or enforcement mode to lowercase format.

e.g. Converts 'PROJECT_SINGLETON_POLICY_ENFORCE' to
'project-singleton-policy-enforce'

Args:
  mode: An evaluation or enforcement mode.

Returns:
  The mode in lowercase form.
_ra  )replacer  r&  s    rr   NormalizeBinauthzModer
  -  s     
c3		%	%	''rs   c                     U[         R                  R                  :X  a  SS/$ [        U R                  R
                  R                  5       5      nUR                  S5        [        U5      $ )z9Returns all valid options for --binauthz-evaluation-mode.r   PROJECT_SINGLETON_POLICY_ENFORCEEVALUATION_MODE_UNSPECIFIED)	r   rx   ry   r  rn  EvaluationModeValueValuesEnumto_dictr  r   )r   r~   r   s      rr    GetBinauthzEvaluationModeOptionsr
  -  s_     d''***:;;""@@HHJ' 
.../	rs   c                     U R                   R                  nUUR                  UR                  UR                  4;   a  gg)NFT)rn  r
  r
  r  r
  )r   evaluation_modeevaluation_mode_enums      rr   r  r  -  sH    ""@@  66##;; 
 	rs   c                     [        U R                  R                  R                  5       5      nUR	                  S5        [        U5      $ )z<Returns all valid options for the enforcement-mode dict key.ENFORCEMENT_MODE_UNSPECIFIED)r  rs  rt  r
  r  r   )r   r   s     rr   !GetBinauthzEnforcementModeOptionsr
  -  s=    ;;CCE' 
../0	rs   c                     U R                   R                  R                  nUS:X  a"  U R                   R                  R                  nU$ US:X  a   U R                   R                  R                  nU$ )zConverts a logging variant string to an enum value.

Args:
  messages: The API messages module.
  variant: The logging variant string.

Returns:
  The logging variant enum value.
r  MAX_THROUGHPUT)r  VariantValueValuesEnumVARIANT_UNSPECIFIEDr  r
  )r   r$  variant_config_enums      rr   r  r  -  sw     ##::NN  	%%<<DD  
	 ""%%<<KK  
rs   c                 j   UR                  5       nU R                  b  UR                   R                  R                  UR                   R                  R                  S.nU R                  U;  a1  [
        R                  " [        R                  U R                  S95      eX0R                     Ul	        U$ )z:Configures the AnonymousAuthenticationConfig from options.ro  r&  )
r	  r  r  rp  r  r	   r{  r	  r}   r'  )r   r   r  r  s       rr   r-  r-  .  s    113&,,8 22FFNN 22FFNNE ..e;JJ
5
<
<:: =  
 ??@FK	-rs   c                 J   U R                   b  UR                  R                  R                  UR                  R                  R                  S.nU R                   U;  a1  [
        R                  " [        R                  U R                   S95      eX0R                      Ul	        U$ )z;Configures the Fleet MembershipType from options and fleet.r0  r!  )
r{  r  r  r1  r2  r	   r{  MEMBERSHIP_TYPE_NOT_SUPPORTEDr}   r4  )r   r   r  typess       rr   r  r  ".  s    ( NN88DD NN88TTE e+JJ
'
.
.** /  
 !!8!89E	,rs   c                 j   UR                  5       nU R                  b  UR                   R                  R                  UR                   R                  R                  S.nU R                  U;  a1  [
        R                  " [        R                  U R                  S95      eX0R                     Ul	        U$ )z'Gets the EnterpriseConfig from options.r*  r+  r  )
EnterpriseConfigr  DesiredTierValueValuesEnumSTANDARDr  r	   r{  CLUSTER_TIER_NOT_SUPPORTEDr}   desiredTier)r   r   enterprise_configtierss       rr   r)  r)  7.  s    //1\\ %%@@II %%@@KKE ||5 JJ188gll8KLL$),,$7!	rs   c                 j   UR                  5       nU R                  b  UR                   R                  R                  UR                   R                  R                  S.nU R                  U;  a1  [
        R                  " [        R                  U R                  S95      eX0R                     Ul	        U$ )z.Gets the DesiredEnterpriseConfig from options.r
  r
  )
DesiredEnterpriseConfigr  r
  r
  r  r	   r{  r
  r}   r
  )r   r   desired_enterprise_configr
  s       rr   r  r  I.  s    &>>@\\ ,,GGPP ,,GGRRE ||5 JJ188gll8KLL,1,,,?)	""rs   c                    U R                   R                  5       S:X  a   UR                  R                  R                  $ U R                   R                  5       S:X  a   UR                  R                  R
                  $ U R                   R                  5       S:X  a   UR                  R                  R                  $ U R                   R                  5       S:X  a   UR                  R                  R                  $ / SQnU(       a  UR                  S5        [        R                  " [        R                  U R                   R                  5       US95      e)z:Converts a confidential node type string to an enum value.sevsev_snptdxr  )r
  r
  r
  )r"  choices)rU  r  r  'ConfidentialInstanceTypeValueValuesEnumSEVSEV_SNPTDX&CONFIDENTIAL_INSTANCE_TYPE_UNSPECIFIEDr   r	   r{  $CONFIDENTIAL_NODE_TYPE_NOT_SUPPORTEDr}   )r   r   r  r
  s       rr   r  r  [.  s   ##))+u4""JJNN %%++-:""JJRR %%++-6""JJNN %%++-;""JJqq (GnnZ 
**,33//557 	4 	
 rs   c                    UR                  5       nU R                  b  UR                   R                  R                  UR                   R                  R                  UR                   R                  R
                  S.nU R                  U;  a1  [        R                  " [        R                  U R                  S95      eX0R                     Ul
        U$ )z(Gets the NetworkTierConfig from options.)r*  premiumznetwork-default)r  )NetworkTierConfigr  NetworkTierValueValuesEnumNETWORK_TIER_STANDARDNETWORK_TIER_PREMIUMNETWORK_TIER_DEFAULTr	   r{  NETWORK_TIER_NOT_SUPPORTEDr}   networkTier)r   r   network_tier_confignetwork_tierss       rr   r3  r3  x.  s     224% &&AAWW &&AAVV &&AAVV
M =0JJ
$
+
+9M9M
+
N  '44H4H&I#	rs   c                 l   UR                  5       nU R                  b  UR                   R                  R                  UR                   R                  R                  S.nU R                  U;  a1  [
        R                  " [        R                  U R                  S95      eUU R                     Ul	        U$ )z)Gets the ControlPlaneEgress from options.ru  )r  )
r6  r  r  r?   rv  r	   r{  "CONTROL_PLANE_EGRESS_NOT_SUPPORTEDr}   r'  )r   r   control_plane_egresscontrol_plane_egress_modess       rr   r7  r7  .  s    !446&&2 '';;@@ '';;MM" ((0JJJJ
,
3
3(/(I(I 4  
 !;))! 
rs   )F(  r  
__future__r   r   r   rv
  rx
  r  rd  r  apitools.base.pyr   rm   r   googlecloudsdk.api_lib.computer    googlecloudsdk.api_lib.containerr  r	   googlecloudsdk.api_lib.utilr
   r   googlecloudsdk.callioper   $googlecloudsdk.command_lib.util.apisr   $googlecloudsdk.command_lib.util.argsr   googlecloudsdk.corer   r   r   r   r   googlecloudsdk.core.consoler   r   googlecloudsdk.core.utilr   r  	six.movesr   six.moves.http_clientr  r|  r  r  r  NO_AUTOPROVISIONING_MSGr  r  r  r  r  r  r	  (LIMITS_WITHOUT_AUTOPROVISIONING_FLAG_MSGr  rc  rb  r  r  rA  r6  r:  r  rM  r  r   r  ru  .CLOUD_LOGGING_OR_MONITORING_DISABLED_ERROR_MSGrS  rT  rI  rJ  r4	  r\  r  rZ  r  r  r  r  r_  r`  r	  r	  rH	  rO
  r	  r	  r
  r  r  r	  r  r  r  r  r  r  r  r2
  r4
  r  r  r  r
  r
  ru
  r{
  r
  r	  r
  r	  r
  r  r  r  %MAX_AUTHORIZED_NETWORKS_CIDRS_PRIVATE$MAX_AUTHORIZED_NETWORKS_CIDRS_PUBLICr9  rK   r:  r@  rA  rH  r=  r>  rB  rC  rD  rE  rF  rG  r5	  r;  r<  r?  ri  rj  rr  rk  rl  rm  rn  ro  rp  r   rq  rt  rv  ru  rs  rw  rx  ry  DEFAULT_ADDONSrR  VISIBLE_CLOUDRUN_ADDONSADDONS_OPTIONSBETA_ADDONS_OPTIONSALPHA_ADDONS_OPTIONSr?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rL
  rL   rM   rN   rO   rP   rQ   rR   rS   r
  r@
  PRIMARY_LOGS_OPTIONSPLACEMENT_OPTIONSLOCATION_POLICY_OPTIONSrn
  ro
  rt
  	frozensetr  r  r  rp   r   r   r   r   r   r   r   r   r   objectr   r  r  r  r  r  r*  r   r   r   rU  rh  rg  rf  rl  r8  r  rm  rn  r  r  r  r	  r  r  r  r  rI	  rp	  r  r  r  r  rK	  rq	  rB	  r  rY  rO  r  r  rg
  r  r  r
  r
  r  r
  r  r-  r  r)  r  r  r3  r7  r   rs   rr   <module>r
     s   . &  '   	 	  > ) 4 G 1 9 ( . : < # * < $ 2 8 * 
  & 
+ - # * &
 ( $' #) %4 07 3
> :- )
, (. *9 "0 + '/ +* &) %) %( $' #5 16 27 3! 2 .6 22 .= 98 48 48 40 ,I E 7 3, (2 .3 /8 4D @E A- )   H "   + '$  ! % !< 8. *' #6 20 ,1 -2 .$  . *  + '+ '( $/ +! ; 7& "%W !*p & " (+ %') $
 !	
#-/ % 
1 1 # ) ""# $ % 1 # ! 	8 $ 	
3 ' 9 3y)%, #  %	(   +j\9 		
	) !

	

	
 	

! & 	  #I. %u-  H  %6    & .L)356  8F*z;6 z;zl;6 l;^
6 
f [;F [;|oF odb` b`JA
 IY IX:fn fR""(P" 8>$6L4
N 6	1<1D98x:z:Up$,  :EIB$$,(

0,*$#$:.rs   