/*
* 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 JSON data store stored in Amazon S3.
///
public partial class S3JsonSource
{
private S3DirectSourceAdditionalOptions _additionalOptions;
private CompressionType _compressionType;
private List _exclusions = new List();
private string _groupFiles;
private string _groupSize;
private string _jsonPath;
private int? _maxBand;
private int? _maxFilesInBand;
private bool? _multiline;
private string _name;
private List _outputSchemas = new List();
private List _paths = new List();
private bool? _recurse;
///
/// 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 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 JsonPath.
///
/// A JsonPath string defining the JSON data.
///
///
public string JsonPath
{
get { return this._jsonPath; }
set { this._jsonPath = value; }
}
// Check to see if JsonPath property is set
internal bool IsSetJsonPath()
{
return this._jsonPath != 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 OutputSchemas.
///
/// Specifies the data schema for the S3 JSON 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 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;
}
}
}