
                            S 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 rS	 rS5S
 jrS rS rS rS rS rS rS rS r\R0                  " SS9 " S S5      5       rS\4S jrS rS rS rS rS rS r S r!S  r"S! r#S5S" jr$S5S# jr%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/\Rb                  S0\Rd                  S1\Rf                  S\Rh                  4S2 jr5S/\Rb                  S0\Rd                  S1\Rf                  S\Rh                  4S3 jr6S/\Rb                  S0\Rd                  S1\Rf                  S\Rh                  4S4 jr7g)6zJHelper functions for constructing and validating AlloyDB cluster requests.    N)Any)messages)flags)
properties)	resourcesc                    U R                  5       nUR                  (       a	  SUl        U$ UR                  (       Ga+  SUl        U R	                  UR                  UR
                  S9Ul        UR                  (       a  U R                  UR                  S9Ul	        O>UR                  (       a-  U R                  SR                  UR                  5      S9Ul        UR                  (       a   SR                  UR                  5      Ul        [         R"                  " U[         R$                  " 5       S9nU(       a  U R'                  5       nX4l        XBl        UR,                  Ul        U$ )2Returns the automated backup policy based on args.FT
daysOfWeek
startTimescount{}sretentionPeriodflag_overrides)AutomatedBackupPolicydisable_automated_backupenabledautomated_backup_days_of_weekWeeklyScheduleautomated_backup_start_timesweeklySchedule automated_backup_retention_countQuantityBasedRetentionquantityBasedRetention!automated_backup_retention_periodTimeBasedRetentionformattimeBasedRetentionautomated_backup_windowbackupWindowr   GetAndValidateKmsKeyName"GetAutomatedBackupKmsFlagOverridesEncryptionConfig
kmsKeyNameencryptionConfigregionlocation)alloydb_messagesargsbackup_policykms_keyencryption_configs        8lib/googlecloudsdk/command_lib/alloydb/cluster_helper.py_ConstructAutomatedBackupPolicyr1      sA   "88:-	""!M6 
5 ))) M#3#B#B5544 $C $M  ,,

1
199 2  *
 
	/	/)9)L)L,,t'M'MN *M *m& ###(<<0L0L#Mm ,,UEEGG *;;=%,"'8$![[M	    c                    U R                  5       nUR                  (       a  SUl        OUR                  SL a	  SUl        U$ UR                  (       a   SR	                  UR                  5      Ul        UR                  (       a:  UR                  (       a)  U R                  UR                  UR                  S9Ul	        UR                  (       a  U R                  UR                  S9Ul        O>UR                  (       a-  U R                  SR	                  UR                  5      S9Ul        [         R"                  " U[         R$                  " 5       S9nU(       a  U R'                  5       nX4l        XBl        UR,                  Ul        U$ )r	   TFr   r
   r   r   r   )r   enable_automated_backupr   r"   r    r#   r   r   r   r   r   r   r   r   r   r!   r   r$   r%   r&   r'   r(   r)   r*   )r+   r,   automated_backup_policyr.   r/   s        r0   1_ConstructAutomatedBackupPolicyForCreateSecondaryr6   ?   s]   ,BBD	!!&*###u,&+#""	!!+0<<$$,( 
''D,M,M-=-L-L5544 .M .*
 
**//77 	0 	
 2
 --++!LL)O)OP 	, 	
 . **
5CCE' (99;#* /@,%)[["	  r2   c                    U R                  5       n[        R                  " X5        UR                  (       a  SUl        OUR                  SL a	  SUl        U$ UR
                  (       a  UR
                  Ul        [        R                  " U[        R                  " 5       S9nU(       a  U R                  5       nXEl
        XSl        U$ )z3Returns the continuous backup config based on args.TFr   )ContinuousBackupConfigr   ValidateContinuousBackupFlagsenable_continuous_backupr   &continuous_backup_recovery_window_daysrecoveryWindowDaysr$   #GetContinuousBackupKmsFlagOverridesr&   r'   r(   )r+   r,   updatecontinuous_backup_configr.   r/   s         r0    _ConstructContinuousBackupConfigr@   m   s    -DDF%%d3	""'+$$$-',$##	0033 / **
5DDF' (99;#* 0A-	!!r2   c                    U R                  5       nUR                  Ul        U R                  UR                  SS9Ul        [
        R                  " U5      nU(       a  U R                  5       nX4l        XBl	        UR                  (       d  UR                  (       a  [        X5      Ul        UR                  c"  UR                  (       d  UR                   (       a  [#        X5      Ul        UR&                  (       a)  U R)                  UR                  UR&                  S9Ul        UR,                  (       a  U R/                  SS9Ul        UR2                  Ul        UR6                  =(       d    UR8                  nUR:                  =(       d    UR<                  =(       d    UR>                  nU(       d  U(       a  U RA                  5       Ul!        U(       a  [E        X5      URB                  l#        U(       a  [I        X5      URB                  l%        URL                  Ul'        [
        RP                  " XR                   RR                  5      Ul*        U$ )z8Returns the cluster for GA create request based on args.postgres)passworduser)networkallocatedIpRangeT
pscEnabled)+ClusterrE   UserPasswordrC   initialUserr   r$   r&   r'   r(   r   r   r1   automatedBackupPolicyr:   r;    continuous_backup_encryption_keyr@   continuousBackupConfigallocated_ip_range_nameNetworkConfignetworkConfigenable_private_service_connect	PscConfig	pscConfigdatabase_versiondatabaseVersionmaintenance_window_daymaintenance_window_hour"deny_maintenance_period_start_date deny_maintenance_period_end_datedeny_maintenance_period_timeMaintenanceUpdatePolicymaintenanceUpdatePolicy_ConstructMaintenanceWindowsmaintenanceWindows_ConstructDenyPeriodsdenyMaintenancePeriodssubscription_typesubscriptionTypeGetTagsFromArgs	TagsValuetags)r+   r,   clusterr.   r/   configure_maintenance_windowconfigure_deny_periods          r0   #_ConstructClusterForCreateRequestGArj      s   $$&'LL'/(55}}: 6 ' **40'(99;#* 0	""d&H&H$C%G!
 ##/		4	4		.	.%E&G" 
!!,::t/K/K ; G 
(((22d2CG 11' !!AT%A%A  -- +		.	.+		*	* 
 "%:&6&N&N&PG#!$%5< ##6 .5 ##: "33'&&t-E-E-O-OP',	.r2   c                 B    UR                   b  UR                   U l        U $ N)#automated_backup_enforced_retentionenforcedRetention)r-   r,   s     r0   ,_AddEnforcedRetentionToAutomatedBackupPolicyro      s"    	--9&*&N&NM#	r2   c                 B    UR                   b  UR                   U l        U $ rl   )$continuous_backup_enforced_retentionrn   )r?   r,   s     r0   -_AddEnforcedRetentionToContinuousBackupConfigrr      s)     
..:11 . 
"!r2   c                     [        X5      n[        UR                  U5      Ul        [        UR                  U5      Ul        U$ )z:Returns the cluster for beta create request based on args.)rj   ro   rL   rr   rN   r+   r,   rg   s      r0   %_ConstructClusterForCreateRequestBetaru      sI    /0@G'"N##T#' 4

(
($ 
  
.r2   c                 H    [         R                  " U5        [        X5      nU$ )z;Returns the cluster for alpha create request based on args.)r   ValidateConnectivityFlagsru   rt   s      r0   &_ConstructClusterForCreateRequestAlpharx      s     !!$'12BI'	.r2   c                 j    [        X5      nU R                  UUR                  UR                  5       S9$ )z>Returns the cluster create request for GA track based on args.rg   	clusterIdparent)rj   -AlloydbProjectsLocationsClustersCreateRequestrg   RelativeNamer+   location_refr,   rg   s       r0    ConstructCreateRequestFromArgsGAr      s<    /0@G'		G	G&&( 
H 
 r2   c                 j    [        X5      nU R                  UUR                  UR                  5       S9$ )z@Returns the cluster create request for beta track based on args.rz   )ru   r}   rg   r~   r   s       r0   "ConstructCreateRequestFromArgsBetar      s<    12BI'		G	G&&( 
H 
 r2   c                 j    [        X5      nU R                  UUR                  UR                  5       S9$ )zAReturns the cluster create request for alpha track based on args.rz   )rx   r}   rg   r~   r   s       r0   #ConstructCreateRequestFromArgsAlphar      s<    23CJ'		G	G&&( 
H 
 r2   T)frozenc                   R    \ rS rSr% SrSr\\S'   Sr\\S'   Sr	\\S'   Sr
\\S'   Srg)	RestoreSourcei  zRestore source for a cluster.Nbackupbackup_dr_backupbackup_dr_pitrcontinuous_backup )__name__
__module____qualname____firstlineno____doc__r   r   __annotations__r   r   r   __static_attributes__r   r2   r0   r   r     s/    %&#C.#Sr2   r   returnc                 t   UR                   (       ax  UR                  SUR                   [        R                  R                  R
                  R                  UR                  S.S9n[        U R                  UR                  5       S9S9$ [        US5      (       a1  UR                  (       a   [        U R                  UR                  S9S9$ [        US5      (       aK  UR                  (       a:  [        U R                  UR                  UR                   R#                  S	5      S
9S9$ UR                  SUR$                  [        R                  R                  R
                  R                  UR                  S.S9n[        U R'                  UR                  5       UR                   R#                  S	5      S9S9$ )zDReturns the backup and continuous backup source for restore request.z"alloydb.projects.locations.backups)
projectsIdlocationsId)
collectionlineparams)
backupName)r   backupdr_backup)r   backupdr_data_sourcez%Y-%m-%dT%H:%M:%S.%fZ)
dataSourcepointInTime)r   z#alloydb.projects.locations.clusters)rg   r   )r   )r   Parser   VALUEScoreproject	GetOrFailr)   r   BackupSourcer~   hasattrr   BackupDrBackupSourcer   BackupDrPitrSourcepoint_in_timestrftimesource_clusterContinuousBackupSource)r+   resource_parserr,   
backup_refcluster_refs        r0   _ConstructRestoreSourcer     s    
[[ &&7[[$++0088BB;;
 ' J ,,!..0 - 
  T$%%$*>*>)>>'' ? 
  T)**t/H/H'::00**334KL ; 
   %%6"))..66@@ & + 
(??**,((112IJ @ 
 r2   c                    U R                  5       nUR                  Ul        [        R                  " U5      nU(       a  U R	                  5       nX4l        XBl        UR                  (       a  U R                  UR                  S9Ul	        UR                  (       a  U R                  SS9Ul        UR                  (       a/  [        R                  " XR                   R                  5      Ul        U$ )1Returns the cluster resource for restore request.rF   TrG   )rI   rE   r   r$   r&   r'   r(   rO   rP   rQ   rR   rS   rT   rf   rd   re   )r+   r,   cluster_resourcer.   r/   s        r0   *_ConstructClusterResourceForRestoreRequestr   O  s    %--/!\\**40'(99;#* (9%	!!%5%C%C55 &D &" 
((!1!;!;t!;!L	YY!11&&00 
r2   c           
          [        X5      n[        U UU5      nU R                  UR                  5       U R	                  UR
                  UR                  UR                  US9S9$ )z?Returns the cluster restore request for GA track based on args.)backupSourcecontinuousBackupSourcer{   rg   r|   restoreClusterRequest)r   r   .AlloydbProjectsLocationsClustersRestoreRequestr~   RestoreClusterRequestr   r   rg   r+   r   r   r,   r   restore_sources         r0   !ConstructRestoreRequestFromArgsGAr   i  s     @ +
. 
	H	H&&(,BB%,,!/!A!ALL" C  
I 	
 	r2   c                     [        X5      nU$ r   r   r+   r,   r   s      r0   /_ConstructClusterResourceForRestoreRequestAlphar         ? 
r2   c                 T   [        X5      n[        U UU5      n[        R                  " X0R                  R
                  5      Ul        U R                  UR                  5       U R                  UR                  UR                  UR                  UR                  UR                  US9S9$ )zBReturns the cluster restore request for Alpha track based on args.r   r   backupdrBackupSourcebackupdrPitrSourcer{   rg   r   )r   r   r   rd   rI   re   rf   r   r~   r   r   r   r   r   rg   r   s         r0   $ConstructRestoreRequestFromArgsAlphar     s     E +
.
  //
$$.. 
	H	H&&(,BB%,,!/!A!A->>+::LL" C  
I 

 
r2   c                     [        X5      nU$ r   r   r   s      r0   ._ConstructClusterResourceForRestoreRequestBetar     r   r2   c                     [        X5      n[        U UU5      nU R                  UR                  5       U R	                  UR
                  UR                  UR                  UR                  UR                  US9S9$ )zAReturns the cluster restore request for Beta track based on args.r   r   )
r   r   r   r~   r   r   r   r   r   rg   r   s         r0   #ConstructRestoreRequestFromArgsBetar     s     D +
. 
	H	H&&(,BB%,,!/!A!A->>+::LL" C  
I 

 
r2   c                 J   U R                  5       n/ n/ nUR                  (       d"  UR                  (       d  UR                  (       a!  [	        X5      Ul        UR                  S5        UR                  (       a  UR                  S5        O2UR                  SL a#  UR                  S5        [        XSS9Ul	        X#4$ UR                  (       a  UR                  S5        UR                  (       d  UR                  (       a  UR                  S5        UR                  U5        U(       a  [        XSS9Ul	        UR                  =(       d    UR                  =(       d    UR                   nUR"                  =(       d2    UR$                  =(       d    UR&                  =(       d    UR(                  nU(       d  U(       a  U R+                  5       Ul        U(       a*  [/        XSS9UR,                  l        UR                  S	5        U(       a*  [3        XSS9UR,                  l        UR                  S
5        UR6                  (       a,  [8        R:                  " X5      Ul        UR                  S5        UR>                  b"  UR>                  Ul         UR                  S5        X#4$ )/Returns the cluster resource for patch request.r5   z continuous_backup_config.enabledFr?   T)r>   z-continuous_backup_config.recovery_window_daysz*continuous_backup_config.encryption_configz-maintenance_update_policy.maintenance_windowsz2maintenance_update_policy.deny_maintenance_periods$maintenance_version_selection_policyrb   )!rI   r   r   clear_automated_backupr1   rL   appendr:   r@   rN   r;   rM   &clear_continuous_backup_encryption_keyextendmaintenance_window_anyrW   rX   remove_deny_maintenance_periodrY   rZ   r[   r\   r]   r^   r_   r`   ra   maintenance_versionr   GetValidatedMaintenanceVersion!maintenanceVersionSelectionPolicyrb   rc   )r+   r,   rg   update_maskscontinuous_backup_update_masksupdate_maintenance_windowupdate_deny_periods          r0   )_ConstructClusterAndMaskForPatchRequestGAr     sO   $$&',#%  ##		+	+		$	$$C%G! 12	"""))*LM$$- 23%Et&G"   	00"))7 ++		4	4"))4 45#%Et&G"
 !! &		$	$&		%	%  )) +		0	0+		.	.+ 
	*	*	  "4&6&N&N&PG#$%5DI ##6 GH.TB ##: LM	,,TD - >?	'#55G+,		r2   c                 z   [        X5      u  p#UR                  bI  UR                  c  [        X5      Ul        UR	                  S5        [        UR                  U5      Ul        UR                  bI  UR                  c  [        X5      Ul        UR	                  S5        [        UR                  U5      Ul        X#4$ )r   z*automated_backup_policy.enforced_retentionz+continuous_backup_config.enforced_retention)
r   rm   rL   r1   r   ro   rq   rN   r@   rr   r+   r,   rg   r   s       r0   +_ConstructClusterAndMaskForPatchRequestBetar     s    C' 
--9$$,&E
'g# DE4))4	
 !
 
..:%%-'G
(g$ EF5**D	
 " 
	r2   c                 "    [        X5      u  p#X#4$ )r   )r   r   s       r0   ,_ConstructClusterAndMaskForPatchRequestAlphar   =  s    E' 
	r2   c                     U(       a  UR                   (       a  / $ U R                  5       nUR                  Ul        U R	                  UR
                  S9Ul        U/$ )z.Returns the maintenance windows based on args.)hours)r   MaintenanceWindowrW   dayGoogleTypeTimeOfDayrX   	startTime)r+   r,   r>   maintenance_windows       r0   r^   r^   E  s^    ++I'99;66!1!E!E(( "F " 	r2   c                     U(       a  UR                   (       a  / $ U R                  5       nUR                  Ul        UR                  Ul        UR                  Ul        U/$ )z'Returns the deny periods based on args.)r   DenyMaintenancePeriodrY   	startDaterZ   endDater[   time)r+   r,   r>   deny_periods       r0   r`   r`   R  sR    33I 668+AA+==+66+
r2   c                 x    [        X5      u  p4U R                  UR                  5       USR                  U5      S9$ )zEReturns the cluster patch request for GA release track based on args.,namerg   
updateMask)r   ,AlloydbProjectsLocationsClustersPatchRequestr~   joinr+   r   r,   rg   r   s        r0   ConstructPatchRequestFromArgsGAr   ^  sH    C' 
	F	F##%,' 
G 
 r2   c                 x    [        X5      u  p4U R                  UR                  5       USR                  U5      S9$ )zGReturns the cluster patch request for Beta release track based on args.r   r   )r   r   r~   r   r   s        r0   !ConstructPatchRequestFromArgsBetar   j  sH    E' 
	F	F##%,' 
G 
 r2   c                     U R                  5       nUR                  Ul        U R                  UR                  5       US9$ )zJReturns the cluster upgrade request for Alpha release track based on args.)r   upgradeClusterRequest)UpgradeClusterRequestversion.AlloydbProjectsLocationsClustersUpgradeRequestr~   )r+   r   r,   upgrade_cluster_requests       r0   ConstructUpgradeRequestFromArgsr  v  sF    ,BBD$(LL!		H	H##%3 
I 
 r2   c                    U R                  5       nU R                  UR                  S9Ul        [        R
                  " U5      nU(       a  U R                  5       nX4l        XBl        UR                  c"  UR                  (       d  UR                  (       a  [        X5      Ul        UR                  c3  UR                  (       d"  UR                   (       d  UR"                  (       a  [%        X5      Ul        UR(                  (       a  U R+                  UR(                  S9Ul        UR.                  (       a/  [        R0                  " XR                   R2                  5      Ul        U$ )zBReturns the cluster for GA create-secondary request based on args.)primaryClusterNamer   )rI   SecondaryConfigprimary_clustersecondaryConfigr   r$   r&   r'   r(   r:   r;   rM   r@   rN   r4   r   r"   r   r6   rL   rO   rP   rQ   rf   rd   re   )r+   r,   rg   r.   r/   s        r0   ,_ConstructClusterForCreateSecondaryRequestGAr
    s,   $$&',<<-- = ' **40'(99;#* 0 ##/		4	4		.	.%E&G"
 "".		+	+		%	%		*	* 	:	
 ! 
!!,::55 ; G 
YY((&&00GL 
.r2   c                     [        X5      nU$ rl   )r
  rt   s      r0   ._ConstructClusterForCreateSecondaryRequestBetar    s    89IP'	.r2   c                     [        X5      nU$ rl   )r  rt   s      r0   /_ConstructClusterForCreateSecondaryRequestAlphar    s    :' 
.r2   c                 j    [        X5      nU R                  UUR                  UR                  5       S9$ )zPReturns the cluster create-secondary request For GA release track based on args.rz   )r
  6AlloydbProjectsLocationsClustersCreatesecondaryRequestrg   r~   r+   r   r,   rg   s       r0   )ConstructCreatesecondaryRequestFromArgsGAr    s>     99IP'MMLL))+ N r2   c                 j    [        X5      nU R                  UUR                  UR                  5       S9$ )zRReturns the cluster create-secondary request for Beta release track based on args.rz   )r  r  rg   r~   r  s       r0   +ConstructCreatesecondaryRequestFromArgsBetar    sB    
 ;'
 MMLL))+ N r2   c                 j    [        X5      nU R                  UUR                  UR                  5       S9$ )zSReturns the cluster create-secondary request for Alpha release track based on args.rz   )r  r  rg   r~   r  s       r0   ,ConstructCreatesecondaryRequestFromArgsAlphar    sB    
 <'
 MMLL))+ N r2   c                 j   U R                  5       nUR                  Ul        UR                  (       a  U R                  5       Ul        UR
                  UR                  l        UR                  UR                  l        UR                  UR                  l
        UR                  UR                  l        OUR                  (       a  U R                  5       Ul        UR                   UR                  l        UR$                  (       a*  UR$                  R'                  S5      UR                  l        UR(                  UR                  l        UR,                  UR                  l        U R1                  5       Ul        UR4                  UR2                  l        U R9                  UR;                  5       US9$ )z1Returns the cluster export request based on args.r   )r   exportClusterRequest)ExportClusterRequestdatabasecsvCsvExportOptionscsvExportOptionsselect_queryselectQueryfield_delimiterfieldDelimiterescape_characterescapeCharacterquote_characterquoteCharactersqlSqlExportOptionssqlExportOptionsschema_only
schemaOnlytablessplitclean_target_objectscleanTargetObjectsif_exist_target_objectsifExistTargetObjectsGcsDestinationgcsDestinationgcs_uriuri-AlloydbProjectsLocationsClustersExportRequestr~   )r+   r   r,   export_cluster_requests       r0   ConstructExportRequestFromArgsr7    sq   +@@B$(MM!	XX))+ + ;?:K:K++7 ++: 	 ++; 	 ++: xx))+ + :>9I9I++6{{7;{{7H7H7M--4!! ++> 	$$ ++@ +;*I*I*K'.2ll''+		G	G##%1 
H 
 r2   c                    U R                  5       nUR                  Ul        UR                  Ul        UR                  Ul        UR
                  (       a  U R                  5       Ul        UR                  UR                  l        UR                  (       a*  UR                  R                  S5      UR                  l	        UR                  UR                  l        UR                  UR                  l        UR                  UR                  l        O&UR"                  (       a  U R%                  5       Ul        U R)                  UR+                  5       US9$ )z1Returns the cluster import request based on args.r   )r   importClusterRequest)ImportClusterRequestr  rD   r3  gcsUrir  CsvImportOptionscsvImportOptionstablecolumnsr,  r   r!  r"  r#  r$  r%  r&  SqlImportOptionssqlImportOptions-AlloydbProjectsLocationsClustersImportRequestr~   )r+   r   r,   import_cluster_requests       r0   ConstructImportRequestFromArgsrD    s   +@@B$(MM! $		"&,,	XX))+ + 59JJ++1||8<8J8J38O--5 ++: 	 ++; 	 ++: xx))+ + 
	G	G##%1 
H 
 r2   r+   r   r,   c                 l   U R                  5       n[        X5      Ul        UR                  Ul        U R	                  5       Ul        UR                  UR
                  l        UR                  UR
                  l	        UR                  UR
                  l        U R                  UR                  5       US9$ )ae  Constructs the Migrate Cloud Sql request for Alpha release track.

Args:
  alloydb_messages: The AlloyDB messages module.
  location_ref: The location reference for the request.
  args: An object that contains the values for the arguments specified in the
    .Args() method.

Returns:
  The Migrate Cloud Sql request based on args for Alpha release track.
r|   restoreFromCloudSQLRequest)RestoreFromCloudSQLRequestrx   rg   r{   CloudSQLBackupRunSourcecloudsqlBackupRunSourcecloud_sql_backup_idbackupRunIdcloud_sql_instance_id
instanceIdcloud_sql_project_idr   :AlloydbProjectsLocationsClustersRestoreFromCloudSQLRequestr~   r+   r   r,   migrate_cloud_sql_requests       r0   ,ConstructMigrateCloudSqlRequestFromArgsAlpharS  3  s      /IIK&L'# )-%..0 3  33?    33>  33; 
	T	T&&(!: 
U 
 r2   c                 l   U R                  5       n[        X5      Ul        UR                  Ul        U R	                  5       Ul        UR                  UR
                  l        UR                  UR
                  l	        UR                  UR
                  l        U R                  UR                  5       US9$ )ac  Constructs the Migrate Cloud Sql request for Beta release track.

Args:
  alloydb_messages: The AlloyDB messages module.
  location_ref: The location reference for the request.
  args: An object that contains the values for the arguments specified in the
    .Args() method.

Returns:
  The Migrate Cloud Sql request based on args for Beta release track.
rF  )rH  ru   rg   r{   rI  rJ  rK  rL  rM  rN  rO  r   rP  r~   rQ  s       r0   +ConstructMigrateCloudSqlRequestFromArgsBetarU  [  s      /IIK&K'# )-%..0 3  33?    33>  33; 
	T	T&&(!: 
U 
 r2   c                 l   U R                  5       n[        X5      Ul        UR                  Ul        U R	                  5       Ul        UR                  UR
                  l        UR                  UR
                  l	        UR                  UR
                  l        U R                  UR                  5       US9$ )a_  Constructs the Migrate Cloud Sql request for GA release track.

Args:
  alloydb_messages: The AlloyDB messages module.
  location_ref: The location reference for the request.
  args: An object that contains the values for the arguments specified in the
    .Args() method.

Returns:
  The Migrate Cloud Sql request based on args for GA release track.
rF  )rH  rj   rg   r{   rI  rJ  rK  rL  rM  rN  rO  r   rP  r~   rQ  s       r0   )ConstructMigrateCloudSqlRequestFromArgsGArW    s      /IIK&I'# )-%..0 3  33?    33>  33; 
	T	T&&(!: 
U 
 r2   )F)8r   argparsedataclassestypestypingr   apitools.base.protorpcliter   "googlecloudsdk.command_lib.alloydbr   googlecloudsdk.corer   r   r1   r6   r@   rj   ro   rr   ru   rx   r   r   r   	dataclassr   r   r   r   r   r   r   r   r   r   r   r^   r`   r   r   r  r
  r  r  r  r  r  r7  rD  
ModuleTypeResource	NamespaceMessagerS  rU  rW  r   r2   r0   <module>rd     s   Q     / 4 * )D+!\"4:z" d#    $ 7 	7t44:6Nb>
			*Z$$$N@%&&%$$% 

% 	%P%&&%$$% 

% 	%P%&&%$$% 

% 	%r2   