/*
* 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
{
///
/// A structure used to define a table.
///
public partial class TableInput
{
private string _description;
private DateTime? _lastAccessTime;
private DateTime? _lastAnalyzedTime;
private string _name;
private string _owner;
private Dictionary _parameters = new Dictionary();
private List _partitionKeys = new List();
private int? _retention;
private StorageDescriptor _storageDescriptor;
private string _tableType;
private TableIdentifier _targetTable;
private string _viewExpandedText;
private string _viewOriginalText;
///
/// Gets and sets the property Description.
///
/// A description of the table.
///
///
[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 LastAccessTime.
///
/// The last time that the table was accessed.
///
///
public DateTime LastAccessTime
{
get { return this._lastAccessTime.GetValueOrDefault(); }
set { this._lastAccessTime = value; }
}
// Check to see if LastAccessTime property is set
internal bool IsSetLastAccessTime()
{
return this._lastAccessTime.HasValue;
}
///
/// Gets and sets the property LastAnalyzedTime.
///
/// The last time that column statistics were computed for this table.
///
///
public DateTime LastAnalyzedTime
{
get { return this._lastAnalyzedTime.GetValueOrDefault(); }
set { this._lastAnalyzedTime = value; }
}
// Check to see if LastAnalyzedTime property is set
internal bool IsSetLastAnalyzedTime()
{
return this._lastAnalyzedTime.HasValue;
}
///
/// Gets and sets the property Name.
///
/// The table name. For Hive compatibility, this is folded to lowercase when it is stored.
///
///
[AWSProperty(Required=true, 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 Owner.
///
/// The table owner. Included for Apache Hive compatibility. Not used in the normal course
/// of Glue operations.
///
///
[AWSProperty(Min=1, Max=255)]
public string Owner
{
get { return this._owner; }
set { this._owner = value; }
}
// Check to see if Owner property is set
internal bool IsSetOwner()
{
return this._owner != null;
}
///
/// Gets and sets the property Parameters.
///
/// These key-value pairs define properties associated with the table.
///
///
public Dictionary Parameters
{
get { return this._parameters; }
set { this._parameters = value; }
}
// Check to see if Parameters property is set
internal bool IsSetParameters()
{
return this._parameters != null && this._parameters.Count > 0;
}
///
/// Gets and sets the property PartitionKeys.
///
/// A list of columns by which the table is partitioned. Only primitive types are supported
/// as partition keys.
///
///
///
/// When you create a table used by Amazon Athena, and you do not specify any partitionKeys
,
/// you must at least set the value of partitionKeys
to an empty list. For
/// example:
///
///
///
/// "PartitionKeys": []
///
///
public List PartitionKeys
{
get { return this._partitionKeys; }
set { this._partitionKeys = value; }
}
// Check to see if PartitionKeys property is set
internal bool IsSetPartitionKeys()
{
return this._partitionKeys != null && this._partitionKeys.Count > 0;
}
///
/// Gets and sets the property Retention.
///
/// The retention time for this table.
///
///
[AWSProperty(Min=0)]
public int Retention
{
get { return this._retention.GetValueOrDefault(); }
set { this._retention = value; }
}
// Check to see if Retention property is set
internal bool IsSetRetention()
{
return this._retention.HasValue;
}
///
/// Gets and sets the property StorageDescriptor.
///
/// A storage descriptor containing information about the physical storage of this table.
///
///
public StorageDescriptor StorageDescriptor
{
get { return this._storageDescriptor; }
set { this._storageDescriptor = value; }
}
// Check to see if StorageDescriptor property is set
internal bool IsSetStorageDescriptor()
{
return this._storageDescriptor != null;
}
///
/// Gets and sets the property TableType.
///
/// The type of this table. Glue will create tables with the EXTERNAL_TABLE
/// type. Other services, such as Athena, may create tables with additional table types.
///
///
///
///
/// Glue related table types:
///
/// - EXTERNAL_TABLE
-
///
/// Hive compatible attribute - indicates a non-Hive managed table.
///
///
- GOVERNED
-
///
/// Used by Lake Formation. The Glue Data Catalog understands
GOVERNED
.
///
///
///
[AWSProperty(Max=255)]
public string TableType
{
get { return this._tableType; }
set { this._tableType = value; }
}
// Check to see if TableType property is set
internal bool IsSetTableType()
{
return this._tableType != null;
}
///
/// Gets and sets the property TargetTable.
///
/// A TableIdentifier
structure that describes a target table for resource
/// linking.
///
///
public TableIdentifier TargetTable
{
get { return this._targetTable; }
set { this._targetTable = value; }
}
// Check to see if TargetTable property is set
internal bool IsSetTargetTable()
{
return this._targetTable != null;
}
///
/// Gets and sets the property ViewExpandedText.
///
/// Included for Apache Hive compatibility. Not used in the normal course of Glue operations.
///
///
[AWSProperty(Max=409600)]
public string ViewExpandedText
{
get { return this._viewExpandedText; }
set { this._viewExpandedText = value; }
}
// Check to see if ViewExpandedText property is set
internal bool IsSetViewExpandedText()
{
return this._viewExpandedText != null;
}
///
/// Gets and sets the property ViewOriginalText.
///
/// Included for Apache Hive compatibility. Not used in the normal course of Glue operations.
/// If the table is a VIRTUAL_VIEW
, certain Athena configuration encoded
/// in base64.
///
///
[AWSProperty(Max=409600)]
public string ViewOriginalText
{
get { return this._viewOriginalText; }
set { this._viewOriginalText = value; }
}
// Check to see if ViewOriginalText property is set
internal bool IsSetViewOriginalText()
{
return this._viewOriginalText != null;
}
}
}