EnvironmentEC2Args

data class EnvironmentEC2Args(val automaticStopTimeMinutes: Output<Int>? = null, val connectionType: Output<String>? = null, val description: Output<String>? = null, val imageId: Output<String>? = null, val instanceType: Output<String>? = null, val name: Output<String>? = null, val ownerArn: Output<String>? = null, val subnetId: Output<String>? = null, val tags: Output<Map<String, String>>? = null) : ConvertibleToJava<EnvironmentEC2Args>

Provides a Cloud9 EC2 Development Environment.

Example Usage

Basic usage:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.cloud9.EnvironmentEC2("example", {
instanceType: "t2.micro",
name: "example-env",
imageId: "amazonlinux-2023-x86_64",
});
import pulumi
import pulumi_aws as aws
example = aws.cloud9.EnvironmentEC2("example",
instance_type="t2.micro",
name="example-env",
image_id="amazonlinux-2023-x86_64")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Cloud9.EnvironmentEC2("example", new()
{
InstanceType = "t2.micro",
Name = "example-env",
ImageId = "amazonlinux-2023-x86_64",
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloud9"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := cloud9.NewEnvironmentEC2(ctx, "example", &cloud9.EnvironmentEC2Args{
InstanceType: pulumi.String("t2.micro"),
Name: pulumi.String("example-env"),
ImageId: pulumi.String("amazonlinux-2023-x86_64"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.cloud9.EnvironmentEC2;
import com.pulumi.aws.cloud9.EnvironmentEC2Args;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new EnvironmentEC2("example", EnvironmentEC2Args.builder()
.instanceType("t2.micro")
.name("example-env")
.imageId("amazonlinux-2023-x86_64")
.build());
}
}
resources:
example:
type: aws:cloud9:EnvironmentEC2
properties:
instanceType: t2.micro
name: example-env
imageId: amazonlinux-2023-x86_64

Get the URL of the Cloud9 environment after creation:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.cloud9.EnvironmentEC2("example", {instanceType: "t2.micro"});
const cloud9Instance = aws.ec2.getInstanceOutput({
filters: [{
name: "tag:aws:cloud9:environment",
values: [example&#46;id],
}],
});
export const cloud9Url = pulumi.interpolate`https://${region}.console.aws.amazon.com/cloud9/ide/${example.id}`;
import pulumi
import pulumi_aws as aws
example = aws.cloud9.EnvironmentEC2("example", instance_type="t2.micro")
cloud9_instance = aws.ec2.get_instance_output(filters=[{
"name": "tag:aws:cloud9:environment",
"values": [example&#46;id],
}])
pulumi.export("cloud9Url", example.id.apply(lambda id: f"https://{region}.console.aws.amazon.com/cloud9/ide/{id}"))
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Cloud9.EnvironmentEC2("example", new()
{
InstanceType = "t2.micro",
});
var cloud9Instance = Aws.Ec2.GetInstance.Invoke(new()
{
Filters = new[]
{
new Aws.Ec2.Inputs.GetInstanceFilterInputArgs
{
Name = "tag:aws:cloud9:environment",
Values = new[]
{
example.Id,
},
},
},
});
return new Dictionary<string, object?>
{
["cloud9Url"] = example.Id.Apply(id => $"https://{region}.console.aws.amazon.com/cloud9/ide/{id}"),
};
});
package main
import (
"fmt"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloud9"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := cloud9.NewEnvironmentEC2(ctx, "example", &cloud9.EnvironmentEC2Args{
InstanceType: pulumi.String("t2.micro"),
})
if err != nil {
return err
}
_ = ec2.LookupInstanceOutput(ctx, ec2.GetInstanceOutputArgs{
Filters: ec2.GetInstanceFilterArray{
&ec2.GetInstanceFilterArgs{
Name: pulumi.String("tag:aws:cloud9:environment"),
Values: pulumi.StringArray{
example.ID(),
},
},
},
}, nil)
ctx.Export("cloud9Url", example.ID().ApplyT(func(id string) (string, error) {
return fmt.Sprintf("https://%v.console.aws.amazon.com/cloud9/ide/%v", region, id), nil
}).(pulumi.StringOutput))
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.cloud9.EnvironmentEC2;
import com.pulumi.aws.cloud9.EnvironmentEC2Args;
import com.pulumi.aws.ec2.Ec2Functions;
import com.pulumi.aws.ec2.inputs.GetInstanceArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new EnvironmentEC2("example", EnvironmentEC2Args.builder()
.instanceType("t2.micro")
.build());
final var cloud9Instance = Ec2Functions.getInstance(GetInstanceArgs.builder()
.filters(GetInstanceFilterArgs.builder()
.name("tag:aws:cloud9:environment")
.values(example.id())
.build())
.build());
ctx.export("cloud9Url", example.id().applyValue(id -> String.format("https://%s.console.aws.amazon.com/cloud9/ide/%s", region,id)));
}
}
resources:
example:
type: aws:cloud9:EnvironmentEC2
properties:
instanceType: t2.micro
variables:
cloud9Instance:
fn::invoke:
function: aws:ec2:getInstance
arguments:
filters:
- name: tag:aws:cloud9:environment
values:
- ${example.id}
outputs:
cloud9Url: https://${region}.console.aws.amazon.com/cloud9/ide/${example.id}

Allocate a static IP to the Cloud9 environment:

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.cloud9.EnvironmentEC2("example", {instanceType: "t2.micro"});
const cloud9Instance = aws.ec2.getInstanceOutput({
filters: [{
name: "tag:aws:cloud9:environment",
values: [example&#46;id],
}],
});
const cloud9Eip = new aws.ec2.Eip("cloud9_eip", {
instance: cloud9Instance.apply(cloud9Instance => cloud9Instance.id),
domain: "vpc",
});
export const cloud9PublicIp = cloud9Eip.publicIp;
import pulumi
import pulumi_aws as aws
example = aws.cloud9.EnvironmentEC2("example", instance_type="t2.micro")
cloud9_instance = aws.ec2.get_instance_output(filters=[{
"name": "tag:aws:cloud9:environment",
"values": [example&#46;id],
}])
cloud9_eip = aws.ec2.Eip("cloud9_eip",
instance=cloud9_instance.id,
domain="vpc")
pulumi.export("cloud9PublicIp", cloud9_eip.public_ip)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Cloud9.EnvironmentEC2("example", new()
{
InstanceType = "t2.micro",
});
var cloud9Instance = Aws.Ec2.GetInstance.Invoke(new()
{
Filters = new[]
{
new Aws.Ec2.Inputs.GetInstanceFilterInputArgs
{
Name = "tag:aws:cloud9:environment",
Values = new[]
{
example.Id,
},
},
},
});
var cloud9Eip = new Aws.Ec2.Eip("cloud9_eip", new()
{
Instance = cloud9Instance.Apply(getInstanceResult => getInstanceResult.Id),
Domain = "vpc",
});
return new Dictionary<string, object?>
{
["cloud9PublicIp"] = cloud9Eip.PublicIp,
};
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloud9"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := cloud9.NewEnvironmentEC2(ctx, "example", &cloud9.EnvironmentEC2Args{
InstanceType: pulumi.String("t2.micro"),
})
if err != nil {
return err
}
cloud9Instance := ec2.LookupInstanceOutput(ctx, ec2.GetInstanceOutputArgs{
Filters: ec2.GetInstanceFilterArray{
&ec2.GetInstanceFilterArgs{
Name: pulumi.String("tag:aws:cloud9:environment"),
Values: pulumi.StringArray{
example.ID(),
},
},
},
}, nil)
cloud9Eip, err := ec2.NewEip(ctx, "cloud9_eip", &ec2.EipArgs{
Instance: pulumi.String(cloud9Instance.ApplyT(func(cloud9Instance ec2.GetInstanceResult) (*string, error) {
return &cloud9Instance.Id, nil
}).(pulumi.StringPtrOutput)),
Domain: pulumi.String("vpc"),
})
if err != nil {
return err
}
ctx.Export("cloud9PublicIp", cloud9Eip.PublicIp)
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.cloud9.EnvironmentEC2;
import com.pulumi.aws.cloud9.EnvironmentEC2Args;
import com.pulumi.aws.ec2.Ec2Functions;
import com.pulumi.aws.ec2.inputs.GetInstanceArgs;
import com.pulumi.aws.ec2.Eip;
import com.pulumi.aws.ec2.EipArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new EnvironmentEC2("example", EnvironmentEC2Args.builder()
.instanceType("t2.micro")
.build());
final var cloud9Instance = Ec2Functions.getInstance(GetInstanceArgs.builder()
.filters(GetInstanceFilterArgs.builder()
.name("tag:aws:cloud9:environment")
.values(example.id())
.build())
.build());
var cloud9Eip = new Eip("cloud9Eip", EipArgs.builder()
.instance(cloud9Instance.applyValue(getInstanceResult -> getInstanceResult).applyValue(cloud9Instance -> cloud9Instance.applyValue(getInstanceResult -> getInstanceResult.id())))
.domain("vpc")
.build());
ctx.export("cloud9PublicIp", cloud9Eip.publicIp());
}
}
resources:
example:
type: aws:cloud9:EnvironmentEC2
properties:
instanceType: t2.micro
cloud9Eip:
type: aws:ec2:Eip
name: cloud9_eip
properties:
instance: ${cloud9Instance.id}
domain: vpc
variables:
cloud9Instance:
fn::invoke:
function: aws:ec2:getInstance
arguments:
filters:
- name: tag:aws:cloud9:environment
values:
- ${example.id}
outputs:
cloud9PublicIp: ${cloud9Eip.publicIp}

Constructors

Link copied to clipboard
constructor(automaticStopTimeMinutes: Output<Int>? = null, connectionType: Output<String>? = null, description: Output<String>? = null, imageId: Output<String>? = null, instanceType: Output<String>? = null, name: Output<String>? = null, ownerArn: Output<String>? = null, subnetId: Output<String>? = null, tags: Output<Map<String, String>>? = null)

Properties

Link copied to clipboard
val automaticStopTimeMinutes: Output<Int>? = null

The number of minutes until the running instance is shut down after the environment has last been used.

Link copied to clipboard
val connectionType: Output<String>? = null

The connection type used for connecting to an Amazon EC2 environment. Valid values are CONNECT_SSH and CONNECT_SSM. For more information please refer AWS documentation for Cloud9.

Link copied to clipboard
val description: Output<String>? = null

The description of the environment.

Link copied to clipboard
val imageId: Output<String>? = null

The identifier for the Amazon Machine Image (AMI) that's used to create the EC2 instance. Valid values are

Link copied to clipboard
val instanceType: Output<String>? = null

The type of instance to connect to the environment, e.g., t2.micro.

Link copied to clipboard
val name: Output<String>? = null

The name of the environment.

Link copied to clipboard
val ownerArn: Output<String>? = null

The ARN of the environment owner. This can be ARN of any AWS IAM principal. Defaults to the environment's creator.

Link copied to clipboard
val subnetId: Output<String>? = null

The ID of the subnet in Amazon VPC that AWS Cloud9 will use to communicate with the Amazon EC2 instance.

Link copied to clipboard
val tags: Output<Map<String, String>>? = null

Key-value map of resource tags. .If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

Functions

Link copied to clipboard
open override fun toJava(): EnvironmentEC2Args