/*
* 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 backup-2018-11-15.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.Backup.Model
{
///
/// Container for the parameters to the StartRestoreJob operation.
/// Recovers the saved resource identified by an Amazon Resource Name (ARN).
///
public partial class StartRestoreJobRequest : AmazonBackupRequest
{
private bool? _copySourceTagsToRestoredResource;
private string _iamRoleArn;
private string _idempotencyToken;
private Dictionary _metadata = new Dictionary();
private string _recoveryPointArn;
private string _resourceType;
///
/// Gets and sets the property CopySourceTagsToRestoredResource.
///
/// This is an optional parameter. If this equals True
, tags included in
/// the backup will be copied to the restored resource.
///
///
///
/// This can only be applied to backups created through Backup.
///
///
public bool CopySourceTagsToRestoredResource
{
get { return this._copySourceTagsToRestoredResource.GetValueOrDefault(); }
set { this._copySourceTagsToRestoredResource = value; }
}
// Check to see if CopySourceTagsToRestoredResource property is set
internal bool IsSetCopySourceTagsToRestoredResource()
{
return this._copySourceTagsToRestoredResource.HasValue;
}
///
/// Gets and sets the property IamRoleArn.
///
/// The Amazon Resource Name (ARN) of the IAM role that Backup uses to create the target
/// resource; for example: arn:aws:iam::123456789012:role/S3Access
.
///
///
public string IamRoleArn
{
get { return this._iamRoleArn; }
set { this._iamRoleArn = value; }
}
// Check to see if IamRoleArn property is set
internal bool IsSetIamRoleArn()
{
return this._iamRoleArn != null;
}
///
/// Gets and sets the property IdempotencyToken.
///
/// A customer-chosen string that you can use to distinguish between otherwise identical
/// calls to StartRestoreJob
. Retrying a successful request with the same
/// idempotency token results in a success message with no action taken.
///
///
public string IdempotencyToken
{
get { return this._idempotencyToken; }
set { this._idempotencyToken = value; }
}
// Check to see if IdempotencyToken property is set
internal bool IsSetIdempotencyToken()
{
return this._idempotencyToken != null;
}
///
/// Gets and sets the property Metadata.
///
/// A set of metadata key-value pairs. Contains information, such as a resource name,
/// required to restore a recovery point.
///
///
///
/// You can get configuration metadata about a resource at the time it was backed up
/// by calling GetRecoveryPointRestoreMetadata
. However, values in addition
/// to those provided by GetRecoveryPointRestoreMetadata
might be required
/// to restore a resource. For example, you might need to provide a new resource name
/// if the original already exists.
///
///
///
/// You need to specify specific metadata to restore an Amazon Elastic File System (Amazon
/// EFS) instance:
///
/// -
///
///
file-system-id
: The ID of the Amazon EFS file system that is backed
/// up by Backup. Returned in GetRecoveryPointRestoreMetadata
.
///
/// -
///
///
Encrypted
: A Boolean value that, if true, specifies that the file system
/// is encrypted. If KmsKeyId
is specified, Encrypted
must be
/// set to true
.
///
/// -
///
///
KmsKeyId
: Specifies the Amazon Web Services KMS key that is used to
/// encrypt the restored file system. You can specify a key from another Amazon Web Services
/// account provided that key it is properly shared with your account via Amazon Web Services
/// KMS.
///
/// -
///
///
PerformanceMode
: Specifies the throughput mode of the file system.
///
/// -
///
///
CreationToken
: A user-supplied value that ensures the uniqueness (idempotency)
/// of the request.
///
/// -
///
///
newFileSystem
: A Boolean value that, if true, specifies that the recovery
/// point is restored to a new Amazon EFS file system.
///
/// -
///
///
ItemsToRestore
: An array of one to five strings where each string is
/// a file path. Use ItemsToRestore
to restore specific files or directories
/// rather than the entire file system. This parameter is optional. For example, "itemsToRestore":"[\"/my.test\"]"
.
///
///
///
[AWSProperty(Required=true, Sensitive=true)]
public Dictionary Metadata
{
get { return this._metadata; }
set { this._metadata = value; }
}
// Check to see if Metadata property is set
internal bool IsSetMetadata()
{
return this._metadata != null && this._metadata.Count > 0;
}
///
/// Gets and sets the property RecoveryPointArn.
///
/// An ARN that uniquely identifies a recovery point; for example, arn:aws:backup:us-east-1:123456789012:recovery-point:1EB3B5E7-9EB0-435A-A80B-108B488B0D45
.
///
///
[AWSProperty(Required=true)]
public string RecoveryPointArn
{
get { return this._recoveryPointArn; }
set { this._recoveryPointArn = value; }
}
// Check to see if RecoveryPointArn property is set
internal bool IsSetRecoveryPointArn()
{
return this._recoveryPointArn != null;
}
///
/// Gets and sets the property ResourceType.
///
/// Starts a job to restore a recovery point for one of the following resources:
///
/// -
///
///
Aurora
for Amazon Aurora
///
/// -
///
///
DocumentDB
for Amazon DocumentDB (with MongoDB compatibility)
///
/// -
///
///
CloudFormation
for CloudFormation
///
/// -
///
///
DynamoDB
for Amazon DynamoDB
///
/// -
///
///
EBS
for Amazon Elastic Block Store
///
/// -
///
///
EC2
for Amazon Elastic Compute Cloud
///
/// -
///
///
EFS
for Amazon Elastic File System
///
/// -
///
///
FSx
for Amazon FSx
///
/// -
///
///
Neptune
for Amazon Neptune
///
/// -
///
///
RDS
for Amazon Relational Database Service
///
/// -
///
///
Redshift
for Amazon Redshift
///
/// -
///
///
Storage Gateway
for Storage Gateway
///
/// -
///
///
S3
for Amazon S3
///
/// -
///
///
Timestream
for Amazon Timestream
///
/// -
///
///
VirtualMachine
for virtual machines
///
///
///
public string ResourceType
{
get { return this._resourceType; }
set { this._resourceType = value; }
}
// Check to see if ResourceType property is set
internal bool IsSetResourceType()
{
return this._resourceType != null;
}
}
}