All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cloudshift.awscdk.dsl.services.batch.CfnComputeEnvironmentEc2ConfigurationObjectPropertyDsl.kt Maven / Gradle / Ivy

There is a newer version: 0.7.0
Show newest version
@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION")

package cloudshift.awscdk.dsl.services.batch

import cloudshift.awscdk.common.CdkDslMarker
import kotlin.String
import software.amazon.awscdk.services.batch.CfnComputeEnvironment

/**
 * Provides information used to select Amazon Machine Images (AMIs) for instances in the compute
 * environment.
 *
 * If `Ec2Configuration` isn't specified, the default is `ECS_AL2` ( [Amazon Linux
 * 2](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami) ).
 *
 *
 * This object isn't applicable to jobs that are running on Fargate resources.
 *
 *
 * Example:
 *
 * ```
 * // The code below shows an example of how to instantiate this type.
 * // The values are placeholders you should change.
 * import software.amazon.awscdk.services.batch.*;
 * Ec2ConfigurationObjectProperty ec2ConfigurationObjectProperty =
 * Ec2ConfigurationObjectProperty.builder()
 * .imageType("imageType")
 * // the properties below are optional
 * .imageIdOverride("imageIdOverride")
 * .imageKubernetesVersion("imageKubernetesVersion")
 * .build();
 * ```
 *
 * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-computeenvironment-ec2configurationobject.html)
 */
@CdkDslMarker
public class CfnComputeEnvironmentEc2ConfigurationObjectPropertyDsl {
  private val cdkBuilder: CfnComputeEnvironment.Ec2ConfigurationObjectProperty.Builder =
      CfnComputeEnvironment.Ec2ConfigurationObjectProperty.builder()

  /**
   * @param imageIdOverride The AMI ID used for instances launched in the compute environment that
   * match the image type.
   * This setting overrides the `imageId` set in the `computeResource` object.
   *
   *
   * The AMI that you choose for a compute environment must match the architecture of the instance
   * types that you intend to use for that compute environment. For example, if your compute
   * environment uses A1 instance types, the compute resource AMI that you choose must support ARM
   * instances. Amazon ECS vends both x86 and ARM versions of the Amazon ECS-optimized Amazon Linux 2
   * AMI. For more information, see [Amazon ECS-optimized Amazon Linux 2
   * AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#ecs-optimized-ami-linux-variants.html)
   * in the *Amazon Elastic Container Service Developer Guide* .
   */
  public fun imageIdOverride(imageIdOverride: String) {
    cdkBuilder.imageIdOverride(imageIdOverride)
  }

  /**
   * @param imageKubernetesVersion The Kubernetes version for the compute environment.
   * If you don't specify a value, the latest version that AWS Batch supports is used.
   */
  public fun imageKubernetesVersion(imageKubernetesVersion: String) {
    cdkBuilder.imageKubernetesVersion(imageKubernetesVersion)
  }

  /**
   * @param imageType The image type to match with the instance type to select an AMI. 
   * The supported values are different for `ECS` and `EKS` resources.
   *
   * * **ECS** - If the `imageIdOverride` parameter isn't specified, then a recent [Amazon
   * ECS-optimized Amazon Linux 2
   * AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami) (
   * `ECS_AL2` ) is used. If a new image type is specified in an update, but neither an `imageId` nor a
   * `imageIdOverride` parameter is specified, then the latest Amazon ECS optimized AMI for that image
   * type that's supported by AWS Batch is used.
   * * **ECS_AL2** - [Amazon Linux
   * 2](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#al2ami) :
   * Default for all non-GPU instance families.
   * * **ECS_AL2_NVIDIA** - [Amazon Linux 2
   * (GPU)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#gpuami)
   * : Default for all GPU instance families (for example `P4` and `G4` ) and can be used for all non
   * AWS Graviton-based instance types.
   * * **ECS_AL1** - [Amazon
   * Linux](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html#alami) .
   * Amazon Linux has reached the end-of-life of standard support. For more information, see [Amazon
   * Linux AMI](https://docs.aws.amazon.com/amazon-linux-ami/) .
   * * **EKS** - If the `imageIdOverride` parameter isn't specified, then a recent [Amazon
   * EKS-optimized Amazon Linux
   * AMI](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html) ( `EKS_AL2` ) is
   * used. If a new image type is specified in an update, but neither an `imageId` nor a
   * `imageIdOverride` parameter is specified, then the latest Amazon EKS optimized AMI for that image
   * type that AWS Batch supports is used.
   * * **EKS_AL2** - [Amazon Linux
   * 2](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html) : Default for all
   * non-GPU instance families.
   * * **EKS_AL2_NVIDIA** - [Amazon Linux 2
   * (accelerated)](https://docs.aws.amazon.com/eks/latest/userguide/eks-optimized-ami.html) : Default
   * for all GPU instance families (for example, `P4` and `G4` ) and can be used for all non AWS
   * Graviton-based instance types.
   */
  public fun imageType(imageType: String) {
    cdkBuilder.imageType(imageType)
  }

  public fun build(): CfnComputeEnvironment.Ec2ConfigurationObjectProperty = cdkBuilder.build()
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy