/*
* 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 CreateDBInstance operation.
/// Creates a new DB instance.
///
public partial class CreateDBInstanceRequest : AmazonNeptuneRequest
{
private int? _allocatedStorage;
private bool? _autoMinorVersionUpgrade;
private string _availabilityZone;
private int? _backupRetentionPeriod;
private string _characterSetName;
private bool? _copyTagsToSnapshot;
private string _dbClusterIdentifier;
private string _dbInstanceClass;
private string _dbInstanceIdentifier;
private string _dbName;
private string _dbParameterGroupName;
private List _dbSecurityGroups = new List();
private string _dbSubnetGroupName;
private bool? _deletionProtection;
private string _domain;
private string _domainIAMRoleName;
private List _enableCloudwatchLogsExports = new List();
private bool? _enableIAMDatabaseAuthentication;
private bool? _enablePerformanceInsights;
private string _engine;
private string _engineVersion;
private int? _iops;
private string _kmsKeyId;
private string _licenseModel;
private string _masterUsername;
private string _masterUserPassword;
private int? _monitoringInterval;
private string _monitoringRoleArn;
private bool? _multiAZ;
private string _optionGroupName;
private string _performanceInsightsKMSKeyId;
private int? _port;
private string _preferredBackupWindow;
private string _preferredMaintenanceWindow;
private int? _promotionTier;
private bool? _publiclyAccessible;
private bool? _storageEncrypted;
private string _storageType;
private List _tags = new List();
private string _tdeCredentialArn;
private string _tdeCredentialPassword;
private string _timezone;
private List _vpcSecurityGroupIds = new List();
///
/// Gets and sets the property AllocatedStorage.
///
/// Not supported by Neptune.
///
///
public int AllocatedStorage
{
get { return this._allocatedStorage.GetValueOrDefault(); }
set { this._allocatedStorage = value; }
}
// Check to see if AllocatedStorage property is set
internal bool IsSetAllocatedStorage()
{
return this._allocatedStorage.HasValue;
}
///
/// Gets and sets the property AutoMinorVersionUpgrade.
///
/// Indicates that minor engine upgrades are applied automatically to the DB instance
/// during the maintenance window.
///
///
///
/// Default: true
///
///
public bool AutoMinorVersionUpgrade
{
get { return this._autoMinorVersionUpgrade.GetValueOrDefault(); }
set { this._autoMinorVersionUpgrade = value; }
}
// Check to see if AutoMinorVersionUpgrade property is set
internal bool IsSetAutoMinorVersionUpgrade()
{
return this._autoMinorVersionUpgrade.HasValue;
}
///
/// Gets and sets the property AvailabilityZone.
///
/// The EC2 Availability Zone that the DB instance is created in
///
///
///
/// Default: A random, system-chosen Availability Zone in the endpoint's Amazon Region.
///
///
///
/// Example: us-east-1d
///
///
///
/// Constraint: The AvailabilityZone parameter can't be specified if the MultiAZ parameter
/// is set to true
. The specified Availability Zone must be in the same Amazon
/// Region as the current endpoint.
///
///
public string AvailabilityZone
{
get { return this._availabilityZone; }
set { this._availabilityZone = value; }
}
// Check to see if AvailabilityZone property is set
internal bool IsSetAvailabilityZone()
{
return this._availabilityZone != null;
}
///
/// Gets and sets the property BackupRetentionPeriod.
///
/// The number of days for which automated backups are retained.
///
///
///
/// Not applicable. The retention period for automated backups is managed by the DB cluster.
/// For more information, see CreateDBCluster.
///
///
///
/// Default: 1
///
///
///
/// Constraints:
///
/// -
///
/// Must be a value from 0 to 35
///
///
-
///
/// Cannot be set to 0 if the DB instance is a source to Read Replicas
///
///
///
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.
///
/// True to copy all tags from the DB instance to snapshots of the DB instance, and otherwise
/// false. The default is false.
///
///
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 DBClusterIdentifier.
///
/// The identifier of the DB cluster that the instance will belong to.
///
///
///
/// For information on creating a DB cluster, see CreateDBCluster.
///
///
///
/// Type: String
///
///
[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 DBInstanceClass.
///
/// The compute and memory capacity of the DB instance, for example, db.m4.large
.
/// Not all DB instance classes are available in all Amazon Regions.
///
///
[AWSProperty(Required=true)]
public string DBInstanceClass
{
get { return this._dbInstanceClass; }
set { this._dbInstanceClass = value; }
}
// Check to see if DBInstanceClass property is set
internal bool IsSetDBInstanceClass()
{
return this._dbInstanceClass != null;
}
///
/// Gets and sets the property DBInstanceIdentifier.
///
/// The DB instance 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: mydbinstance
///
///
[AWSProperty(Required=true)]
public string DBInstanceIdentifier
{
get { return this._dbInstanceIdentifier; }
set { this._dbInstanceIdentifier = value; }
}
// Check to see if DBInstanceIdentifier property is set
internal bool IsSetDBInstanceIdentifier()
{
return this._dbInstanceIdentifier != null;
}
///
/// Gets and sets the property DBName.
///
/// Not supported.
///
///
public string DBName
{
get { return this._dbName; }
set { this._dbName = value; }
}
// Check to see if DBName property is set
internal bool IsSetDBName()
{
return this._dbName != null;
}
///
/// Gets and sets the property DBParameterGroupName.
///
/// The name of the DB parameter group to associate with this DB instance. If this argument
/// is omitted, the default DBParameterGroup for the specified engine is used.
///
///
///
/// Constraints:
///
/// -
///
/// Must be 1 to 255 letters, numbers, or hyphens.
///
///
-
///
/// First character must be a letter
///
///
-
///
/// Cannot end with a hyphen or contain two consecutive hyphens
///
///
///
public string DBParameterGroupName
{
get { return this._dbParameterGroupName; }
set { this._dbParameterGroupName = value; }
}
// Check to see if DBParameterGroupName property is set
internal bool IsSetDBParameterGroupName()
{
return this._dbParameterGroupName != null;
}
///
/// Gets and sets the property DBSecurityGroups.
///
/// A list of DB security groups to associate with this DB instance.
///
///
///
/// Default: The default DB security group for the database engine.
///
///
public List DBSecurityGroups
{
get { return this._dbSecurityGroups; }
set { this._dbSecurityGroups = value; }
}
// Check to see if DBSecurityGroups property is set
internal bool IsSetDBSecurityGroups()
{
return this._dbSecurityGroups != null && this._dbSecurityGroups.Count > 0;
}
///
/// Gets and sets the property DBSubnetGroupName.
///
/// A DB subnet group to associate with this DB instance.
///
///
///
/// If there is no DB subnet group, then it is a non-VPC DB instance.
///
///
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 instance has deletion protection enabled. The
/// database can't be deleted when deletion protection is enabled. By default, deletion
/// protection is disabled. See Deleting
/// a DB Instance.
///
///
///
/// DB instances in a DB cluster can be deleted even when deletion protection is enabled
/// in their parent DB cluster.
///
///
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 Domain.
///
/// Specify the Active Directory Domain to create the instance in.
///
///
public string Domain
{
get { return this._domain; }
set { this._domain = value; }
}
// Check to see if Domain property is set
internal bool IsSetDomain()
{
return this._domain != null;
}
///
/// Gets and sets the property DomainIAMRoleName.
///
/// Specify the name of the IAM role to be used when making API calls to the Directory
/// Service.
///
///
public string DomainIAMRoleName
{
get { return this._domainIAMRoleName; }
set { this._domainIAMRoleName = value; }
}
// Check to see if DomainIAMRoleName property is set
internal bool IsSetDomainIAMRoleName()
{
return this._domainIAMRoleName != null;
}
///
/// 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.
///
/// Not supported by Neptune (ignored).
///
///
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 EnablePerformanceInsights.
///
/// (Not supported by Neptune)
///
///
public bool EnablePerformanceInsights
{
get { return this._enablePerformanceInsights.GetValueOrDefault(); }
set { this._enablePerformanceInsights = value; }
}
// Check to see if EnablePerformanceInsights property is set
internal bool IsSetEnablePerformanceInsights()
{
return this._enablePerformanceInsights.HasValue;
}
///
/// Gets and sets the property Engine.
///
/// The name of the database engine to be used for this instance.
///
///
///
/// 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. Currently, setting this parameter
/// has no effect.
///
///
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 Iops.
///
/// The amount of Provisioned IOPS (input/output operations per second) to be initially
/// allocated for the DB instance.
///
///
public int Iops
{
get { return this._iops.GetValueOrDefault(); }
set { this._iops = value; }
}
// Check to see if Iops property is set
internal bool IsSetIops()
{
return this._iops.HasValue;
}
///
/// Gets and sets the property KmsKeyId.
///
/// The Amazon KMS key identifier for an encrypted DB instance.
///
///
///
/// The KMS key identifier is the Amazon Resource Name (ARN) for the KMS encryption key.
/// If you are creating a DB instance with the same Amazon account that owns the KMS encryption
/// key used to encrypt the new DB instance, then you can use the KMS key alias instead
/// of the ARN for the KM encryption key.
///
///
///
/// Not applicable. The KMS key identifier is managed by the DB cluster. For more information,
/// see CreateDBCluster.
///
///
///
/// If the StorageEncrypted
parameter is true, and you do not specify a value
/// for the KmsKeyId
parameter, 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.
///
///
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 LicenseModel.
///
/// License model information for this DB instance.
///
///
///
/// Valid values: license-included
| bring-your-own-license
/// | general-public-license
///
///
public string LicenseModel
{
get { return this._licenseModel; }
set { this._licenseModel = value; }
}
// Check to see if LicenseModel property is set
internal bool IsSetLicenseModel()
{
return this._licenseModel != 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 MonitoringInterval.
///
/// The interval, in seconds, between points when Enhanced Monitoring metrics are collected
/// for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0.
/// The default is 0.
///
///
///
/// If MonitoringRoleArn
is specified, then you must also set MonitoringInterval
/// to a value other than 0.
///
///
///
/// Valid Values: 0, 1, 5, 10, 15, 30, 60
///
///
public int MonitoringInterval
{
get { return this._monitoringInterval.GetValueOrDefault(); }
set { this._monitoringInterval = value; }
}
// Check to see if MonitoringInterval property is set
internal bool IsSetMonitoringInterval()
{
return this._monitoringInterval.HasValue;
}
///
/// Gets and sets the property MonitoringRoleArn.
///
/// The ARN for the IAM role that permits Neptune to send enhanced monitoring metrics
/// to Amazon CloudWatch Logs. For example, arn:aws:iam:123456789012:role/emaccess
.
///
///
///
/// If MonitoringInterval
is set to a value other than 0, then you must supply
/// a MonitoringRoleArn
value.
///
///
public string MonitoringRoleArn
{
get { return this._monitoringRoleArn; }
set { this._monitoringRoleArn = value; }
}
// Check to see if MonitoringRoleArn property is set
internal bool IsSetMonitoringRoleArn()
{
return this._monitoringRoleArn != null;
}
///
/// Gets and sets the property MultiAZ.
///
/// Specifies if the DB instance is a Multi-AZ deployment. You can't set the AvailabilityZone
/// parameter if the MultiAZ parameter is set to true.
///
///
public bool MultiAZ
{
get { return this._multiAZ.GetValueOrDefault(); }
set { this._multiAZ = value; }
}
// Check to see if MultiAZ property is set
internal bool IsSetMultiAZ()
{
return this._multiAZ.HasValue;
}
///
/// 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 PerformanceInsightsKMSKeyId.
///
/// (Not supported by Neptune)
///
///
public string PerformanceInsightsKMSKeyId
{
get { return this._performanceInsightsKMSKeyId; }
set { this._performanceInsightsKMSKeyId = value; }
}
// Check to see if PerformanceInsightsKMSKeyId property is set
internal bool IsSetPerformanceInsightsKMSKeyId()
{
return this._performanceInsightsKMSKeyId != null;
}
///
/// Gets and sets the property Port.
///
/// The port number on which the database accepts connections.
///
///
///
/// Not applicable. The port is managed by the DB cluster. For more information, see CreateDBCluster.
///
///
///
/// Default: 8182
///
///
///
/// Type: Integer
///
///
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.
///
///
///
/// Not applicable. The daily time range for creating automated backups is managed by
/// the DB cluster. For more information, see CreateDBCluster.
///
///
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 time range each week 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.
///
///
///
/// 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 PromotionTier.
///
/// A value that specifies the order in which an Read Replica is promoted to the primary
/// instance after a failure of the existing primary instance.
///
///
///
/// Default: 1
///
///
///
/// Valid Values: 0 - 15
///
///
public int PromotionTier
{
get { return this._promotionTier.GetValueOrDefault(); }
set { this._promotionTier = value; }
}
// Check to see if PromotionTier property is set
internal bool IsSetPromotionTier()
{
return this._promotionTier.HasValue;
}
///
/// Gets and sets the property PubliclyAccessible.
///
/// This flag should no longer be used.
///
///
[Obsolete("This parameter is not supported")]
public bool PubliclyAccessible
{
get { return this._publiclyAccessible.GetValueOrDefault(); }
set { this._publiclyAccessible = value; }
}
// Check to see if PubliclyAccessible property is set
internal bool IsSetPubliclyAccessible()
{
return this._publiclyAccessible.HasValue;
}
///
/// Gets and sets the property StorageEncrypted.
///
/// Specifies whether the DB instance is encrypted.
///
///
///
/// Not applicable. The encryption for DB instances is managed by the DB cluster. For
/// more information, see CreateDBCluster.
///
///
///
/// Default: false
///
///
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 StorageType.
///
/// Specifies the storage type to be associated with the DB instance.
///
///
///
/// Not applicable. Storage is managed by the DB Cluster.
///
///
public string StorageType
{
get { return this._storageType; }
set { this._storageType = value; }
}
// Check to see if StorageType property is set
internal bool IsSetStorageType()
{
return this._storageType != null;
}
///
/// Gets and sets the property Tags.
///
/// The tags to assign to the new instance.
///
///
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 TdeCredentialArn.
///
/// The ARN from the key store with which to associate the instance for TDE encryption.
///
///
public string TdeCredentialArn
{
get { return this._tdeCredentialArn; }
set { this._tdeCredentialArn = value; }
}
// Check to see if TdeCredentialArn property is set
internal bool IsSetTdeCredentialArn()
{
return this._tdeCredentialArn != null;
}
///
/// Gets and sets the property TdeCredentialPassword.
///
/// The password for the given ARN from the key store in order to access the device.
///
///
public string TdeCredentialPassword
{
get { return this._tdeCredentialPassword; }
set { this._tdeCredentialPassword = value; }
}
// Check to see if TdeCredentialPassword property is set
internal bool IsSetTdeCredentialPassword()
{
return this._tdeCredentialPassword != null;
}
///
/// Gets and sets the property Timezone.
///
/// The time zone of the DB instance.
///
///
public string Timezone
{
get { return this._timezone; }
set { this._timezone = value; }
}
// Check to see if Timezone property is set
internal bool IsSetTimezone()
{
return this._timezone != null;
}
///
/// Gets and sets the property VpcSecurityGroupIds.
///
/// A list of EC2 VPC security groups to associate with this DB instance.
///
///
///
/// Not applicable. The associated list of EC2 VPC security groups is managed by the DB
/// cluster. For more information, see CreateDBCluster.
///
///
///
/// Default: The default EC2 VPC security group for the DB subnet group's VPC.
///
///
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;
}
}
}