/* * Copyright 2010-2014 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 dynamodb-2012-08-10.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.DynamoDBv2.Model { /// /// Represents the properties of a table. /// public partial class TableDescription { private ArchivalSummary _archivalSummary; private List _attributeDefinitions = new List(); private BillingModeSummary _billingModeSummary; private DateTime? _creationDateTime; private List _globalSecondaryIndexes = new List(); private string _globalTableVersion; private long? _itemCount; private List _keySchema = new List(); private string _latestStreamArn; private string _latestStreamLabel; private List _localSecondaryIndexes = new List(); private ProvisionedThroughputDescription _provisionedThroughput; private List _replicas = new List(); private RestoreSummary _restoreSummary; private SSEDescription _sseDescription; private StreamSpecification _streamSpecification; private string _tableArn; private string _tableId; private string _tableName; private long? _tableSizeBytes; private TableStatus _tableStatus; /// /// Empty constructor used to set properties independently even when a simple constructor is available /// public TableDescription() { } /// /// Gets and sets the property ArchivalSummary. /// /// Contains information about the table archive. /// /// public ArchivalSummary ArchivalSummary { get { return this._archivalSummary; } set { this._archivalSummary = value; } } // Check to see if ArchivalSummary property is set internal bool IsSetArchivalSummary() { return this._archivalSummary != null; } /// /// Gets and sets the property AttributeDefinitions. /// /// An array of AttributeDefinition objects. Each of these objects describes /// one attribute in the table and index key schema. /// /// /// /// Each AttributeDefinition object in this array is composed of: /// ///
  • /// /// AttributeName - The name of the attribute. /// ///
  • /// /// AttributeType - The data type for the attribute. /// ///
///
public List AttributeDefinitions { get { return this._attributeDefinitions; } set { this._attributeDefinitions = value; } } // Check to see if AttributeDefinitions property is set internal bool IsSetAttributeDefinitions() { return this._attributeDefinitions != null && this._attributeDefinitions.Count > 0; } /// /// Gets and sets the property BillingModeSummary. /// /// Contains the details for the read/write capacity mode. /// /// public BillingModeSummary BillingModeSummary { get { return this._billingModeSummary; } set { this._billingModeSummary = value; } } // Check to see if BillingModeSummary property is set internal bool IsSetBillingModeSummary() { return this._billingModeSummary != null; } /// /// Gets and sets the property CreationDateTime. /// /// The date and time when the table was created, in UNIX /// epoch time format. /// /// public DateTime CreationDateTime { get { return this._creationDateTime.GetValueOrDefault(); } set { this._creationDateTime = value; } } // Check to see if CreationDateTime property is set internal bool IsSetCreationDateTime() { return this._creationDateTime.HasValue; } /// /// Gets and sets the property GlobalSecondaryIndexes. /// /// The global secondary indexes, if any, on the table. Each index is scoped to a given /// partition key value. Each element is composed of: /// ///
  • /// /// Backfilling - If true, then the index is currently in the backfilling /// phase. Backfilling occurs only when a new global secondary index is added to the table. /// It is the process by which DynamoDB populates the new index with data from the table. /// (This attribute does not appear for indexes that were created during a CreateTable /// operation.) /// /// /// /// You can delete an index that is being created during the Backfilling /// phase when IndexStatus is set to CREATING and Backfilling /// is true. You can't delete the index that is being created when IndexStatus /// is set to CREATING and Backfilling is false. (This attribute does not /// appear for indexes that were created during a CreateTable operation.) /// ///
  • /// /// IndexName - The name of the global secondary index. /// ///
  • /// /// IndexSizeBytes - The total size of the global secondary index, in bytes. /// DynamoDB updates this value approximately every six hours. Recent changes might not /// be reflected in this value. /// ///
  • /// /// IndexStatus - The current status of the global secondary index: /// ///
    • /// /// CREATING - The index is being created. /// ///
    • /// /// UPDATING - The index is being updated. /// ///
    • /// /// DELETING - The index is being deleted. /// ///
    • /// /// ACTIVE - The index is ready for use. /// ///
  • /// /// ItemCount - The number of items in the global secondary index. DynamoDB /// updates this value approximately every six hours. Recent changes might not be reflected /// in this value. /// ///
  • /// /// KeySchema - Specifies the complete index key schema. The attribute names /// in the key schema must be between 1 and 255 characters (inclusive). The key schema /// must begin with the same partition key as the table. /// ///
  • /// /// Projection - Specifies attributes that are copied (projected) from the /// table into the index. These are in addition to the primary key attributes and index /// key attributes, which are automatically projected. Each attribute specification is /// composed of: /// ///
    • /// /// ProjectionType - One of the following: /// ///
      • /// /// KEYS_ONLY - Only the index and primary keys are projected into the index. /// ///
      • /// /// INCLUDE - Only the specified table attributes are projected into the /// index. The list of projected attributes is in NonKeyAttributes. /// ///
      • /// /// ALL - All of the table attributes are projected into the index. /// ///
    • /// /// NonKeyAttributes - A list of one or more non-key attribute names that /// are projected into the secondary index. The total count of attributes provided in /// NonKeyAttributes, summed across all of the secondary indexes, must not /// exceed 20. If you project the same attribute into two different indexes, this counts /// as two distinct attributes when determining the total. /// ///
  • /// /// ProvisionedThroughput - The provisioned throughput settings for the /// global secondary index, consisting of read and write capacity units, along with data /// about increases and decreases. /// ///
/// /// If the table is in the DELETING state, no information about indexes will /// be returned. /// ///
public List GlobalSecondaryIndexes { get { return this._globalSecondaryIndexes; } set { this._globalSecondaryIndexes = value; } } // Check to see if GlobalSecondaryIndexes property is set internal bool IsSetGlobalSecondaryIndexes() { return this._globalSecondaryIndexes != null && this._globalSecondaryIndexes.Count > 0; } /// /// Gets and sets the property GlobalTableVersion. /// /// Represents the version of global /// tables in use, if the table is replicated across AWS Regions. /// /// public string GlobalTableVersion { get { return this._globalTableVersion; } set { this._globalTableVersion = value; } } // Check to see if GlobalTableVersion property is set internal bool IsSetGlobalTableVersion() { return this._globalTableVersion != null; } /// /// Gets and sets the property ItemCount. /// /// The number of items in the specified table. DynamoDB updates this value approximately /// every six hours. Recent changes might not be reflected in this value. /// /// public long ItemCount { get { return this._itemCount.GetValueOrDefault(); } set { this._itemCount = value; } } // Check to see if ItemCount property is set internal bool IsSetItemCount() { return this._itemCount.HasValue; } /// /// Gets and sets the property KeySchema. /// /// The primary key structure for the table. Each KeySchemaElement consists /// of: /// ///
  • /// /// AttributeName - The name of the attribute. /// ///
  • /// /// KeyType - The role of the attribute: /// ///
    • /// /// HASH - partition key /// ///
    • /// /// RANGE - sort key /// ///
    /// /// The partition key of an item is also known as its hash attribute. The term /// "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly /// distribute data items across partitions, based on their partition key values. /// /// /// /// The sort key of an item is also known as its range attribute. The term "range /// attribute" derives from the way DynamoDB stores items with the same partition key /// physically close together, in sorted order by the sort key value. /// ///
/// /// For more information about primary keys, see Primary /// Key in the Amazon DynamoDB Developer Guide. /// ///
[AWSProperty(Min=1, Max=2)] public List KeySchema { get { return this._keySchema; } set { this._keySchema = value; } } // Check to see if KeySchema property is set internal bool IsSetKeySchema() { return this._keySchema != null && this._keySchema.Count > 0; } /// /// Gets and sets the property LatestStreamArn. /// /// The Amazon Resource Name (ARN) that uniquely identifies the latest stream for this /// table. /// /// [AWSProperty(Min=37, Max=1024)] public string LatestStreamArn { get { return this._latestStreamArn; } set { this._latestStreamArn = value; } } // Check to see if LatestStreamArn property is set internal bool IsSetLatestStreamArn() { return this._latestStreamArn != null; } /// /// Gets and sets the property LatestStreamLabel. /// /// A timestamp, in ISO 8601 format, for this stream. /// /// /// /// Note that LatestStreamLabel is not a unique identifier for the stream, /// because it is possible that a stream from another table might have the same timestamp. /// However, the combination of the following three elements is guaranteed to be unique: /// ///
  • /// /// AWS customer ID /// ///
  • /// /// Table name /// ///
  • /// /// StreamLabel /// ///
///
public string LatestStreamLabel { get { return this._latestStreamLabel; } set { this._latestStreamLabel = value; } } // Check to see if LatestStreamLabel property is set internal bool IsSetLatestStreamLabel() { return this._latestStreamLabel != null; } /// /// Gets and sets the property LocalSecondaryIndexes. /// /// Represents one or more local secondary indexes on the table. Each index is scoped /// to a given partition key value. Tables with one or more local secondary indexes are /// subject to an item collection size limit, where the amount of data within a given /// item collection cannot exceed 10 GB. Each element is composed of: /// ///
  • /// /// IndexName - The name of the local secondary index. /// ///
  • /// /// KeySchema - Specifies the complete index key schema. The attribute names /// in the key schema must be between 1 and 255 characters (inclusive). The key schema /// must begin with the same partition key as the table. /// ///
  • /// /// Projection - Specifies attributes that are copied (projected) from the /// table into the index. These are in addition to the primary key attributes and index /// key attributes, which are automatically projected. Each attribute specification is /// composed of: /// ///
    • /// /// ProjectionType - One of the following: /// ///
      • /// /// KEYS_ONLY - Only the index and primary keys are projected into the index. /// ///
      • /// /// INCLUDE - Only the specified table attributes are projected into the /// index. The list of projected attributes is in NonKeyAttributes. /// ///
      • /// /// ALL - All of the table attributes are projected into the index. /// ///
    • /// /// NonKeyAttributes - A list of one or more non-key attribute names that /// are projected into the secondary index. The total count of attributes provided in /// NonKeyAttributes, summed across all of the secondary indexes, must not /// exceed 20. If you project the same attribute into two different indexes, this counts /// as two distinct attributes when determining the total. /// ///
  • /// /// IndexSizeBytes - Represents the total size of the index, in bytes. DynamoDB /// updates this value approximately every six hours. Recent changes might not be reflected /// in this value. /// ///
  • /// /// ItemCount - Represents the number of items in the index. DynamoDB updates /// this value approximately every six hours. Recent changes might not be reflected in /// this value. /// ///
/// /// If the table is in the DELETING state, no information about indexes will /// be returned. /// ///
public List LocalSecondaryIndexes { get { return this._localSecondaryIndexes; } set { this._localSecondaryIndexes = value; } } // Check to see if LocalSecondaryIndexes property is set internal bool IsSetLocalSecondaryIndexes() { return this._localSecondaryIndexes != null && this._localSecondaryIndexes.Count > 0; } /// /// Gets and sets the property ProvisionedThroughput. /// /// The provisioned throughput settings for the table, consisting of read and write capacity /// units, along with data about increases and decreases. /// /// public ProvisionedThroughputDescription ProvisionedThroughput { get { return this._provisionedThroughput; } set { this._provisionedThroughput = value; } } // Check to see if ProvisionedThroughput property is set internal bool IsSetProvisionedThroughput() { return this._provisionedThroughput != null; } /// /// Gets and sets the property Replicas. /// /// Represents replicas of the table. /// /// public List Replicas { get { return this._replicas; } set { this._replicas = value; } } // Check to see if Replicas property is set internal bool IsSetReplicas() { return this._replicas != null && this._replicas.Count > 0; } /// /// Gets and sets the property RestoreSummary. /// /// Contains details for the restore. /// /// public RestoreSummary RestoreSummary { get { return this._restoreSummary; } set { this._restoreSummary = value; } } // Check to see if RestoreSummary property is set internal bool IsSetRestoreSummary() { return this._restoreSummary != null; } /// /// Gets and sets the property SSEDescription. /// /// The description of the server-side encryption status on the specified table. /// /// public SSEDescription SSEDescription { get { return this._sseDescription; } set { this._sseDescription = value; } } // Check to see if SSEDescription property is set internal bool IsSetSSEDescription() { return this._sseDescription != null; } /// /// Gets and sets the property StreamSpecification. /// /// The current DynamoDB Streams configuration for the table. /// /// public StreamSpecification StreamSpecification { get { return this._streamSpecification; } set { this._streamSpecification = value; } } // Check to see if StreamSpecification property is set internal bool IsSetStreamSpecification() { return this._streamSpecification != null; } /// /// Gets and sets the property TableArn. /// /// The Amazon Resource Name (ARN) that uniquely identifies the table. /// /// public string TableArn { get { return this._tableArn; } set { this._tableArn = value; } } // Check to see if TableArn property is set internal bool IsSetTableArn() { return this._tableArn != null; } /// /// Gets and sets the property TableId. /// /// Unique identifier for the table for which the backup was created. /// /// public string TableId { get { return this._tableId; } set { this._tableId = value; } } // Check to see if TableId property is set internal bool IsSetTableId() { return this._tableId != null; } /// /// Gets and sets the property TableName. /// /// The name of the table. /// /// [AWSProperty(Min=3, Max=255)] public string TableName { get { return this._tableName; } set { this._tableName = value; } } // Check to see if TableName property is set internal bool IsSetTableName() { return this._tableName != null; } /// /// Gets and sets the property TableSizeBytes. /// /// The total size of the specified table, in bytes. DynamoDB updates this value approximately /// every six hours. Recent changes might not be reflected in this value. /// /// public long TableSizeBytes { get { return this._tableSizeBytes.GetValueOrDefault(); } set { this._tableSizeBytes = value; } } // Check to see if TableSizeBytes property is set internal bool IsSetTableSizeBytes() { return this._tableSizeBytes.HasValue; } /// /// Gets and sets the property TableStatus. /// /// The current state of the table: /// ///
  • /// /// CREATING - The table is being created. /// ///
  • /// /// UPDATING - The table is being updated. /// ///
  • /// /// DELETING - The table is being deleted. /// ///
  • /// /// ACTIVE - The table is ready for use. /// ///
  • /// /// INACCESSIBLE_ENCRYPTION_CREDENTIALS - The AWS KMS key used to encrypt /// the table in inaccessible. Table operations may fail due to failure to use the AWS /// KMS key. DynamoDB will initiate the table archival process when a table's AWS KMS /// key remains inaccessible for more than seven days. /// ///
  • /// /// ARCHIVING - The table is being archived. Operations are not allowed /// until archival is complete. /// ///
  • /// /// ARCHIVED - The table has been archived. See the ArchivalReason for more /// information. /// ///
///
public TableStatus TableStatus { get { return this._tableStatus; } set { this._tableStatus = value; } } // Check to see if TableStatus property is set internal bool IsSetTableStatus() { return this._tableStatus != null; } } }