/*
* 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 lightsail-2016-11-28.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.Lightsail.Model
{
///
/// Container for the parameters to the CreateRelationalDatabase operation.
/// Creates a new database in Amazon Lightsail.
///
///
///
/// The create relational database
operation supports tag-based access control
/// via request tags. For more information, see the Amazon
/// Lightsail Developer Guide.
///
///
public partial class CreateRelationalDatabaseRequest : AmazonLightsailRequest
{
private string _availabilityZone;
private string _masterDatabaseName;
private string _masterUsername;
private string _masterUserPassword;
private string _preferredBackupWindow;
private string _preferredMaintenanceWindow;
private bool? _publiclyAccessible;
private string _relationalDatabaseBlueprintId;
private string _relationalDatabaseBundleId;
private string _relationalDatabaseName;
private List _tags = new List();
///
/// Gets and sets the property AvailabilityZone.
///
/// The Availability Zone in which to create your new database. Use the us-east-2a
/// case-sensitive format.
///
///
///
/// You can get a list of Availability Zones by using the get regions
operation.
/// Be sure to add the include relational database Availability Zones
parameter
/// to your request.
///
///
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 MasterDatabaseName.
///
/// The meaning of this parameter differs according to the database engine you use.
///
///
///
/// MySQL
///
///
///
/// The name of the database to create when the Lightsail database resource is created.
/// If this parameter isn't specified, no database is created in the database resource.
///
///
///
/// Constraints:
///
/// -
///
/// Must contain 1 to 64 letters or numbers.
///
///
-
///
/// Must begin with a letter. Subsequent characters can be letters, underscores, or digits
/// (0- 9).
///
///
-
///
/// Can't be a word reserved by the specified database engine.
///
///
///
/// For more information about reserved words in MySQL, see the Keywords and Reserved
/// Words articles for MySQL
/// 5.6, MySQL 5.7,
/// and MySQL 8.0.
///
///
///
/// PostgreSQL
///
///
///
/// The name of the database to create when the Lightsail database resource is created.
/// If this parameter isn't specified, a database named postgres
is created
/// in the database resource.
///
///
///
/// Constraints:
///
/// -
///
/// Must contain 1 to 63 letters or numbers.
///
///
-
///
/// Must begin with a letter. Subsequent characters can be letters, underscores, or digits
/// (0- 9).
///
///
-
///
/// Can't be a word reserved by the specified database engine.
///
///
///
/// For more information about reserved words in PostgreSQL, see the SQL Key Words articles
/// for PostgreSQL
/// 9.6, PostgreSQL
/// 10, PostgreSQL
/// 11, and PostgreSQL
/// 12.
///
///
///
[AWSProperty(Required=true)]
public string MasterDatabaseName
{
get { return this._masterDatabaseName; }
set { this._masterDatabaseName = value; }
}
// Check to see if MasterDatabaseName property is set
internal bool IsSetMasterDatabaseName()
{
return this._masterDatabaseName != null;
}
///
/// Gets and sets the property MasterUsername.
///
/// The name for the master user.
///
///
///
/// MySQL
///
///
///
/// Constraints:
///
/// -
///
/// Required for MySQL.
///
///
-
///
/// Must be 1 to 16 letters or numbers. Can contain underscores.
///
///
-
///
/// First character must be a letter.
///
///
-
///
/// Can't be a reserved word for the chosen database engine.
///
///
///
/// For more information about reserved words in MySQL 5.6 or 5.7, see the Keywords and
/// Reserved Words articles for MySQL
/// 5.6, MySQL 5.7,
/// or MySQL 8.0.
///
///
///
/// PostgreSQL
///
///
///
/// Constraints:
///
/// -
///
/// Required for PostgreSQL.
///
///
-
///
/// Must be 1 to 63 letters or numbers. Can contain underscores.
///
///
-
///
/// First character must be a letter.
///
///
-
///
/// Can't be a reserved word for the chosen database engine.
///
///
///
/// For more information about reserved words in MySQL 5.6 or 5.7, see the Keywords and
/// Reserved Words articles for PostgreSQL
/// 9.6, PostgreSQL
/// 10, PostgreSQL
/// 11, and PostgreSQL
/// 12.
///
///
///
[AWSProperty(Required=true)]
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.
///
/// The password for the master user. The password can include any printable ASCII character
/// except "/", """, or "@". It cannot contain spaces.
///
///
///
/// MySQL
///
///
///
/// Constraints: Must contain from 8 to 41 characters.
///
///
///
/// PostgreSQL
///
///
///
/// Constraints: Must contain from 8 to 128 characters.
///
///
[AWSProperty(Sensitive=true)]
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 PreferredBackupWindow.
///
/// The daily time range during which automated backups are created for your new database
/// if automated backups are enabled.
///
///
///
/// The default is a 30-minute window selected at random from an 8-hour block of time
/// for each AWS Region. For more information about the preferred backup window time blocks
/// for each region, see the Working
/// With Backups guide in the Amazon Relational Database Service documentation.
///
///
///
/// Constraints:
///
/// -
///
/// Must be in the
hh24:mi-hh24:mi
format.
///
///
///
/// Example: 16:00-16:30
///
/// -
///
/// Specified in Coordinated Universal 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 on your new database.
///
///
///
/// The default is a 30-minute window selected at random from an 8-hour block of time
/// for each AWS Region, occurring on a random day of the week.
///
///
///
/// Constraints:
///
/// -
///
/// Must be in the
ddd:hh24:mi-ddd:hh24:mi
format.
///
/// -
///
/// Valid days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
///
///
-
///
/// Must be at least 30 minutes.
///
///
-
///
/// Specified in Coordinated Universal Time (UTC).
///
///
-
///
/// Example:
Tue:17:00-Tue:17:30
///
///
///
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 PubliclyAccessible.
///
/// Specifies the accessibility options for your new database. A value of true
/// specifies a database that is available to resources outside of your Lightsail account.
/// A value of false
specifies a database that is available only to your
/// Lightsail resources in the same region as your database.
///
///
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 RelationalDatabaseBlueprintId.
///
/// The blueprint ID for your new database. A blueprint describes the major engine version
/// of a database.
///
///
///
/// You can get a list of database blueprints IDs by using the get relational database
/// blueprints
operation.
///
///
[AWSProperty(Required=true)]
public string RelationalDatabaseBlueprintId
{
get { return this._relationalDatabaseBlueprintId; }
set { this._relationalDatabaseBlueprintId = value; }
}
// Check to see if RelationalDatabaseBlueprintId property is set
internal bool IsSetRelationalDatabaseBlueprintId()
{
return this._relationalDatabaseBlueprintId != null;
}
///
/// Gets and sets the property RelationalDatabaseBundleId.
///
/// The bundle ID for your new database. A bundle describes the performance specifications
/// for your database.
///
///
///
/// You can get a list of database bundle IDs by using the get relational database
/// bundles
operation.
///
///
[AWSProperty(Required=true)]
public string RelationalDatabaseBundleId
{
get { return this._relationalDatabaseBundleId; }
set { this._relationalDatabaseBundleId = value; }
}
// Check to see if RelationalDatabaseBundleId property is set
internal bool IsSetRelationalDatabaseBundleId()
{
return this._relationalDatabaseBundleId != null;
}
///
/// Gets and sets the property RelationalDatabaseName.
///
/// The name to use for your new Lightsail database resource.
///
///
///
/// Constraints:
///
/// -
///
/// Must contain from 2 to 255 alphanumeric characters, or hyphens.
///
///
-
///
/// The first and last character must be a letter or number.
///
///
///
[AWSProperty(Required=true)]
public string RelationalDatabaseName
{
get { return this._relationalDatabaseName; }
set { this._relationalDatabaseName = value; }
}
// Check to see if RelationalDatabaseName property is set
internal bool IsSetRelationalDatabaseName()
{
return this._relationalDatabaseName != null;
}
///
/// Gets and sets the property Tags.
///
/// The tag keys and optional values to add to the resource during create.
///
///
///
/// Use the TagResource
action to tag a resource after it's created.
///
///
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;
}
}
}