/*
* 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 RestoreTable operation.
/// Restores the specified table to the specified point in time within the earliest_restorable_timestamp
/// and the current time. For more information about restore points, see
/// Time window for PITR continuous backups in the Amazon Keyspaces Developer Guide.
///
///
///
/// Any number of users can execute up to 4 concurrent restores (any type of restore)
/// in a given account.
///
///
///
/// When you restore using point in time recovery, Amazon Keyspaces restores your source
/// table's schema and data to the state based on the selected timestamp (day:hour:minute:second)
/// to a new table. The Time to Live (TTL) settings are also restored to the state based
/// on the selected timestamp.
///
///
///
/// In addition to the table's schema, data, and TTL settings, RestoreTable
/// restores the capacity mode, encryption, and point-in-time recovery settings from the
/// source table. Unlike the table's schema data and TTL settings, which are restored
/// based on the selected timestamp, these settings are always restored based on the table's
/// settings as of the current time or when the table was deleted.
///
///
///
/// You can also overwrite these settings during restore:
///
/// -
///
/// Read/write capacity mode
///
///
-
///
/// Provisioned throughput capacity settings
///
///
-
///
/// Point-in-time (PITR) settings
///
///
-
///
/// Tags
///
///
///
/// For more information, see PITR
/// restore settings in the Amazon Keyspaces Developer Guide.
///
///
///
/// Note that the following settings are not restored, and you must configure them manually
/// for the new table:
///
/// -
///
/// Automatic scaling policies (for tables that use provisioned capacity mode)
///
///
-
///
/// Identity and Access Management (IAM) policies
///
///
-
///
/// Amazon CloudWatch metrics and alarms
///
///
///
public partial class RestoreTableRequest : AmazonKeyspacesRequest
{
private CapacitySpecification _capacitySpecificationOverride;
private EncryptionSpecification _encryptionSpecificationOverride;
private PointInTimeRecovery _pointInTimeRecoveryOverride;
private DateTime? _restoreTimestamp;
private string _sourceKeyspaceName;
private string _sourceTableName;
private List _tagsOverride = new List();
private string _targetKeyspaceName;
private string _targetTableName;
///
/// Gets and sets the property CapacitySpecificationOverride.
///
/// Specifies the read/write throughput capacity mode for the target table. The options
/// are:
///
/// -
///
///
throughputMode:PAY_PER_REQUEST
///
/// -
///
///
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 CapacitySpecificationOverride
{
get { return this._capacitySpecificationOverride; }
set { this._capacitySpecificationOverride = value; }
}
// Check to see if CapacitySpecificationOverride property is set
internal bool IsSetCapacitySpecificationOverride()
{
return this._capacitySpecificationOverride != null;
}
///
/// Gets and sets the property EncryptionSpecificationOverride.
///
/// Specifies the encryption settings for the target 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 type:AWS_OWNED_KMS_KEY
.
///
///
///
/// For more information, see Encryption
/// at rest in the Amazon Keyspaces Developer Guide.
///
///
public EncryptionSpecification EncryptionSpecificationOverride
{
get { return this._encryptionSpecificationOverride; }
set { this._encryptionSpecificationOverride = value; }
}
// Check to see if EncryptionSpecificationOverride property is set
internal bool IsSetEncryptionSpecificationOverride()
{
return this._encryptionSpecificationOverride != null;
}
///
/// Gets and sets the property PointInTimeRecoveryOverride.
///
/// Specifies the pointInTimeRecovery
settings for the target 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 PointInTimeRecoveryOverride
{
get { return this._pointInTimeRecoveryOverride; }
set { this._pointInTimeRecoveryOverride = value; }
}
// Check to see if PointInTimeRecoveryOverride property is set
internal bool IsSetPointInTimeRecoveryOverride()
{
return this._pointInTimeRecoveryOverride != null;
}
///
/// Gets and sets the property RestoreTimestamp.
///
/// The restore timestamp in ISO 8601 format.
///
///
public DateTime RestoreTimestamp
{
get { return this._restoreTimestamp.GetValueOrDefault(); }
set { this._restoreTimestamp = value; }
}
// Check to see if RestoreTimestamp property is set
internal bool IsSetRestoreTimestamp()
{
return this._restoreTimestamp.HasValue;
}
///
/// Gets and sets the property SourceKeyspaceName.
///
/// The keyspace name of the source table.
///
///
[AWSProperty(Required=true, Min=1, Max=48)]
public string SourceKeyspaceName
{
get { return this._sourceKeyspaceName; }
set { this._sourceKeyspaceName = value; }
}
// Check to see if SourceKeyspaceName property is set
internal bool IsSetSourceKeyspaceName()
{
return this._sourceKeyspaceName != null;
}
///
/// Gets and sets the property SourceTableName.
///
/// The name of the source table.
///
///
[AWSProperty(Required=true, Min=1, Max=48)]
public string SourceTableName
{
get { return this._sourceTableName; }
set { this._sourceTableName = value; }
}
// Check to see if SourceTableName property is set
internal bool IsSetSourceTableName()
{
return this._sourceTableName != null;
}
///
/// Gets and sets the property TagsOverride.
///
/// A list of key-value pair tags to be attached to the restored table.
///
///
///
/// For more information, see Adding
/// tags and labels to Amazon Keyspaces resources in the Amazon Keyspaces Developer
/// Guide.
///
///
[AWSProperty(Min=1, Max=60)]
public List TagsOverride
{
get { return this._tagsOverride; }
set { this._tagsOverride = value; }
}
// Check to see if TagsOverride property is set
internal bool IsSetTagsOverride()
{
return this._tagsOverride != null && this._tagsOverride.Count > 0;
}
///
/// Gets and sets the property TargetKeyspaceName.
///
/// The name of the target keyspace.
///
///
[AWSProperty(Required=true, Min=1, Max=48)]
public string TargetKeyspaceName
{
get { return this._targetKeyspaceName; }
set { this._targetKeyspaceName = value; }
}
// Check to see if TargetKeyspaceName property is set
internal bool IsSetTargetKeyspaceName()
{
return this._targetKeyspaceName != null;
}
///
/// Gets and sets the property TargetTableName.
///
/// The name of the target table.
///
///
[AWSProperty(Required=true, Min=1, Max=48)]
public string TargetTableName
{
get { return this._targetTableName; }
set { this._targetTableName = value; }
}
// Check to see if TargetTableName property is set
internal bool IsSetTargetTableName()
{
return this._targetTableName != null;
}
}
}