
    N                        S r SSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r
  SSKJr  SSKJr  SSKJr  SS	KJr  SSKJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSK r Sr!SS0r"S r#S r$S r%S r&\RN                  \RP                  " \RR                  RT                  5       " S S\RV                  5      5       5       r,\RP                  " \RR                  RZ                  5      \RN                   " S S\RV                  5      5       5       r.\RP                  " \RR                  R^                  5      \RN                   " S S\RV                  5      5       5       r0g) !Creates a new Cloud SQL instance.    )absolute_import)division)unicode_literals)
exceptions)api_util)
operations)validate)base)resource_args)flags)	instances)labels_util)log)
properties)resource_lex)resource_propertyNi  EXAMPLESa          To create a MySQL 8.0 instance with ID ``prod-instance'' that has 2
        CPUs, 4 GB of RAM, and is in the region ``us-central1'' (a zone will be
        auto-assigned), where the 'root' user has its password set to
        ``password123'', run:

          $ {command} prod-instance --database-version=MYSQL_8_0 --cpu=2 --memory=4GB --region=us-central1 --root-password=password123

        To create a Postgres 15 instance with ID ``prod-instance'' that has 2
        CPUs, 8 GiB of RAM, and is in the zone ``us-central1-a'', where the
        'postgres' user has its password set to ``password123'', run:

          $ {command} prod-instance --database-version=POSTGRES_15 --cpu=2 --memory=8GiB --zone=us-central1-a --root-password=password123

        To create a SQL Server 2022 Express instance with ID ``prod-instance''
        that has 2 CPUs, 3840MiB of RAM, and is in the zone ``us-central1-a'',
        where the 'sqlserver' user has its password set to ``password123'',
        run:

          $ {command} prod-instance --database-version=SQLSERVER_2022_EXPRESS --cpu=2 --memory=3840MiB --zone=us-central1-a --root-password=password123
        c                 V   [         R                  R                  U 5        U R                  R	                  [
        R                  " 5       5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U SS9  [
        R                  " U 5        [
        R                   " U 5        [
        R"                  " U 5        [
        R$                  " U SS9  [
        R&                  " U 5        [
        R(                  " U 5        [
        R*                  " U 5        U R-                  S[.        R0                  " 5       SS9  [
        R2                  " U 5        [
        R4                  " U 5        [
        R6                  " U 5        [
        R8                  " U 5        [
        R:                  " U 5        [
        R<                  " U 5        [
        R>                  " U SS9  [
        R@                  " U 5        [
        RB                  " U SS9  [
        RD                  " U SS9  [
        RF                  " U 5        [
        RH                  " U 5        [
        RJ                  " U 5        [
        RL                  " U 5        [
        RN                  " U 5        [
        RP                  " U 5        [
        RR                  " U 5        [
        RT                  " U 5        [
        RV                  " U 5        [
        RX                  " U 5        [
        RZ                  " U 5        [
        R\                  " U 5        [
        R^                  " U 5        [
        R`                  " U 5        [
        Rb                  " U 5        [
        Rd                  " U 5        [
        Rf                  " U 5        [
        Rh                  " U 5        SS	S
SS.n[j        Rl                  " U SUS9  [
        Rn                  " U 5        [
        Rp                  " U 5        [
        Rr                  " U 5        [
        Rt                  " U 5        [
        Rv                  " U 5        [
        Rx                  " U 5        [
        Rz                  " U [|        5        [
        R~                  " U SS9  [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        U R                  5       n[
        R                  " U5        [
        R                  " U5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        [
        R                  " U 5        g)z>Declare flag and positional arguments for this command parser.F)allow_empty)show_negated_in_helpinstancezCloud SQL instance ID.)typehelpT--disk-encryption-keyz--disk-encryption-key-keyringz--disk-encryption-key-locationz--disk-encryption-key-project)zkms-keyzkms-keyringzkms-locationzkms-project)flag_overridesN)`r   
ASYNC_FLAGAddToParserdisplay_info	AddFormatr   GetInstanceListFormatAddActivationPolicyAddActiveDirectoryDomainAddAssignIpAddAuthorizedNetworksAddAvailabilityType	AddBackupAddBackupStartTimeAddBackupLocationAddCPUAddInstanceCollationAddDatabaseFlagsAddEnableBinLogAddRetainedBackupsCountAddRetainedTransactionLogDaysAddFailoverReplicaNameadd_argumentcommand_validateInstanceNameRegexpValidatorAddMaintenanceReleaseChannelAddMaintenanceWindowDayAddMaintenanceWindowHour!AddDenyMaintenancePeriodStartDateAddDenyMaintenancePeriodEndDateAddDenyMaintenancePeriodTime%AddInsightsConfigQueryInsightsEnabled"AddInsightsConfigQueryStringLength&AddInsightsConfigRecordApplicationTags$AddInsightsConfigRecordClientAddress$AddInsightsConfigQueryPlansPerMinuteAddMasterInstanceName	AddMemoryAddPasswordPolicyMinLengthAddPasswordPolicyComplexityAddPasswordPolicyReuseInterval*AddPasswordPolicyDisallowUsernameSubstring'AddPasswordPolicyPasswordChangeInterval%AddPasswordPolicyEnablePasswordPolicyAddReplicaTypeAddReplicationAddRequireSslAddRootPasswordAddStorageAutoIncreaseAddStorageSizeAddStorageTypeAddTier
AddEditionkms_resource_argsAddKmsKeyResourceArgAddEnablePointInTimeRecovery
AddNetworkAddSqlServerAuditAddDeletionProtectionAddSqlServerTimeZoneAddConnectorEnforcement
AddTimeout"_INSTANCE_CREATION_TIMEOUT_SECONDSAddEnableGooglePrivatePathAddThreadsPerCoreAddCascadableReplicaAddEnableDataCacheAddEnableAutoUpgrade!AddRecreateReplicasOnPrimaryCrash	add_groupAddEnablePrivateServiceConnectAddAllowedPscProjects AddCustomSubjectAlternativeNames
AddSslModeAddEnableGoogleMLIntegrationAddEnableDataplexIntegrationAddPscAutoConnectionsAddServerCaModeAddTagsAddRetainBackupsOnDeleteAddServerCaPoolAddStorageProvisionedIopsAddStorageProvisionedThroughputAddInstanceTypeAddNodeCountAddActiveDirectoryMode"AddActiveDirectorySecretManagerKey$AddActiveDirectoryOrganizationalUnitAddActiveDirectoryDNSServersClearActiveDirectoryDNSServersAddForceSqlNetworkArchitectureAddFinalBackupAddFinalbackupRetentionDaysAddEnableConnectionPoolingAddConnectionPoolFlagsAddReadPoolAutoScaleConfig)parserkms_flag_overridespsc_setup_groups      #lib/surface/sql/instances/create.pyAddBaseArgsr   C   s    //f% ; ; =>F#  (Ff%F#//&6"&e4,,vV$ U;'%%f-v&779#  
 $$V,'  ())&1''/$$V,--f4P**62..4 ,,V$O,,V4f%//&""6*##F+&&v.226://7--f5vvfv&vv--6(464	 ((j); $$V,6&!f%V$'6=>""6F&!V$6"V$))&1$$&/&&7o.((06$$V,$$V,f%--  (!!&)''/Vv&**62,,V4$$V,&&v.&&v.v##F+""6*v&""6*    c                    [         R                  " U 5        [         R                  " U 5        [         R                  " U 5        [        R
                  " U 5        [         R                  " U 5        [         R                  " U 5        [         R                  " U 5        [         R                  " U 5        [         R                  " U 5        [         R                  " U SS9  [         R                  " U 5        [         R                  " U SS9  g)zCDeclare beta flag and positional arguments for this command parser.T)hiddenN)r   AddExternalMasterGroupAddInstanceResizeLimitAddAllocatedIpRangeNamer   AddCreateLabelsFlags&AddReplicationLagMaxSecondsForRecreateAddEnableDbAlignedAtomicWritesAddEnableAcceleratedReplicaModeAddDataApiAccess AddServerCertificateRotationModeAddPerformanceCaptureConfigAddUncMappingsAddSqlServerEntraIdr{   s    r~   AddBetaArgsr      s    v&v&'""6*..v6&&v.''/ ((0##F48vF40r   c                     g)z,Declare alpha flags for this command parser.N )unused_parsers    r~   AddAlphaArgsr      s    r   c                 N   [         R                  " [         R                  5      nUR                  nUR                  n[
        R                  " U R                  5        [
        R                  " U 5        UR                  R                  U R                  S[        R                  R                  R                  R                  0SS9nU R!                  S5      (       Ga  UR                  R                  U R"                  S[        R                  R                  R                  R                  0SS9n UR$                  R'                  UR)                  UR                  UR                  S95      nU R!                  S5      (       d  URD                  U l"        U R!                  S5      (       d  URF                  RH                  U l%        U R!                  S5      (       dX  U R!                  S5      (       dB  U R!                  S5      (       d,  URL                  (       a  URL                  RN                  U l'        U RQ                  S5      (       a@  URF                  RH                  RS                  S5      (       d  [T        RV                  " S5      eURX                  (       av  U RD                  URD                  :X  a  [Z        R\                  " SS5        OpU R!                  S5      (       d  [6        R^                  " SS5      e[Z        R\                  " S5        O,U R!                  S5      (       a  [T        RV                  " S5      eU R!                  S5      (       a1  U RD                  URD                  :X  a  [6        R`                  " SS5      eOU R!                  S5      (       a  [6        R`                  " SS5      eU RQ                  S5      (       aL  U R!                  S5      (       a6  U RJ                  RS                  S5      (       d  [T        RV                  " S5      eU R!                  S5      (       aM  U RJ                  RS                  S5      (       a-  U R!                  S5      (       d  [6        R^                  " SS 5      eU Rb                  (       do  U R!                  S!5      (       a-  U R!                  S5      (       d  [T        RV                  " S"5      eO,U R!                  S#5      (       a  [T        RV                  " S$5      eU RQ                  S%5      (       a,  U RQ                  S&5      (       d  [T        RV                  " S'5      eU RQ                  S(5      (       a,  U RQ                  S&5      (       d  [T        RV                  " S)5      eU RQ                  S*5      (       a,  U RQ                  S+5      (       d  [T        RV                  " S,5      eU Rd                  bB  [g        S-U Rd                  ;   S.U Rd                  ;   /5      (       a  [.        Rh                  " S/5        U RQ                  S05      (       aL  U R!                  S5      (       a6  U RJ                  RS                  S15      (       d  [T        RV                  " S25      eU R!                  S35      (       av  U Rj                  S4:X  af  U RN                  =(       a     [Z        Rl                  " U RJ                  5      nU R!                  S5      (       d  U(       d  [T        RV                  " S55      e[Z        Rn                  Rq                  UU UUS69nSn UR$                  Rs                  URu                  XR                  S795      nUR                  Rw                  S8URH                  UR                  S99nU Rx                  (       aZ  U R!                  S:5      (       d  S;U l=        UR|                  R'                  UR                  UR                  UR                  S<95      $ [|        R                  R                  UUS=U RJ                  -   U R                  S>9  [.        R                  " U5        UR$                  R'                  UR)                  UR                  UR                  S95      nU$ ! [*        R,                   a  n[.        R0                  " S[2        R4                  " U5      5        [6        R8                  " U5      n	[:        R&                  " U	R<                  R>                  [@        RB                  " S5      S5      S	:X  a  S
n
[6        R8                  " U
5      ee SnAff = f! [*        R,                   a  n[.        R0                  " S[2        R4                  " U5      5        [6        R8                  " U5      n	[:        R&                  " U	R<                  R>                  [@        RB                  " S5      S5      S?:X  aV  [:        R&                  " U	R<                  R>                  [@        RB                  " S@5      S5      n
[6        R8                  " U
5      ee SnAff = f)Aa  Creates a new Cloud SQL instance.

Args:
  args: argparse.Namespace, The arguments that this command was invoked with.
  release_track: base.ReleaseTrack, the release track that this was run under.

Returns:
  A dict object representing the operations resource describing the create
  operation if the create was successful.
Raises:
  HttpException: A http error response was received while executing api
      request.
  ArgumentError: An argument supplied by the user was incorrect, such as
    specifying an invalid CMEK configuration or attempting to create a V1
    instance.
  RequiredArgumentException: A required argument was not supplied by the user,
    such as omitting --root-password on a SQL Server instance.
projectzsql.instances)params
collectionmaster_instance_name)r   r   zoperation : %szerror.errors[0].reasonNnotAuthorizedzQYou are either not authorized to access the master instance or it does not exist.regiondatabase_versiontiercpumemoryenable_accelerated_replica_modeMYSQL_z>--enable-accelerated-replica-mode is only supported for MySQL.replicazthe master instancedisk_encryption_keyr   zy`--disk-encryption-key` is required when creating a cross-region replica of an instance with customer-managed encryption.zw`--disk-encryption-key` cannot be specified when creating a replica of an instance without customer-managed encryption.cascadable_replicaz--cascadable-replicazt`--cascadable-replica` can only be specified when creating a replica that is in a different region than the primary.zX`--cascadable-replica` can only be specified when `--master-instance-name` is specified.	SQLSERVERroot_passwordz--root-passwordzA`--root-password` is required when creating SQL Server instances.enable_bin_logzD`--enable-bin-log` cannot be specified when --no-backup is specifiedenable_point_in_time_recoveryzS`--enable-point-in-time-recovery` cannot be specified when --no-backup is specifiedallowed_psc_projectsenable_private_service_connectzD`--allowed-psc-projects` requires `--enable-private-service-connect`psc_auto_connectionszD`--psc-auto-connections` requires `--enable-private-service-connect` custom_subject_alternative_namesserver_ca_modezH`--custom-subject-alternative-names` requires customer managed server CAsync_binloginnodb_flush_log_at_trx_commitzChanging innodb_flush_log_at_trx_commit or sync_binlog may cause data loss. Check https://cloud.google.com/sql/docs/mysql/flags for more details.performance_capture_configMYSQLz;`--performance-capture-config` is only supported for MySQL.editionzenterprise-plusz-`--edition=enterprise-plus` requires `--tier`)instance_refrelease_track)databaseInstancer   zsql.operations)	operationr   formatdefault)r   r   z Creating Cloud SQL instance for )max_wait_secondserrorMaxInstancePerLabelzerror.message)Ecommon_api_util	SqlClientAPI_VERSION_DEFAULT
sql_clientsql_messagesr
   ValidateInstanceNamer   ValidateInstanceLocationresource_parserParser   VALUEScorer   	GetOrFailIsSpecifiedr   r   GetSqlInstancesGetRequestapitools_exceptions	HttpErrorr   debugsix	text_typer   HttpExceptionr   payloadcontentr   ParseKeyr   databaseVersionnamer   settingsr   IsKnownAndSpecified
startswithsql_exceptionsArgumentErrordiskEncryptionConfigurationcommand_utilShowCmekWarningRequiredArgumentExceptionInvalidArgumentExceptionbackupdatabase_flagsanywarningr   1DoesEnterprisePlusReplicaInferTierForDatabaseTypeInstancesV1Beta4ConstructCreateInstanceFromArgsInsertSqlInstancesInsertRequestCreateasync_r   r	   SqlOperationsGetRequestr   OperationsV1Beta4WaitForOperationtimeoutCreatedResource)argsr   clientr   r   r   master_instance_refmaster_instance_resourceerrorexcmsgcan_infer_tierinstance_resourceoperation_refresult_operationnew_resources                   r~   RunBaseCreateCommandr      s   & $$_%H%HI&  *$$,
.
##D)''--
mm**//77AAB  . , 
,-- 0066!!:,,1199CCD" 7 
!+!5!5!9!9

-
-"***33 . "0 H%%,33dk.//6FFKKdV$$!!%((D,<,<X,F,F$--*3388di ABB
"
2
2
7
7
B
B8
L
L**L
 	

  ;;	077	7 	$$Y0EF 566 22#G
 	
 	$$Y/			/	0	0 ((@ 
 ,--	077	711"F
 	
 ,--//
 3   ABB			,	-	-$$//99,,N  )**



*
*;
7
7//

.
.K 
 
())455 **
 	
 6 
		9	:	:((% 
 
 $$%EFF

&
&N  
 $$%EFF

&
&N 
 
( $$%566

&
&	 
 
$t***&$*=*==. * * KK	 ;<<


-
.
.##..w77

&
&E  
i  T\\5F%F 			 	
JJ!!
  V$$((
9 
 ##CC

#%	 D   -4
!++22...8L8L 	/ 	
 **11"''$$ 2 M {{h''""&&

.
.#++}7N7N /     11*T-B-BB	 2  %''++++ ((<3H3H 	, 	
L
 i (( 	ii #--0C"DE$$U+c


kk!!##$<=
 ! 	 &&s++#j 
	&	& 
IIm <=

"
"5
)CKK!!":;	

 &	& !!
++

|44_Etc $$S))	
s:   1=a5 Cd/ )Bd/ 5d,	Bd''d,/h$Chh$c                   2    \ rS rSrSr\rS r\S 5       r	Sr
g)r   i  r   c                 4    [        XR                  5       5      $ Nr   ReleaseTrackselfr   s     r~   Run
Create.Run      &7&7&9::r   c                 r    [        U 5        [        R                  " U 5        [        R                  " U 5        g)@Args is called by calliope to gather arguments for this command.N)r   r   AddLocationGroupAddDatabaseVersionr   s    r~   ArgsCreate.Args  s(     	6"	V$r   r   N__name__
__module____qualname____firstlineno____doc__DETAILED_HELPdetailed_helpr  staticmethodr
  __static_attributes__r   r   r~   r   r     s%     *-; % %r   r   c                   2    \ rS rSrSr\rS r\S 5       r	Sr
g)
CreateBetai  r   c                 4    [        XR                  5       5      $ r   r   r  s     r~   r  CreateBeta.Run  r  r   c                     [        U 5        [        R                  " U 5        [        U 5        [        R                  " U SS9  gr  F)restrict_choicesN)r   r   r  r   r	  r   s    r~   r
  CreateBeta.Args  s2     	6"	Ve<r   r   Nr  r   r   r~   r  r    s%     *-; = =r   r  c                   2    \ rS rSrSr\rS r\S 5       r	Sr
g)CreateAlphai  r   c                 4    [        XR                  5       5      $ r   r   r  s     r~   r  CreateAlpha.Run
  r  r   c                     [        U 5        [        R                  " U 5        [        U 5        [	        U 5        [        R
                  " U SS9  gr  )r   r   r  r   r   r	  r   s    r~   r
  CreateAlpha.Args  s:     	6"	Ve<r   r   Nr  r   r   r~   r  r    s%     *-; = =r   r  )1r  
__future__r   r   r   apitools.base.pyr   r   googlecloudsdk.api_lib.sqlr   r   r   r	   r
   googlecloudsdk.callioper   googlecloudsdk.command_lib.kmsr   rP   googlecloudsdk.command_lib.sqlr   r   r   r2   $googlecloudsdk.command_lib.util.argsr   googlecloudsdk.corer   r   googlecloudsdk.core.resourcer   r   r   rY   r  r   r   r   r   DefaultUniverseOnlyReleaseTracksr   GACommandr   BETAr  ALPHAr  r   r   r~   <module>r3     sC   ( &  ' > B C 1 / ( . M 0 D G < # * 5 : 
 &* "  2g+`1 
S
l D%%(()%T\\ % * %  D%%**+= =  ,=" D%%++,=$,, =  -=r   