/*
* 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 glue-2017-03-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.Glue.Model
{
///
/// Defines a connection to a data source.
///
public partial class Connection
{
private Dictionary _connectionProperties = new Dictionary();
private ConnectionType _connectionType;
private DateTime? _creationTime;
private string _description;
private string _lastUpdatedBy;
private DateTime? _lastUpdatedTime;
private List _matchCriteria = new List();
private string _name;
private PhysicalConnectionRequirements _physicalConnectionRequirements;
///
/// Gets and sets the property ConnectionProperties.
///
/// These key-value pairs define parameters for the connection:
///
/// -
///
///
HOST
- The host URI: either the fully qualified domain name (FQDN) or
/// the IPv4 address of the database host.
///
/// -
///
///
PORT
- The port number, between 1024 and 65535, of the port on which
/// the database host is listening for database connections.
///
/// -
///
///
USER_NAME
- The name under which to log in to the database. The value
/// string for USER_NAME
is "USERNAME
".
///
/// -
///
///
PASSWORD
- A password, if one is used, for the user name.
///
/// -
///
///
ENCRYPTED_PASSWORD
- When you enable connection password protection
/// by setting ConnectionPasswordEncryption
in the Data Catalog encryption
/// settings, this field stores the encrypted password.
///
/// -
///
///
JDBC_DRIVER_JAR_URI
- The Amazon Simple Storage Service (Amazon S3)
/// path of the JAR file that contains the JDBC driver to use.
///
/// -
///
///
JDBC_DRIVER_CLASS_NAME
- The class name of the JDBC driver to use.
///
/// -
///
///
JDBC_ENGINE
- The name of the JDBC engine to use.
///
/// -
///
///
JDBC_ENGINE_VERSION
- The version of the JDBC engine to use.
///
/// -
///
///
CONFIG_FILES
- (Reserved for future use.)
///
/// -
///
///
INSTANCE_ID
- The instance ID to use.
///
/// -
///
///
JDBC_CONNECTION_URL
- The URL for connecting to a JDBC data source.
///
/// -
///
///
JDBC_ENFORCE_SSL
- A Boolean string (true, false) specifying whether
/// Secure Sockets Layer (SSL) with hostname matching is enforced for the JDBC connection
/// on the client. The default is false.
///
/// -
///
///
CUSTOM_JDBC_CERT
- An Amazon S3 location specifying the customer's root
/// certificate. Glue uses this root certificate to validate the customer’s certificate
/// when connecting to the customer database. Glue only handles X.509 certificates. The
/// certificate provided must be DER-encoded and supplied in Base64 encoding PEM format.
///
/// -
///
///
SKIP_CUSTOM_JDBC_CERT_VALIDATION
- By default, this is false
.
/// Glue validates the Signature algorithm and Subject Public Key Algorithm for the customer
/// certificate. The only permitted algorithms for the Signature algorithm are SHA256withRSA,
/// SHA384withRSA or SHA512withRSA. For the Subject Public Key Algorithm, the key length
/// must be at least 2048. You can set the value of this property to true
/// to skip Glue’s validation of the customer certificate.
///
/// -
///
///
CUSTOM_JDBC_CERT_STRING
- A custom JDBC certificate string which is
/// used for domain match or distinguished name match to prevent a man-in-the-middle attack.
/// In Oracle database, this is used as the SSL_SERVER_CERT_DN
; in Microsoft
/// SQL Server, this is used as the hostNameInCertificate
.
///
/// -
///
///
CONNECTION_URL
- The URL for connecting to a general (non-JDBC) data
/// source.
///
/// -
///
///
SECRET_ID
- The secret ID used for the secret manager of credentials.
///
/// -
///
///
CONNECTOR_URL
- The connector URL for a MARKETPLACE or CUSTOM connection.
///
/// -
///
///
CONNECTOR_TYPE
- The connector type for a MARKETPLACE or CUSTOM connection.
///
/// -
///
///
CONNECTOR_CLASS_NAME
- The connector class name for a MARKETPLACE or
/// CUSTOM connection.
///
/// -
///
///
KAFKA_BOOTSTRAP_SERVERS
- A comma-separated list of host and port pairs
/// that are the addresses of the Apache Kafka brokers in a Kafka cluster to which a Kafka
/// client will connect to and bootstrap itself.
///
/// -
///
///
KAFKA_SSL_ENABLED
- Whether to enable or disable SSL on an Apache Kafka
/// connection. Default value is "true".
///
/// -
///
///
KAFKA_CUSTOM_CERT
- The Amazon S3 URL for the private CA cert file (.pem
/// format). The default is an empty string.
///
/// -
///
///
KAFKA_SKIP_CUSTOM_CERT_VALIDATION
- Whether to skip the validation of
/// the CA cert file or not. Glue validates for three algorithms: SHA256withRSA, SHA384withRSA
/// and SHA512withRSA. Default value is "false".
///
/// -
///
///
KAFKA_CLIENT_KEYSTORE
- The Amazon S3 location of the client keystore
/// file for Kafka client side authentication (Optional).
///
/// -
///
///
KAFKA_CLIENT_KEYSTORE_PASSWORD
- The password to access the provided
/// keystore (Optional).
///
/// -
///
///
KAFKA_CLIENT_KEY_PASSWORD
- A keystore can consist of multiple keys,
/// so this is the password to access the client key to be used with the Kafka server
/// side key (Optional).
///
/// -
///
///
ENCRYPTED_KAFKA_CLIENT_KEYSTORE_PASSWORD
- The encrypted version of
/// the Kafka client keystore password (if the user has the Glue encrypt passwords setting
/// selected).
///
/// -
///
///
ENCRYPTED_KAFKA_CLIENT_KEY_PASSWORD
- The encrypted version of the Kafka
/// client key password (if the user has the Glue encrypt passwords setting selected).
///
/// -
///
///
KAFKA_SASL_MECHANISM
- "SCRAM-SHA-512"
, "GSSAPI"
,
/// or "AWS_MSK_IAM"
. These are the supported SASL
/// Mechanisms.
///
/// -
///
///
KAFKA_SASL_SCRAM_USERNAME
- A plaintext username used to authenticate
/// with the "SCRAM-SHA-512" mechanism.
///
/// -
///
///
KAFKA_SASL_SCRAM_PASSWORD
- A plaintext password used to authenticate
/// with the "SCRAM-SHA-512" mechanism.
///
/// -
///
///
ENCRYPTED_KAFKA_SASL_SCRAM_PASSWORD
- The encrypted version of the Kafka
/// SASL SCRAM password (if the user has the Glue encrypt passwords setting selected).
///
/// -
///
///
KAFKA_SASL_GSSAPI_KEYTAB
- The S3 location of a Kerberos keytab
/// file. A keytab stores long-term keys for one or more principals. For more information,
/// see MIT
/// Kerberos Documentation: Keytab.
///
/// -
///
///
KAFKA_SASL_GSSAPI_KRB5_CONF
- The S3 location of a Kerberos krb5.conf
/// file. A krb5.conf stores Kerberos configuration information, such as the location
/// of the KDC server. For more information, see MIT
/// Kerberos Documentation: krb5.conf.
///
/// -
///
///
KAFKA_SASL_GSSAPI_SERVICE
- The Kerberos service name, as set with sasl.kerberos.service.name
/// in your Kafka
/// Configuration.
///
/// -
///
///
KAFKA_SASL_GSSAPI_PRINCIPAL
- The name of the Kerberos princial used
/// by Glue. For more information, see Kafka
/// Documentation: Configuring Kafka Brokers.
///
///
///
[AWSProperty(Min=0, Max=100)]
public Dictionary ConnectionProperties
{
get { return this._connectionProperties; }
set { this._connectionProperties = value; }
}
// Check to see if ConnectionProperties property is set
internal bool IsSetConnectionProperties()
{
return this._connectionProperties != null && this._connectionProperties.Count > 0;
}
///
/// Gets and sets the property ConnectionType.
///
/// The type of the connection. Currently, SFTP is not supported.
///
///
public ConnectionType ConnectionType
{
get { return this._connectionType; }
set { this._connectionType = value; }
}
// Check to see if ConnectionType property is set
internal bool IsSetConnectionType()
{
return this._connectionType != null;
}
///
/// Gets and sets the property CreationTime.
///
/// The time that this connection definition was created.
///
///
public DateTime CreationTime
{
get { return this._creationTime.GetValueOrDefault(); }
set { this._creationTime = value; }
}
// Check to see if CreationTime property is set
internal bool IsSetCreationTime()
{
return this._creationTime.HasValue;
}
///
/// Gets and sets the property Description.
///
/// The description of the connection.
///
///
[AWSProperty(Min=0, Max=2048)]
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property LastUpdatedBy.
///
/// The user, group, or role that last updated this connection definition.
///
///
[AWSProperty(Min=1, Max=255)]
public string LastUpdatedBy
{
get { return this._lastUpdatedBy; }
set { this._lastUpdatedBy = value; }
}
// Check to see if LastUpdatedBy property is set
internal bool IsSetLastUpdatedBy()
{
return this._lastUpdatedBy != null;
}
///
/// Gets and sets the property LastUpdatedTime.
///
/// The last time that this connection definition was updated.
///
///
public DateTime LastUpdatedTime
{
get { return this._lastUpdatedTime.GetValueOrDefault(); }
set { this._lastUpdatedTime = value; }
}
// Check to see if LastUpdatedTime property is set
internal bool IsSetLastUpdatedTime()
{
return this._lastUpdatedTime.HasValue;
}
///
/// Gets and sets the property MatchCriteria.
///
/// A list of criteria that can be used in selecting this connection.
///
///
[AWSProperty(Min=0, Max=10)]
public List MatchCriteria
{
get { return this._matchCriteria; }
set { this._matchCriteria = value; }
}
// Check to see if MatchCriteria property is set
internal bool IsSetMatchCriteria()
{
return this._matchCriteria != null && this._matchCriteria.Count > 0;
}
///
/// Gets and sets the property Name.
///
/// The name of the connection definition.
///
///
[AWSProperty(Min=1, Max=255)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property PhysicalConnectionRequirements.
///
/// A map of physical connection requirements, such as virtual private cloud (VPC) and
/// SecurityGroup
, that are needed to make this connection successfully.
///
///
public PhysicalConnectionRequirements PhysicalConnectionRequirements
{
get { return this._physicalConnectionRequirements; }
set { this._physicalConnectionRequirements = value; }
}
// Check to see if PhysicalConnectionRequirements property is set
internal bool IsSetPhysicalConnectionRequirements()
{
return this._physicalConnectionRequirements != null;
}
}
}