import * as core from "@terrascript/core"; export interface Ec2ConfigurationArgs extends core.SchemaArgs { imageIdOverride?: string | core.StringOut; imageType?: string | core.StringOut; } export class Ec2Configuration extends core.Schema { @core.attr(String, { computed: true }) public imageIdOverride?: string | core.StringOut; @core.attr(String) public imageType?: string | core.StringOut; } export interface LaunchTemplateArgs extends core.SchemaArgs { launchTemplateId?: string | core.StringOut; launchTemplateName?: string | core.StringOut; version?: string | core.StringOut; } export class LaunchTemplate extends core.Schema { @core.attr(String) public launchTemplateId?: string | core.StringOut; @core.attr(String) public launchTemplateName?: string | core.StringOut; @core.attr(String) public version?: string | core.StringOut; } export interface ComputeResourcesArgs extends core.SchemaArgs { allocationStrategy?: string | core.StringOut; bidPercentage?: number | core.NumberOut; desiredVcpus?: number | core.NumberOut; ec2Configuration?: Ec2Configuration; ec2KeyPair?: string | core.StringOut; imageId?: string | core.StringOut; instanceRole?: string | core.StringOut; instanceType?: core.Array | core.ArrayOut; launchTemplate?: LaunchTemplate; maxVcpus: number | core.NumberOut; minVcpus?: number | core.NumberOut; securityGroupIds: core.Array | core.ArrayOut; spotIamFleetRole?: string | core.StringOut; subnets: core.Array | core.ArrayOut; tags?: core.Map | core.MapOut; type: string | core.StringOut; } export class ComputeResources extends core.Schema { @core.attr(String) public allocationStrategy?: string | core.StringOut; @core.attr(Number) public bidPercentage?: number | core.NumberOut; @core.attr(Number, { computed: true }) public desiredVcpus?: number | core.NumberOut; @core.attr(Ec2Configuration, { computed: true }) public ec2Configuration?: Ec2Configuration; @core.attr(String) public ec2KeyPair?: string | core.StringOut; @core.attr(String) public imageId?: string | core.StringOut; @core.attr(String) public instanceRole?: string | core.StringOut; @core.attr(String, { kind: "array" }) public instanceType?: core.Array | core.ArrayOut; @core.attr(LaunchTemplate) public launchTemplate?: LaunchTemplate; @core.attr(Number) public maxVcpus!: number | core.NumberOut; @core.attr(Number) public minVcpus?: number | core.NumberOut; @core.attr(String, { kind: "array" }) public securityGroupIds!: core.Array | core.ArrayOut; @core.attr(String) public spotIamFleetRole?: string | core.StringOut; @core.attr(String, { kind: "array" }) public subnets!: core.Array | core.ArrayOut; @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; @core.attr(String) public type!: string | core.StringOut; } export interface ComputeEnvironmentArgs extends core.ResourceArgs { /** * (Optional, Forces new resource) The name for your compute environment. Up to 128 letters (uppercase * and lowercase), numbers, and underscores are allowed. If omitted, Terraform will assign a random, un * ique name. */ computeEnvironmentName?: string | core.StringOut; /** * (Optional, Forces new resource) Creates a unique compute environment name beginning with the specifi * ed prefix. Conflicts with `compute_environment_name`. */ computeEnvironmentNamePrefix?: string | core.StringOut; /** * (Optional) Details of the compute resources managed by the compute environment. This parameter is re * quired for managed compute environments. See details below. */ computeResources?: ComputeResources; /** * (Required) The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls t * o other AWS services on your behalf. */ serviceRole?: string | core.StringOut; /** * (Optional) The state of the compute environment. If the state is `ENABLED`, then the compute environ * ment accepts jobs from a queue and can scale out automatically based on queues. Valid items are `ENA * BLED` or `DISABLED`. Defaults to `ENABLED`. */ state?: string | core.StringOut; /** * (Optional) Key-value map of resource tags. If configured with a provider [`default_tags` configurati * on block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurati * on-block) present, tags with matching keys will overwrite those defined at the provider-level. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Required) The type of the compute environment. Valid items are `MANAGED` or `UNMANAGED`. */ type: string | core.StringOut; } export class ComputeEnvironment extends core.Resource { /** * The Amazon Resource Name (ARN) of the compute environment. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional, Forces new resource) The name for your compute environment. Up to 128 letters (uppercase * and lowercase), numbers, and underscores are allowed. If omitted, Terraform will assign a random, un * ique name. */ @core.attr(String, { computed: true }) public computeEnvironmentName?: string | core.StringOut; /** * (Optional, Forces new resource) Creates a unique compute environment name beginning with the specifi * ed prefix. Conflicts with `compute_environment_name`. */ @core.attr(String, { computed: true }) public computeEnvironmentNamePrefix?: string | core.StringOut; /** * (Optional) Details of the compute resources managed by the compute environment. This parameter is re * quired for managed compute environments. See details below. */ @core.attr(ComputeResources) public computeResources?: ComputeResources; /** * The Amazon Resource Name (ARN) of the underlying Amazon ECS cluster used by the compute environment. */ @core.attr(String, { computed: true }) public ecsClusterArn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) The full Amazon Resource Name (ARN) of the IAM role that allows AWS Batch to make calls t * o other AWS services on your behalf. */ @core.attr(String, { computed: true }) public serviceRole?: string | core.StringOut; /** * (Optional) The state of the compute environment. If the state is `ENABLED`, then the compute environ * ment accepts jobs from a queue and can scale out automatically based on queues. Valid items are `ENA * BLED` or `DISABLED`. Defaults to `ENABLED`. */ @core.attr(String) public state?: string | core.StringOut; /** * The current status of the compute environment (for example, CREATING or VALID). */ @core.attr(String, { computed: true }) public status!: string | core.StringOut; /** * A short, human-readable string to provide additional details about the current status of the compute * environment. */ @core.attr(String, { computed: true }) public statusReason!: string | core.StringOut; /** * (Optional) Key-value map of resource tags. If configured with a provider [`default_tags` configurati * on block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurati * on-block) present, tags with matching keys will overwrite those defined at the provider-level. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * (Required) The type of the compute environment. Valid items are `MANAGED` or `UNMANAGED`. */ @core.attr(String) public type!: string | core.StringOut; constructor(name: string, args?: ComputeEnvironmentArgs) { super(name, "aws_batch_compute_environment", args); } public override getNamespace(): string { return "aws_batch"; } }