
    j                         S 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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SSSSSSSSSS.rSSSSSSS.rS S!S"S#.r " S$ S%5      rg)&z)Cloud Workstations configs API utilities.    )absolute_import)division)unicode_literalsN)waiter)GetClientInstance)GetMessagesModule)VERSION_MAP)base)log)	resourceszJ{location}-docker.pkg.dev/cloud-workstations-images/predefined/base:latestzK{location}-docker.pkg.dev/cloud-workstations-images/predefined/clion:latestzN{location}-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latestzS{location}-docker.pkg.dev/cloud-workstations-images/predefined/code-oss-cuda:latestzL{location}-docker.pkg.dev/cloud-workstations-images/predefined/goland:latestzW{location}-docker.pkg.dev/cloud-workstations-images/predefined/intellij-ultimate:latestzN{location}-docker.pkg.dev/cloud-workstations-images/predefined/phpstorm:latestzM{location}-docker.pkg.dev/cloud-workstations-images/predefined/pycharm:latestzK{location}-docker.pkg.dev/cloud-workstations-images/predefined/rider:latestzN{location}-docker.pkg.dev/cloud-workstations-images/predefined/rubymine:latestzN{location}-docker.pkg.dev/cloud-workstations-images/predefined/webstorm:latest)z
base-imageclioncodeosszcodeoss-cudagolandintellijphpstormpycharmriderrubyminewebstormidmachineTypepoolSizebootDiskSizeGbenableNestedVirtualizationreservationAffinity)r   zmachine-typez	pool-sizezboot-disk-sizezenable-nested-virtualizationreservation-affinitykeyconsumeReservationTypevalues)r   consume-reservation-typer   c                   X    \ rS rSrSr\R                  R                  4S jrS r	S r
Srg)ConfigsU   z4The Configs set of Cloud Workstations API functions.c                     [         R                  " U5      U l        [        U5      U l        [        U5      U l        U R                  R                  U l        g )N)	r	   getapi_versionr   clientr   messages9projects_locations_workstationClusters_workstationConfigs_service)selfrelease_tracks     2lib/googlecloudsdk/api_lib/workstations/configs.py__init__Configs.__init__X   s?    "}5D#M2DK%m4DMMM 	M    c                    UR                   R                  R                  5       R                  5       nUR	                  S5      S   n[
        R                  " SU5      R                  S5      nUR	                  S5      S   nU R                  R                  5       nX&l
        SR                  UR                  5      Ul        SR                  UR                  5      Ul        UR                   (       a  U R                  R                  R#                  [%        [&        R(                  " UR                   5      5       VVs/ s H2  u  pxU R                  R                  R"                  R+                  XxS9PM4     snnS9Ul        UR,                  Ul        UR0                  Ul        U R                  R5                  5       Ul        U R                  R9                  5       UR6                  l        UR<                  UR6                  R:                  l        UR@                  UR6                  R:                  l!        URD                  (       a%  URD                  UR6                  R:                  l#        URH                  (       a%  URH                  UR6                  R:                  l%        URL                  UR6                  R:                  l'        URP                  UR6                  R:                  l)        U R                  RU                  URV                  URX                  URZ                  S	9UR6                  R:                  l.        U R                  R_                  UR`                  S
9UR6                  R:                  l1        URd                  UR6                  R:                  l3        URh                  UR6                  R:                  l5        URm                  S5      (       a&  URn                  UR6                  R:                  l8        O*URr                  (       + UR6                  R:                  l8        URt                  (       aZ  URv                  (       aI  U R                  Ry                  URt                  URv                  S9/n	XR6                  R:                  l=        U R|                  [~        R                  " [        R                  R                  5      :w  a6  UR                  (       a%  UR                  UR6                  R:                  lE        U R|                  [~        R                  " [        R                  R                  5      :w  ac  U R                  R                  5       UlG        UR                  (       a  SUR                  lI        UR                  (       a  SUR                  lK        U R|                  [~        R                  " [        R                  R                  5      :w  Ga  UR                  (       Ga  UR                   GHs  n
U R                  R                  5       nU
R                  5        GH  u  pxUS:X  d  US:X  aB  U R                  Ry                  U
R                  SS5      U
R                  SS5      S9/Ul=        MT  US:X  a  U R                  R                  5       nU
R                  S0 5      R                  5        HP  u  pxUS:X  a%  U R                  R                  R                  U5      n[        U[        R                  U5      U5        MR     UUlS        M  [        U[        R                  U5      U5        GM     UR6                  R:                  R                  R                  U5        GMv     U R|                  [~        R                  " [        R                  R                  5      :w  a  UR                  (       a  U R                  R                  5       nUR                  R                  5        HP  u  pxUS:X  a%  U R                  R                  R                  U5      n[        U[        R                  U5      U5        MR     UUR6                  R:                  lS        UR                  (       am  UR                   H]  nU R                  R                  5       nUR                  5        H  u  px[        XU5        M     UR                  R                  U5        M_     UR                  (       Gd  U R                  R                  5       nSUl]        UR                  S:X  a+  U R                  R                  R                  R                  nO*U R                  R                  R                  R                  nU R                  R                  UR                  (       a  SOUR                  UR                  (       a  SOSUR                  UUR                  S9Ulf        UR                  R                  U5        UR                  (       a  UR                   H  nU R                  R                  5       nUR                  S5      Ul]        U R                  R                  UR                  S5      UR                  S5      UR                  S5      UR                  S5      S9Ulf        UR                  R                  U5        M     U R                  R                  5       Ulm        UR                  (       a  UR                  UR                  lo        OLUR                  (       a;  [        R                  UR                  5      R                  US9UR                  lo        UR                  (       a  UR                  UR                  ls        UR                  (       a  UR                  UR                  lu        UR                  (       a  U R                  R                  R                  5       nUR                  R                  5        HK  u  pxUR                  R                  U R                  R                  R                  R+                  XxS95        MM     UUR                  ly        UR                  UR                  l{        UR                  UR                  l}        U R                  R                  5       nUR                  (       a  UR                  Ul        UGR                  (       a  UGR                  Ul        UUl        UGR                  (       a  UGR                  Ul        UGR                  (       a  UGR                  Ul        UGR                  (       a  UGR                  Ul        UGR                  (       a  U R                  R8                  GR                  5       nUGR                  R                  5        HL  u  pxUR                  R                  U R                  R8                  GR                  R+                  XxS95        MN     UUR6                  R:                  l        U R                  GR                  X5US9nU GR                  GR                  U5      nG[         GR"                  GR%                  SR                  U5      5        UGR&                  (       a=  G[         GR"                  GR%                  S R                  UR                  5      5        U$ G[(        GR*                  GR-                  UR                  S!U R|                  S"9nG[.        GR0                  " U GR                  U GR2                  GR4                  5      nG[.        GR6                  " UUS#R                  UR                  5      5      nG[         GR"                  GR%                  S$R                  U5      5        U$ s  snnf )%zCreate a new workstation configuration.

Args:
  args: argparse.Namespace, The arguments that this command was invoked
    with.

Returns:
  Workstation configuration that was created.
/workstationConfigs/r   /locations/(?P<location>[^/]+)/location   {}sr   valueadditionalProperties)enableSecureBoot
enableVtpmenableIntegrityMonitoringenableConfidentialComputedisable_ssh_to_vmtypecountTaccelerator-typeaccelerator-count r   r    z/homeretainext4)sizeGbfsTypediskTypereclaimPolicysourceSnapshotz
mount-pathz	disk-typezsource-snapshotzsource-imagez	read-only)rK   rM   sourceImagereadOnlyr4   )parentworkstationConfigIdworkstationConfigzCreate request issued for: [{}] Check operation [{}] for status.*workstations.projects.locations.operations
collectionr&   &Waiting for operation [{}] to completezCreated configuration [{}].)CONCEPTSconfigParseRelativeNamesplitresearchgroupr(   WorkstationConfignameformatidle_timeoutidleTimeoutrunning_timeoutrunningTimeoutlabelsLabelsValuesortedsix	iteritemsAdditionalPropertydisable_tcp_connectionsdisableTcpConnectionsmax_usable_workstations_countmaxUsableWorkstationsHosthostGceInstancegceInstancemachine_typer   service_accountserviceAccountservice_account_scopesserviceAccountScopesnetwork_tagstags	pool_sizer   disable_public_ip_addressesdisablePublicIpAddressesGceShieldedInstanceConfigshielded_secure_bootshielded_vtpmshielded_integrity_monitoringshieldedInstanceConfigGceConfidentialInstanceConfigenable_confidential_computeconfidentialInstanceConfigenable_nested_virtualizationr   boot_disk_sizer   IsSpecifiedr@   
disableSshenable_ssh_to_vmaccelerator_typeaccelerator_countAcceleratoracceleratorsr&   r	   r%   r
   ReleaseTrackGAstartup_script_uristartupScriptUriHttpOptionshttpOptions-allow_unauthenticated_cors_preflight_requests+allowedUnauthenticatedCorsPreflightRequestsdisable_localhost_replacementdisableLocalhostReplacementboost_configBoostConfigitemsReservationAffinity%ConsumeReservationTypeValueValuesEnumsetattrRESERVATION_AFFINITY_MAPr   BOOST_CONFIG_MAPboostConfigsappendreservation_affinityallowed_ports	PortRangeallowedPortsno_persistent_storagePersistentDirectory	mountPathpd_reclaim_policyGceRegionalPersistentDiskReclaimPolicyValueValuesEnumRETAINDELETEpd_source_snapshotpd_disk_sizepd_disk_typegcePdpersistentDirectoriesephemeral_directoryEphemeralDirectoryGcePersistentDiskephemeralDirectories	Container	containercontainer_custom_imageimagecontainer_predefined_imageIMAGE_URL_MAPcontainer_commandcommandcontainer_argsargscontainer_envEnvValuer:   envcontainer_working_dir
workingDircontainer_run_as_user	runAsUserCustomerEncryptionKeykms_keykmsKeykms_key_service_accountkmsKeyServiceAccountencryptionKeyenable_audit_agentenableAuditAgent&grant_workstation_admin_role_on_create!grantWorkstationAdminRoleOnCreatereplica_zonesreplicaZonesvm_tagsVmTagsValuevmTagsOWorkstationsProjectsLocationsWorkstationClustersWorkstationConfigsCreateRequestr*   Creater   statusPrintasync_r   REGISTRYParseRelativeNamer   CloudOperationPollerr'   projects_locations_operationsWaitFor)r+   r   config_namerQ   r4   	config_idrZ   r   r8   r   r   desired_boost_configdesired_reservation_affinity
port_rangedesired_port_rangepdreclaim_policy	directoryenv_valencryption_keytags_val
create_reqop_refop_resourcepollerresults                             r-   r   Configs.Create`   s    --&&,,.;;=K56q9Fyy;[IOOH !!"89!<I]],,.FKd&7&78F!LL)=)=>F{{mm55AA
 !'s}}T[['A B	  !C*# mm--99LL M  !C	  B fm $(#?#?F #'#E#EF  --$$&FK"mm779FKK*.*;*;FKK'-1-A-AFKK*""595P5Pfkk2%)%6%6fkk"'+~~FKK$(( KK4 	//!66))&*&H&H 	0 	
 KK2 	33&*&F&F 	4 	
 KK6 	)) KK6 .2-@-@FKK*+,,+/+A+Afkk(/3/D/D+Dfkk(!7!7
--
#
#((** $ l .:kk*;??4+<+<+?+?@@		 	 373J3J0;??4+<+<+?+?@@==446f		;	;IMF		+	+9=6 	KOOD,=,=,@,@AA++,#}}88:&,,.JC&&#1D*D))%))*<bA&**+>B * 1 - ,,113 ) +..&eg
 2299__ .*..s3 - !4 (*:*>*>s*CUK9 /: 	,,334HI? ,D 	KOOD,=,=,@,@AA%%%)]]%F%F%H"11779*#,,--33YY% 	($((-	
 : ' kk1 ***!]]446$**,JC
$5
1 -""#56	 + %%%==,,.bbl			8	+MM33PPWW 	
 MM33PPWW 	 88--43D3D..F$$&00 9 bh ""))"- //)]]--/ }}\2==22]];/$==):;!n5]];/	 3 
 	##**2. 0 }}..0F""#::f		(	(,00

)
) !  !%!7!7f"11f''002g**002*#$$++MM##,,?? @ 	
 3 %f"&"<"<F!%!;!;F ]]88:N||"lln###,0,H,Hn))F $ 7 7f222

5
5 .  ..f|||**668h**,*#%%,,MM%%11DD E 	
 - (0fkk$nn o J ]]!!*-FJJ6==iHI{{{	jj9@@MNm$$66?$$ 7 K
 ((t{{@@F ^^077DF
 JJ299)DEMa s   =9~>
c                 '   UR                   R                  R                  5       R                  5       n[        R
                  " SU5      R                  S5      nUR                  S5      S   nU R                  R                  5       nX%l
        U R                  R                  US9nU R                  R                  U5      n/ nUR                  S5      (       a1  SR                  UR                   5      Ul        UR%                  S5        UR                  S5      (       a1  SR                  UR&                  5      Ul        UR%                  S5        UR                  S	5      (       a  U R                  R                  R+                  [-        [.        R0                  " UR2                  5      5       V	V
s/ s H2  u  pU R                  R                  R*                  R5                  XS
9PM4     sn
n	S9Ul        UR%                  S	5        UR                  S5      (       a"  UR6                  Ul        UR%                  S5        U R:                  [<        R>                  " [@        RB                  RD                  5      :w  a  U R                  RG                  5       Ul$        URJ                  (       a"  SURH                  l&        UR%                  S5        URN                  (       a"  SURH                  l&        UR%                  S5        URP                  (       a"  SURH                  l)        UR%                  S5        URT                  (       a"  SURH                  l)        UR%                  S5        U R                  RW                  5       Ul,        U R                  R[                  5       URX                  l.        UR                  S5      (       a6  UR^                  URX                  R\                  l0        UR%                  S5        U R:                  [<        R>                  " [@        RB                  RD                  5      :w  a  UR                  S5      (       a  U R                  Rc                  5       nURd                  Rg                  5        HP  u  pU	S:X  a%  U R                  Rb                  Ri                  U
5      n
[k        U[l        R?                  U	5      U
5        MR     UURX                  R\                  l7        UR%                  S5        UR                  S5      (       a6  URp                  URX                  R\                  l9        UR%                  S5        UR                  S5      (       a6  URt                  URX                  R\                  l;        UR%                  S5        UR                  S5      (       a6  URx                  URX                  R\                  l=        UR%                  S5        UR                  S5      (       a6  UR|                  URX                  R\                  l?        UR%                  S5        UR                  S5      (       a6  UR                  URX                  R\                  lA        UR%                  S 5        UR                  S!5      (       a6  UR                  URX                  R\                  lC        UR%                  S"5        UR                  S#5      (       a6  UR                  URX                  R\                  lF        UR%                  S$5        UR                  S%5      (       a;  UR                  (       + URX                  R\                  lF        UR%                  S$5        UR                  S&5      (       aM  U R                  R                  UR                  S'9URX                  R\                  lJ        UR%                  S(5        UR                  S)5      (       a"  UR                  UlL        UR%                  S)5        UR                  S*5      (       a"  UR                  UlN        UR%                  S*5        UR                  S+5      (       a"  UR                  UlP        UR%                  S+5        UR                  S,5      (       a'  UR                  (       + UlP        UR%                  S+5        UR                  S-5      (       a6  UR                  URX                  R\                  lS        UR%                  S.5        U R:                  [<        R>                  " [@        RB                  RD                  5      :w  aG  UR                  (       a6  UR                  URX                  R\                  lU        UR%                  S/5        U R                  R                  5       nUR                  S05      (       a"  UR                  UlX        UR%                  S15        UR                  S25      (       a"  UR                  UlZ        UR%                  S35        UR                  S45      (       a"  UR                  Ul\        UR%                  S55        UURX                  R\                  l]        UR                  S65      (       d  UR                  S75      (       aZ  U R                  R                  UR                  UR                  S89/nXRX                  R\                  la        UR%                  S95        U R:                  [<        R>                  " [@        RB                  RD                  5      :w  Ga  UR                  S:5      (       Gal  UR                   GHJ  nU R                  R                  5       nURg                  5        H  u  pU	S;:X  d  U	S<:X  a(  U R                  R                  US;   US<   S89/Ula        M9  U	S=:X  a  U R                  Rc                  5       nUS=   Rg                  5        HP  u  pU	S:X  a%  U R                  Rb                  Ri                  U
5      n
[k        U[l        R?                  U	5      U
5        MR     UUl7        M  [k        U[        R?                  U	5      U
5        M     URX                  R\                  R                  R%                  U5        GMM     UR%                  S>5        UR                  S?5      (       a  / Ulf        UR                   H]  nU R                  R                  5       nURg                  5        H  u  p[k        UX5        M     UR                  R%                  U5        M_     UR%                  S?5        U R                  R                  5       Ulj        UR                  S@5      (       a-  UR                  UR                  ll        UR%                  SA5        ObUR                  SB5      (       aL  [        R?                  UR                  5      R                  USC9UR                  ll        UR%                  SA5        UR                  SD5      (       a,  UR                  UR                  lp        UR%                  SE5        UR                  SF5      (       a,  UR                  UR                  lr        UR%                  SG5        UR                  SH5      (       a  U R                  R                  R                  5       nUR                  Rg                  5        HK  u  pUR                  R%                  U R                  R                  R                  R5                  XS
95        MM     UUR                  lv        UR%                  SI5        UR                  SJ5      (       a,  UR                  UR                  lx        UR%                  SK5        UR                  SL5      (       a,  UR                  UR                  lz        UR%                  SM5        UR                  SN5      (       d  UR                  SO5      (       a  UR                  Ul{        UR                  (       d   U R                  R                  5       /Ul{        U R                  R                  UR                  UR                  SP9UR                  SQ   l        UR%                  SR5        OUR                  SS5      (       a  UR                  Ul{        UR                  (       d   U R                  R                  5       /Ul{        U R                  R                  SQSTUGR                  SU9UR                  SQ   l        UR%                  SR5        UR                  SV5      (       a  U R                  RZ                  GR                  5       nUGR                  Rg                  5        HL  u  pUR                  R%                  U R                  RZ                  GR                  R5                  XS
95        MN     UURX                  R\                  l        UR%                  SW5        U(       d  G[
        GR                  " SX5        gYU R                  GR                  UUSZGR                  U5      S[9nU R                  GR                  U5      nG[
        GR                  GR                  S\R                  U5      5        UGR                  (       a=  G[
        GR                  GR                  S]R                  UR                  5      5        U$ G[        GR                  GR                  UR                  S^U R:                  S_9nG[         GR"                  " U R                  U GR$                  GR&                  5      nG[         GR(                  " UUS`R                  UR                  5      5      nG[
        GR                  GR                  SaR                  U5      5        U$ s  sn
n	f )bzUpdates an existing workstation configuration.

Args:
  args: argparse.Namespace, The arguments that this command was invoked
    with.

Returns:
  Workstation configuration that was updated.
r3   r4   r2   r5   )rb   rd   r6   rf   rh   r7   r9   rp   max_usable_workstationsTz<http_options.allowed_unauthenticated_cors_preflight_requestsFz*http_options.disable_localhost_replacementrv   zhost.gce_instance.machine_typer   r    z&host.gce_instance.reservation_affinityrw   z!host.gce_instance.service_accountry   z(host.gce_instance.service_account_scopesr{   zhost.gce_instance.tagsr}   zhost.gce_instance.pool_sizer~   z-host.gce_instance.disable_public_ip_addressesr   z#host.gce_instance.boot_disk_size_gbr@   zhost.gce_instance.disable_sshr   r   r>   zJhost.gce_instance.confidential_instance_config.enable_confidential_computer   r   rn   enable_tcp_connectionsr   z.host.gce_instance.enable_nested_virtualizationz$host.gce_instance.startup_script_urir   z=host.gce_instance.shielded_instance_config.enable_secure_bootr   z6host.gce_instance.shielded_instance_config.enable_vtpmr   zFhost.gce_instance.shielded_instance_config.enable_integrity_monitoringr   r   rA   zhost.gce_instance.acceleratorsr   rD   rE   r   zhost.gce_instance.boost_configsr   r   zcontainer.imager   rP   r   zcontainer.commandr   zcontainer.argsr   zcontainer.envr   zcontainer.working_dirr   zcontainer.run_as_userr   r   )rI   rK   r   persistent_directoriesr   rF   )rI   rJ   rM   r   zhost.gce_instance.vm_tagszNo fields were specified.N,)rb   rS   
updateMaskzUpdate request issued for: [{}]rT   rU   rV   rX   zUpdated configuration [{}].)rY   rZ   r[   r\   r^   r_   r`   r]   r(   ra   rb   LWorkstationsProjectsLocationsWorkstationClustersWorkstationConfigsGetRequestr*   Getr   rc   rd   re   r   rf   rg   ri   rj   rk   rl   rh   rm   rp   rq   r&   r	   r%   r
   r   r   r   r   r   r   0disallow_unauthenticated_cors_preflight_requestsenable_localhost_replacementr   r   rr   rs   rt   ru   rv   r   r   r   r   r   r   r   r   rw   rx   ry   rz   r{   r|   r}   r   r~   r   r   r   IsKnownAndSpecifiedr@   r   r   r   r   r   r   r   r   r   rn   ro   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   errorNWorkstationsProjectsLocationsWorkstationClustersWorkstationConfigsPatchRequestjoinPatchr   r   r   r   r   r   r   r   r'   r   r   )r+   r   r   r4   r   rZ   get_req
old_configupdate_maskr   r8   r   gce_shielded_instance_configr   r   r   r   r   r   r   
update_reqr   r   r   r   s                            r-   UpdateConfigs.Updatei  s    --&&,,.;;=Kyy;[IOOH !!"89!<I]],,.FKmmhh i G ""7+JK'' <<(9(9:f()**#ll4+?+?@f*+!!mm55AA
 !'s}}T[['A B	  !C*# mm--99LL M  !C	  B fm "788%)%G%Gf"23;??4+<+<+?+?@@==446f		;	;IMFJ	
 
	>	>INFJ	
 
	*	*9>6GH		+	+9=6GH --$$&FK"mm779FKK'',0,=,=fkk)9:;?? 


1
2
2%)]]%F%F%H"11779*#,,--33YY% 	($((-	
 : ' kk1 AB)**/3/C/Cfkk,<=011595P5Pfkk2CD''%)%6%6fkk"12$$)-fkk&67566

*
* kk6 HI())/3/B/Bfkk,>? 344+/+A+Afkk(89 233/3/D/D+Dfkk(89566
--
5
5(,(H(H 6  kk8
 
V ,-- $ 7 7f-.@AA

5
5 . AB122%)%A%Af"23011)-)D)D%Df"23677

+
+ kk8 IJ;??4+<+<+?+?@@		 	 373J3J0AB $(==#J#J#L .//6:6O6O"3
I ((040B0B"-
B 788

,
, #< 
R
 	% KK2 *++t/?/?0 0 --
#
#((** $ l .:kk*9:;?? 


>
*
*++,#}}88:&,,.JC&&#1D*D))%&89&':; * 1 - ,,+/==+L+L+N(*+ABHHJ
2299__ .*..s3 K - !4 (*:*>*>s*CUK1 /2 	,,334HI7 ,8 :;((f***!]]446$**,JC
$c
1 -""#56	 +
 ) }}..0F011#::f*+			6	7	7,00

)
) !  *++,,!%!7!7f,-())"11f)*((''002g**002*#$$++MM##,,?? @ 	
 3 %f)/00$($>$>f!01/00#'#=#=f 01''4+;+;N+K+K%/%E%Ef"--(,(I(I(K'L$ --
1
1&&1B1B 2  ""1%+
 12			.	/	/%/%E%Ef"--(,(I(I(K'L$
--
1
1r$2I2I 2  ""1%+
 12	""**668h**,*#%%,,MM%%11DD E 	
 - (0fkk$45	ii+,mm 88K( n J
 ]]  ,FJJ6==iHI{{{	jj9@@MNm$$66?$$ 7 K
 ((t{{@@F ^^077DF
 JJ299)DEMy	 s   29AN;
)r*   r&   r'   r(   N)__name__
__module____qualname____firstlineno____doc__r
   r   BETAr.   r   r
  __static_attributes__ r0   r-   r"   r"   U   s&    <#'#4#4#9#9 GR^r0   r"   )r  
__future__r   r   r   r^   googlecloudsdk.api_lib.utilr   (googlecloudsdk.api_lib.workstations.utilr   r   r	   googlecloudsdk.callioper
   googlecloudsdk.corer   r   rk   r   r   r   r"   r  r0   r-   <module>r     s    0 &  ' 	 . F F @ ( # ) 

 	U 	V 	Y 	^ 	W 	b 	Y 	X 	V 	Y 	YA"J !&$@1   8 r	 r	r0   