/*
* Copyright 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.
*/
/*
* Do not modify this file. This file is generated from the neptune-2014-10-31.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.Neptune.Model
{
///
/// Container for the parameters to the CreateDBCluster operation.
/// Creates a new Amazon Neptune DB cluster.
///
///
///
/// You can use the ReplicationSourceIdentifier
parameter to create the DB
/// cluster as a Read Replica of another DB cluster or Amazon Neptune DB instance.
///
///
///
/// Note that when you create a new cluster using CreateDBCluster
directly,
/// deletion protection is disabled by default (when you create a new production cluster
/// in the console, deletion protection is enabled by default). You can only delete a
/// DB cluster if its DeletionProtection
field is set to false
.
///
///
public partial class CreateDBClusterRequest : AmazonNeptuneRequest
{
private List _availabilityZones = new List();
private int? _backupRetentionPeriod;
private string _characterSetName;
private bool? _copyTagsToSnapshot;
private string _databaseName;
private string _dbClusterIdentifier;
private string _dbClusterParameterGroupName;
private string _dbSubnetGroupName;
private bool? _deletionProtection;
private List _enableCloudwatchLogsExports = new List();
private bool? _enableIAMDatabaseAuthentication;
private string _engine;
private string _engineVersion;
private string _globalClusterIdentifier;
private string _kmsKeyId;
private string _masterUsername;
private string _masterUserPassword;
private string _optionGroupName;
private int? _port;
private string _preferredBackupWindow;
private string _preferredMaintenanceWindow;
private string _preSignedUrl;
private string _replicationSourceIdentifier;
private ServerlessV2ScalingConfiguration _serverlessV2ScalingConfiguration;
private bool? _storageEncrypted;
private List _tags = new List();
private List _vpcSecurityGroupIds = new List();
///
/// Gets and sets the property AvailabilityZones.
///
/// A list of EC2 Availability Zones that instances in the DB cluster can be created in.
///
///
public List AvailabilityZones
{
get { return this._availabilityZones; }
set { this._availabilityZones = value; }
}
// Check to see if AvailabilityZones property is set
internal bool IsSetAvailabilityZones()
{
return this._availabilityZones != null && this._availabilityZones.Count > 0;
}
///
/// Gets and sets the property BackupRetentionPeriod.
///
/// The number of days for which automated backups are retained. You must specify a minimum
/// value of 1.
///
///
///
/// Default: 1
///
///
///
/// Constraints:
///
/// -
///
/// Must be a value from 1 to 35
///
///
///
public int BackupRetentionPeriod
{
get { return this._backupRetentionPeriod.GetValueOrDefault(); }
set { this._backupRetentionPeriod = value; }
}
// Check to see if BackupRetentionPeriod property is set
internal bool IsSetBackupRetentionPeriod()
{
return this._backupRetentionPeriod.HasValue;
}
///
/// Gets and sets the property CharacterSetName.
///
/// (Not supported by Neptune)
///
///
public string CharacterSetName
{
get { return this._characterSetName; }
set { this._characterSetName = value; }
}
// Check to see if CharacterSetName property is set
internal bool IsSetCharacterSetName()
{
return this._characterSetName != null;
}
///
/// Gets and sets the property CopyTagsToSnapshot.
///
/// If set to true
, tags are copied to any snapshot of the DB cluster
/// that is created.
///
///
public bool CopyTagsToSnapshot
{
get { return this._copyTagsToSnapshot.GetValueOrDefault(); }
set { this._copyTagsToSnapshot = value; }
}
// Check to see if CopyTagsToSnapshot property is set
internal bool IsSetCopyTagsToSnapshot()
{
return this._copyTagsToSnapshot.HasValue;
}
///
/// Gets and sets the property DatabaseName.
///
/// The name for your database of up to 64 alpha-numeric characters. If you do not provide
/// a name, Amazon Neptune will not create a database in the DB cluster you are creating.
///
///
public string DatabaseName
{
get { return this._databaseName; }
set { this._databaseName = value; }
}
// Check to see if DatabaseName property is set
internal bool IsSetDatabaseName()
{
return this._databaseName != null;
}
///
/// Gets and sets the property DBClusterIdentifier.
///
/// The DB cluster identifier. This parameter is stored as a lowercase string.
///
///
///
/// Constraints:
///
/// -
///
/// Must contain from 1 to 63 letters, numbers, or hyphens.
///
///
-
///
/// First character must be a letter.
///
///
-
///
/// Cannot end with a hyphen or contain two consecutive hyphens.
///
///
///
/// Example: my-cluster1
///
///
[AWSProperty(Required=true)]
public string DBClusterIdentifier
{
get { return this._dbClusterIdentifier; }
set { this._dbClusterIdentifier = value; }
}
// Check to see if DBClusterIdentifier property is set
internal bool IsSetDBClusterIdentifier()
{
return this._dbClusterIdentifier != null;
}
///
/// Gets and sets the property DBClusterParameterGroupName.
///
/// The name of the DB cluster parameter group to associate with this DB cluster. If
/// this argument is omitted, the default is used.
///
///
///
/// Constraints:
///
/// -
///
/// If supplied, must match the name of an existing DBClusterParameterGroup.
///
///
///
public string DBClusterParameterGroupName
{
get { return this._dbClusterParameterGroupName; }
set { this._dbClusterParameterGroupName = value; }
}
// Check to see if DBClusterParameterGroupName property is set
internal bool IsSetDBClusterParameterGroupName()
{
return this._dbClusterParameterGroupName != null;
}
///
/// Gets and sets the property DBSubnetGroupName.
///
/// A DB subnet group to associate with this DB cluster.
///
///
///
/// Constraints: Must match the name of an existing DBSubnetGroup. Must not be default.
///
///
///
/// Example: mySubnetgroup
///
///
public string DBSubnetGroupName
{
get { return this._dbSubnetGroupName; }
set { this._dbSubnetGroupName = value; }
}
// Check to see if DBSubnetGroupName property is set
internal bool IsSetDBSubnetGroupName()
{
return this._dbSubnetGroupName != null;
}
///
/// Gets and sets the property DeletionProtection.
///
/// A value that indicates whether the DB cluster has deletion protection enabled. The
/// database can't be deleted when deletion protection is enabled. By default, deletion
/// protection is enabled.
///
///
public bool DeletionProtection
{
get { return this._deletionProtection.GetValueOrDefault(); }
set { this._deletionProtection = value; }
}
// Check to see if DeletionProtection property is set
internal bool IsSetDeletionProtection()
{
return this._deletionProtection.HasValue;
}
///
/// Gets and sets the property EnableCloudwatchLogsExports.
///
/// The list of log types that need to be enabled for exporting to CloudWatch Logs.
///
///
public List EnableCloudwatchLogsExports
{
get { return this._enableCloudwatchLogsExports; }
set { this._enableCloudwatchLogsExports = value; }
}
// Check to see if EnableCloudwatchLogsExports property is set
internal bool IsSetEnableCloudwatchLogsExports()
{
return this._enableCloudwatchLogsExports != null && this._enableCloudwatchLogsExports.Count > 0;
}
///
/// Gets and sets the property EnableIAMDatabaseAuthentication.
///
/// If set to true
, enables Amazon Identity and Access Management (IAM) authentication
/// for the entire DB cluster (this cannot be set at an instance level).
///
///
///
/// Default: false
.
///
///
public bool EnableIAMDatabaseAuthentication
{
get { return this._enableIAMDatabaseAuthentication.GetValueOrDefault(); }
set { this._enableIAMDatabaseAuthentication = value; }
}
// Check to see if EnableIAMDatabaseAuthentication property is set
internal bool IsSetEnableIAMDatabaseAuthentication()
{
return this._enableIAMDatabaseAuthentication.HasValue;
}
///
/// Gets and sets the property Engine.
///
/// The name of the database engine to be used for this DB cluster.
///
///
///
/// Valid Values: neptune
///
///
[AWSProperty(Required=true)]
public string Engine
{
get { return this._engine; }
set { this._engine = value; }
}
// Check to see if Engine property is set
internal bool IsSetEngine()
{
return this._engine != null;
}
///
/// Gets and sets the property EngineVersion.
///
/// The version number of the database engine to use for the new DB cluster.
///
///
///
/// Example: 1.0.2.1
///
///
public string EngineVersion
{
get { return this._engineVersion; }
set { this._engineVersion = value; }
}
// Check to see if EngineVersion property is set
internal bool IsSetEngineVersion()
{
return this._engineVersion != null;
}
///
/// Gets and sets the property GlobalClusterIdentifier.
///
/// The ID of the Neptune global database to which this new DB cluster should be added.
///
///
[AWSProperty(Min=1, Max=255)]
public string GlobalClusterIdentifier
{
get { return this._globalClusterIdentifier; }
set { this._globalClusterIdentifier = value; }
}
// Check to see if GlobalClusterIdentifier property is set
internal bool IsSetGlobalClusterIdentifier()
{
return this._globalClusterIdentifier != null;
}
///
/// Gets and sets the property KmsKeyId.
///
/// The Amazon KMS key identifier for an encrypted DB cluster.
///
///
///
/// The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key.
/// If you are creating a DB cluster with the same Amazon account that owns the KMS encryption
/// key used to encrypt the new DB cluster, then you can use the KMS key alias instead
/// of the ARN for the KMS encryption key.
///
///
///
/// If an encryption key is not specified in KmsKeyId
:
///
/// -
///
/// If
ReplicationSourceIdentifier
identifies an encrypted source, then Amazon
/// Neptune will use the encryption key used to encrypt the source. Otherwise, Amazon
/// Neptune will use your default encryption key.
///
/// -
///
/// If the
StorageEncrypted
parameter is true and ReplicationSourceIdentifier
/// is not specified, then Amazon Neptune will use your default encryption key.
///
///
///
/// Amazon KMS creates the default encryption key for your Amazon account. Your Amazon
/// account has a different default encryption key for each Amazon Region.
///
///
///
/// If you create a Read Replica of an encrypted DB cluster in another Amazon Region,
/// you must set KmsKeyId
to a KMS key ID that is valid in the destination
/// Amazon Region. This key is used to encrypt the Read Replica in that Amazon Region.
///
///
public string KmsKeyId
{
get { return this._kmsKeyId; }
set { this._kmsKeyId = value; }
}
// Check to see if KmsKeyId property is set
internal bool IsSetKmsKeyId()
{
return this._kmsKeyId != null;
}
///
/// Gets and sets the property MasterUsername.
///
/// Not supported by Neptune.
///
///
public string MasterUsername
{
get { return this._masterUsername; }
set { this._masterUsername = value; }
}
// Check to see if MasterUsername property is set
internal bool IsSetMasterUsername()
{
return this._masterUsername != null;
}
///
/// Gets and sets the property MasterUserPassword.
///
/// Not supported by Neptune.
///
///
public string MasterUserPassword
{
get { return this._masterUserPassword; }
set { this._masterUserPassword = value; }
}
// Check to see if MasterUserPassword property is set
internal bool IsSetMasterUserPassword()
{
return this._masterUserPassword != null;
}
///
/// Gets and sets the property OptionGroupName.
///
/// (Not supported by Neptune)
///
///
public string OptionGroupName
{
get { return this._optionGroupName; }
set { this._optionGroupName = value; }
}
// Check to see if OptionGroupName property is set
internal bool IsSetOptionGroupName()
{
return this._optionGroupName != null;
}
///
/// Gets and sets the property Port.
///
/// The port number on which the instances in the DB cluster accept connections.
///
///
///
/// Default: 8182
///
///
public int Port
{
get { return this._port.GetValueOrDefault(); }
set { this._port = value; }
}
// Check to see if Port property is set
internal bool IsSetPort()
{
return this._port.HasValue;
}
///
/// Gets and sets the property PreferredBackupWindow.
///
/// The daily time range during which automated backups are created if automated backups
/// are enabled using the BackupRetentionPeriod
parameter.
///
///
///
/// The default is a 30-minute window selected at random from an 8-hour block of time
/// for each Amazon Region. To see the time blocks available, see
/// Adjusting the Preferred Maintenance Window in the Amazon Neptune 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.
///
///
///
public string PreferredBackupWindow
{
get { return this._preferredBackupWindow; }
set { this._preferredBackupWindow = value; }
}
// Check to see if PreferredBackupWindow property is set
internal bool IsSetPreferredBackupWindow()
{
return this._preferredBackupWindow != null;
}
///
/// Gets and sets the property PreferredMaintenanceWindow.
///
/// The weekly time range during which system maintenance can occur, in Universal Coordinated
/// Time (UTC).
///
///
///
/// Format: ddd:hh24:mi-ddd:hh24:mi
///
///
///
/// The default is a 30-minute window selected at random from an 8-hour block of time
/// for each Amazon Region, occurring on a random day of the week. To see the time blocks
/// available, see
/// Adjusting the Preferred Maintenance Window in the Amazon Neptune User Guide.
///
///
///
///
/// Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
///
///
///
/// Constraints: Minimum 30-minute window.
///
///
public string PreferredMaintenanceWindow
{
get { return this._preferredMaintenanceWindow; }
set { this._preferredMaintenanceWindow = value; }
}
// Check to see if PreferredMaintenanceWindow property is set
internal bool IsSetPreferredMaintenanceWindow()
{
return this._preferredMaintenanceWindow != null;
}
///
/// Gets and sets the property PreSignedUrl.
///
/// This parameter is not currently supported.
///
///
public string PreSignedUrl
{
get { return this._preSignedUrl; }
set { this._preSignedUrl = value; }
}
// Check to see if PreSignedUrl property is set
internal bool IsSetPreSignedUrl()
{
return this._preSignedUrl != null;
}
///
/// Gets and sets the property ReplicationSourceIdentifier.
///
/// The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB
/// cluster is created as a Read Replica.
///
///
public string ReplicationSourceIdentifier
{
get { return this._replicationSourceIdentifier; }
set { this._replicationSourceIdentifier = value; }
}
// Check to see if ReplicationSourceIdentifier property is set
internal bool IsSetReplicationSourceIdentifier()
{
return this._replicationSourceIdentifier != null;
}
///
/// Gets and sets the property ServerlessV2ScalingConfiguration.
///
public ServerlessV2ScalingConfiguration ServerlessV2ScalingConfiguration
{
get { return this._serverlessV2ScalingConfiguration; }
set { this._serverlessV2ScalingConfiguration = value; }
}
// Check to see if ServerlessV2ScalingConfiguration property is set
internal bool IsSetServerlessV2ScalingConfiguration()
{
return this._serverlessV2ScalingConfiguration != null;
}
///
/// Gets and sets the property StorageEncrypted.
///
/// Specifies whether the DB cluster is encrypted.
///
///
public bool StorageEncrypted
{
get { return this._storageEncrypted.GetValueOrDefault(); }
set { this._storageEncrypted = value; }
}
// Check to see if StorageEncrypted property is set
internal bool IsSetStorageEncrypted()
{
return this._storageEncrypted.HasValue;
}
///
/// Gets and sets the property Tags.
///
/// The tags to assign to the new DB cluster.
///
///
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property VpcSecurityGroupIds.
///
/// A list of EC2 VPC security groups to associate with this DB cluster.
///
///
public List VpcSecurityGroupIds
{
get { return this._vpcSecurityGroupIds; }
set { this._vpcSecurityGroupIds = value; }
}
// Check to see if VpcSecurityGroupIds property is set
internal bool IsSetVpcSecurityGroupIds()
{
return this._vpcSecurityGroupIds != null && this._vpcSecurityGroupIds.Count > 0;
}
}
}