/*
* 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 ImportImage operation.
///
///
/// To import your virtual machines (VMs) with a console-based experience, you can use
/// the Import virtual machine images to Amazon Web Services template in the Migration Hub Orchestrator
/// console. For more information, see the
/// Migration Hub Orchestrator User Guide .
///
///
///
/// Import single or multi-volume disk images or EBS snapshots into an Amazon Machine
/// Image (AMI).
///
///
///
/// Amazon Web Services VM Import/Export strongly recommends specifying a value for either
/// the --license-type
or --usage-operation
parameter when you
/// create a new VM Import task. This ensures your operating system is licensed appropriately
/// and your billing is optimized.
///
///
///
/// For more information, see Importing
/// a VM as an image using VM Import/Export in the VM Import/Export User Guide.
///
///
public partial class ImportImageRequest : AmazonEC2Request
{
private string _architecture;
private BootModeValues _bootMode;
private ClientData _clientData;
private string _clientToken;
private string _description;
private List _diskContainers = new List();
private bool? _encrypted;
private string _hypervisor;
private string _kmsKeyId;
private List _licenseSpecifications = new List();
private string _licenseType;
private string _platform;
private string _roleName;
private List _tagSpecifications = new List();
private string _usageOperation;
///
/// Gets and sets the property Architecture.
///
/// The architecture of the virtual machine.
///
///
///
/// Valid values: i386
| x86_64
///
///
public string Architecture
{
get { return this._architecture; }
set { this._architecture = value; }
}
// Check to see if Architecture property is set
internal bool IsSetArchitecture()
{
return this._architecture != null;
}
///
/// Gets and sets the property BootMode.
///
/// The boot mode of the virtual machine.
///
///
public BootModeValues BootMode
{
get { return this._bootMode; }
set { this._bootMode = value; }
}
// Check to see if BootMode property is set
internal bool IsSetBootMode()
{
return this._bootMode != null;
}
///
/// 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.
///
/// The 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.
///
/// A description string for the import image 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 DiskContainers.
///
/// Information about the disk containers.
///
///
public List DiskContainers
{
get { return this._diskContainers; }
set { this._diskContainers = value; }
}
// Check to see if DiskContainers property is set
internal bool IsSetDiskContainers()
{
return this._diskContainers != null && this._diskContainers.Count > 0;
}
///
/// Gets and sets the property Encrypted.
///
/// Specifies whether the destination AMI 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 Hypervisor.
///
/// The target hypervisor platform.
///
///
///
/// Valid values: xen
///
///
public string Hypervisor
{
get { return this._hypervisor; }
set { this._hypervisor = value; }
}
// Check to see if Hypervisor property is set
internal bool IsSetHypervisor()
{
return this._hypervisor != null;
}
///
/// Gets and sets the property KmsKeyId.
///
/// An identifier for the symmetric KMS key to use when creating the encrypted AMI. 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 AMI 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 LicenseSpecifications.
///
/// The ARNs of the license configurations.
///
///
public List LicenseSpecifications
{
get { return this._licenseSpecifications; }
set { this._licenseSpecifications = value; }
}
// Check to see if LicenseSpecifications property is set
internal bool IsSetLicenseSpecifications()
{
return this._licenseSpecifications != null && this._licenseSpecifications.Count > 0;
}
///
/// Gets and sets the property LicenseType.
///
/// The license type to be used for the Amazon Machine Image (AMI) after importing.
///
///
///
/// Specify AWS
to replace the source-system license with an Amazon Web Services
/// license or BYOL
to retain the source-system license. Leaving this parameter
/// undefined is the same as choosing AWS
when importing a Windows Server
/// operating system, and the same as choosing BYOL
when importing a Windows
/// client operating system (such as Windows 10) or a Linux operating system.
///
///
///
/// To use BYOL
, you must have existing licenses with rights to use these
/// licenses in a third party cloud, such as Amazon Web Services. For more information,
/// see Prerequisites
/// in the VM Import/Export User Guide.
///
///
public string LicenseType
{
get { return this._licenseType; }
set { this._licenseType = value; }
}
// Check to see if LicenseType property is set
internal bool IsSetLicenseType()
{
return this._licenseType != null;
}
///
/// Gets and sets the property Platform.
///
/// The operating system of the virtual machine. If you import a VM that is compatible
/// with Unified Extensible Firmware Interface (UEFI) using an EBS snapshot, you must
/// specify a value for the platform.
///
///
///
/// Valid values: Windows
| Linux
///
///
public string Platform
{
get { return this._platform; }
set { this._platform = value; }
}
// Check to see if Platform property is set
internal bool IsSetPlatform()
{
return this._platform != 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 image 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;
}
///
/// Gets and sets the property UsageOperation.
///
/// The usage operation value. For more information, see Licensing
/// options in the VM Import/Export User Guide.
///
///
public string UsageOperation
{
get { return this._usageOperation; }
set { this._usageOperation = value; }
}
// Check to see if UsageOperation property is set
internal bool IsSetUsageOperation()
{
return this._usageOperation != null;
}
}
}