/*
* 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 RestoreTableToPointInTime operation.
/// Restores the specified table to the specified point in time within EarliestRestorableDateTime
/// and LatestRestorableDateTime
. You can restore your table to any point
/// in time during the last 35 days. 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, DynamoDB restores your table data
/// to the state based on the selected date and time (day:hour:minute:second) to a new
/// table.
///
///
///
/// Along with data, the following are also included on the new restored table using
/// point in time recovery:
///
/// -
///
/// Global secondary indexes (GSIs)
///
///
-
///
/// Local secondary indexes (LSIs)
///
///
-
///
/// Provisioned read and write capacity
///
///
-
///
/// Encryption settings
///
///
///
/// All these settings come from the current settings of the source table at the time
/// of restore.
///
///
///
/// You must manually set up the following on the restored table:
///
/// -
///
/// Auto scaling policies
///
///
-
///
/// IAM policies
///
///
-
///
/// Amazon CloudWatch metrics and alarms
///
///
-
///
/// Tags
///
///
-
///
/// Stream settings
///
///
-
///
/// Time to Live (TTL) settings
///
///
-
///
/// Point in time recovery settings
///
///
///
public partial class RestoreTableToPointInTimeRequest : AmazonDynamoDBRequest
{
private BillingMode _billingModeOverride;
private List _globalSecondaryIndexOverride = new List();
private List _localSecondaryIndexOverride = new List();
private ProvisionedThroughput _provisionedThroughputOverride;
private DateTime? _restoreDateTime;
private string _sourceTableName;
private string _targetTableName;
private bool? _useLatestRestorableTime;
///
/// Gets and sets the property BillingModeOverride.
///
/// The billing mode of the restored table.
///
///
public BillingMode BillingModeOverride
{
get { return this._billingModeOverride; }
set { this._billingModeOverride = value; }
}
// Check to see if BillingModeOverride property is set
internal bool IsSetBillingModeOverride()
{
return this._billingModeOverride != null;
}
///
/// Gets and sets the property GlobalSecondaryIndexOverride.
///
/// List of global secondary indexes for the restored table. The indexes provided should
/// match existing secondary indexes. You can choose to exclude some or all of the indexes
/// at the time of restore.
///
///
public List GlobalSecondaryIndexOverride
{
get { return this._globalSecondaryIndexOverride; }
set { this._globalSecondaryIndexOverride = value; }
}
// Check to see if GlobalSecondaryIndexOverride property is set
internal bool IsSetGlobalSecondaryIndexOverride()
{
return this._globalSecondaryIndexOverride != null && this._globalSecondaryIndexOverride.Count > 0;
}
///
/// Gets and sets the property LocalSecondaryIndexOverride.
///
/// List of local secondary indexes for the restored table. The indexes provided should
/// match existing secondary indexes. You can choose to exclude some or all of the indexes
/// at the time of restore.
///
///
public List LocalSecondaryIndexOverride
{
get { return this._localSecondaryIndexOverride; }
set { this._localSecondaryIndexOverride = value; }
}
// Check to see if LocalSecondaryIndexOverride property is set
internal bool IsSetLocalSecondaryIndexOverride()
{
return this._localSecondaryIndexOverride != null && this._localSecondaryIndexOverride.Count > 0;
}
///
/// Gets and sets the property ProvisionedThroughputOverride.
///
/// Provisioned throughput settings for the restored table.
///
///
public ProvisionedThroughput ProvisionedThroughputOverride
{
get { return this._provisionedThroughputOverride; }
set { this._provisionedThroughputOverride = value; }
}
// Check to see if ProvisionedThroughputOverride property is set
internal bool IsSetProvisionedThroughputOverride()
{
return this._provisionedThroughputOverride != null;
}
///
/// Gets and sets the property RestoreDateTime.
///
/// Time in the past to restore the table to.
///
///
public DateTime RestoreDateTime
{
get { return this._restoreDateTime.GetValueOrDefault(); }
set { this._restoreDateTime = value; }
}
// Check to see if RestoreDateTime property is set
internal bool IsSetRestoreDateTime()
{
return this._restoreDateTime.HasValue;
}
///
/// Gets and sets the property SourceTableName.
///
/// Name of the source table that is being restored.
///
///
[AWSProperty(Required=true, Min=3, Max=255)]
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 TargetTableName.
///
/// The name of the new table to which it must be restored to.
///
///
[AWSProperty(Required=true, Min=3, Max=255)]
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;
}
///
/// Gets and sets the property UseLatestRestorableTime.
///
/// Restore the table to the latest possible time. LatestRestorableDateTime
/// is typically 5 minutes before the current time.
///
///
public bool UseLatestRestorableTime
{
get { return this._useLatestRestorableTime.GetValueOrDefault(); }
set { this._useLatestRestorableTime = value; }
}
// Check to see if UseLatestRestorableTime property is set
internal bool IsSetUseLatestRestorableTime()
{
return this._useLatestRestorableTime.HasValue;
}
}
}