/*
* 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 rds-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.RDS.Model
{
///
/// Container for the parameters to the CreateDBProxy operation.
/// Creates a new DB proxy.
///
public partial class CreateDBProxyRequest : AmazonRDSRequest
{
private List _auth = new List();
private string _dbProxyName;
private bool? _debugLogging;
private EngineFamily _engineFamily;
private int? _idleClientTimeout;
private bool? _requireTLS;
private string _roleArn;
private List _tags = new List();
private List _vpcSecurityGroupIds = new List();
private List _vpcSubnetIds = new List();
///
/// Gets and sets the property Auth.
///
/// The authorization mechanism that the proxy uses.
///
///
[AWSProperty(Required=true)]
public List Auth
{
get { return this._auth; }
set { this._auth = value; }
}
// Check to see if Auth property is set
internal bool IsSetAuth()
{
return this._auth != null && this._auth.Count > 0;
}
///
/// Gets and sets the property DBProxyName.
///
/// The identifier for the proxy. This name must be unique for all proxies owned by your
/// Amazon Web Services account in the specified Amazon Web Services Region. An identifier
/// must begin with a letter and must contain only ASCII letters, digits, and hyphens;
/// it can't end with a hyphen or contain two consecutive hyphens.
///
///
[AWSProperty(Required=true)]
public string DBProxyName
{
get { return this._dbProxyName; }
set { this._dbProxyName = value; }
}
// Check to see if DBProxyName property is set
internal bool IsSetDBProxyName()
{
return this._dbProxyName != null;
}
///
/// Gets and sets the property DebugLogging.
///
/// Whether the proxy includes detailed information about SQL statements in its logs.
/// This information helps you to debug issues involving SQL behavior or the performance
/// and scalability of the proxy connections. The debug information includes the text
/// of SQL statements that you submit through the proxy. Thus, only enable this setting
/// when needed for debugging, and only when you have security measures in place to safeguard
/// any sensitive information that appears in the logs.
///
///
public bool DebugLogging
{
get { return this._debugLogging.GetValueOrDefault(); }
set { this._debugLogging = value; }
}
// Check to see if DebugLogging property is set
internal bool IsSetDebugLogging()
{
return this._debugLogging.HasValue;
}
///
/// Gets and sets the property EngineFamily.
///
/// The kinds of databases that the proxy can connect to. This value determines which
/// database network protocol the proxy recognizes when it interprets network traffic
/// to and from the database. For Aurora MySQL, RDS for MariaDB, and RDS for MySQL databases,
/// specify MYSQL
. For Aurora PostgreSQL and RDS for PostgreSQL databases,
/// specify POSTGRESQL
. For RDS for Microsoft SQL Server, specify SQLSERVER
.
///
///
[AWSProperty(Required=true)]
public EngineFamily EngineFamily
{
get { return this._engineFamily; }
set { this._engineFamily = value; }
}
// Check to see if EngineFamily property is set
internal bool IsSetEngineFamily()
{
return this._engineFamily != null;
}
///
/// Gets and sets the property IdleClientTimeout.
///
/// The number of seconds that a connection to the proxy can be inactive before the proxy
/// disconnects it. You can set this value higher or lower than the connection timeout
/// limit for the associated database.
///
///
public int IdleClientTimeout
{
get { return this._idleClientTimeout.GetValueOrDefault(); }
set { this._idleClientTimeout = value; }
}
// Check to see if IdleClientTimeout property is set
internal bool IsSetIdleClientTimeout()
{
return this._idleClientTimeout.HasValue;
}
///
/// Gets and sets the property RequireTLS.
///
/// A Boolean parameter that specifies whether Transport Layer Security (TLS) encryption
/// is required for connections to the proxy. By enabling this setting, you can enforce
/// encrypted TLS connections to the proxy.
///
///
public bool RequireTLS
{
get { return this._requireTLS.GetValueOrDefault(); }
set { this._requireTLS = value; }
}
// Check to see if RequireTLS property is set
internal bool IsSetRequireTLS()
{
return this._requireTLS.HasValue;
}
///
/// Gets and sets the property RoleArn.
///
/// The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets
/// in Amazon Web Services Secrets Manager.
///
///
[AWSProperty(Required=true)]
public string RoleArn
{
get { return this._roleArn; }
set { this._roleArn = value; }
}
// Check to see if RoleArn property is set
internal bool IsSetRoleArn()
{
return this._roleArn != null;
}
///
/// Gets and sets the property Tags.
///
/// An optional set of key-value pairs to associate arbitrary data of your choosing with
/// the proxy.
///
///
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.
///
/// One or more VPC security group IDs to associate with the new proxy.
///
///
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;
}
///
/// Gets and sets the property VpcSubnetIds.
///
/// One or more VPC subnet IDs to associate with the new proxy.
///
///
[AWSProperty(Required=true)]
public List VpcSubnetIds
{
get { return this._vpcSubnetIds; }
set { this._vpcSubnetIds = value; }
}
// Check to see if VpcSubnetIds property is set
internal bool IsSetVpcSubnetIds()
{
return this._vpcSubnetIds != null && this._vpcSubnetIds.Count > 0;
}
}
}