software.amazon.awscdk.services.ecs.Ec2TaskDefinition Maven / Gradle / Ivy
Show all versions of ecs Show documentation
package software.amazon.awscdk.services.ecs;
/**
* The details of a task definition run on an EC2 cluster.
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.9.0 (build 5c646d5)", date = "2020-07-28T21:12:44.597Z")
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.ecs.$Module.class, fqn = "@aws-cdk/aws-ecs.Ec2TaskDefinition")
public class Ec2TaskDefinition extends software.amazon.awscdk.services.ecs.TaskDefinition implements software.amazon.awscdk.services.ecs.IEc2TaskDefinition {
protected Ec2TaskDefinition(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
}
protected Ec2TaskDefinition(final software.amazon.jsii.JsiiObject.InitializationMode initializationMode) {
super(initializationMode);
}
/**
* Constructs a new instance of the Ec2TaskDefinition class.
*
* @param scope This parameter is required.
* @param id This parameter is required.
* @param props
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Ec2TaskDefinition(final @org.jetbrains.annotations.NotNull software.amazon.awscdk.core.Construct scope, final @org.jetbrains.annotations.NotNull java.lang.String id, final @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.ecs.Ec2TaskDefinitionProps props) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this, new Object[] { java.util.Objects.requireNonNull(scope, "scope is required"), java.util.Objects.requireNonNull(id, "id is required"), props });
}
/**
* Constructs a new instance of the Ec2TaskDefinition class.
*
* @param scope This parameter is required.
* @param id This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Ec2TaskDefinition(final @org.jetbrains.annotations.NotNull software.amazon.awscdk.core.Construct scope, final @org.jetbrains.annotations.NotNull java.lang.String id) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this, new Object[] { java.util.Objects.requireNonNull(scope, "scope is required"), java.util.Objects.requireNonNull(id, "id is required") });
}
/**
* Imports a task definition from the specified task definition ARN.
*
* @param scope This parameter is required.
* @param id This parameter is required.
* @param ec2TaskDefinitionArn This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.ecs.IEc2TaskDefinition fromEc2TaskDefinitionArn(final @org.jetbrains.annotations.NotNull software.amazon.awscdk.core.Construct scope, final @org.jetbrains.annotations.NotNull java.lang.String id, final @org.jetbrains.annotations.NotNull java.lang.String ec2TaskDefinitionArn) {
return software.amazon.jsii.JsiiObject.jsiiStaticCall(software.amazon.awscdk.services.ecs.Ec2TaskDefinition.class, "fromEc2TaskDefinitionArn", software.amazon.awscdk.services.ecs.IEc2TaskDefinition.class, new Object[] { java.util.Objects.requireNonNull(scope, "scope is required"), java.util.Objects.requireNonNull(id, "id is required"), java.util.Objects.requireNonNull(ec2TaskDefinitionArn, "ec2TaskDefinitionArn is required") });
}
/**
* A fluent builder for {@link software.amazon.awscdk.services.ecs.Ec2TaskDefinition}.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static final class Builder implements software.amazon.jsii.Builder {
/**
* @return a new instance of {@link Builder}.
* @param scope This parameter is required.
* @param id This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public static Builder create(final software.amazon.awscdk.core.Construct scope, final java.lang.String id) {
return new Builder(scope, id);
}
private final software.amazon.awscdk.core.Construct scope;
private final java.lang.String id;
private software.amazon.awscdk.services.ecs.Ec2TaskDefinitionProps.Builder props;
private Builder(final software.amazon.awscdk.core.Construct scope, final java.lang.String id) {
this.scope = scope;
this.id = id;
}
/**
* The name of the IAM task execution role that grants the ECS agent to call AWS APIs on your behalf.
*
* The role will be used to retrieve container images from ECR and create CloudWatch log groups.
*
* Default: - An execution role will be automatically created if you use ECR images in your task definition.
*
* @return {@code this}
* @param executionRole The name of the IAM task execution role that grants the ECS agent to call AWS APIs on your behalf. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder executionRole(final software.amazon.awscdk.services.iam.IRole executionRole) {
this.props().executionRole(executionRole);
return this;
}
/**
* The name of a family that this task definition is registered to.
*
* A family groups multiple versions of a task definition.
*
* Default: - Automatically generated name.
*
* @return {@code this}
* @param family The name of a family that this task definition is registered to. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder family(final java.lang.String family) {
this.props().family(family);
return this;
}
/**
* The configuration details for the App Mesh proxy.
*
* Default: - No proxy configuration.
*
* @return {@code this}
* @param proxyConfiguration The configuration details for the App Mesh proxy. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder proxyConfiguration(final software.amazon.awscdk.services.ecs.ProxyConfiguration proxyConfiguration) {
this.props().proxyConfiguration(proxyConfiguration);
return this;
}
/**
* The name of the IAM role that grants containers in the task permission to call AWS APIs on your behalf.
*
* Default: - A task role is automatically created for you.
*
* @return {@code this}
* @param taskRole The name of the IAM role that grants containers in the task permission to call AWS APIs on your behalf. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder taskRole(final software.amazon.awscdk.services.iam.IRole taskRole) {
this.props().taskRole(taskRole);
return this;
}
/**
* The list of volume definitions for the task.
*
* For more information, see
* Task Definition Parameter Volumes.
*
* Default: - No volumes are passed to the Docker daemon on a container instance.
*
* @return {@code this}
* @param volumes The list of volume definitions for the task. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder volumes(final java.util.List volumes) {
this.props().volumes(volumes);
return this;
}
/**
* The IPC resource namespace to use for the containers in the task.
*
* Not supported in Fargate and Windows containers.
*
* Default: - IpcMode used by the task is not specified
*
* @return {@code this}
* @param ipcMode The IPC resource namespace to use for the containers in the task. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder ipcMode(final software.amazon.awscdk.services.ecs.IpcMode ipcMode) {
this.props().ipcMode(ipcMode);
return this;
}
/**
* The Docker networking mode to use for the containers in the task.
*
* The valid values are none, bridge, awsvpc, and host.
*
* Default: - NetworkMode.Bridge for EC2 tasks, AwsVpc for Fargate tasks.
*
* @return {@code this}
* @param networkMode The Docker networking mode to use for the containers in the task. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder networkMode(final software.amazon.awscdk.services.ecs.NetworkMode networkMode) {
this.props().networkMode(networkMode);
return this;
}
/**
* The process namespace to use for the containers in the task.
*
* Not supported in Fargate and Windows containers.
*
* Default: - PidMode used by the task is not specified
*
* @return {@code this}
* @param pidMode The process namespace to use for the containers in the task. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder pidMode(final software.amazon.awscdk.services.ecs.PidMode pidMode) {
this.props().pidMode(pidMode);
return this;
}
/**
* An array of placement constraint objects to use for the task.
*
* You can
* specify a maximum of 10 constraints per task (this limit includes
* constraints in the task definition and those specified at run time).
*
* Default: - No placement constraints.
*
* @return {@code this}
* @param placementConstraints An array of placement constraint objects to use for the task. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
public Builder placementConstraints(final java.util.List placementConstraints) {
this.props().placementConstraints(placementConstraints);
return this;
}
/**
* @returns a newly built instance of {@link software.amazon.awscdk.services.ecs.Ec2TaskDefinition}.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
@Override
public software.amazon.awscdk.services.ecs.Ec2TaskDefinition build() {
return new software.amazon.awscdk.services.ecs.Ec2TaskDefinition(
this.scope,
this.id,
this.props != null ? this.props.build() : null
);
}
private software.amazon.awscdk.services.ecs.Ec2TaskDefinitionProps.Builder props() {
if (this.props == null) {
this.props = new software.amazon.awscdk.services.ecs.Ec2TaskDefinitionProps.Builder();
}
return this.props;
}
}
}