/*
* 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
{
///
/// Specifies an Amazon Redshift node.
///
public partial class AmazonRedshiftNodeData
{
private string _accessType;
private string _action;
private List _advancedOptions = new List();
private Option _catalogDatabase;
private string _catalogRedshiftSchema;
private string _catalogRedshiftTable;
private Option _catalogTable;
private Option _connection;
private string _crawlerConnection;
private Option _iamRole;
private string _mergeAction;
private string _mergeClause;
private string _mergeWhenMatched;
private string _mergeWhenNotMatched;
private string _postAction;
private string _preAction;
private string _sampleQuery;
private Option _schema;
private List _selectedColumns = new List ();
private string _sourceType;
private string _stagingTable;
private Option _table;
private string _tablePrefix;
private List _tableSchema = new List ();
private string _tempDir;
private bool? _upsert;
///
/// Gets and sets the property AccessType.
///
/// The access type for the Redshift connection. Can be a direct connection or catalog
/// connections.
///
///
public string AccessType
{
get { return this._accessType; }
set { this._accessType = value; }
}
// Check to see if AccessType property is set
internal bool IsSetAccessType()
{
return this._accessType != null;
}
///
/// Gets and sets the property Action.
///
/// Specifies how writing to a Redshift cluser will occur.
///
///
public string Action
{
get { return this._action; }
set { this._action = value; }
}
// Check to see if Action property is set
internal bool IsSetAction()
{
return this._action != null;
}
///
/// Gets and sets the property AdvancedOptions.
///
/// Optional values when connecting to the Redshift cluster.
///
///
public List AdvancedOptions
{
get { return this._advancedOptions; }
set { this._advancedOptions = value; }
}
// Check to see if AdvancedOptions property is set
internal bool IsSetAdvancedOptions()
{
return this._advancedOptions != null && this._advancedOptions.Count > 0;
}
///
/// Gets and sets the property CatalogDatabase.
///
/// The name of the Glue Data Catalog database when working with a data catalog.
///
///
public Option CatalogDatabase
{
get { return this._catalogDatabase; }
set { this._catalogDatabase = value; }
}
// Check to see if CatalogDatabase property is set
internal bool IsSetCatalogDatabase()
{
return this._catalogDatabase != null;
}
///
/// Gets and sets the property CatalogRedshiftSchema.
///
/// The Redshift schema name when working with a data catalog.
///
///
public string CatalogRedshiftSchema
{
get { return this._catalogRedshiftSchema; }
set { this._catalogRedshiftSchema = value; }
}
// Check to see if CatalogRedshiftSchema property is set
internal bool IsSetCatalogRedshiftSchema()
{
return this._catalogRedshiftSchema != null;
}
///
/// Gets and sets the property CatalogRedshiftTable.
///
/// The database table to read from.
///
///
public string CatalogRedshiftTable
{
get { return this._catalogRedshiftTable; }
set { this._catalogRedshiftTable = value; }
}
// Check to see if CatalogRedshiftTable property is set
internal bool IsSetCatalogRedshiftTable()
{
return this._catalogRedshiftTable != null;
}
///
/// Gets and sets the property CatalogTable.
///
/// The Glue Data Catalog table name when working with a data catalog.
///
///
public Option CatalogTable
{
get { return this._catalogTable; }
set { this._catalogTable = value; }
}
// Check to see if CatalogTable property is set
internal bool IsSetCatalogTable()
{
return this._catalogTable != null;
}
///
/// Gets and sets the property Connection.
///
/// The Glue connection to the Redshift cluster.
///
///
public Option Connection
{
get { return this._connection; }
set { this._connection = value; }
}
// Check to see if Connection property is set
internal bool IsSetConnection()
{
return this._connection != null;
}
///
/// Gets and sets the property CrawlerConnection.
///
/// Specifies the name of the connection that is associated with the catalog table used.
///
///
public string CrawlerConnection
{
get { return this._crawlerConnection; }
set { this._crawlerConnection = value; }
}
// Check to see if CrawlerConnection property is set
internal bool IsSetCrawlerConnection()
{
return this._crawlerConnection != null;
}
///
/// Gets and sets the property IamRole.
///
/// Optional. The role name use when connection to S3. The IAM role ill default to the
/// role on the job when left blank.
///
///
public Option IamRole
{
get { return this._iamRole; }
set { this._iamRole = value; }
}
// Check to see if IamRole property is set
internal bool IsSetIamRole()
{
return this._iamRole != null;
}
///
/// Gets and sets the property MergeAction.
///
/// The action used when to detemine how a MERGE in a Redshift sink will be handled.
///
///
public string MergeAction
{
get { return this._mergeAction; }
set { this._mergeAction = value; }
}
// Check to see if MergeAction property is set
internal bool IsSetMergeAction()
{
return this._mergeAction != null;
}
///
/// Gets and sets the property MergeClause.
///
/// The SQL used in a custom merge to deal with matching records.
///
///
public string MergeClause
{
get { return this._mergeClause; }
set { this._mergeClause = value; }
}
// Check to see if MergeClause property is set
internal bool IsSetMergeClause()
{
return this._mergeClause != null;
}
///
/// Gets and sets the property MergeWhenMatched.
///
/// The action used when to detemine how a MERGE in a Redshift sink will be handled when
/// an existing record matches a new record.
///
///
public string MergeWhenMatched
{
get { return this._mergeWhenMatched; }
set { this._mergeWhenMatched = value; }
}
// Check to see if MergeWhenMatched property is set
internal bool IsSetMergeWhenMatched()
{
return this._mergeWhenMatched != null;
}
///
/// Gets and sets the property MergeWhenNotMatched.
///
/// The action used when to detemine how a MERGE in a Redshift sink will be handled when
/// an existing record doesn't match a new record.
///
///
public string MergeWhenNotMatched
{
get { return this._mergeWhenNotMatched; }
set { this._mergeWhenNotMatched = value; }
}
// Check to see if MergeWhenNotMatched property is set
internal bool IsSetMergeWhenNotMatched()
{
return this._mergeWhenNotMatched != null;
}
///
/// Gets and sets the property PostAction.
///
/// The SQL used before a MERGE or APPEND with upsert is run.
///
///
public string PostAction
{
get { return this._postAction; }
set { this._postAction = value; }
}
// Check to see if PostAction property is set
internal bool IsSetPostAction()
{
return this._postAction != null;
}
///
/// Gets and sets the property PreAction.
///
/// The SQL used before a MERGE or APPEND with upsert is run.
///
///
public string PreAction
{
get { return this._preAction; }
set { this._preAction = value; }
}
// Check to see if PreAction property is set
internal bool IsSetPreAction()
{
return this._preAction != null;
}
///
/// Gets and sets the property SampleQuery.
///
/// The SQL used to fetch the data from a Redshift sources when the SourceType is 'query'.
///
///
public string SampleQuery
{
get { return this._sampleQuery; }
set { this._sampleQuery = value; }
}
// Check to see if SampleQuery property is set
internal bool IsSetSampleQuery()
{
return this._sampleQuery != null;
}
///
/// Gets and sets the property Schema.
///
/// The Redshift schema name when working with a direct connection.
///
///
public Option Schema
{
get { return this._schema; }
set { this._schema = value; }
}
// Check to see if Schema property is set
internal bool IsSetSchema()
{
return this._schema != null;
}
///
/// Gets and sets the property SelectedColumns.
///
/// The list of column names used to determine a matching record when doing a MERGE or
/// APPEND with upsert.
///
///
public List SelectedColumns
{
get { return this._selectedColumns; }
set { this._selectedColumns = value; }
}
// Check to see if SelectedColumns property is set
internal bool IsSetSelectedColumns()
{
return this._selectedColumns != null && this._selectedColumns.Count > 0;
}
///
/// Gets and sets the property SourceType.
///
/// The source type to specify whether a specific table is the source or a custom query.
///
///
public string SourceType
{
get { return this._sourceType; }
set { this._sourceType = value; }
}
// Check to see if SourceType property is set
internal bool IsSetSourceType()
{
return this._sourceType != null;
}
///
/// Gets and sets the property StagingTable.
///
/// The name of the temporary staging table that is used when doing a MERGE or APPEND
/// with upsert.
///
///
public string StagingTable
{
get { return this._stagingTable; }
set { this._stagingTable = value; }
}
// Check to see if StagingTable property is set
internal bool IsSetStagingTable()
{
return this._stagingTable != null;
}
///
/// Gets and sets the property Table.
///
/// The Redshift table name when working with a direct connection.
///
///
public Option Table
{
get { return this._table; }
set { this._table = value; }
}
// Check to see if Table property is set
internal bool IsSetTable()
{
return this._table != null;
}
///
/// Gets and sets the property TablePrefix.
///
/// Specifies the prefix to a table.
///
///
public string TablePrefix
{
get { return this._tablePrefix; }
set { this._tablePrefix = value; }
}
// Check to see if TablePrefix property is set
internal bool IsSetTablePrefix()
{
return this._tablePrefix != null;
}
///
/// Gets and sets the property TableSchema.
///
/// The array of schema output for a given node.
///
///
public List TableSchema
{
get { return this._tableSchema; }
set { this._tableSchema = value; }
}
// Check to see if TableSchema property is set
internal bool IsSetTableSchema()
{
return this._tableSchema != null && this._tableSchema.Count > 0;
}
///
/// Gets and sets the property TempDir.
///
/// The Amazon S3 path where temporary data can be staged when copying out of the database.
///
///
public string TempDir
{
get { return this._tempDir; }
set { this._tempDir = value; }
}
// Check to see if TempDir property is set
internal bool IsSetTempDir()
{
return this._tempDir != null;
}
///
/// Gets and sets the property Upsert.
///
/// The action used on Redshift sinks when doing an APPEND.
///
///
public bool Upsert
{
get { return this._upsert.GetValueOrDefault(); }
set { this._upsert = value; }
}
// Check to see if Upsert property is set
internal bool IsSetUpsert()
{
return this._upsert.HasValue;
}
}
}