/*
* 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 a command-separated value (CSV) data store stored in Amazon S3.
///
public partial class S3CsvSource
{
private S3DirectSourceAdditionalOptions _additionalOptions;
private CompressionType _compressionType;
private string _escaper;
private List _exclusions = new List();
private string _groupFiles;
private string _groupSize;
private int? _maxBand;
private int? _maxFilesInBand;
private bool? _multiline;
private string _name;
private bool? _optimizePerformance;
private List _outputSchemas = new List();
private List _paths = new List();
private QuoteChar _quoteChar;
private bool? _recurse;
private Separator _separator;
private bool? _skipFirst;
private bool? _withHeader;
private bool? _writeHeader;
///
/// Gets and sets the property AdditionalOptions.
///
/// Specifies additional connection options.
///
///
public S3DirectSourceAdditionalOptions AdditionalOptions
{
get { return this._additionalOptions; }
set { this._additionalOptions = value; }
}
// Check to see if AdditionalOptions property is set
internal bool IsSetAdditionalOptions()
{
return this._additionalOptions != null;
}
///
/// Gets and sets the property CompressionType.
///
/// Specifies how the data is compressed. This is generally not necessary if the data
/// has a standard file extension. Possible values are "gzip"
and "bzip"
).
///
///
public CompressionType CompressionType
{
get { return this._compressionType; }
set { this._compressionType = value; }
}
// Check to see if CompressionType property is set
internal bool IsSetCompressionType()
{
return this._compressionType != null;
}
///
/// Gets and sets the property Escaper.
///
/// Specifies a character to use for escaping. This option is used only when reading CSV
/// files. The default value is none
. If enabled, the character which immediately
/// follows is used as-is, except for a small set of well-known escapes (\n
,
/// \r
, \t
, and \0
).
///
///
public string Escaper
{
get { return this._escaper; }
set { this._escaper = value; }
}
// Check to see if Escaper property is set
internal bool IsSetEscaper()
{
return this._escaper != null;
}
///
/// Gets and sets the property Exclusions.
///
/// A string containing a JSON list of Unix-style glob patterns to exclude. For example,
/// "[\"**.pdf\"]" excludes all PDF files.
///
///
public List Exclusions
{
get { return this._exclusions; }
set { this._exclusions = value; }
}
// Check to see if Exclusions property is set
internal bool IsSetExclusions()
{
return this._exclusions != null && this._exclusions.Count > 0;
}
///
/// Gets and sets the property GroupFiles.
///
/// Grouping files is turned on by default when the input contains more than 50,000 files.
/// To turn on grouping with fewer than 50,000 files, set this parameter to "inPartition".
/// To disable grouping when there are more than 50,000 files, set this parameter to "none"
.
///
///
public string GroupFiles
{
get { return this._groupFiles; }
set { this._groupFiles = value; }
}
// Check to see if GroupFiles property is set
internal bool IsSetGroupFiles()
{
return this._groupFiles != null;
}
///
/// Gets and sets the property GroupSize.
///
/// The target group size in bytes. The default is computed based on the input data size
/// and the size of your cluster. When there are fewer than 50,000 input files, "groupFiles"
/// must be set to "inPartition"
for this to take effect.
///
///
public string GroupSize
{
get { return this._groupSize; }
set { this._groupSize = value; }
}
// Check to see if GroupSize property is set
internal bool IsSetGroupSize()
{
return this._groupSize != null;
}
///
/// Gets and sets the property MaxBand.
///
/// This option controls the duration in milliseconds after which the s3 listing is likely
/// to be consistent. Files with modification timestamps falling within the last maxBand
/// milliseconds are tracked specially when using JobBookmarks to account for Amazon S3
/// eventual consistency. Most users don't need to set this option. The default is 900000
/// milliseconds, or 15 minutes.
///
///
[AWSProperty(Min=0)]
public int MaxBand
{
get { return this._maxBand.GetValueOrDefault(); }
set { this._maxBand = value; }
}
// Check to see if MaxBand property is set
internal bool IsSetMaxBand()
{
return this._maxBand.HasValue;
}
///
/// Gets and sets the property MaxFilesInBand.
///
/// This option specifies the maximum number of files to save from the last maxBand seconds.
/// If this number is exceeded, extra files are skipped and only processed in the next
/// job run.
///
///
[AWSProperty(Min=0)]
public int MaxFilesInBand
{
get { return this._maxFilesInBand.GetValueOrDefault(); }
set { this._maxFilesInBand = value; }
}
// Check to see if MaxFilesInBand property is set
internal bool IsSetMaxFilesInBand()
{
return this._maxFilesInBand.HasValue;
}
///
/// Gets and sets the property Multiline.
///
/// A Boolean value that specifies whether a single record can span multiple lines. This
/// can occur when a field contains a quoted new-line character. You must set this option
/// to True if any record spans multiple lines. The default value is False
,
/// which allows for more aggressive file-splitting during parsing.
///
///
public bool Multiline
{
get { return this._multiline.GetValueOrDefault(); }
set { this._multiline = value; }
}
// Check to see if Multiline property is set
internal bool IsSetMultiline()
{
return this._multiline.HasValue;
}
///
/// Gets and sets the property Name.
///
/// The name of the data store.
///
///
[AWSProperty(Required=true)]
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 OptimizePerformance.
///
/// A Boolean value that specifies whether to use the advanced SIMD CSV reader along with
/// Apache Arrow based columnar memory formats. Only available in Glue version 3.0.
///
///
public bool OptimizePerformance
{
get { return this._optimizePerformance.GetValueOrDefault(); }
set { this._optimizePerformance = value; }
}
// Check to see if OptimizePerformance property is set
internal bool IsSetOptimizePerformance()
{
return this._optimizePerformance.HasValue;
}
///
/// Gets and sets the property OutputSchemas.
///
/// Specifies the data schema for the S3 CSV source.
///
///
public List OutputSchemas
{
get { return this._outputSchemas; }
set { this._outputSchemas = value; }
}
// Check to see if OutputSchemas property is set
internal bool IsSetOutputSchemas()
{
return this._outputSchemas != null && this._outputSchemas.Count > 0;
}
///
/// Gets and sets the property Paths.
///
/// A list of the Amazon S3 paths to read from.
///
///
[AWSProperty(Required=true)]
public List Paths
{
get { return this._paths; }
set { this._paths = value; }
}
// Check to see if Paths property is set
internal bool IsSetPaths()
{
return this._paths != null && this._paths.Count > 0;
}
///
/// Gets and sets the property QuoteChar.
///
/// Specifies the character to use for quoting. The default is a double quote: '"'
.
/// Set this to -1
to turn off quoting entirely.
///
///
[AWSProperty(Required=true)]
public QuoteChar QuoteChar
{
get { return this._quoteChar; }
set { this._quoteChar = value; }
}
// Check to see if QuoteChar property is set
internal bool IsSetQuoteChar()
{
return this._quoteChar != null;
}
///
/// Gets and sets the property Recurse.
///
/// If set to true, recursively reads files in all subdirectories under the specified
/// paths.
///
///
public bool Recurse
{
get { return this._recurse.GetValueOrDefault(); }
set { this._recurse = value; }
}
// Check to see if Recurse property is set
internal bool IsSetRecurse()
{
return this._recurse.HasValue;
}
///
/// Gets and sets the property Separator.
///
/// Specifies the delimiter character. The default is a comma: ",", but any other character
/// can be specified.
///
///
[AWSProperty(Required=true)]
public Separator Separator
{
get { return this._separator; }
set { this._separator = value; }
}
// Check to see if Separator property is set
internal bool IsSetSeparator()
{
return this._separator != null;
}
///
/// Gets and sets the property SkipFirst.
///
/// A Boolean value that specifies whether to skip the first data line. The default value
/// is False
.
///
///
public bool SkipFirst
{
get { return this._skipFirst.GetValueOrDefault(); }
set { this._skipFirst = value; }
}
// Check to see if SkipFirst property is set
internal bool IsSetSkipFirst()
{
return this._skipFirst.HasValue;
}
///
/// Gets and sets the property WithHeader.
///
/// A Boolean value that specifies whether to treat the first line as a header. The default
/// value is False
.
///
///
public bool WithHeader
{
get { return this._withHeader.GetValueOrDefault(); }
set { this._withHeader = value; }
}
// Check to see if WithHeader property is set
internal bool IsSetWithHeader()
{
return this._withHeader.HasValue;
}
///
/// Gets and sets the property WriteHeader.
///
/// A Boolean value that specifies whether to write the header to output. The default
/// value is True
.
///
///
public bool WriteHeader
{
get { return this._writeHeader.GetValueOrDefault(); }
set { this._writeHeader = value; }
}
// Check to see if WriteHeader property is set
internal bool IsSetWriteHeader()
{
return this._writeHeader.HasValue;
}
}
}