/*
* 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 cloud9-2017-09-23.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.Cloud9.Model
{
///
/// Container for the parameters to the CreateEnvironmentEC2 operation.
/// Creates an Cloud9 development environment, launches an Amazon Elastic Compute Cloud
/// (Amazon EC2) instance, and then connects from the instance to the environment.
///
public partial class CreateEnvironmentEC2Request : AmazonCloud9Request
{
private int? _automaticStopTimeMinutes;
private string _clientRequestToken;
private ConnectionType _connectionType;
private string _description;
private bool? _dryRun;
private string _imageId;
private string _instanceType;
private string _name;
private string _ownerArn;
private string _subnetId;
private List _tags = new List();
///
/// Gets and sets the property AutomaticStopTimeMinutes.
///
/// The number of minutes until the running instance is shut down after the environment
/// has last been used.
///
///
[AWSProperty(Min=0, Max=20160)]
public int AutomaticStopTimeMinutes
{
get { return this._automaticStopTimeMinutes.GetValueOrDefault(); }
set { this._automaticStopTimeMinutes = value; }
}
// Check to see if AutomaticStopTimeMinutes property is set
internal bool IsSetAutomaticStopTimeMinutes()
{
return this._automaticStopTimeMinutes.HasValue;
}
///
/// Gets and sets the property ClientRequestToken.
///
/// A unique, case-sensitive string that helps Cloud9 to ensure this operation completes
/// no more than one time.
///
///
///
/// For more information, see Client
/// Tokens in the Amazon EC2 API Reference.
///
///
public string ClientRequestToken
{
get { return this._clientRequestToken; }
set { this._clientRequestToken = value; }
}
// Check to see if ClientRequestToken property is set
internal bool IsSetClientRequestToken()
{
return this._clientRequestToken != null;
}
///
/// Gets and sets the property ConnectionType.
///
/// The connection type used for connecting to an Amazon EC2 environment. Valid values
/// are CONNECT_SSH
(default) and CONNECT_SSM
(connected through
/// Amazon EC2 Systems Manager).
///
///
///
/// For more information, see Accessing
/// no-ingress EC2 instances with Amazon EC2 Systems Manager in the Cloud9 User
/// Guide.
///
///
public ConnectionType ConnectionType
{
get { return this._connectionType; }
set { this._connectionType = value; }
}
// Check to see if ConnectionType property is set
internal bool IsSetConnectionType()
{
return this._connectionType != null;
}
///
/// Gets and sets the property Description.
///
/// The description of the environment to create.
///
///
[AWSProperty(Sensitive=true, Max=200)]
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 DryRun.
///
/// Checks whether you have the required permissions for the action, without actually
/// making the request, and provides an error response. If you have the required permissions,
/// the error response is DryRunOperation
. Otherwise, it is UnauthorizedOperation
.
///
///
public bool DryRun
{
get { return this._dryRun.GetValueOrDefault(); }
set { this._dryRun = value; }
}
// Check to see if DryRun property is set
internal bool IsSetDryRun()
{
return this._dryRun.HasValue;
}
///
/// Gets and sets the property ImageId.
///
/// The identifier for the Amazon Machine Image (AMI) that's used to create the EC2 instance.
/// To choose an AMI for the instance, you must specify a valid AMI alias or a valid Amazon
/// EC2 Systems Manager (SSM) path.
///
///
///
/// The default Amazon Linux AMI is currently used if the parameter isn't explicitly assigned
/// a value in the request.
///
///
///
/// In the future the parameter for Amazon Linux will no longer be available when you
/// specify an AMI for your instance. Amazon Linux 2 will then become the default AMI,
/// which is used to launch your instance if no parameter is explicitly defined.
///
///
///
/// AMI aliases
///
/// -
///
/// Amazon Linux (default):
amazonlinux-1-x86_64
///
/// -
///
/// Amazon Linux 2:
amazonlinux-2-x86_64
///
/// -
///
/// Ubuntu 18.04:
ubuntu-18.04-x86_64
///
///
///
/// SSM paths
///
/// -
///
/// Amazon Linux (default):
resolve:ssm:/aws/service/cloud9/amis/amazonlinux-1-x86_64
///
///
/// -
///
/// Amazon Linux 2:
resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2-x86_64
///
///
/// -
///
/// Ubuntu 18.04:
resolve:ssm:/aws/service/cloud9/amis/ubuntu-18.04-x86_64
///
///
///
///
[AWSProperty(Max=512)]
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 InstanceType.
///
/// The type of instance to connect to the environment (for example, t2.micro
).
///
///
[AWSProperty(Required=true, Min=5, Max=20)]
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 Name.
///
/// The name of the environment to create.
///
///
///
/// This name is visible to other IAM users in the same Amazon Web Services account.
///
///
[AWSProperty(Required=true, Min=1, Max=60)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property OwnerArn.
///
/// The Amazon Resource Name (ARN) of the environment owner. This ARN can be the ARN of
/// any IAM principal. If this value is not specified, the ARN defaults to this environment's
/// creator.
///
///
public string OwnerArn
{
get { return this._ownerArn; }
set { this._ownerArn = value; }
}
// Check to see if OwnerArn property is set
internal bool IsSetOwnerArn()
{
return this._ownerArn != null;
}
///
/// Gets and sets the property SubnetId.
///
/// The ID of the subnet in Amazon VPC that Cloud9 will use to communicate with the Amazon
/// EC2 instance.
///
///
[AWSProperty(Min=15, Max=24)]
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 Tags.
///
/// An array of key-value pairs that will be associated with the new Cloud9 development
/// environment.
///
///
[AWSProperty(Sensitive=true, Min=0, Max=200)]
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
}
}