createEnvironmentEC2 method
Creates an Cloud9 development environment, launches an Amazon Elastic Compute Cloud (Amazon EC2) instance, and then connects from the instance to the environment.
May throw BadRequestException.
May throw ConflictException.
May throw ForbiddenException.
May throw InternalServerErrorException.
May throw LimitExceededException.
May throw NotFoundException.
May throw TooManyRequestsException.
Parameter 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.
We recommend using Amazon Linux 2023 as the AMI to create your environment as it is fully supported.
From December 16, 2024, Ubuntu 18.04 will be removed from the list of
available imageIds for Cloud9. This change is necessary as
Ubuntu 18.04 has ended standard support on May 31, 2023. This change will
only affect direct API consumers, and not Cloud9 console users.
Since Ubuntu 18.04 has ended standard support as of May 31, 2023, we recommend you choose Ubuntu 22.04.
AMI aliases
-
Amazon Linux 2:
amazonlinux-2-x86_64 -
Amazon Linux 2023 (recommended):
amazonlinux-2023-x86_64 -
Ubuntu 18.04:
ubuntu-18.04-x86_64 -
Ubuntu 22.04:
ubuntu-22.04-x86_64
-
Amazon Linux 2:
resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2-x86_64 -
Amazon Linux 2023 (recommended):
resolve:ssm:/aws/service/cloud9/amis/amazonlinux-2023-x86_64 -
Ubuntu 18.04:
resolve:ssm:/aws/service/cloud9/amis/ubuntu-18.04-x86_64 -
Ubuntu 22.04:
resolve:ssm:/aws/service/cloud9/amis/ubuntu-22.04-x86_64
Parameter instanceType :
The type of instance to connect to the environment (for example,
t2.micro).
Parameter name :
The name of the environment to create.
This name is visible to other IAM users in the same Amazon Web Services account.
Parameter automaticStopTimeMinutes :
The number of minutes until the running instance is shut down after the
environment has last been used.
Parameter 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.
Parameter 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.
Parameter description :
The description of the environment to create.
Parameter 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.
Parameter 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.
Parameter subnetId :
The ID of the subnet in Amazon VPC that Cloud9 will use to communicate
with the Amazon EC2 instance.
Parameter tags :
An array of key-value pairs that will be associated with the new Cloud9
development environment.
Implementation
Future<CreateEnvironmentEC2Result> createEnvironmentEC2({
required String imageId,
required String instanceType,
required String name,
int? automaticStopTimeMinutes,
String? clientRequestToken,
ConnectionType? connectionType,
String? description,
bool? dryRun,
String? ownerArn,
String? subnetId,
List<Tag>? tags,
}) async {
_s.validateNumRange(
'automaticStopTimeMinutes',
automaticStopTimeMinutes,
0,
20160,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'AWSCloud9WorkspaceManagementService.CreateEnvironmentEC2'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'imageId': imageId,
'instanceType': instanceType,
'name': name,
if (automaticStopTimeMinutes != null)
'automaticStopTimeMinutes': automaticStopTimeMinutes,
if (clientRequestToken != null)
'clientRequestToken': clientRequestToken,
if (connectionType != null) 'connectionType': connectionType.value,
if (description != null) 'description': description,
if (dryRun != null) 'dryRun': dryRun,
if (ownerArn != null) 'ownerArn': ownerArn,
if (subnetId != null) 'subnetId': subnetId,
if (tags != null) 'tags': tags,
},
);
return CreateEnvironmentEC2Result.fromJson(jsonResponse.body);
}