/*
* 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 keyspaces-2022-02-10.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.Keyspaces.Model
{
///
/// Container for the parameters to the UpdateTable operation.
/// Adds new columns to the table or updates one of the table's settings, for example
/// capacity mode, encryption, point-in-time recovery, or ttl settings. Note that you
/// can only update one specific table setting per update operation.
///
public partial class UpdateTableRequest : AmazonKeyspacesRequest
{
private List _addColumns = new List();
private CapacitySpecification _capacitySpecification;
private ClientSideTimestamps _clientSideTimestamps;
private int? _defaultTimeToLive;
private EncryptionSpecification _encryptionSpecification;
private string _keyspaceName;
private PointInTimeRecovery _pointInTimeRecovery;
private string _tableName;
private TimeToLive _ttl;
///
/// Gets and sets the property AddColumns.
///
/// For each column to be added to the specified table:
///
/// -
///
///
name
- The name of the column.
///
/// -
///
///
type
- An Amazon Keyspaces data type. For more information, see Data
/// types in the Amazon Keyspaces Developer Guide.
///
///
///
[AWSProperty(Min=1)]
public List AddColumns
{
get { return this._addColumns; }
set { this._addColumns = value; }
}
// Check to see if AddColumns property is set
internal bool IsSetAddColumns()
{
return this._addColumns != null && this._addColumns.Count > 0;
}
///
/// Gets and sets the property CapacitySpecification.
///
/// Modifies the read/write throughput capacity mode for the table. The options are:
///
/// -
///
///
throughputMode:PAY_PER_REQUEST
and
///
/// -
///
///
throughputMode:PROVISIONED
- Provisioned capacity mode requires readCapacityUnits
/// and writeCapacityUnits
as input.
///
///
///
/// The default is throughput_mode:PAY_PER_REQUEST
.
///
///
///
/// For more information, see Read/write
/// capacity modes in the Amazon Keyspaces Developer Guide.
///
///
public CapacitySpecification CapacitySpecification
{
get { return this._capacitySpecification; }
set { this._capacitySpecification = value; }
}
// Check to see if CapacitySpecification property is set
internal bool IsSetCapacitySpecification()
{
return this._capacitySpecification != null;
}
///
/// Gets and sets the property ClientSideTimestamps.
///
/// Enables client-side timestamps for the table. By default, the setting is disabled.
/// You can enable client-side timestamps with the following option:
///
/// -
///
///
status: "enabled"
///
///
///
/// Once client-side timestamps are enabled for a table, this setting cannot be disabled.
///
///
public ClientSideTimestamps ClientSideTimestamps
{
get { return this._clientSideTimestamps; }
set { this._clientSideTimestamps = value; }
}
// Check to see if ClientSideTimestamps property is set
internal bool IsSetClientSideTimestamps()
{
return this._clientSideTimestamps != null;
}
///
/// Gets and sets the property DefaultTimeToLive.
///
/// The default Time to Live setting in seconds for the table.
///
///
///
/// For more information, see Setting
/// the default TTL value for a table in the Amazon Keyspaces Developer Guide.
///
///
[AWSProperty(Min=1, Max=630720000)]
public int DefaultTimeToLive
{
get { return this._defaultTimeToLive.GetValueOrDefault(); }
set { this._defaultTimeToLive = value; }
}
// Check to see if DefaultTimeToLive property is set
internal bool IsSetDefaultTimeToLive()
{
return this._defaultTimeToLive.HasValue;
}
///
/// Gets and sets the property EncryptionSpecification.
///
/// Modifies the encryption settings of the table. You can choose one of the following
/// KMS key (KMS key):
///
/// -
///
///
type:AWS_OWNED_KMS_KEY
- This key is owned by Amazon Keyspaces.
///
/// -
///
///
type:CUSTOMER_MANAGED_KMS_KEY
- This key is stored in your account and
/// is created, owned, and managed by you. This option requires the kms_key_identifier
/// of the KMS key in Amazon Resource Name (ARN) format as input.
///
///
///
/// The default is AWS_OWNED_KMS_KEY
.
///
///
///
/// For more information, see Encryption
/// at rest in the Amazon Keyspaces Developer Guide.
///
///
public EncryptionSpecification EncryptionSpecification
{
get { return this._encryptionSpecification; }
set { this._encryptionSpecification = value; }
}
// Check to see if EncryptionSpecification property is set
internal bool IsSetEncryptionSpecification()
{
return this._encryptionSpecification != null;
}
///
/// Gets and sets the property KeyspaceName.
///
/// The name of the keyspace the specified table is stored in.
///
///
[AWSProperty(Required=true, Min=1, Max=48)]
public string KeyspaceName
{
get { return this._keyspaceName; }
set { this._keyspaceName = value; }
}
// Check to see if KeyspaceName property is set
internal bool IsSetKeyspaceName()
{
return this._keyspaceName != null;
}
///
/// Gets and sets the property PointInTimeRecovery.
///
/// Modifies the pointInTimeRecovery
settings of the table. The options are:
///
/// -
///
///
status=ENABLED
///
/// -
///
///
status=DISABLED
///
///
///
/// If it's not specified, the default is status=DISABLED
.
///
///
///
/// For more information, see Point-in-time
/// recovery in the Amazon Keyspaces Developer Guide.
///
///
public PointInTimeRecovery PointInTimeRecovery
{
get { return this._pointInTimeRecovery; }
set { this._pointInTimeRecovery = value; }
}
// Check to see if PointInTimeRecovery property is set
internal bool IsSetPointInTimeRecovery()
{
return this._pointInTimeRecovery != null;
}
///
/// Gets and sets the property TableName.
///
/// The name of the table.
///
///
[AWSProperty(Required=true, Min=1, Max=48)]
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 Ttl.
///
/// Modifies Time to Live custom settings for the table. The options are:
///
/// -
///
///
status:enabled
///
/// -
///
///
status:disabled
///
///
///
/// The default is status:disabled
. After ttl
is enabled, you
/// can't disable it for the table.
///
///
///
/// For more information, see Expiring
/// data by using Amazon Keyspaces Time to Live (TTL) in the Amazon Keyspaces Developer
/// Guide.
///
///
public TimeToLive Ttl
{
get { return this._ttl; }
set { this._ttl = value; }
}
// Check to see if Ttl property is set
internal bool IsSetTtl()
{
return this._ttl != null;
}
}
}