/*
* 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 ec2-2016-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.EC2.Model
{
///
/// Container for the parameters to the ImportSnapshot operation.
/// Imports a disk into an EBS snapshot.
///
///
///
/// For more information, see Importing
/// a disk as a snapshot using VM Import/Export in the VM Import/Export User Guide.
///
///
public partial class ImportSnapshotRequest : AmazonEC2Request
{
private ClientData _clientData;
private string _clientToken;
private string _description;
private SnapshotDiskContainer _diskContainer;
private bool? _encrypted;
private string _kmsKeyId;
private string _roleName;
private List _tagSpecifications = new List();
///
/// Gets and sets the property ClientData.
///
/// The client-specific data.
///
///
public ClientData ClientData
{
get { return this._clientData; }
set { this._clientData = value; }
}
// Check to see if ClientData property is set
internal bool IsSetClientData()
{
return this._clientData != null;
}
///
/// Gets and sets the property ClientToken.
///
/// Token to enable idempotency for VM import requests.
///
///
public string ClientToken
{
get { return this._clientToken; }
set { this._clientToken = value; }
}
// Check to see if ClientToken property is set
internal bool IsSetClientToken()
{
return this._clientToken != null;
}
///
/// Gets and sets the property Description.
///
/// The description string for the import snapshot task.
///
///
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property DiskContainer.
///
/// Information about the disk container.
///
///
public SnapshotDiskContainer DiskContainer
{
get { return this._diskContainer; }
set { this._diskContainer = value; }
}
// Check to see if DiskContainer property is set
internal bool IsSetDiskContainer()
{
return this._diskContainer != null;
}
///
/// Gets and sets the property Encrypted.
///
/// Specifies whether the destination snapshot of the imported image should be encrypted.
/// The default KMS key for EBS is used unless you specify a non-default KMS key using
/// KmsKeyId
. For more information, see Amazon
/// EBS Encryption in the Amazon Elastic Compute Cloud User Guide.
///
///
public bool Encrypted
{
get { return this._encrypted.GetValueOrDefault(); }
set { this._encrypted = value; }
}
// Check to see if Encrypted property is set
internal bool IsSetEncrypted()
{
return this._encrypted.HasValue;
}
///
/// Gets and sets the property KmsKeyId.
///
/// An identifier for the symmetric KMS key to use when creating the encrypted snapshot.
/// This parameter is only required if you want to use a non-default KMS key; if this
/// parameter is not specified, the default KMS key for EBS is used. If a KmsKeyId
/// is specified, the Encrypted
flag must also be set.
///
///
///
/// The KMS key identifier may be provided in any of the following formats:
///
/// -
///
/// Key ID
///
///
-
///
/// Key alias
///
///
-
///
/// ARN using key ID. The ID ARN contains the
arn:aws:kms
namespace, followed
/// by the Region of the key, the Amazon Web Services account ID of the key owner, the
/// key
namespace, and then the key ID. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef.
///
/// -
///
/// ARN using key alias. The alias ARN contains the
arn:aws:kms
namespace,
/// followed by the Region of the key, the Amazon Web Services account ID of the key owner,
/// the alias
namespace, and then the key alias. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.
///
///
///
///
/// Amazon Web Services parses KmsKeyId
asynchronously, meaning that the
/// action you call may appear to complete even though you provided an invalid identifier.
/// This action will eventually report failure.
///
///
///
/// The specified KMS key must exist in the Region that the snapshot is being copied to.
///
///
///
/// Amazon EBS does not support asymmetric KMS keys.
///
///
public string KmsKeyId
{
get { return this._kmsKeyId; }
set { this._kmsKeyId = value; }
}
// Check to see if KmsKeyId property is set
internal bool IsSetKmsKeyId()
{
return this._kmsKeyId != null;
}
///
/// Gets and sets the property RoleName.
///
/// The name of the role to use when not using the default role, 'vmimport'.
///
///
public string RoleName
{
get { return this._roleName; }
set { this._roleName = value; }
}
// Check to see if RoleName property is set
internal bool IsSetRoleName()
{
return this._roleName != null;
}
///
/// Gets and sets the property TagSpecifications.
///
/// The tags to apply to the import snapshot task during creation.
///
///
public List TagSpecifications
{
get { return this._tagSpecifications; }
set { this._tagSpecifications = value; }
}
// Check to see if TagSpecifications property is set
internal bool IsSetTagSpecifications()
{
return this._tagSpecifications != null && this._tagSpecifications.Count > 0;
}
}
}