/* * 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 { /// /// Container for the parameters to the UpdateTable operation. /// Modifies the provisioned throughput settings, global secondary indexes, or DynamoDB /// Streams settings for a given table. /// /// /// /// You can only perform one of the following operations at once: /// /// /// /// UpdateTable is an asynchronous operation; while it is executing, the /// table status changes from ACTIVE to UPDATING. While it is /// UPDATING, you cannot issue another UpdateTable request. /// When the table returns to the ACTIVE state, the UpdateTable /// operation is complete. /// /// public partial class UpdateTableRequest : AmazonDynamoDBRequest { private List _attributeDefinitions = new List(); private BillingMode _billingMode; private List _globalSecondaryIndexUpdates = new List(); private ProvisionedThroughput _provisionedThroughput; private List _replicaUpdates = new List(); private SSESpecification _sseSpecification; private StreamSpecification _streamSpecification; private string _tableName; /// /// Empty constructor used to set properties independently even when a simple constructor is available /// public UpdateTableRequest() { } /// /// Instantiates UpdateTableRequest with the parameterized properties /// /// The name of the table to be updated. /// The new provisioned throughput settings for the specified table or index. public UpdateTableRequest(string tableName, ProvisionedThroughput provisionedThroughput) { _tableName = tableName; _provisionedThroughput = provisionedThroughput; } /// /// Gets and sets the property AttributeDefinitions. /// /// An array of attributes that describe the key schema for the table and indexes. If /// you are adding a new global secondary index to the table, AttributeDefinitions /// must include the key element(s) of the new index. /// /// 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 BillingMode. /// /// Controls how you are charged for read and write throughput and how you manage capacity. /// When switching from pay-per-request to provisioned capacity, initial provisioned capacity /// values must be set. The initial provisioned capacity values are estimated based on /// the consumed read and write capacity of your table and global secondary indexes over /// the past 30 minutes. /// ///
  • /// /// PROVISIONED - We recommend using PROVISIONED for predictable /// workloads. PROVISIONED sets the billing mode to Provisioned /// Mode. /// ///
  • /// /// PAY_PER_REQUEST - We recommend using PAY_PER_REQUEST for /// unpredictable workloads. PAY_PER_REQUEST sets the billing mode to On-Demand /// Mode. /// ///
///
public BillingMode BillingMode { get { return this._billingMode; } set { this._billingMode = value; } } // Check to see if BillingMode property is set internal bool IsSetBillingMode() { return this._billingMode != null; } /// /// Gets and sets the property GlobalSecondaryIndexUpdates. /// /// An array of one or more global secondary indexes for the table. For each index in /// the array, you can request one action: /// ///
  • /// /// Create - add a new global secondary index to the table. /// ///
  • /// /// Update - modify the provisioned throughput settings of an existing global /// secondary index. /// ///
  • /// /// Delete - remove a global secondary index from the table. /// ///
/// /// You can create or delete only one global secondary index per UpdateTable /// operation. /// /// /// /// For more information, see Managing /// Global Secondary Indexes in the Amazon DynamoDB Developer Guide. /// ///
public List GlobalSecondaryIndexUpdates { get { return this._globalSecondaryIndexUpdates; } set { this._globalSecondaryIndexUpdates = value; } } // Check to see if GlobalSecondaryIndexUpdates property is set internal bool IsSetGlobalSecondaryIndexUpdates() { return this._globalSecondaryIndexUpdates != null && this._globalSecondaryIndexUpdates.Count > 0; } /// /// Gets and sets the property ProvisionedThroughput. /// /// The new provisioned throughput settings for the specified table or index. /// /// public ProvisionedThroughput 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 ReplicaUpdates. /// /// A list of replica update actions (create, delete, or update) for the table. /// /// /// /// This property only applies to Version /// 2019.11.21 of global tables. /// /// /// [AWSProperty(Min=1)] public List ReplicaUpdates { get { return this._replicaUpdates; } set { this._replicaUpdates = value; } } // Check to see if ReplicaUpdates property is set internal bool IsSetReplicaUpdates() { return this._replicaUpdates != null && this._replicaUpdates.Count > 0; } /// /// Gets and sets the property SSESpecification. /// /// The new server-side encryption settings for the specified table. /// /// public SSESpecification SSESpecification { get { return this._sseSpecification; } set { this._sseSpecification = value; } } // Check to see if SSESpecification property is set internal bool IsSetSSESpecification() { return this._sseSpecification != null; } /// /// Gets and sets the property StreamSpecification. /// /// Represents the DynamoDB Streams configuration for the table. /// /// /// /// You receive a ResourceInUseException if you try to enable a stream on /// a table that already has a stream, or if you try to disable a stream on a table that /// doesn't have a stream. /// /// /// 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 TableName. /// /// The name of the table to be updated. /// /// [AWSProperty(Required=true, 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; } } }