/*******************************************************************************
* Copyright 2012-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use
* this file except in compliance with the License. A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file.
* This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
* *****************************************************************************
*
* AWS Tools for Windows (TM) PowerShell (TM)
*
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Management.Automation;
using System.Text;
using Amazon.PowerShell.Common;
using Amazon.Runtime;
using Amazon.RDS;
using Amazon.RDS.Model;
namespace Amazon.PowerShell.Cmdlets.RDS
{
///
/// Creates a new Amazon Aurora DB cluster or Multi-AZ DB cluster.
///
///
///
/// If you create an Aurora DB cluster, the request creates an empty cluster. You must
/// explicitly create the writer instance for your DB cluster using the CreateDBInstance
/// operation. If you create a Multi-AZ DB cluster, the request creates a writer and two
/// reader DB instances for you, each in a different Availability Zone.
///
/// You can use the ReplicationSourceIdentifier
parameter to create an Amazon
/// Aurora DB cluster as a read replica of another DB cluster or Amazon RDS for MySQL
/// or PostgreSQL DB instance. For more information about Amazon Aurora, see What
/// is Amazon Aurora? in the Amazon Aurora User Guide.
///
/// You can also use the ReplicationSourceIdentifier
parameter to create
/// a Multi-AZ DB cluster read replica with an RDS for MySQL or PostgreSQL DB instance
/// as the source. For more information about Multi-AZ DB clusters, see Multi-AZ
/// DB cluster deployments in the Amazon RDS User Guide.
///
///
[Cmdlet("New", "RDSDBCluster", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.Medium)]
[OutputType("Amazon.RDS.Model.DBCluster")]
[AWSCmdlet("Calls the Amazon Relational Database Service CreateDBCluster API operation.", Operation = new[] {"CreateDBCluster"}, SelectReturnType = typeof(Amazon.RDS.Model.CreateDBClusterResponse))]
[AWSCmdletOutput("Amazon.RDS.Model.DBCluster or Amazon.RDS.Model.CreateDBClusterResponse",
"This cmdlet returns an Amazon.RDS.Model.DBCluster object.",
"The service call response (type Amazon.RDS.Model.CreateDBClusterResponse) can also be referenced from properties attached to the cmdlet entry in the $AWSHistory stack."
)]
public partial class NewRDSDBClusterCmdlet : AmazonRDSClientCmdlet, IExecutor
{
#region Parameter AllocatedStorage
///
///
/// The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ
/// DB cluster.Valid for Cluster Type: Multi-AZ DB clusters onlyThis setting is required to create a Multi-AZ DB cluster.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Int32? AllocatedStorage { get; set; }
#endregion
#region Parameter AutoMinorVersionUpgrade
///
///
/// Specifies whether minor engine upgrades are applied automatically to the DB cluster
/// during the maintenance window. By default, minor engine upgrades are applied automatically.Valid for Cluster Type: Multi-AZ DB clusters only
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Boolean? AutoMinorVersionUpgrade { get; set; }
#endregion
#region Parameter ScalingConfiguration_AutoPause
///
///
/// A value that indicates whether to allow or disallow automatic pause for an Aurora
/// DB cluster in serverless
DB engine mode. A DB cluster can be paused only
/// when it's idle (it has no connections).If a DB cluster is paused for more than seven days, the DB cluster might be backed
/// up with a snapshot. In this case, the DB cluster is restored when there is a request
/// to connect to it.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Boolean? ScalingConfiguration_AutoPause { get; set; }
#endregion
#region Parameter AvailabilityZone
///
///
/// A list of Availability Zones (AZs) where DB instances in the DB cluster can be created.For information on Amazon Web Services Regions and Availability Zones, see Choosing
/// the Regions and Availability Zones in the Amazon Aurora User Guide.Valid for Cluster Type: Aurora DB clusters only
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("AvailabilityZones")]
public System.String[] AvailabilityZone { get; set; }
#endregion
#region Parameter BacktrackWindow
///
///
/// The target backtrack window, in seconds. To disable backtracking, set this value to
/// 0
.Valid for Cluster Type: Aurora MySQL DB clusters onlyDefault: 0
Constraints:- If specified, this value must be set to a number from 0 to 259,200 (72 hours).
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Int64? BacktrackWindow { get; set; }
#endregion
#region Parameter BackupRetentionPeriod
///
///
/// The number of days for which automated backups are retained.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clustersDefault: 1
Constraints:- Must be a value from 1 to 35.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Int32? BackupRetentionPeriod { get; set; }
#endregion
#region Parameter CharacterSetName
///
///
/// The name of the character set (CharacterSet
) to associate the DB cluster
/// with.Valid for Cluster Type: Aurora DB clusters only
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String CharacterSetName { get; set; }
#endregion
#region Parameter CopyTagsToSnapshot
///
///
/// Specifies whether to copy all tags from the DB cluster to snapshots of the DB cluster.
/// The default is not to copy them.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Boolean? CopyTagsToSnapshot { get; set; }
#endregion
#region Parameter DatabaseName
///
///
/// The name for your database of up to 64 alphanumeric characters. If you don't provide
/// a name, Amazon RDS doesn't create a database in the DB cluster you are creating.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String DatabaseName { get; set; }
#endregion
#region Parameter DBClusterIdentifier
///
///
/// The identifier for this DB cluster. This parameter is stored as a lowercase string.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clustersConstraints:- Must contain from 1 to 63 letters, numbers, or hyphens.
- First character must be a letter.
- Can't end with a hyphen or contain two consecutive hyphens.
Example: my-cluster1
///
///
#if !MODULAR
[System.Management.Automation.Parameter(Position = 0, ValueFromPipelineByPropertyName = true, ValueFromPipeline = true)]
#else
[System.Management.Automation.Parameter(Position = 0, ValueFromPipelineByPropertyName = true, ValueFromPipeline = true, Mandatory = true)]
[System.Management.Automation.AllowEmptyString]
[System.Management.Automation.AllowNull]
#endif
[Amazon.PowerShell.Common.AWSRequiredParameter]
public System.String DBClusterIdentifier { get; set; }
#endregion
#region Parameter DBClusterInstanceClass
///
///
/// The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for
/// example db.m6gd.xlarge
. Not all DB instance classes are available in
/// all Amazon Web Services Regions, or for all database engines.For the full list of DB instance classes and availability for your engine, see DB
/// instance class in the Amazon RDS User Guide.This setting is required to create a Multi-AZ DB cluster.Valid for Cluster Type: Multi-AZ DB clusters only
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String DBClusterInstanceClass { get; set; }
#endregion
#region Parameter DBClusterParameterGroupName
///
///
/// The name of the DB cluster parameter group to associate with this DB cluster. If you
/// don't specify a value, then the default DB cluster parameter group for the specified
/// DB engine and version is used.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clustersConstraints:- If supplied, must match the name of an existing DB cluster parameter group.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String DBClusterParameterGroupName { get; set; }
#endregion
#region Parameter DBSubnetGroupName
///
///
/// A DB subnet group to associate with this DB cluster.This setting is required to create a Multi-AZ DB cluster.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clustersConstraints:- Must match the name of an existing DB subnet group.
- Must not be
default
.
Example: mydbsubnetgroup
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String DBSubnetGroupName { get; set; }
#endregion
#region Parameter DBSystemId
///
///
/// Reserved for future use.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String DBSystemId { get; set; }
#endregion
#region Parameter DeletionProtection
///
///
/// Specifies whether the DB cluster has deletion protection enabled. The database can't
/// be deleted when deletion protection is enabled. By default, deletion protection isn't
/// enabled.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Boolean? DeletionProtection { get; set; }
#endregion
#region Parameter Domain
///
///
/// The Active Directory directory ID to create the DB cluster in.For Amazon Aurora DB clusters, Amazon RDS can use Kerberos authentication to authenticate
/// users that connect to the DB cluster.For more information, see Kerberos
/// authentication in the Amazon Aurora User Guide.Valid for Cluster Type: Aurora DB clusters only
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String Domain { get; set; }
#endregion
#region Parameter DomainIAMRoleName
///
///
/// The name of the IAM role to use when making API calls to the Directory Service.Valid for Cluster Type: Aurora DB clusters only
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String DomainIAMRoleName { get; set; }
#endregion
#region Parameter EnableCloudwatchLogsExport
///
///
/// The list of log types that need to be enabled for exporting to CloudWatch Logs.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clustersThe following values are valid for each DB engine:- Aurora MySQL -
audit | error | general | slowquery
- Aurora PostgreSQL -
postgresql
- RDS for MySQL -
error | general | slowquery
- RDS for PostgreSQL -
postgresql | upgrade
For more information about exporting CloudWatch Logs for Amazon RDS, see Publishing
/// Database Logs to Amazon CloudWatch Logs in the Amazon RDS User Guide.For more information about exporting CloudWatch Logs for Amazon Aurora, see Publishing
/// Database Logs to Amazon CloudWatch Logs in the Amazon Aurora User Guide.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("EnableCloudwatchLogsExports")]
public System.String[] EnableCloudwatchLogsExport { get; set; }
#endregion
#region Parameter EnableGlobalWriteForwarding
///
///
/// Specifies whether to enable this DB cluster to forward write operations to the primary
/// cluster of a global cluster (Aurora global database). By default, write operations
/// are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global
/// database.You can set this value only on Aurora DB clusters that are members of an Aurora global
/// database. With this parameter enabled, a secondary cluster can forward writes to the
/// current primary cluster, and the resulting changes are replicated back to this cluster.
/// For the primary DB cluster of an Aurora global database, this value is used immediately
/// if the primary is demoted by a global cluster API operation, but it does nothing until
/// then.Valid for Cluster Type: Aurora DB clusters only
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Boolean? EnableGlobalWriteForwarding { get; set; }
#endregion
#region Parameter EnableHttpEndpoint
///
///
/// Specifies whether to enable the HTTP endpoint for an Aurora Serverless v1 DB cluster.
/// By default, the HTTP endpoint is disabled.When enabled, the HTTP endpoint provides a connectionless web service API for running
/// SQL queries on the Aurora Serverless v1 DB cluster. You can also query your database
/// from inside the RDS console with the query editor.For more information, see Using
/// the Data API for Aurora Serverless v1 in the Amazon Aurora User Guide.Valid for Cluster Type: Aurora DB clusters only
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Boolean? EnableHttpEndpoint { get; set; }
#endregion
#region Parameter EnableIAMDatabaseAuthentication
///
///
/// Specifies whether to enable mapping of Amazon Web Services Identity and Access Management
/// (IAM) accounts to database accounts. By default, mapping isn't enabled.For more information, see
/// IAM Database Authentication in the Amazon Aurora User Guide.Valid for Cluster Type: Aurora DB clusters only
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Boolean? EnableIAMDatabaseAuthentication { get; set; }
#endregion
#region Parameter EnablePerformanceInsight
///
///
/// Specifies whether to turn on Performance Insights for the DB cluster.For more information, see
/// Using Amazon Performance Insights in the Amazon RDS User Guide.Valid for Cluster Type: Multi-AZ DB clusters only
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("EnablePerformanceInsights")]
public System.Boolean? EnablePerformanceInsight { get; set; }
#endregion
#region Parameter Engine
///
///
/// The database engine to use for this DB cluster.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clustersValid Values: aurora-mysql | aurora-postgresql | mysql | postgres
///
///
#if !MODULAR
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
#else
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true)]
[System.Management.Automation.AllowEmptyString]
[System.Management.Automation.AllowNull]
#endif
[Amazon.PowerShell.Common.AWSRequiredParameter]
public System.String Engine { get; set; }
#endregion
#region Parameter EngineMode
///
///
/// The DB engine mode of the DB cluster, either provisioned
or serverless
.The serverless
engine mode only applies for Aurora Serverless v1 DB clusters.For information about limitations and requirements for Serverless DB clusters, see
/// the following sections in the Amazon Aurora User Guide:Valid for Cluster Type: Aurora DB clusters only
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String EngineMode { get; set; }
#endregion
#region Parameter EngineVersion
///
///
/// The version number of the database engine to use.To list all of the available engine versions for Aurora MySQL version 2 (5.7-compatible)
/// and version 3 (MySQL 8.0-compatible), use the following command:aws rds describe-db-engine-versions --engine aurora-mysql --query "DBEngineVersions[].EngineVersion"
You can supply either 5.7
or 8.0
to use the default engine
/// version for Aurora MySQL version 2 or version 3, respectively.To list all of the available engine versions for Aurora PostgreSQL, use the following
/// command:aws rds describe-db-engine-versions --engine aurora-postgresql --query "DBEngineVersions[].EngineVersion"
To list all of the available engine versions for RDS for MySQL, use the following
/// command:aws rds describe-db-engine-versions --engine mysql --query "DBEngineVersions[].EngineVersion"
To list all of the available engine versions for RDS for PostgreSQL, use the following
/// command:aws rds describe-db-engine-versions --engine postgres --query "DBEngineVersions[].EngineVersion"
For information about a specific engine, see the following topics:Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String EngineVersion { get; set; }
#endregion
#region Parameter GlobalClusterIdentifier
///
///
/// The global cluster ID of an Aurora cluster that becomes the primary cluster in the
/// new global database cluster.Valid for Cluster Type: Aurora DB clusters only
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String GlobalClusterIdentifier { get; set; }
#endregion
#region Parameter Iops
///
///
/// The amount of Provisioned IOPS (input/output operations per second) to be initially
/// allocated for each DB instance in the Multi-AZ DB cluster.For information about valid IOPS values, see Provisioned
/// IOPS storage in the Amazon RDS User Guide.This setting is required to create a Multi-AZ DB cluster.Valid for Cluster Type: Multi-AZ DB clusters onlyConstraints:- Must be a multiple between .5 and 50 of the storage amount for the DB cluster.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Int32? Iops { get; set; }
#endregion
#region Parameter KmsKeyId
///
///
/// The Amazon Web Services KMS key identifier for an encrypted DB cluster.The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias
/// name for the KMS key. To use a KMS key in a different Amazon Web Services account,
/// specify the key ARN or alias ARN.When a KMS key isn't specified in KmsKeyId
:- If
ReplicationSourceIdentifier
identifies an encrypted source, then Amazon
/// RDS uses the KMS key used to encrypt the source. Otherwise, Amazon RDS uses your default
/// KMS key. - If the
StorageEncrypted
parameter is enabled and ReplicationSourceIdentifier
/// isn't specified, then Amazon RDS uses your default KMS key.
There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services
/// account has a different default KMS key for each Amazon Web Services Region.If you create a read replica of an encrypted DB cluster in another Amazon Web Services
/// Region, make sure to set KmsKeyId
to a KMS key identifier that is valid
/// in the destination Amazon Web Services Region. This KMS key is used to encrypt the
/// read replica in that Amazon Web Services Region.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String KmsKeyId { get; set; }
#endregion
#region Parameter ManageMasterUserPassword
///
///
/// Specifies whether to manage the master user password with Amazon Web Services Secrets
/// Manager.For more information, see Password
/// management with Amazon Web Services Secrets Manager in the Amazon RDS User
/// Guide and Password
/// management with Amazon Web Services Secrets Manager in the Amazon Aurora User
/// Guide.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clustersConstraints:- Can't manage the master user password with Amazon Web Services Secrets Manager if
///
MasterUserPassword
is specified.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Boolean? ManageMasterUserPassword { get; set; }
#endregion
#region Parameter MasterUsername
///
///
/// The name of the master user for the DB cluster.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clustersConstraints:- Must be 1 to 16 letters or numbers.
- First character must be a letter.
- Can't be a reserved word for the chosen database engine.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String MasterUsername { get; set; }
#endregion
#region Parameter MasterUserPassword
///
///
/// The password for the master database user.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clustersConstraints:- Must contain from 8 to 41 characters.
- Can contain any printable ASCII character except "/", """, or "@".
- Can't be specified if
ManageMasterUserPassword
is turned on.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String MasterUserPassword { get; set; }
#endregion
#region Parameter MasterUserSecretKmsKeyId
///
///
/// The Amazon Web Services KMS key identifier to encrypt a secret that is automatically
/// generated and managed in Amazon Web Services Secrets Manager.This setting is valid only if the master user password is managed by RDS in Amazon
/// Web Services Secrets Manager for the DB cluster.The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias
/// name for the KMS key. To use a KMS key in a different Amazon Web Services account,
/// specify the key ARN or alias ARN.If you don't specify MasterUserSecretKmsKeyId
, then the aws/secretsmanager
/// KMS key is used to encrypt the secret. If the secret is in a different Amazon Web
/// Services account, then you can't use the aws/secretsmanager
KMS key to
/// encrypt the secret, and you must use a customer managed KMS key.There is a default KMS key for your Amazon Web Services account. Your Amazon Web Services
/// account has a different default KMS key for each Amazon Web Services Region.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String MasterUserSecretKmsKeyId { get; set; }
#endregion
#region Parameter ScalingConfiguration_MaxCapacity
///
///
/// The maximum capacity for an Aurora DB cluster in serverless
DB engine
/// mode.For Aurora MySQL, valid capacity values are 1
, 2
, 4
,
/// 8
, 16
, 32
, 64
, 128
,
/// and 256
.For Aurora PostgreSQL, valid capacity values are 2
, 4
, 8
,
/// 16
, 32
, 64
, 192
, and 384
.The maximum capacity must be greater than or equal to the minimum capacity.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Int32? ScalingConfiguration_MaxCapacity { get; set; }
#endregion
#region Parameter ServerlessV2ScalingConfiguration_MaxCapacity
///
///
/// The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora
/// Serverless v2 cluster. You can specify ACU values in half-step increments, such as
/// 40, 40.5, 41, and so on. The largest value that you can use is 128.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Double? ServerlessV2ScalingConfiguration_MaxCapacity { get; set; }
#endregion
#region Parameter ScalingConfiguration_MinCapacity
///
///
/// The minimum capacity for an Aurora DB cluster in serverless
DB engine
/// mode.For Aurora MySQL, valid capacity values are 1
, 2
, 4
,
/// 8
, 16
, 32
, 64
, 128
,
/// and 256
.For Aurora PostgreSQL, valid capacity values are 2
, 4
, 8
,
/// 16
, 32
, 64
, 192
, and 384
.The minimum capacity must be less than or equal to the maximum capacity.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Int32? ScalingConfiguration_MinCapacity { get; set; }
#endregion
#region Parameter ServerlessV2ScalingConfiguration_MinCapacity
///
///
/// The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora
/// Serverless v2 cluster. You can specify ACU values in half-step increments, such as
/// 8, 8.5, 9, and so on. The smallest value that you can use is 0.5.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Double? ServerlessV2ScalingConfiguration_MinCapacity { get; set; }
#endregion
#region Parameter MonitoringInterval
///
///
/// The interval, in seconds, between points when Enhanced Monitoring metrics are collected
/// for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify 0
.If MonitoringRoleArn
is specified, also set MonitoringInterval
/// to a value other than 0
.Valid for Cluster Type: Multi-AZ DB clusters onlyValid Values: 0 | 1 | 5 | 10 | 15 | 30 | 60
Default: 0
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Int32? MonitoringInterval { get; set; }
#endregion
#region Parameter MonitoringRoleArn
///
///
/// The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced
/// Monitoring metrics to Amazon CloudWatch Logs. An example is arn:aws:iam:123456789012:role/emaccess
.
/// For information on creating a monitoring role, see Setting
/// up and enabling Enhanced Monitoring in the Amazon RDS User Guide.If MonitoringInterval
is set to a value other than 0
, supply
/// a MonitoringRoleArn
value.Valid for Cluster Type: Multi-AZ DB clusters only
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String MonitoringRoleArn { get; set; }
#endregion
#region Parameter NetworkType
///
///
/// The network type of the DB cluster.The network type is determined by the DBSubnetGroup
specified for the
/// DB cluster. A DBSubnetGroup
can support only the IPv4 protocol or the
/// IPv4 and the IPv6 protocols (DUAL
).For more information, see
/// Working with a DB instance in a VPC in the Amazon Aurora User Guide.Valid for Cluster Type: Aurora DB clusters onlyValid Values: IPV4 | DUAL
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String NetworkType { get; set; }
#endregion
#region Parameter OptionGroupName
///
///
/// The option group to associate the DB cluster with.DB clusters are associated with a default option group that can't be modified.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String OptionGroupName { get; set; }
#endregion
#region Parameter PerformanceInsightsKMSKeyId
///
///
/// The Amazon Web Services KMS key identifier for encryption of Performance Insights
/// data.The Amazon Web Services KMS key identifier is the key ARN, key ID, alias ARN, or alias
/// name for the KMS key.If you don't specify a value for PerformanceInsightsKMSKeyId
, then Amazon
/// RDS uses your default KMS key. There is a default KMS key for your Amazon Web Services
/// account. Your Amazon Web Services account has a different default KMS key for each
/// Amazon Web Services Region.Valid for Cluster Type: Multi-AZ DB clusters only
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String PerformanceInsightsKMSKeyId { get; set; }
#endregion
#region Parameter PerformanceInsightsRetentionPeriod
///
///
/// The number of days to retain Performance Insights data.Valid for Cluster Type: Multi-AZ DB clusters onlyValid Values:7
- month * 31, where month is a number of months from 1-23. Examples:
///
93
(3 months * 31), 341
(11 months * 31), 589
/// (19 months * 31) 731
Default: 7
daysIf you specify a retention period that isn't valid, such as 94
, Amazon
/// RDS issues an error.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Int32? PerformanceInsightsRetentionPeriod { get; set; }
#endregion
#region Parameter Port
///
///
/// The port number on which the instances in the DB cluster accept connections.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clustersValid Values: 1150-65535
Default:- RDS for MySQL and Aurora MySQL -
3306
- RDS for PostgreSQL and Aurora PostgreSQL -
5432
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Int32? Port { get; set; }
#endregion
#region Parameter PreferredBackupWindow
///
///
/// The daily time range during which automated backups are created if automated backups
/// are enabled using the BackupRetentionPeriod
parameter.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clustersThe default is a 30-minute window selected at random from an 8-hour block of time
/// for each Amazon Web Services Region. To view the time blocks available, see
/// Backup window in the Amazon Aurora User Guide.Constraints:- Must be in the format
hh24:mi-hh24:mi
. - Must be in Universal Coordinated Time (UTC).
- Must not conflict with the preferred maintenance window.
- Must be at least 30 minutes.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String PreferredBackupWindow { get; set; }
#endregion
#region Parameter PreferredMaintenanceWindow
///
///
/// The weekly time range during which system maintenance can occur.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clustersThe default is a 30-minute window selected at random from an 8-hour block of time
/// for each Amazon Web Services Region, occurring on a random day of the week. To see
/// the time blocks available, see
/// Adjusting the Preferred DB Cluster Maintenance Window in the Amazon Aurora
/// User Guide.Constraints:- Must be in the format
ddd:hh24:mi-ddd:hh24:mi
. - Days must be one of
Mon | Tue | Wed | Thu | Fri | Sat | Sun
. - Must be in Universal Coordinated Time (UTC).
- Must be at least 30 minutes.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String PreferredMaintenanceWindow { get; set; }
#endregion
#region Parameter PreSignedUrl
///
///
/// When you are replicating a DB cluster from one Amazon Web Services GovCloud (US) Region
/// to another, an URL that contains a Signature Version 4 signed request for the CreateDBCluster
/// operation to be called in the source Amazon Web Services Region where the DB cluster
/// is replicated from. Specify PreSignedUrl
only when you are performing
/// cross-Region replication from an encrypted DB cluster.The presigned URL must be a valid request for the CreateDBCluster
API
/// operation that can run in the source Amazon Web Services Region that contains the
/// encrypted DB cluster to copy.The presigned URL request must contain the following parameter values:KmsKeyId
- The KMS key identifier for the KMS key to use to encrypt
/// the copy of the DB cluster in the destination Amazon Web Services Region. This should
/// refer to the same KMS key for both the CreateDBCluster
operation that
/// is called in the destination Amazon Web Services Region, and the operation contained
/// in the presigned URL.DestinationRegion
- The name of the Amazon Web Services Region that
/// Aurora read replica will be created in.ReplicationSourceIdentifier
- The DB cluster identifier for the encrypted
/// DB cluster to be copied. This identifier must be in the Amazon Resource Name (ARN)
/// format for the source Amazon Web Services Region. For example, if you are copying
/// an encrypted DB cluster from the us-west-2 Amazon Web Services Region, then your ReplicationSourceIdentifier
/// would look like Example: arn:aws:rds:us-west-2:123456789012:cluster:aurora-cluster1
.
To learn how to generate a Signature Version 4 signed request, see
/// Authenticating Requests: Using Query Parameters (Amazon Web Services Signature Version
/// 4) and
/// Signature Version 4 Signing Process.If you are using an Amazon Web Services SDK tool or the CLI, you can specify SourceRegion
/// (or --source-region
for the CLI) instead of specifying PreSignedUrl
/// manually. Specifying SourceRegion
autogenerates a presigned URL that
/// is a valid request for the operation that can run in the source Amazon Web Services
/// Region.Valid for Cluster Type: Aurora DB clusters only
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String PreSignedUrl { get; set; }
#endregion
#region Parameter PubliclyAccessible
///
///
/// Specifies whether the DB cluster is publicly accessible.When the DB cluster is publicly accessible, its Domain Name System (DNS) endpoint
/// resolves to the private IP address from within the DB cluster's virtual private cloud
/// (VPC). It resolves to the public IP address from outside of the DB cluster's VPC.
/// Access to the DB cluster is ultimately controlled by the security group it uses. That
/// public access isn't permitted if the security group assigned to the DB cluster doesn't
/// permit it.When the DB cluster isn't publicly accessible, it is an internal DB cluster with a
/// DNS name that resolves to a private IP address.Valid for Cluster Type: Multi-AZ DB clusters onlyDefault: The default behavior varies depending on whether DBSubnetGroupName
/// is specified.If DBSubnetGroupName
isn't specified, and PubliclyAccessible
/// isn't specified, the following applies:- If the default VPC in the target Region doesn’t have an internet gateway attached
/// to it, the DB cluster is private.
- If the default VPC in the target Region has an internet gateway attached to it, the
/// DB cluster is public.
If DBSubnetGroupName
is specified, and PubliclyAccessible
/// isn't specified, the following applies:- If the subnets are part of a VPC that doesn’t have an internet gateway attached to
/// it, the DB cluster is private.
- If the subnets are part of a VPC that has an internet gateway attached to it, the
/// DB cluster is public.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Boolean? PubliclyAccessible { get; set; }
#endregion
#region Parameter ReplicationSourceIdentifier
///
///
/// The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB
/// cluster is created as a read replica.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String ReplicationSourceIdentifier { get; set; }
#endregion
#region Parameter ScalingConfiguration_SecondsBeforeTimeout
///
///
/// The amount of time, in seconds, that Aurora Serverless v1 tries to find a scaling
/// point to perform seamless scaling before enforcing the timeout action. The default
/// is 300.Specify a value between 60 and 600 seconds.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Int32? ScalingConfiguration_SecondsBeforeTimeout { get; set; }
#endregion
#region Parameter ScalingConfiguration_SecondsUntilAutoPause
///
///
/// The time, in seconds, before an Aurora DB cluster in serverless
mode
/// is paused.Specify a value between 300 and 86,400 seconds.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Int32? ScalingConfiguration_SecondsUntilAutoPause { get; set; }
#endregion
#region Parameter SourceRegion
///
///
/// The SourceRegion for generating the PreSignedUrl property.
///
/// If SourceRegion is set and the PreSignedUrl property is not,
/// then PreSignedUrl will be automatically generated by the client.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String SourceRegion { get; set; }
#endregion
#region Parameter StorageEncrypted
///
///
/// Specifies whether the DB cluster is encrypted.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.Boolean? StorageEncrypted { get; set; }
#endregion
#region Parameter StorageType
///
///
/// The storage type to associate with the DB cluster.For information on storage types for Aurora DB clusters, see Storage
/// configurations for Amazon Aurora DB clusters. For information on storage types
/// for Multi-AZ DB clusters, see Settings
/// for creating Multi-AZ DB clusters.This setting is required to create a Multi-AZ DB cluster.When specified for a Multi-AZ DB cluster, a value for the Iops
parameter
/// is required.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clustersValid Values:- Aurora DB clusters -
aurora | aurora-iopt1
- Multi-AZ DB clusters -
io1
Default:- Aurora DB clusters -
aurora
- Multi-AZ DB clusters -
io1
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String StorageType { get; set; }
#endregion
#region Parameter Tag
///
///
/// Tags to assign to the DB cluster.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("Tags")]
public Amazon.RDS.Model.Tag[] Tag { get; set; }
#endregion
#region Parameter ScalingConfiguration_TimeoutAction
///
///
/// The action to take when the timeout is reached, either ForceApplyCapacityChange
/// or RollbackCapacityChange
.ForceApplyCapacityChange
sets the capacity to the specified value as
/// soon as possible.RollbackCapacityChange
, the default, ignores the capacity change if
/// a scaling point isn't found in the timeout period.If you specify ForceApplyCapacityChange
, connections that prevent Aurora
/// Serverless v1 from finding a scaling point might be dropped.For more information, see
/// Autoscaling for Aurora Serverless v1 in the Amazon Aurora User Guide.
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public System.String ScalingConfiguration_TimeoutAction { get; set; }
#endregion
#region Parameter VpcSecurityGroupId
///
///
/// A list of EC2 VPC security groups to associate with this DB cluster.Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters
///
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
[Alias("VpcSecurityGroupIds")]
public System.String[] VpcSecurityGroupId { get; set; }
#endregion
#region Parameter Select
///
/// Use the -Select parameter to control the cmdlet output. The default value is 'DBCluster'.
/// Specifying -Select '*' will result in the cmdlet returning the whole service response (Amazon.RDS.Model.CreateDBClusterResponse).
/// Specifying the name of a property of type Amazon.RDS.Model.CreateDBClusterResponse will result in that property being returned.
/// Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value.
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public string Select { get; set; } = "DBCluster";
#endregion
#region Parameter PassThru
///
/// Changes the cmdlet behavior to return the value passed to the DBClusterIdentifier parameter.
/// The -PassThru parameter is deprecated, use -Select '^DBClusterIdentifier' instead. This parameter will be removed in a future version.
///
[System.Obsolete("The -PassThru parameter is deprecated, use -Select '^DBClusterIdentifier' instead. This parameter will be removed in a future version.")]
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public SwitchParameter PassThru { get; set; }
#endregion
#region Parameter Force
///
/// This parameter overrides confirmation prompts to force
/// the cmdlet to continue its operation. This parameter should always
/// be used with caution.
///
[System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)]
public SwitchParameter Force { get; set; }
#endregion
protected override void ProcessRecord()
{
this._AWSSignerType = "v4";
base.ProcessRecord();
var resourceIdentifiersText = FormatParameterValuesForConfirmationMsg(nameof(this.DBClusterIdentifier), MyInvocation.BoundParameters);
if (!ConfirmShouldProceed(this.Force.IsPresent, resourceIdentifiersText, "New-RDSDBCluster (CreateDBCluster)"))
{
return;
}
var context = new CmdletContext();
// allow for manipulation of parameters prior to loading into context
PreExecutionContextLoad(context);
#pragma warning disable CS0618, CS0612 //A class member was marked with the Obsolete attribute
if (ParameterWasBound(nameof(this.Select)))
{
context.Select = CreateSelectDelegate(Select) ??
throw new System.ArgumentException("Invalid value for -Select parameter.", nameof(this.Select));
if (this.PassThru.IsPresent)
{
throw new System.ArgumentException("-PassThru cannot be used when -Select is specified.", nameof(this.Select));
}
}
else if (this.PassThru.IsPresent)
{
context.Select = (response, cmdlet) => this.DBClusterIdentifier;
}
#pragma warning restore CS0618, CS0612 //A class member was marked with the Obsolete attribute
context.SourceRegion = this.SourceRegion;
context.AllocatedStorage = this.AllocatedStorage;
context.AutoMinorVersionUpgrade = this.AutoMinorVersionUpgrade;
if (this.AvailabilityZone != null)
{
context.AvailabilityZone = new List(this.AvailabilityZone);
}
context.BacktrackWindow = this.BacktrackWindow;
context.BackupRetentionPeriod = this.BackupRetentionPeriod;
context.CharacterSetName = this.CharacterSetName;
context.CopyTagsToSnapshot = this.CopyTagsToSnapshot;
context.DatabaseName = this.DatabaseName;
context.DBClusterIdentifier = this.DBClusterIdentifier;
#if MODULAR
if (this.DBClusterIdentifier == null && ParameterWasBound(nameof(this.DBClusterIdentifier)))
{
WriteWarning("You are passing $null as a value for parameter DBClusterIdentifier which is marked as required. In case you believe this parameter was incorrectly marked as required, report this by opening an issue at https://github.com/aws/aws-tools-for-powershell/issues.");
}
#endif
context.DBClusterInstanceClass = this.DBClusterInstanceClass;
context.DBClusterParameterGroupName = this.DBClusterParameterGroupName;
context.DBSubnetGroupName = this.DBSubnetGroupName;
context.DBSystemId = this.DBSystemId;
context.DeletionProtection = this.DeletionProtection;
context.Domain = this.Domain;
context.DomainIAMRoleName = this.DomainIAMRoleName;
if (this.EnableCloudwatchLogsExport != null)
{
context.EnableCloudwatchLogsExport = new List(this.EnableCloudwatchLogsExport);
}
context.EnableGlobalWriteForwarding = this.EnableGlobalWriteForwarding;
context.EnableHttpEndpoint = this.EnableHttpEndpoint;
context.EnableIAMDatabaseAuthentication = this.EnableIAMDatabaseAuthentication;
context.EnablePerformanceInsight = this.EnablePerformanceInsight;
context.Engine = this.Engine;
#if MODULAR
if (this.Engine == null && ParameterWasBound(nameof(this.Engine)))
{
WriteWarning("You are passing $null as a value for parameter Engine which is marked as required. In case you believe this parameter was incorrectly marked as required, report this by opening an issue at https://github.com/aws/aws-tools-for-powershell/issues.");
}
#endif
context.EngineMode = this.EngineMode;
context.EngineVersion = this.EngineVersion;
context.GlobalClusterIdentifier = this.GlobalClusterIdentifier;
context.Iops = this.Iops;
context.KmsKeyId = this.KmsKeyId;
context.ManageMasterUserPassword = this.ManageMasterUserPassword;
context.MasterUsername = this.MasterUsername;
context.MasterUserPassword = this.MasterUserPassword;
context.MasterUserSecretKmsKeyId = this.MasterUserSecretKmsKeyId;
context.MonitoringInterval = this.MonitoringInterval;
context.MonitoringRoleArn = this.MonitoringRoleArn;
context.NetworkType = this.NetworkType;
context.OptionGroupName = this.OptionGroupName;
context.PerformanceInsightsKMSKeyId = this.PerformanceInsightsKMSKeyId;
context.PerformanceInsightsRetentionPeriod = this.PerformanceInsightsRetentionPeriod;
context.Port = this.Port;
context.PreferredBackupWindow = this.PreferredBackupWindow;
context.PreferredMaintenanceWindow = this.PreferredMaintenanceWindow;
context.PreSignedUrl = this.PreSignedUrl;
context.PubliclyAccessible = this.PubliclyAccessible;
context.ReplicationSourceIdentifier = this.ReplicationSourceIdentifier;
context.ScalingConfiguration_AutoPause = this.ScalingConfiguration_AutoPause;
context.ScalingConfiguration_MaxCapacity = this.ScalingConfiguration_MaxCapacity;
context.ScalingConfiguration_MinCapacity = this.ScalingConfiguration_MinCapacity;
context.ScalingConfiguration_SecondsBeforeTimeout = this.ScalingConfiguration_SecondsBeforeTimeout;
context.ScalingConfiguration_SecondsUntilAutoPause = this.ScalingConfiguration_SecondsUntilAutoPause;
context.ScalingConfiguration_TimeoutAction = this.ScalingConfiguration_TimeoutAction;
context.ServerlessV2ScalingConfiguration_MaxCapacity = this.ServerlessV2ScalingConfiguration_MaxCapacity;
context.ServerlessV2ScalingConfiguration_MinCapacity = this.ServerlessV2ScalingConfiguration_MinCapacity;
context.StorageEncrypted = this.StorageEncrypted;
context.StorageType = this.StorageType;
if (this.Tag != null)
{
context.Tag = new List(this.Tag);
}
if (this.VpcSecurityGroupId != null)
{
context.VpcSecurityGroupId = new List(this.VpcSecurityGroupId);
}
// allow further manipulation of loaded context prior to processing
PostExecutionContextLoad(context);
var output = Execute(context) as CmdletOutput;
ProcessOutput(output);
}
#region IExecutor Members
public object Execute(ExecutorContext context)
{
var cmdletContext = context as CmdletContext;
// create request
var request = new Amazon.RDS.Model.CreateDBClusterRequest();
if (cmdletContext.SourceRegion != null)
{
request.SourceRegion = cmdletContext.SourceRegion;
}
if (cmdletContext.AllocatedStorage != null)
{
request.AllocatedStorage = cmdletContext.AllocatedStorage.Value;
}
if (cmdletContext.AutoMinorVersionUpgrade != null)
{
request.AutoMinorVersionUpgrade = cmdletContext.AutoMinorVersionUpgrade.Value;
}
if (cmdletContext.AvailabilityZone != null)
{
request.AvailabilityZones = cmdletContext.AvailabilityZone;
}
if (cmdletContext.BacktrackWindow != null)
{
request.BacktrackWindow = cmdletContext.BacktrackWindow.Value;
}
if (cmdletContext.BackupRetentionPeriod != null)
{
request.BackupRetentionPeriod = cmdletContext.BackupRetentionPeriod.Value;
}
if (cmdletContext.CharacterSetName != null)
{
request.CharacterSetName = cmdletContext.CharacterSetName;
}
if (cmdletContext.CopyTagsToSnapshot != null)
{
request.CopyTagsToSnapshot = cmdletContext.CopyTagsToSnapshot.Value;
}
if (cmdletContext.DatabaseName != null)
{
request.DatabaseName = cmdletContext.DatabaseName;
}
if (cmdletContext.DBClusterIdentifier != null)
{
request.DBClusterIdentifier = cmdletContext.DBClusterIdentifier;
}
if (cmdletContext.DBClusterInstanceClass != null)
{
request.DBClusterInstanceClass = cmdletContext.DBClusterInstanceClass;
}
if (cmdletContext.DBClusterParameterGroupName != null)
{
request.DBClusterParameterGroupName = cmdletContext.DBClusterParameterGroupName;
}
if (cmdletContext.DBSubnetGroupName != null)
{
request.DBSubnetGroupName = cmdletContext.DBSubnetGroupName;
}
if (cmdletContext.DBSystemId != null)
{
request.DBSystemId = cmdletContext.DBSystemId;
}
if (cmdletContext.DeletionProtection != null)
{
request.DeletionProtection = cmdletContext.DeletionProtection.Value;
}
if (cmdletContext.Domain != null)
{
request.Domain = cmdletContext.Domain;
}
if (cmdletContext.DomainIAMRoleName != null)
{
request.DomainIAMRoleName = cmdletContext.DomainIAMRoleName;
}
if (cmdletContext.EnableCloudwatchLogsExport != null)
{
request.EnableCloudwatchLogsExports = cmdletContext.EnableCloudwatchLogsExport;
}
if (cmdletContext.EnableGlobalWriteForwarding != null)
{
request.EnableGlobalWriteForwarding = cmdletContext.EnableGlobalWriteForwarding.Value;
}
if (cmdletContext.EnableHttpEndpoint != null)
{
request.EnableHttpEndpoint = cmdletContext.EnableHttpEndpoint.Value;
}
if (cmdletContext.EnableIAMDatabaseAuthentication != null)
{
request.EnableIAMDatabaseAuthentication = cmdletContext.EnableIAMDatabaseAuthentication.Value;
}
if (cmdletContext.EnablePerformanceInsight != null)
{
request.EnablePerformanceInsights = cmdletContext.EnablePerformanceInsight.Value;
}
if (cmdletContext.Engine != null)
{
request.Engine = cmdletContext.Engine;
}
if (cmdletContext.EngineMode != null)
{
request.EngineMode = cmdletContext.EngineMode;
}
if (cmdletContext.EngineVersion != null)
{
request.EngineVersion = cmdletContext.EngineVersion;
}
if (cmdletContext.GlobalClusterIdentifier != null)
{
request.GlobalClusterIdentifier = cmdletContext.GlobalClusterIdentifier;
}
if (cmdletContext.Iops != null)
{
request.Iops = cmdletContext.Iops.Value;
}
if (cmdletContext.KmsKeyId != null)
{
request.KmsKeyId = cmdletContext.KmsKeyId;
}
if (cmdletContext.ManageMasterUserPassword != null)
{
request.ManageMasterUserPassword = cmdletContext.ManageMasterUserPassword.Value;
}
if (cmdletContext.MasterUsername != null)
{
request.MasterUsername = cmdletContext.MasterUsername;
}
if (cmdletContext.MasterUserPassword != null)
{
request.MasterUserPassword = cmdletContext.MasterUserPassword;
}
if (cmdletContext.MasterUserSecretKmsKeyId != null)
{
request.MasterUserSecretKmsKeyId = cmdletContext.MasterUserSecretKmsKeyId;
}
if (cmdletContext.MonitoringInterval != null)
{
request.MonitoringInterval = cmdletContext.MonitoringInterval.Value;
}
if (cmdletContext.MonitoringRoleArn != null)
{
request.MonitoringRoleArn = cmdletContext.MonitoringRoleArn;
}
if (cmdletContext.NetworkType != null)
{
request.NetworkType = cmdletContext.NetworkType;
}
if (cmdletContext.OptionGroupName != null)
{
request.OptionGroupName = cmdletContext.OptionGroupName;
}
if (cmdletContext.PerformanceInsightsKMSKeyId != null)
{
request.PerformanceInsightsKMSKeyId = cmdletContext.PerformanceInsightsKMSKeyId;
}
if (cmdletContext.PerformanceInsightsRetentionPeriod != null)
{
request.PerformanceInsightsRetentionPeriod = cmdletContext.PerformanceInsightsRetentionPeriod.Value;
}
if (cmdletContext.Port != null)
{
request.Port = cmdletContext.Port.Value;
}
if (cmdletContext.PreferredBackupWindow != null)
{
request.PreferredBackupWindow = cmdletContext.PreferredBackupWindow;
}
if (cmdletContext.PreferredMaintenanceWindow != null)
{
request.PreferredMaintenanceWindow = cmdletContext.PreferredMaintenanceWindow;
}
if (cmdletContext.PreSignedUrl != null)
{
request.PreSignedUrl = cmdletContext.PreSignedUrl;
}
if (cmdletContext.PubliclyAccessible != null)
{
request.PubliclyAccessible = cmdletContext.PubliclyAccessible.Value;
}
if (cmdletContext.ReplicationSourceIdentifier != null)
{
request.ReplicationSourceIdentifier = cmdletContext.ReplicationSourceIdentifier;
}
// populate ScalingConfiguration
var requestScalingConfigurationIsNull = true;
request.ScalingConfiguration = new Amazon.RDS.Model.ScalingConfiguration();
System.Boolean? requestScalingConfiguration_scalingConfiguration_AutoPause = null;
if (cmdletContext.ScalingConfiguration_AutoPause != null)
{
requestScalingConfiguration_scalingConfiguration_AutoPause = cmdletContext.ScalingConfiguration_AutoPause.Value;
}
if (requestScalingConfiguration_scalingConfiguration_AutoPause != null)
{
request.ScalingConfiguration.AutoPause = requestScalingConfiguration_scalingConfiguration_AutoPause.Value;
requestScalingConfigurationIsNull = false;
}
System.Int32? requestScalingConfiguration_scalingConfiguration_MaxCapacity = null;
if (cmdletContext.ScalingConfiguration_MaxCapacity != null)
{
requestScalingConfiguration_scalingConfiguration_MaxCapacity = cmdletContext.ScalingConfiguration_MaxCapacity.Value;
}
if (requestScalingConfiguration_scalingConfiguration_MaxCapacity != null)
{
request.ScalingConfiguration.MaxCapacity = requestScalingConfiguration_scalingConfiguration_MaxCapacity.Value;
requestScalingConfigurationIsNull = false;
}
System.Int32? requestScalingConfiguration_scalingConfiguration_MinCapacity = null;
if (cmdletContext.ScalingConfiguration_MinCapacity != null)
{
requestScalingConfiguration_scalingConfiguration_MinCapacity = cmdletContext.ScalingConfiguration_MinCapacity.Value;
}
if (requestScalingConfiguration_scalingConfiguration_MinCapacity != null)
{
request.ScalingConfiguration.MinCapacity = requestScalingConfiguration_scalingConfiguration_MinCapacity.Value;
requestScalingConfigurationIsNull = false;
}
System.Int32? requestScalingConfiguration_scalingConfiguration_SecondsBeforeTimeout = null;
if (cmdletContext.ScalingConfiguration_SecondsBeforeTimeout != null)
{
requestScalingConfiguration_scalingConfiguration_SecondsBeforeTimeout = cmdletContext.ScalingConfiguration_SecondsBeforeTimeout.Value;
}
if (requestScalingConfiguration_scalingConfiguration_SecondsBeforeTimeout != null)
{
request.ScalingConfiguration.SecondsBeforeTimeout = requestScalingConfiguration_scalingConfiguration_SecondsBeforeTimeout.Value;
requestScalingConfigurationIsNull = false;
}
System.Int32? requestScalingConfiguration_scalingConfiguration_SecondsUntilAutoPause = null;
if (cmdletContext.ScalingConfiguration_SecondsUntilAutoPause != null)
{
requestScalingConfiguration_scalingConfiguration_SecondsUntilAutoPause = cmdletContext.ScalingConfiguration_SecondsUntilAutoPause.Value;
}
if (requestScalingConfiguration_scalingConfiguration_SecondsUntilAutoPause != null)
{
request.ScalingConfiguration.SecondsUntilAutoPause = requestScalingConfiguration_scalingConfiguration_SecondsUntilAutoPause.Value;
requestScalingConfigurationIsNull = false;
}
System.String requestScalingConfiguration_scalingConfiguration_TimeoutAction = null;
if (cmdletContext.ScalingConfiguration_TimeoutAction != null)
{
requestScalingConfiguration_scalingConfiguration_TimeoutAction = cmdletContext.ScalingConfiguration_TimeoutAction;
}
if (requestScalingConfiguration_scalingConfiguration_TimeoutAction != null)
{
request.ScalingConfiguration.TimeoutAction = requestScalingConfiguration_scalingConfiguration_TimeoutAction;
requestScalingConfigurationIsNull = false;
}
// determine if request.ScalingConfiguration should be set to null
if (requestScalingConfigurationIsNull)
{
request.ScalingConfiguration = null;
}
// populate ServerlessV2ScalingConfiguration
var requestServerlessV2ScalingConfigurationIsNull = true;
request.ServerlessV2ScalingConfiguration = new Amazon.RDS.Model.ServerlessV2ScalingConfiguration();
System.Double? requestServerlessV2ScalingConfiguration_serverlessV2ScalingConfiguration_MaxCapacity = null;
if (cmdletContext.ServerlessV2ScalingConfiguration_MaxCapacity != null)
{
requestServerlessV2ScalingConfiguration_serverlessV2ScalingConfiguration_MaxCapacity = cmdletContext.ServerlessV2ScalingConfiguration_MaxCapacity.Value;
}
if (requestServerlessV2ScalingConfiguration_serverlessV2ScalingConfiguration_MaxCapacity != null)
{
request.ServerlessV2ScalingConfiguration.MaxCapacity = requestServerlessV2ScalingConfiguration_serverlessV2ScalingConfiguration_MaxCapacity.Value;
requestServerlessV2ScalingConfigurationIsNull = false;
}
System.Double? requestServerlessV2ScalingConfiguration_serverlessV2ScalingConfiguration_MinCapacity = null;
if (cmdletContext.ServerlessV2ScalingConfiguration_MinCapacity != null)
{
requestServerlessV2ScalingConfiguration_serverlessV2ScalingConfiguration_MinCapacity = cmdletContext.ServerlessV2ScalingConfiguration_MinCapacity.Value;
}
if (requestServerlessV2ScalingConfiguration_serverlessV2ScalingConfiguration_MinCapacity != null)
{
request.ServerlessV2ScalingConfiguration.MinCapacity = requestServerlessV2ScalingConfiguration_serverlessV2ScalingConfiguration_MinCapacity.Value;
requestServerlessV2ScalingConfigurationIsNull = false;
}
// determine if request.ServerlessV2ScalingConfiguration should be set to null
if (requestServerlessV2ScalingConfigurationIsNull)
{
request.ServerlessV2ScalingConfiguration = null;
}
if (cmdletContext.StorageEncrypted != null)
{
request.StorageEncrypted = cmdletContext.StorageEncrypted.Value;
}
if (cmdletContext.StorageType != null)
{
request.StorageType = cmdletContext.StorageType;
}
if (cmdletContext.Tag != null)
{
request.Tags = cmdletContext.Tag;
}
if (cmdletContext.VpcSecurityGroupId != null)
{
request.VpcSecurityGroupIds = cmdletContext.VpcSecurityGroupId;
}
CmdletOutput output;
// issue call
var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint);
try
{
var response = CallAWSServiceOperation(client, request);
object pipelineOutput = null;
pipelineOutput = cmdletContext.Select(response, this);
output = new CmdletOutput
{
PipelineOutput = pipelineOutput,
ServiceResponse = response
};
}
catch (Exception e)
{
output = new CmdletOutput { ErrorResponse = e };
}
return output;
}
public ExecutorContext CreateContext()
{
return new CmdletContext();
}
#endregion
#region AWS Service Operation Call
private Amazon.RDS.Model.CreateDBClusterResponse CallAWSServiceOperation(IAmazonRDS client, Amazon.RDS.Model.CreateDBClusterRequest request)
{
Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon Relational Database Service", "CreateDBCluster");
try
{
#if DESKTOP
return client.CreateDBCluster(request);
#elif CORECLR
return client.CreateDBClusterAsync(request).GetAwaiter().GetResult();
#else
#error "Unknown build edition"
#endif
}
catch (AmazonServiceException exc)
{
var webException = exc.InnerException as System.Net.WebException;
if (webException != null)
{
throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException);
}
throw;
}
}
#endregion
internal partial class CmdletContext : ExecutorContext
{
public System.String SourceRegion { get; set; }
public System.Int32? AllocatedStorage { get; set; }
public System.Boolean? AutoMinorVersionUpgrade { get; set; }
public List AvailabilityZone { get; set; }
public System.Int64? BacktrackWindow { get; set; }
public System.Int32? BackupRetentionPeriod { get; set; }
public System.String CharacterSetName { get; set; }
public System.Boolean? CopyTagsToSnapshot { get; set; }
public System.String DatabaseName { get; set; }
public System.String DBClusterIdentifier { get; set; }
public System.String DBClusterInstanceClass { get; set; }
public System.String DBClusterParameterGroupName { get; set; }
public System.String DBSubnetGroupName { get; set; }
public System.String DBSystemId { get; set; }
public System.Boolean? DeletionProtection { get; set; }
public System.String Domain { get; set; }
public System.String DomainIAMRoleName { get; set; }
public List EnableCloudwatchLogsExport { get; set; }
public System.Boolean? EnableGlobalWriteForwarding { get; set; }
public System.Boolean? EnableHttpEndpoint { get; set; }
public System.Boolean? EnableIAMDatabaseAuthentication { get; set; }
public System.Boolean? EnablePerformanceInsight { get; set; }
public System.String Engine { get; set; }
public System.String EngineMode { get; set; }
public System.String EngineVersion { get; set; }
public System.String GlobalClusterIdentifier { get; set; }
public System.Int32? Iops { get; set; }
public System.String KmsKeyId { get; set; }
public System.Boolean? ManageMasterUserPassword { get; set; }
public System.String MasterUsername { get; set; }
public System.String MasterUserPassword { get; set; }
public System.String MasterUserSecretKmsKeyId { get; set; }
public System.Int32? MonitoringInterval { get; set; }
public System.String MonitoringRoleArn { get; set; }
public System.String NetworkType { get; set; }
public System.String OptionGroupName { get; set; }
public System.String PerformanceInsightsKMSKeyId { get; set; }
public System.Int32? PerformanceInsightsRetentionPeriod { get; set; }
public System.Int32? Port { get; set; }
public System.String PreferredBackupWindow { get; set; }
public System.String PreferredMaintenanceWindow { get; set; }
public System.String PreSignedUrl { get; set; }
public System.Boolean? PubliclyAccessible { get; set; }
public System.String ReplicationSourceIdentifier { get; set; }
public System.Boolean? ScalingConfiguration_AutoPause { get; set; }
public System.Int32? ScalingConfiguration_MaxCapacity { get; set; }
public System.Int32? ScalingConfiguration_MinCapacity { get; set; }
public System.Int32? ScalingConfiguration_SecondsBeforeTimeout { get; set; }
public System.Int32? ScalingConfiguration_SecondsUntilAutoPause { get; set; }
public System.String ScalingConfiguration_TimeoutAction { get; set; }
public System.Double? ServerlessV2ScalingConfiguration_MaxCapacity { get; set; }
public System.Double? ServerlessV2ScalingConfiguration_MinCapacity { get; set; }
public System.Boolean? StorageEncrypted { get; set; }
public System.String StorageType { get; set; }
public List Tag { get; set; }
public List VpcSecurityGroupId { get; set; }
public System.Func Select { get; set; } =
(response, cmdlet) => response.DBCluster;
}
}
}