/*
* 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 imagebuilder-2019-12-02.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.Imagebuilder.Model
{
///
/// Container for the parameters to the UpdateInfrastructureConfiguration operation.
/// Updates a new infrastructure configuration. An infrastructure configuration defines
/// the environment in which your image will be built and tested.
///
public partial class UpdateInfrastructureConfigurationRequest : AmazonImagebuilderRequest
{
private string _clientToken;
private string _description;
private string _infrastructureConfigurationArn;
private InstanceMetadataOptions _instanceMetadataOptions;
private string _instanceProfileName;
private List _instanceTypes = new List();
private string _keyPair;
private Logging _logging;
private Dictionary _resourceTags = new Dictionary();
private List _securityGroupIds = new List();
private string _snsTopicArn;
private string _subnetId;
private bool? _terminateInstanceOnFailure;
///
/// Gets and sets the property ClientToken.
///
/// The idempotency token used to make this request idempotent.
///
///
[AWSProperty(Min=1, Max=36)]
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 of the infrastructure configuration.
///
///
[AWSProperty(Min=1, Max=1024)]
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 InfrastructureConfigurationArn.
///
/// The Amazon Resource Name (ARN) of the infrastructure configuration that you want to
/// update.
///
///
[AWSProperty(Required=true)]
public string InfrastructureConfigurationArn
{
get { return this._infrastructureConfigurationArn; }
set { this._infrastructureConfigurationArn = value; }
}
// Check to see if InfrastructureConfigurationArn property is set
internal bool IsSetInfrastructureConfigurationArn()
{
return this._infrastructureConfigurationArn != null;
}
///
/// Gets and sets the property InstanceMetadataOptions.
///
/// The instance metadata options that you can set for the HTTP requests that pipeline
/// builds use to launch EC2 build and test instances. For more information about instance
/// metadata options, see one of the following links:
///
///
///
public InstanceMetadataOptions InstanceMetadataOptions
{
get { return this._instanceMetadataOptions; }
set { this._instanceMetadataOptions = value; }
}
// Check to see if InstanceMetadataOptions property is set
internal bool IsSetInstanceMetadataOptions()
{
return this._instanceMetadataOptions != null;
}
///
/// Gets and sets the property InstanceProfileName.
///
/// The instance profile to associate with the instance used to customize your Amazon
/// EC2 AMI.
///
///
[AWSProperty(Required=true, Min=1, Max=256)]
public string InstanceProfileName
{
get { return this._instanceProfileName; }
set { this._instanceProfileName = value; }
}
// Check to see if InstanceProfileName property is set
internal bool IsSetInstanceProfileName()
{
return this._instanceProfileName != null;
}
///
/// Gets and sets the property InstanceTypes.
///
/// The instance types of the infrastructure configuration. You can specify one or more
/// instance types to use for this build. The service will pick one of these instance
/// types based on availability.
///
///
public List InstanceTypes
{
get { return this._instanceTypes; }
set { this._instanceTypes = value; }
}
// Check to see if InstanceTypes property is set
internal bool IsSetInstanceTypes()
{
return this._instanceTypes != null && this._instanceTypes.Count > 0;
}
///
/// Gets and sets the property KeyPair.
///
/// The key pair of the infrastructure configuration. You can use this to log on to and
/// debug the instance used to create your image.
///
///
[AWSProperty(Min=1, Max=1024)]
public string KeyPair
{
get { return this._keyPair; }
set { this._keyPair = value; }
}
// Check to see if KeyPair property is set
internal bool IsSetKeyPair()
{
return this._keyPair != null;
}
///
/// Gets and sets the property Logging.
///
/// The logging configuration of the infrastructure configuration.
///
///
public Logging Logging
{
get { return this._logging; }
set { this._logging = value; }
}
// Check to see if Logging property is set
internal bool IsSetLogging()
{
return this._logging != null;
}
///
/// Gets and sets the property ResourceTags.
///
/// The tags attached to the resource created by Image Builder.
///
///
[AWSProperty(Min=1, Max=30)]
public Dictionary ResourceTags
{
get { return this._resourceTags; }
set { this._resourceTags = value; }
}
// Check to see if ResourceTags property is set
internal bool IsSetResourceTags()
{
return this._resourceTags != null && this._resourceTags.Count > 0;
}
///
/// Gets and sets the property SecurityGroupIds.
///
/// The security group IDs to associate with the instance used to customize your Amazon
/// EC2 AMI.
///
///
public List SecurityGroupIds
{
get { return this._securityGroupIds; }
set { this._securityGroupIds = value; }
}
// Check to see if SecurityGroupIds property is set
internal bool IsSetSecurityGroupIds()
{
return this._securityGroupIds != null && this._securityGroupIds.Count > 0;
}
///
/// Gets and sets the property SnsTopicArn.
///
/// The Amazon Resource Name (ARN) for the SNS topic to which we send image build event
/// notifications.
///
///
///
/// EC2 Image Builder is unable to send notifications to SNS topics that are encrypted
/// using keys from other accounts. The key that is used to encrypt the SNS topic must
/// reside in the account that the Image Builder service runs under.
///
///
///
public string SnsTopicArn
{
get { return this._snsTopicArn; }
set { this._snsTopicArn = value; }
}
// Check to see if SnsTopicArn property is set
internal bool IsSetSnsTopicArn()
{
return this._snsTopicArn != null;
}
///
/// Gets and sets the property SubnetId.
///
/// The subnet ID to place the instance used to customize your Amazon EC2 AMI in.
///
///
[AWSProperty(Min=1, Max=1024)]
public string SubnetId
{
get { return this._subnetId; }
set { this._subnetId = value; }
}
// Check to see if SubnetId property is set
internal bool IsSetSubnetId()
{
return this._subnetId != null;
}
///
/// Gets and sets the property TerminateInstanceOnFailure.
///
/// The terminate instance on failure setting of the infrastructure configuration. Set
/// to false if you want Image Builder to retain the instance used to configure your AMI
/// if the build or test phase of your workflow fails.
///
///
public bool TerminateInstanceOnFailure
{
get { return this._terminateInstanceOnFailure.GetValueOrDefault(); }
set { this._terminateInstanceOnFailure = value; }
}
// Check to see if TerminateInstanceOnFailure property is set
internal bool IsSetTerminateInstanceOnFailure()
{
return this._terminateInstanceOnFailure.HasValue;
}
}
}