/*
 * 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 quicksight-2018-04-01.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.QuickSight.Model
{
    /// 
    /// The parameters that Amazon QuickSight uses to connect to your underlying data source.
    /// This is a variant type structure. For this structure to be valid, only one of the
    /// attributes can be non-null.
    /// 
    public partial class DataSourceParameters
    {
        private AmazonElasticsearchParameters _amazonElasticsearchParameters;
        private AmazonOpenSearchParameters _amazonOpenSearchParameters;
        private AthenaParameters _athenaParameters;
        private AuroraParameters _auroraParameters;
        private AuroraPostgreSqlParameters _auroraPostgreSqlParameters;
        private AwsIotAnalyticsParameters _awsIotAnalyticsParameters;
        private DatabricksParameters _databricksParameters;
        private ExasolParameters _exasolParameters;
        private JiraParameters _jiraParameters;
        private MariaDbParameters _mariaDbParameters;
        private MySqlParameters _mySqlParameters;
        private OracleParameters _oracleParameters;
        private PostgreSqlParameters _postgreSqlParameters;
        private PrestoParameters _prestoParameters;
        private RdsParameters _rdsParameters;
        private RedshiftParameters _redshiftParameters;
        private S3Parameters _s3Parameters;
        private ServiceNowParameters _serviceNowParameters;
        private SnowflakeParameters _snowflakeParameters;
        private SparkParameters _sparkParameters;
        private SqlServerParameters _sqlServerParameters;
        private TeradataParameters _teradataParameters;
        private TwitterParameters _twitterParameters;
        /// 
        /// Gets and sets the property AmazonElasticsearchParameters. 
        /// 
        /// The parameters for OpenSearch.
        /// 
        /// 
        public AmazonElasticsearchParameters AmazonElasticsearchParameters
        {
            get { return this._amazonElasticsearchParameters; }
            set { this._amazonElasticsearchParameters = value; }
        }
        // Check to see if AmazonElasticsearchParameters property is set
        internal bool IsSetAmazonElasticsearchParameters()
        {
            return this._amazonElasticsearchParameters != null;
        }
        /// 
        /// Gets and sets the property AmazonOpenSearchParameters. 
        /// 
        /// The parameters for OpenSearch.
        /// 
        /// 
        public AmazonOpenSearchParameters AmazonOpenSearchParameters
        {
            get { return this._amazonOpenSearchParameters; }
            set { this._amazonOpenSearchParameters = value; }
        }
        // Check to see if AmazonOpenSearchParameters property is set
        internal bool IsSetAmazonOpenSearchParameters()
        {
            return this._amazonOpenSearchParameters != null;
        }
        /// 
        /// Gets and sets the property AthenaParameters. 
        /// 
        /// The parameters for Amazon Athena.
        /// 
        /// 
        public AthenaParameters AthenaParameters
        {
            get { return this._athenaParameters; }
            set { this._athenaParameters = value; }
        }
        // Check to see if AthenaParameters property is set
        internal bool IsSetAthenaParameters()
        {
            return this._athenaParameters != null;
        }
        /// 
        /// Gets and sets the property AuroraParameters. 
        /// 
        /// The parameters for Amazon Aurora MySQL.
        /// 
        /// 
        public AuroraParameters AuroraParameters
        {
            get { return this._auroraParameters; }
            set { this._auroraParameters = value; }
        }
        // Check to see if AuroraParameters property is set
        internal bool IsSetAuroraParameters()
        {
            return this._auroraParameters != null;
        }
        /// 
        /// Gets and sets the property AuroraPostgreSqlParameters. 
        /// 
        /// The parameters for Amazon Aurora.
        /// 
        /// 
        public AuroraPostgreSqlParameters AuroraPostgreSqlParameters
        {
            get { return this._auroraPostgreSqlParameters; }
            set { this._auroraPostgreSqlParameters = value; }
        }
        // Check to see if AuroraPostgreSqlParameters property is set
        internal bool IsSetAuroraPostgreSqlParameters()
        {
            return this._auroraPostgreSqlParameters != null;
        }
        /// 
        /// Gets and sets the property AwsIotAnalyticsParameters. 
        /// 
        /// The parameters for IoT Analytics.
        /// 
        /// 
        public AwsIotAnalyticsParameters AwsIotAnalyticsParameters
        {
            get { return this._awsIotAnalyticsParameters; }
            set { this._awsIotAnalyticsParameters = value; }
        }
        // Check to see if AwsIotAnalyticsParameters property is set
        internal bool IsSetAwsIotAnalyticsParameters()
        {
            return this._awsIotAnalyticsParameters != null;
        }
        /// 
        /// Gets and sets the property DatabricksParameters. 
        /// 
        /// The required parameters that are needed to connect to a Databricks data source.
        /// 
        /// 
        public DatabricksParameters DatabricksParameters
        {
            get { return this._databricksParameters; }
            set { this._databricksParameters = value; }
        }
        // Check to see if DatabricksParameters property is set
        internal bool IsSetDatabricksParameters()
        {
            return this._databricksParameters != null;
        }
        /// 
        /// Gets and sets the property ExasolParameters. 
        /// 
        /// The parameters for Exasol.
        /// 
        /// 
        public ExasolParameters ExasolParameters
        {
            get { return this._exasolParameters; }
            set { this._exasolParameters = value; }
        }
        // Check to see if ExasolParameters property is set
        internal bool IsSetExasolParameters()
        {
            return this._exasolParameters != null;
        }
        /// 
        /// Gets and sets the property JiraParameters. 
        /// 
        /// The parameters for Jira.
        /// 
        /// 
        public JiraParameters JiraParameters
        {
            get { return this._jiraParameters; }
            set { this._jiraParameters = value; }
        }
        // Check to see if JiraParameters property is set
        internal bool IsSetJiraParameters()
        {
            return this._jiraParameters != null;
        }
        /// 
        /// Gets and sets the property MariaDbParameters. 
        /// 
        /// The parameters for MariaDB.
        /// 
        /// 
        public MariaDbParameters MariaDbParameters
        {
            get { return this._mariaDbParameters; }
            set { this._mariaDbParameters = value; }
        }
        // Check to see if MariaDbParameters property is set
        internal bool IsSetMariaDbParameters()
        {
            return this._mariaDbParameters != null;
        }
        /// 
        /// Gets and sets the property MySqlParameters. 
        /// 
        /// The parameters for MySQL.
        /// 
        /// 
        public MySqlParameters MySqlParameters
        {
            get { return this._mySqlParameters; }
            set { this._mySqlParameters = value; }
        }
        // Check to see if MySqlParameters property is set
        internal bool IsSetMySqlParameters()
        {
            return this._mySqlParameters != null;
        }
        /// 
        /// Gets and sets the property OracleParameters. 
        /// 
        /// The parameters for Oracle.
        /// 
        /// 
        public OracleParameters OracleParameters
        {
            get { return this._oracleParameters; }
            set { this._oracleParameters = value; }
        }
        // Check to see if OracleParameters property is set
        internal bool IsSetOracleParameters()
        {
            return this._oracleParameters != null;
        }
        /// 
        /// Gets and sets the property PostgreSqlParameters. 
        /// 
        /// The parameters for PostgreSQL.
        /// 
        /// 
        public PostgreSqlParameters PostgreSqlParameters
        {
            get { return this._postgreSqlParameters; }
            set { this._postgreSqlParameters = value; }
        }
        // Check to see if PostgreSqlParameters property is set
        internal bool IsSetPostgreSqlParameters()
        {
            return this._postgreSqlParameters != null;
        }
        /// 
        /// Gets and sets the property PrestoParameters. 
        /// 
        /// The parameters for Presto.
        /// 
        /// 
        public PrestoParameters PrestoParameters
        {
            get { return this._prestoParameters; }
            set { this._prestoParameters = value; }
        }
        // Check to see if PrestoParameters property is set
        internal bool IsSetPrestoParameters()
        {
            return this._prestoParameters != null;
        }
        /// 
        /// Gets and sets the property RdsParameters. 
        /// 
        /// The parameters for Amazon RDS.
        /// 
        /// 
        public RdsParameters RdsParameters
        {
            get { return this._rdsParameters; }
            set { this._rdsParameters = value; }
        }
        // Check to see if RdsParameters property is set
        internal bool IsSetRdsParameters()
        {
            return this._rdsParameters != null;
        }
        /// 
        /// Gets and sets the property RedshiftParameters. 
        /// 
        /// The parameters for Amazon Redshift.
        /// 
        /// 
        public RedshiftParameters RedshiftParameters
        {
            get { return this._redshiftParameters; }
            set { this._redshiftParameters = value; }
        }
        // Check to see if RedshiftParameters property is set
        internal bool IsSetRedshiftParameters()
        {
            return this._redshiftParameters != null;
        }
        /// 
        /// Gets and sets the property S3Parameters. 
        /// 
        /// The parameters for S3.
        /// 
        /// 
        public S3Parameters S3Parameters
        {
            get { return this._s3Parameters; }
            set { this._s3Parameters = value; }
        }
        // Check to see if S3Parameters property is set
        internal bool IsSetS3Parameters()
        {
            return this._s3Parameters != null;
        }
        /// 
        /// Gets and sets the property ServiceNowParameters. 
        /// 
        /// The parameters for ServiceNow.
        /// 
        /// 
        public ServiceNowParameters ServiceNowParameters
        {
            get { return this._serviceNowParameters; }
            set { this._serviceNowParameters = value; }
        }
        // Check to see if ServiceNowParameters property is set
        internal bool IsSetServiceNowParameters()
        {
            return this._serviceNowParameters != null;
        }
        /// 
        /// Gets and sets the property SnowflakeParameters. 
        /// 
        /// The parameters for Snowflake.
        /// 
        /// 
        public SnowflakeParameters SnowflakeParameters
        {
            get { return this._snowflakeParameters; }
            set { this._snowflakeParameters = value; }
        }
        // Check to see if SnowflakeParameters property is set
        internal bool IsSetSnowflakeParameters()
        {
            return this._snowflakeParameters != null;
        }
        /// 
        /// Gets and sets the property SparkParameters. 
        /// 
        /// The parameters for Spark.
        /// 
        /// 
        public SparkParameters SparkParameters
        {
            get { return this._sparkParameters; }
            set { this._sparkParameters = value; }
        }
        // Check to see if SparkParameters property is set
        internal bool IsSetSparkParameters()
        {
            return this._sparkParameters != null;
        }
        /// 
        /// Gets and sets the property SqlServerParameters. 
        /// 
        /// The parameters for SQL Server.
        /// 
        /// 
        public SqlServerParameters SqlServerParameters
        {
            get { return this._sqlServerParameters; }
            set { this._sqlServerParameters = value; }
        }
        // Check to see if SqlServerParameters property is set
        internal bool IsSetSqlServerParameters()
        {
            return this._sqlServerParameters != null;
        }
        /// 
        /// Gets and sets the property TeradataParameters. 
        /// 
        /// The parameters for Teradata.
        /// 
        /// 
        public TeradataParameters TeradataParameters
        {
            get { return this._teradataParameters; }
            set { this._teradataParameters = value; }
        }
        // Check to see if TeradataParameters property is set
        internal bool IsSetTeradataParameters()
        {
            return this._teradataParameters != null;
        }
        /// 
        /// Gets and sets the property TwitterParameters. 
        /// 
        /// The parameters for Twitter.
        /// 
        /// 
        public TwitterParameters TwitterParameters
        {
            get { return this._twitterParameters; }
            set { this._twitterParameters = value; }
        }
        // Check to see if TwitterParameters property is set
        internal bool IsSetTwitterParameters()
        {
            return this._twitterParameters != null;
        }
    }
}