/*
* 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 securityhub-2018-10-26.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.SecurityHub.Model
{
///
/// The information to include in an Amazon Elastic Compute Cloud (Amazon EC2) launch
/// template.
///
public partial class AwsEc2LaunchTemplateDataDetails
{
private List _blockDeviceMappingSet = new List();
private AwsEc2LaunchTemplateDataCapacityReservationSpecificationDetails _capacityReservationSpecification;
private AwsEc2LaunchTemplateDataCpuOptionsDetails _cpuOptions;
private AwsEc2LaunchTemplateDataCreditSpecificationDetails _creditSpecification;
private bool? _disableApiStop;
private bool? _disableApiTermination;
private bool? _ebsOptimized;
private List _elasticGpuSpecificationSet = new List();
private List _elasticInferenceAcceleratorSet = new List();
private AwsEc2LaunchTemplateDataEnclaveOptionsDetails _enclaveOptions;
private AwsEc2LaunchTemplateDataHibernationOptionsDetails _hibernationOptions;
private AwsEc2LaunchTemplateDataIamInstanceProfileDetails _iamInstanceProfile;
private string _imageId;
private string _instanceInitiatedShutdownBehavior;
private AwsEc2LaunchTemplateDataInstanceMarketOptionsDetails _instanceMarketOptions;
private AwsEc2LaunchTemplateDataInstanceRequirementsDetails _instanceRequirements;
private string _instanceType;
private string _kernelId;
private string _keyName;
private List _licenseSet = new List();
private AwsEc2LaunchTemplateDataMaintenanceOptionsDetails _maintenanceOptions;
private AwsEc2LaunchTemplateDataMetadataOptionsDetails _metadataOptions;
private AwsEc2LaunchTemplateDataMonitoringDetails _monitoring;
private List _networkInterfaceSet = new List();
private AwsEc2LaunchTemplateDataPlacementDetails _placement;
private AwsEc2LaunchTemplateDataPrivateDnsNameOptionsDetails _privateDnsNameOptions;
private string _ramDiskId;
private List _securityGroupIdSet = new List();
private List _securityGroupSet = new List();
private string _userData;
///
/// Gets and sets the property BlockDeviceMappingSet.
///
/// Information about a block device mapping for an Amazon EC2 launch template.
///
///
public List BlockDeviceMappingSet
{
get { return this._blockDeviceMappingSet; }
set { this._blockDeviceMappingSet = value; }
}
// Check to see if BlockDeviceMappingSet property is set
internal bool IsSetBlockDeviceMappingSet()
{
return this._blockDeviceMappingSet != null && this._blockDeviceMappingSet.Count > 0;
}
///
/// Gets and sets the property CapacityReservationSpecification.
///
/// Specifies an instance's Capacity Reservation targeting option. You can specify only
/// one option at a time.
///
///
public AwsEc2LaunchTemplateDataCapacityReservationSpecificationDetails CapacityReservationSpecification
{
get { return this._capacityReservationSpecification; }
set { this._capacityReservationSpecification = value; }
}
// Check to see if CapacityReservationSpecification property is set
internal bool IsSetCapacityReservationSpecification()
{
return this._capacityReservationSpecification != null;
}
///
/// Gets and sets the property CpuOptions.
///
/// Specifies the CPU options for an instance. For more information, see Optimize
/// CPU options in the Amazon Elastic Compute Cloud User Guide.
///
///
public AwsEc2LaunchTemplateDataCpuOptionsDetails CpuOptions
{
get { return this._cpuOptions; }
set { this._cpuOptions = value; }
}
// Check to see if CpuOptions property is set
internal bool IsSetCpuOptions()
{
return this._cpuOptions != null;
}
///
/// Gets and sets the property CreditSpecification.
///
/// Specifies the credit option for CPU usage of a T2, T3, or T3a instance.
///
///
public AwsEc2LaunchTemplateDataCreditSpecificationDetails CreditSpecification
{
get { return this._creditSpecification; }
set { this._creditSpecification = value; }
}
// Check to see if CreditSpecification property is set
internal bool IsSetCreditSpecification()
{
return this._creditSpecification != null;
}
///
/// Gets and sets the property DisableApiStop.
///
/// Indicates whether to enable the instance for stop protection. For more information,
/// see Enable
/// stop protection in the Amazon EC2 User Guide.
///
///
public bool DisableApiStop
{
get { return this._disableApiStop.GetValueOrDefault(); }
set { this._disableApiStop = value; }
}
// Check to see if DisableApiStop property is set
internal bool IsSetDisableApiStop()
{
return this._disableApiStop.HasValue;
}
///
/// Gets and sets the property DisableApiTermination.
///
/// If you set this parameter to true
, you can't terminate the instance
/// using the Amazon EC2 console, CLI, or API. If set to true
, you can.
///
///
public bool DisableApiTermination
{
get { return this._disableApiTermination.GetValueOrDefault(); }
set { this._disableApiTermination = value; }
}
// Check to see if DisableApiTermination property is set
internal bool IsSetDisableApiTermination()
{
return this._disableApiTermination.HasValue;
}
///
/// Gets and sets the property EbsOptimized.
///
/// Indicates whether the instance is optimized for Amazon EBS I/O.
///
///
public bool EbsOptimized
{
get { return this._ebsOptimized.GetValueOrDefault(); }
set { this._ebsOptimized = value; }
}
// Check to see if EbsOptimized property is set
internal bool IsSetEbsOptimized()
{
return this._ebsOptimized.HasValue;
}
///
/// Gets and sets the property ElasticGpuSpecificationSet.
///
/// Provides details about Elastic Graphics accelerators to associate with the instance.
///
///
///
public List ElasticGpuSpecificationSet
{
get { return this._elasticGpuSpecificationSet; }
set { this._elasticGpuSpecificationSet = value; }
}
// Check to see if ElasticGpuSpecificationSet property is set
internal bool IsSetElasticGpuSpecificationSet()
{
return this._elasticGpuSpecificationSet != null && this._elasticGpuSpecificationSet.Count > 0;
}
///
/// Gets and sets the property ElasticInferenceAcceleratorSet.
///
/// The Amazon Elastic Inference accelerator for the instance.
///
///
public List ElasticInferenceAcceleratorSet
{
get { return this._elasticInferenceAcceleratorSet; }
set { this._elasticInferenceAcceleratorSet = value; }
}
// Check to see if ElasticInferenceAcceleratorSet property is set
internal bool IsSetElasticInferenceAcceleratorSet()
{
return this._elasticInferenceAcceleratorSet != null && this._elasticInferenceAcceleratorSet.Count > 0;
}
///
/// Gets and sets the property EnclaveOptions.
///
/// Indicates whether the Amazon EC2 instance is enabled for Amazon Web Services Nitro
/// Enclaves.
///
///
public AwsEc2LaunchTemplateDataEnclaveOptionsDetails EnclaveOptions
{
get { return this._enclaveOptions; }
set { this._enclaveOptions = value; }
}
// Check to see if EnclaveOptions property is set
internal bool IsSetEnclaveOptions()
{
return this._enclaveOptions != null;
}
///
/// Gets and sets the property HibernationOptions.
///
/// Specifies whether your Amazon EC2 instance is configured for hibernation.
///
///
public AwsEc2LaunchTemplateDataHibernationOptionsDetails HibernationOptions
{
get { return this._hibernationOptions; }
set { this._hibernationOptions = value; }
}
// Check to see if HibernationOptions property is set
internal bool IsSetHibernationOptions()
{
return this._hibernationOptions != null;
}
///
/// Gets and sets the property IamInstanceProfile.
///
/// The name or Amazon Resource Name (ARN) of an IAM instance profile.
///
///
public AwsEc2LaunchTemplateDataIamInstanceProfileDetails IamInstanceProfile
{
get { return this._iamInstanceProfile; }
set { this._iamInstanceProfile = value; }
}
// Check to see if IamInstanceProfile property is set
internal bool IsSetIamInstanceProfile()
{
return this._iamInstanceProfile != null;
}
///
/// Gets and sets the property ImageId.
///
/// The ID of the Amazon Machine Image (AMI).
///
///
public string ImageId
{
get { return this._imageId; }
set { this._imageId = value; }
}
// Check to see if ImageId property is set
internal bool IsSetImageId()
{
return this._imageId != null;
}
///
/// Gets and sets the property InstanceInitiatedShutdownBehavior.
///
/// Provides the options for specifying the instance initiated shutdown behavior.
///
///
public string InstanceInitiatedShutdownBehavior
{
get { return this._instanceInitiatedShutdownBehavior; }
set { this._instanceInitiatedShutdownBehavior = value; }
}
// Check to see if InstanceInitiatedShutdownBehavior property is set
internal bool IsSetInstanceInitiatedShutdownBehavior()
{
return this._instanceInitiatedShutdownBehavior != null;
}
///
/// Gets and sets the property InstanceMarketOptions.
///
/// Specifies the market (purchasing) option for an instance.
///
///
public AwsEc2LaunchTemplateDataInstanceMarketOptionsDetails InstanceMarketOptions
{
get { return this._instanceMarketOptions; }
set { this._instanceMarketOptions = value; }
}
// Check to see if InstanceMarketOptions property is set
internal bool IsSetInstanceMarketOptions()
{
return this._instanceMarketOptions != null;
}
///
/// Gets and sets the property InstanceRequirements.
///
/// The attributes for the instance types. When you specify instance attributes, Amazon
/// EC2 will identify instance types with these attributes. If you specify InstanceRequirements
,
/// you can't specify InstanceType
.
///
///
public AwsEc2LaunchTemplateDataInstanceRequirementsDetails InstanceRequirements
{
get { return this._instanceRequirements; }
set { this._instanceRequirements = value; }
}
// Check to see if InstanceRequirements property is set
internal bool IsSetInstanceRequirements()
{
return this._instanceRequirements != null;
}
///
/// Gets and sets the property InstanceType.
///
/// The instance type. For more information, see Instance
/// types in the Amazon EC2 User Guide. If you specify InstanceType
,
/// you can't specify InstanceRequirements
.
///
///
public string InstanceType
{
get { return this._instanceType; }
set { this._instanceType = value; }
}
// Check to see if InstanceType property is set
internal bool IsSetInstanceType()
{
return this._instanceType != null;
}
///
/// Gets and sets the property KernelId.
///
/// The ID of the kernel.
///
///
public string KernelId
{
get { return this._kernelId; }
set { this._kernelId = value; }
}
// Check to see if KernelId property is set
internal bool IsSetKernelId()
{
return this._kernelId != null;
}
///
/// Gets and sets the property KeyName.
///
/// The name of the key pair that allows users to connect to the instance.
///
///
public string KeyName
{
get { return this._keyName; }
set { this._keyName = value; }
}
// Check to see if KeyName property is set
internal bool IsSetKeyName()
{
return this._keyName != null;
}
///
/// Gets and sets the property LicenseSet.
///
/// Specifies a license configuration for an instance.
///
///
public List LicenseSet
{
get { return this._licenseSet; }
set { this._licenseSet = value; }
}
// Check to see if LicenseSet property is set
internal bool IsSetLicenseSet()
{
return this._licenseSet != null && this._licenseSet.Count > 0;
}
///
/// Gets and sets the property MaintenanceOptions.
///
/// The maintenance options of your instance.
///
///
public AwsEc2LaunchTemplateDataMaintenanceOptionsDetails MaintenanceOptions
{
get { return this._maintenanceOptions; }
set { this._maintenanceOptions = value; }
}
// Check to see if MaintenanceOptions property is set
internal bool IsSetMaintenanceOptions()
{
return this._maintenanceOptions != null;
}
///
/// Gets and sets the property MetadataOptions.
///
/// The metadata options for the instance. For more information, see Instance
/// metadata and user data in the Amazon EC2 User Guide.
///
///
public AwsEc2LaunchTemplateDataMetadataOptionsDetails MetadataOptions
{
get { return this._metadataOptions; }
set { this._metadataOptions = value; }
}
// Check to see if MetadataOptions property is set
internal bool IsSetMetadataOptions()
{
return this._metadataOptions != null;
}
///
/// Gets and sets the property Monitoring.
///
/// The monitoring for the instance.
///
///
public AwsEc2LaunchTemplateDataMonitoringDetails Monitoring
{
get { return this._monitoring; }
set { this._monitoring = value; }
}
// Check to see if Monitoring property is set
internal bool IsSetMonitoring()
{
return this._monitoring != null;
}
///
/// Gets and sets the property NetworkInterfaceSet.
///
/// Specifies the parameters for a network interface that is attached to the instance.
///
///
///
public List NetworkInterfaceSet
{
get { return this._networkInterfaceSet; }
set { this._networkInterfaceSet = value; }
}
// Check to see if NetworkInterfaceSet property is set
internal bool IsSetNetworkInterfaceSet()
{
return this._networkInterfaceSet != null && this._networkInterfaceSet.Count > 0;
}
///
/// Gets and sets the property Placement.
///
/// Specifies the placement of an instance.
///
///
public AwsEc2LaunchTemplateDataPlacementDetails Placement
{
get { return this._placement; }
set { this._placement = value; }
}
// Check to see if Placement property is set
internal bool IsSetPlacement()
{
return this._placement != null;
}
///
/// Gets and sets the property PrivateDnsNameOptions.
///
/// The options for the instance hostname.
///
///
public AwsEc2LaunchTemplateDataPrivateDnsNameOptionsDetails PrivateDnsNameOptions
{
get { return this._privateDnsNameOptions; }
set { this._privateDnsNameOptions = value; }
}
// Check to see if PrivateDnsNameOptions property is set
internal bool IsSetPrivateDnsNameOptions()
{
return this._privateDnsNameOptions != null;
}
///
/// Gets and sets the property RamDiskId.
///
/// The ID of the RAM disk.
///
///
public string RamDiskId
{
get { return this._ramDiskId; }
set { this._ramDiskId = value; }
}
// Check to see if RamDiskId property is set
internal bool IsSetRamDiskId()
{
return this._ramDiskId != null;
}
///
/// Gets and sets the property SecurityGroupIdSet.
///
/// One or more security group IDs.
///
///
public List SecurityGroupIdSet
{
get { return this._securityGroupIdSet; }
set { this._securityGroupIdSet = value; }
}
// Check to see if SecurityGroupIdSet property is set
internal bool IsSetSecurityGroupIdSet()
{
return this._securityGroupIdSet != null && this._securityGroupIdSet.Count > 0;
}
///
/// Gets and sets the property SecurityGroupSet.
///
/// One or more security group names. For a nondefault VPC, you must use security group
/// IDs instead. You cannot specify both a security group ID and security name in the
/// same request.
///
///
public List SecurityGroupSet
{
get { return this._securityGroupSet; }
set { this._securityGroupSet = value; }
}
// Check to see if SecurityGroupSet property is set
internal bool IsSetSecurityGroupSet()
{
return this._securityGroupSet != null && this._securityGroupSet.Count > 0;
}
///
/// Gets and sets the property UserData.
///
/// The user data to make available to the instance.
///
///
public string UserData
{
get { return this._userData; }
set { this._userData = value; }
}
// Check to see if UserData property is set
internal bool IsSetUserData()
{
return this._userData != null;
}
}
}