/*
* 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;
}
}
}