
    P                        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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S8S jrS rS rS rS rS rS rS rS r\R8                  " 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'S8S% jr(S8S& jr)S' r*S( r+S) r,S* r-S+ r.S, r/S- r0S. r1S/ r2S0 r3S1 r4S2\Rj                  S3\Rl                  S4\Rn                  S\Rp                  4S5 jr9S2\Rj                  S3\Rl                  S4\Rn                  S\Rp                  4S6 jr:S2\Rj                  S3\Rl                  S4\Rn                  S\Rp                  4S7 jr;g)9zJHelper functions for constructing and validating AlloyDB cluster requests.    )absolute_import)division)unicode_literalsN)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_ConstructAutomatedBackupPolicyr4       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_policyr1   r2   s        r3   1_ConstructAutomatedBackupPolicyForCreateSecondaryr9   B   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;#* /@,%)[["	  r5   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_configr1   r2   s         r3    _ConstructContinuousBackupConfigrC   p   s    -DDF%%d3	""'+$$$-',$##	0033 / **
5DDF' (99;#* 0A-	!!r5   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)+ClusterrH   UserPasswordrF   initialUserr   r'   r)   r*   r+   r   r   r4   automatedBackupPolicyr=   r>    continuous_backup_encryption_keyrC   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/   clusterr1   r2   configure_maintenance_windowconfigure_deny_periods          r3   #_ConstructClusterForCreateRequestGArm      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',	.r5   c                 B    UR                   b  UR                   U l        U $ N)#automated_backup_enforced_retentionenforcedRetention)r0   r/   s     r3   ,_AddEnforcedRetentionToAutomatedBackupPolicyrr      s"    	--9&*&N&NM#	r5   c                 B    UR                   b  UR                   U l        U $ ro   )$continuous_backup_enforced_retentionrq   )rB   r/   s     r3   -_AddEnforcedRetentionToContinuousBackupConfigru      s)     
..:11 . 
"!r5   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.)rm   rr   rO   ru   rQ   r.   r/   rj   s      r3   %_ConstructClusterForCreateRequestBetarx      sI    /0@G'"N##T#' 4

(
($ 
  
.r5   c                 H    [         R                  " U5        [        X5      nU$ )z;Returns the cluster for alpha create request based on args.)r   ValidateConnectivityFlagsrx   rw   s      r3   &_ConstructClusterForCreateRequestAlphar{      s     !!$'12BI'	.r5   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.rj   	clusterIdparent)rm   -AlloydbProjectsLocationsClustersCreateRequestrj   RelativeNamer.   location_refr/   rj   s       r3    ConstructCreateRequestFromArgsGAr      s<    /0@G'		G	G&&( 
H 
 r5   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.r}   )rx   r   rj   r   r   s       r3   "ConstructCreateRequestFromArgsBetar      s<    12BI'		G	G&&( 
H 
 r5   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.r}   )r{   r   rj   r   r   s       r3   #ConstructCreateRequestFromArgsAlphar     s<    23CJ'		G	G&&( 
H 
 r5   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   r5   r3   r   r     s/    %&#C.#Sr5   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)rj   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        r3   _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 @ 
 r5   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.rI   TrJ   )rL   rH   r   r'   r)   r*   r+   rR   rS   rT   rU   rV   rW   ri   rg   rh   )r.   r/   cluster_resourcer1   r2   s        r3   *_ConstructClusterResourceForRestoreRequestr   R  s    %--/!\\**40'(99;#* (9%	!!%5%C%C55 &D &" 
((!1!;!;t!;!L	YY!11&&00 
r5   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~   rj   r   restoreClusterRequest)r   r   .AlloydbProjectsLocationsClustersRestoreRequestr   RestoreClusterRequestr   r   rj   r.   r   r   r/   r   restore_sources         r3   !ConstructRestoreRequestFromArgsGAr   l  s     @ +
. 
	H	H&&(,BB%,,!/!A!ALL" C  
I 	
 	r5   c                     [        X5      nU$ r   r   r.   r/   r   s      r3   /_ConstructClusterResourceForRestoreRequestAlphar         ? 
r5   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~   rj   r   )r   r   r   rg   rL   rh   ri   r   r   r   r   r   r   r   rj   r   s         r3   $ConstructRestoreRequestFromArgsAlphar     s     E +
.
  //
$$.. 
	H	H&&(,BB%,,!/!A!A->>+::LL" C  
I 

 
r5   c                     [        X5      nU$ r   r   r   s      r3   ._ConstructClusterResourceForRestoreRequestBetar     r   r5   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   rj   r   s         r3   #ConstructRestoreRequestFromArgsBetar     s     D +
. 
	H	H&&(,BB%,,!/!A!A->>+::LL" C  
I 

 
r5   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.r8   z continuous_backup_config.enabledFrB   T)rA   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_policyre   )!rL   r   r   clear_automated_backupr4   rO   appendr=   rC   rQ   r>   rP   &clear_continuous_backup_encryption_keyextendmaintenance_window_anyrZ   r[   remove_deny_maintenance_periodr\   r]   r^   r_   r`   ra   rb   rc   rd   maintenance_versionr   GetValidatedMaintenanceVersion!maintenanceVersionSelectionPolicyre   rf   )r.   r/   rj   update_maskscontinuous_backup_update_masksupdate_maintenance_windowupdate_deny_periods          r3   )_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+,		r5   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   rp   rO   r4   r   rr   rt   rQ   rC   ru   r.   r/   rj   r   s       r3   +_ConstructClusterAndMaskForPatchRequestBetar   !  s    C' 
--9$$,&E
'g# DE4))4	
 !
 
..:%%-'G
(g$ EF5**D	
 " 
	r5   c                 "    [        X5      u  p#X#4$ )r   )r   r   s       r3   ,_ConstructClusterAndMaskForPatchRequestAlphar   @  s    E' 
	r5   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   MaintenanceWindowrZ   dayGoogleTypeTimeOfDayr[   	startTime)r.   r/   rA   maintenance_windows       r3   ra   ra   H  s^    ++I'99;66!1!E!E(( "F " 	r5   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   DenyMaintenancePeriodr\   	startDater]   endDater^   time)r.   r/   rA   deny_periods       r3   rc   rc   U  sR    33I 668+AA+==+66+
r5   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.,namerj   
updateMask)r   ,AlloydbProjectsLocationsClustersPatchRequestr   joinr.   r   r/   rj   r   s        r3   ConstructPatchRequestFromArgsGAr   a  sH    C' 
	F	F##%,' 
G 
 r5   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        r3   !ConstructPatchRequestFromArgsBetar   m  sH    E' 
	F	F##%,' 
G 
 r5   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       r3   ConstructUpgradeRequestFromArgsr  y  sF    ,BBD$(LL!		H	H##%3 
I 
 r5   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   )rL   SecondaryConfigprimary_clustersecondaryConfigr   r'   r)   r*   r+   r=   r>   rP   rC   rQ   r7   r   r%   r   r9   rO   rR   rS   rT   ri   rg   rh   )r.   r/   rj   r1   r2   s        r3   ,_ConstructClusterForCreateSecondaryRequestGAr    s,   $$&',<<-- = ' **40'(99;#* 0 ##/		4	4		.	.%E&G"
 "".		+	+		%	%		*	* 	:	
 ! 
!!,::55 ; G 
YY((&&00GL 
.r5   c                     [        X5      nU$ ro   )r  rw   s      r3   ._ConstructClusterForCreateSecondaryRequestBetar    s    89IP'	.r5   c                     [        X5      nU$ ro   )r  rw   s      r3   /_ConstructClusterForCreateSecondaryRequestAlphar    s    :' 
.r5   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.r}   )r  6AlloydbProjectsLocationsClustersCreatesecondaryRequestrj   r   r.   r   r/   rj   s       r3   )ConstructCreatesecondaryRequestFromArgsGAr    s>     99IP'MMLL))+ N r5   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.r}   )r  r  rj   r   r  s       r3   +ConstructCreatesecondaryRequestFromArgsBetar    sB    
 ;'
 MMLL))+ N r5   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.r}   )r  r  rj   r   r  s       r3   ,ConstructCreatesecondaryRequestFromArgsAlphar    sB    
 <'
 MMLL))+ N r5   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       r3   ConstructExportRequestFromArgsr:    sq   +@@B$(MM!	XX))+ + ;?:K:K++7 ++: 	 ++; 	 ++: xx))+ + :>9I9I++6{{7;{{7H7H7M--4!! ++> 	$$ ++@ +;*I*I*K'.2ll''+		G	G##%1 
H 
 r5   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  rG   r6  gcsUrir  CsvImportOptionscsvImportOptionstablecolumnsr/  r#  r$  r%  r&  r'  r(  r)  SqlImportOptionssqlImportOptions-AlloydbProjectsLocationsClustersImportRequestr   )r.   r   r/   import_cluster_requests       r3   ConstructImportRequestFromArgsrG    s   +@@B$(MM! $		"&,,	XX))+ + 59JJ++1||8<8J8J38O--5 ++: 	 ++; 	 ++: xx))+ + 
	G	G##%1 
H 
 r5   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)RestoreFromCloudSQLRequestr{   rj   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       r3   ,ConstructMigrateCloudSqlRequestFromArgsAlpharV  6  s      /IIK&L'# )-%..0 3  33?    33>  33; 
	T	T&&(!: 
U 
 r5   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.
rI  )rK  rx   rj   r~   rL  rM  rN  rO  rP  rQ  rR  r   rS  r   rT  s       r3   +ConstructMigrateCloudSqlRequestFromArgsBetarX  ^  s      /IIK&K'# )-%..0 3  33?    33>  33; 
	T	T&&(!: 
U 
 r5   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.
rI  )rK  rm   rj   r~   rL  rM  rN  rO  rP  rQ  rR  r   rS  r   rT  s       r3   )ConstructMigrateCloudSqlRequestFromArgsGArZ    s      /IIK&I'# )-%..0 3  33?    33>  33; 
	T	T&&(!: 
U 
 r5   )F)<r   
__future__r   r   r   argparsedataclassestypestypingr   apitools.base.protorpcliter   "googlecloudsdk.command_lib.alloydbr   googlecloudsdk.corer	   r
   r4   r9   rC   rm   rr   ru   rx   r{   r   r   r   	dataclassr   r   r   r   r   r   r   r   r   r   r   ra   rc   r   r   r  r  r  r  r  r  r  r:  rG  
ModuleTypeResource	NamespaceMessagerV  rX  rZ  r   r5   r3   <module>rh     s   Q &  '     / 4 * )D+!\"4:z" d#    $ 7 	7t44:6Nb>
			*Z$$$N@%&&%$$% 

% 	%P%&&%$$% 

% 	%P%&&%$$% 

% 	%r5   