/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include An object representing an AWS Batch compute resource.See
* Also:
AWS
* API Reference
The type of compute environment: EC2 or SPOT.
The type of compute environment: EC2 or SPOT.
The type of compute environment: EC2 or SPOT.
The type of compute environment: EC2 or SPOT.
The type of compute environment: EC2 or SPOT.
The type of compute environment: EC2 or SPOT.
The allocation strategy to use for the compute resource in case not enough
* instances of the best fitting instance type can be allocated. This could be due
* to availability of the instance type in the region or Amazon
* EC2 service limits. If this is not specified, the default is
* BEST_FIT, which will use only the best fitting instance type,
* waiting for additional capacity if it's not available. This allocation strategy
* keeps costs lower but can limit scaling. If you are using Spot Fleets with
* BEST_FIT then the Spot Fleet IAM Role must be specified.
* BEST_FIT_PROGRESSIVE will select additional instance types that are
* large enough to meet the requirements of the jobs in the queue, with a
* preference for instance types with a lower cost per vCPU.
* SPOT_CAPACITY_OPTIMIZED is only available for Spot Instance compute
* resources and will select additional instance types that are large enough to
* meet the requirements of the jobs in the queue, with a preference for instance
* types that are less likely to be interrupted. For more information, see Allocation Strategies in the AWS Batch User Guide.
The allocation strategy to use for the compute resource in case not enough
* instances of the best fitting instance type can be allocated. This could be due
* to availability of the instance type in the region or Amazon
* EC2 service limits. If this is not specified, the default is
* BEST_FIT, which will use only the best fitting instance type,
* waiting for additional capacity if it's not available. This allocation strategy
* keeps costs lower but can limit scaling. If you are using Spot Fleets with
* BEST_FIT then the Spot Fleet IAM Role must be specified.
* BEST_FIT_PROGRESSIVE will select additional instance types that are
* large enough to meet the requirements of the jobs in the queue, with a
* preference for instance types with a lower cost per vCPU.
* SPOT_CAPACITY_OPTIMIZED is only available for Spot Instance compute
* resources and will select additional instance types that are large enough to
* meet the requirements of the jobs in the queue, with a preference for instance
* types that are less likely to be interrupted. For more information, see Allocation Strategies in the AWS Batch User Guide.
The allocation strategy to use for the compute resource in case not enough
* instances of the best fitting instance type can be allocated. This could be due
* to availability of the instance type in the region or Amazon
* EC2 service limits. If this is not specified, the default is
* BEST_FIT, which will use only the best fitting instance type,
* waiting for additional capacity if it's not available. This allocation strategy
* keeps costs lower but can limit scaling. If you are using Spot Fleets with
* BEST_FIT then the Spot Fleet IAM Role must be specified.
* BEST_FIT_PROGRESSIVE will select additional instance types that are
* large enough to meet the requirements of the jobs in the queue, with a
* preference for instance types with a lower cost per vCPU.
* SPOT_CAPACITY_OPTIMIZED is only available for Spot Instance compute
* resources and will select additional instance types that are large enough to
* meet the requirements of the jobs in the queue, with a preference for instance
* types that are less likely to be interrupted. For more information, see Allocation Strategies in the AWS Batch User Guide.
The allocation strategy to use for the compute resource in case not enough
* instances of the best fitting instance type can be allocated. This could be due
* to availability of the instance type in the region or Amazon
* EC2 service limits. If this is not specified, the default is
* BEST_FIT, which will use only the best fitting instance type,
* waiting for additional capacity if it's not available. This allocation strategy
* keeps costs lower but can limit scaling. If you are using Spot Fleets with
* BEST_FIT then the Spot Fleet IAM Role must be specified.
* BEST_FIT_PROGRESSIVE will select additional instance types that are
* large enough to meet the requirements of the jobs in the queue, with a
* preference for instance types with a lower cost per vCPU.
* SPOT_CAPACITY_OPTIMIZED is only available for Spot Instance compute
* resources and will select additional instance types that are large enough to
* meet the requirements of the jobs in the queue, with a preference for instance
* types that are less likely to be interrupted. For more information, see Allocation Strategies in the AWS Batch User Guide.
The allocation strategy to use for the compute resource in case not enough
* instances of the best fitting instance type can be allocated. This could be due
* to availability of the instance type in the region or Amazon
* EC2 service limits. If this is not specified, the default is
* BEST_FIT, which will use only the best fitting instance type,
* waiting for additional capacity if it's not available. This allocation strategy
* keeps costs lower but can limit scaling. If you are using Spot Fleets with
* BEST_FIT then the Spot Fleet IAM Role must be specified.
* BEST_FIT_PROGRESSIVE will select additional instance types that are
* large enough to meet the requirements of the jobs in the queue, with a
* preference for instance types with a lower cost per vCPU.
* SPOT_CAPACITY_OPTIMIZED is only available for Spot Instance compute
* resources and will select additional instance types that are large enough to
* meet the requirements of the jobs in the queue, with a preference for instance
* types that are less likely to be interrupted. For more information, see Allocation Strategies in the AWS Batch User Guide.
The allocation strategy to use for the compute resource in case not enough
* instances of the best fitting instance type can be allocated. This could be due
* to availability of the instance type in the region or Amazon
* EC2 service limits. If this is not specified, the default is
* BEST_FIT, which will use only the best fitting instance type,
* waiting for additional capacity if it's not available. This allocation strategy
* keeps costs lower but can limit scaling. If you are using Spot Fleets with
* BEST_FIT then the Spot Fleet IAM Role must be specified.
* BEST_FIT_PROGRESSIVE will select additional instance types that are
* large enough to meet the requirements of the jobs in the queue, with a
* preference for instance types with a lower cost per vCPU.
* SPOT_CAPACITY_OPTIMIZED is only available for Spot Instance compute
* resources and will select additional instance types that are large enough to
* meet the requirements of the jobs in the queue, with a preference for instance
* types that are less likely to be interrupted. For more information, see Allocation Strategies in the AWS Batch User Guide.
The minimum number of Amazon EC2 vCPUs that an environment should maintain
* (even if the compute environment is DISABLED).
The minimum number of Amazon EC2 vCPUs that an environment should maintain
* (even if the compute environment is DISABLED).
The minimum number of Amazon EC2 vCPUs that an environment should maintain
* (even if the compute environment is DISABLED).
The minimum number of Amazon EC2 vCPUs that an environment should maintain
* (even if the compute environment is DISABLED).
The maximum number of Amazon EC2 vCPUs that an environment can reach.
*/ inline int GetMaxvCpus() const{ return m_maxvCpus; } /** *The maximum number of Amazon EC2 vCPUs that an environment can reach.
*/ inline bool MaxvCpusHasBeenSet() const { return m_maxvCpusHasBeenSet; } /** *The maximum number of Amazon EC2 vCPUs that an environment can reach.
*/ inline void SetMaxvCpus(int value) { m_maxvCpusHasBeenSet = true; m_maxvCpus = value; } /** *The maximum number of Amazon EC2 vCPUs that an environment can reach.
*/ inline ComputeResource& WithMaxvCpus(int value) { SetMaxvCpus(value); return *this;} /** *The desired number of Amazon EC2 vCPUS in the compute environment.
*/ inline int GetDesiredvCpus() const{ return m_desiredvCpus; } /** *The desired number of Amazon EC2 vCPUS in the compute environment.
*/ inline bool DesiredvCpusHasBeenSet() const { return m_desiredvCpusHasBeenSet; } /** *The desired number of Amazon EC2 vCPUS in the compute environment.
*/ inline void SetDesiredvCpus(int value) { m_desiredvCpusHasBeenSet = true; m_desiredvCpus = value; } /** *The desired number of Amazon EC2 vCPUS in the compute environment.
*/ inline ComputeResource& WithDesiredvCpus(int value) { SetDesiredvCpus(value); return *this;} /** *The instances types that may be launched. You can specify instance families
* to launch any instance type within those families (for example, c5
* or p3), or you can specify specific sizes within a family (such as
* c5.8xlarge). You can also choose optimal to pick
* instance types (from the C, M, and R instance families) on the fly that match
* the demand of your job queues.
The instances types that may be launched. You can specify instance families
* to launch any instance type within those families (for example, c5
* or p3), or you can specify specific sizes within a family (such as
* c5.8xlarge). You can also choose optimal to pick
* instance types (from the C, M, and R instance families) on the fly that match
* the demand of your job queues.
The instances types that may be launched. You can specify instance families
* to launch any instance type within those families (for example, c5
* or p3), or you can specify specific sizes within a family (such as
* c5.8xlarge). You can also choose optimal to pick
* instance types (from the C, M, and R instance families) on the fly that match
* the demand of your job queues.
The instances types that may be launched. You can specify instance families
* to launch any instance type within those families (for example, c5
* or p3), or you can specify specific sizes within a family (such as
* c5.8xlarge). You can also choose optimal to pick
* instance types (from the C, M, and R instance families) on the fly that match
* the demand of your job queues.
The instances types that may be launched. You can specify instance families
* to launch any instance type within those families (for example, c5
* or p3), or you can specify specific sizes within a family (such as
* c5.8xlarge). You can also choose optimal to pick
* instance types (from the C, M, and R instance families) on the fly that match
* the demand of your job queues.
The instances types that may be launched. You can specify instance families
* to launch any instance type within those families (for example, c5
* or p3), or you can specify specific sizes within a family (such as
* c5.8xlarge). You can also choose optimal to pick
* instance types (from the C, M, and R instance families) on the fly that match
* the demand of your job queues.
The instances types that may be launched. You can specify instance families
* to launch any instance type within those families (for example, c5
* or p3), or you can specify specific sizes within a family (such as
* c5.8xlarge). You can also choose optimal to pick
* instance types (from the C, M, and R instance families) on the fly that match
* the demand of your job queues.
The instances types that may be launched. You can specify instance families
* to launch any instance type within those families (for example, c5
* or p3), or you can specify specific sizes within a family (such as
* c5.8xlarge). You can also choose optimal to pick
* instance types (from the C, M, and R instance families) on the fly that match
* the demand of your job queues.
The instances types that may be launched. You can specify instance families
* to launch any instance type within those families (for example, c5
* or p3), or you can specify specific sizes within a family (such as
* c5.8xlarge). You can also choose optimal to pick
* instance types (from the C, M, and R instance families) on the fly that match
* the demand of your job queues.
The Amazon Machine Image (AMI) ID used for instances launched in the compute * environment.
*/ inline const Aws::String& GetImageId() const{ return m_imageId; } /** *The Amazon Machine Image (AMI) ID used for instances launched in the compute * environment.
*/ inline bool ImageIdHasBeenSet() const { return m_imageIdHasBeenSet; } /** *The Amazon Machine Image (AMI) ID used for instances launched in the compute * environment.
*/ inline void SetImageId(const Aws::String& value) { m_imageIdHasBeenSet = true; m_imageId = value; } /** *The Amazon Machine Image (AMI) ID used for instances launched in the compute * environment.
*/ inline void SetImageId(Aws::String&& value) { m_imageIdHasBeenSet = true; m_imageId = std::move(value); } /** *The Amazon Machine Image (AMI) ID used for instances launched in the compute * environment.
*/ inline void SetImageId(const char* value) { m_imageIdHasBeenSet = true; m_imageId.assign(value); } /** *The Amazon Machine Image (AMI) ID used for instances launched in the compute * environment.
*/ inline ComputeResource& WithImageId(const Aws::String& value) { SetImageId(value); return *this;} /** *The Amazon Machine Image (AMI) ID used for instances launched in the compute * environment.
*/ inline ComputeResource& WithImageId(Aws::String&& value) { SetImageId(std::move(value)); return *this;} /** *The Amazon Machine Image (AMI) ID used for instances launched in the compute * environment.
*/ inline ComputeResource& WithImageId(const char* value) { SetImageId(value); return *this;} /** *The VPC subnets into which the compute resources are launched. For more * information, see VPCs * and Subnets in the Amazon VPC User Guide.
*/ inline const Aws::VectorThe VPC subnets into which the compute resources are launched. For more * information, see VPCs * and Subnets in the Amazon VPC User Guide.
*/ inline bool SubnetsHasBeenSet() const { return m_subnetsHasBeenSet; } /** *The VPC subnets into which the compute resources are launched. For more * information, see VPCs * and Subnets in the Amazon VPC User Guide.
*/ inline void SetSubnets(const Aws::VectorThe VPC subnets into which the compute resources are launched. For more * information, see VPCs * and Subnets in the Amazon VPC User Guide.
*/ inline void SetSubnets(Aws::VectorThe VPC subnets into which the compute resources are launched. For more * information, see VPCs * and Subnets in the Amazon VPC User Guide.
*/ inline ComputeResource& WithSubnets(const Aws::VectorThe VPC subnets into which the compute resources are launched. For more * information, see VPCs * and Subnets in the Amazon VPC User Guide.
*/ inline ComputeResource& WithSubnets(Aws::VectorThe VPC subnets into which the compute resources are launched. For more * information, see VPCs * and Subnets in the Amazon VPC User Guide.
*/ inline ComputeResource& AddSubnets(const Aws::String& value) { m_subnetsHasBeenSet = true; m_subnets.push_back(value); return *this; } /** *The VPC subnets into which the compute resources are launched. For more * information, see VPCs * and Subnets in the Amazon VPC User Guide.
*/ inline ComputeResource& AddSubnets(Aws::String&& value) { m_subnetsHasBeenSet = true; m_subnets.push_back(std::move(value)); return *this; } /** *The VPC subnets into which the compute resources are launched. For more * information, see VPCs * and Subnets in the Amazon VPC User Guide.
*/ inline ComputeResource& AddSubnets(const char* value) { m_subnetsHasBeenSet = true; m_subnets.push_back(value); return *this; } /** *The Amazon EC2 security groups associated with instances launched in the
* compute environment. One or more security groups must be specified, either in
* securityGroupIds or using a launch template referenced in
* launchTemplate. If security groups are specified using both
* securityGroupIds and launchTemplate, the values in
* securityGroupIds will be used.
The Amazon EC2 security groups associated with instances launched in the
* compute environment. One or more security groups must be specified, either in
* securityGroupIds or using a launch template referenced in
* launchTemplate. If security groups are specified using both
* securityGroupIds and launchTemplate, the values in
* securityGroupIds will be used.
The Amazon EC2 security groups associated with instances launched in the
* compute environment. One or more security groups must be specified, either in
* securityGroupIds or using a launch template referenced in
* launchTemplate. If security groups are specified using both
* securityGroupIds and launchTemplate, the values in
* securityGroupIds will be used.
The Amazon EC2 security groups associated with instances launched in the
* compute environment. One or more security groups must be specified, either in
* securityGroupIds or using a launch template referenced in
* launchTemplate. If security groups are specified using both
* securityGroupIds and launchTemplate, the values in
* securityGroupIds will be used.
The Amazon EC2 security groups associated with instances launched in the
* compute environment. One or more security groups must be specified, either in
* securityGroupIds or using a launch template referenced in
* launchTemplate. If security groups are specified using both
* securityGroupIds and launchTemplate, the values in
* securityGroupIds will be used.
The Amazon EC2 security groups associated with instances launched in the
* compute environment. One or more security groups must be specified, either in
* securityGroupIds or using a launch template referenced in
* launchTemplate. If security groups are specified using both
* securityGroupIds and launchTemplate, the values in
* securityGroupIds will be used.
The Amazon EC2 security groups associated with instances launched in the
* compute environment. One or more security groups must be specified, either in
* securityGroupIds or using a launch template referenced in
* launchTemplate. If security groups are specified using both
* securityGroupIds and launchTemplate, the values in
* securityGroupIds will be used.
The Amazon EC2 security groups associated with instances launched in the
* compute environment. One or more security groups must be specified, either in
* securityGroupIds or using a launch template referenced in
* launchTemplate. If security groups are specified using both
* securityGroupIds and launchTemplate, the values in
* securityGroupIds will be used.
The Amazon EC2 security groups associated with instances launched in the
* compute environment. One or more security groups must be specified, either in
* securityGroupIds or using a launch template referenced in
* launchTemplate. If security groups are specified using both
* securityGroupIds and launchTemplate, the values in
* securityGroupIds will be used.
The Amazon EC2 key pair that is used for instances launched in the compute * environment.
*/ inline const Aws::String& GetEc2KeyPair() const{ return m_ec2KeyPair; } /** *The Amazon EC2 key pair that is used for instances launched in the compute * environment.
*/ inline bool Ec2KeyPairHasBeenSet() const { return m_ec2KeyPairHasBeenSet; } /** *The Amazon EC2 key pair that is used for instances launched in the compute * environment.
*/ inline void SetEc2KeyPair(const Aws::String& value) { m_ec2KeyPairHasBeenSet = true; m_ec2KeyPair = value; } /** *The Amazon EC2 key pair that is used for instances launched in the compute * environment.
*/ inline void SetEc2KeyPair(Aws::String&& value) { m_ec2KeyPairHasBeenSet = true; m_ec2KeyPair = std::move(value); } /** *The Amazon EC2 key pair that is used for instances launched in the compute * environment.
*/ inline void SetEc2KeyPair(const char* value) { m_ec2KeyPairHasBeenSet = true; m_ec2KeyPair.assign(value); } /** *The Amazon EC2 key pair that is used for instances launched in the compute * environment.
*/ inline ComputeResource& WithEc2KeyPair(const Aws::String& value) { SetEc2KeyPair(value); return *this;} /** *The Amazon EC2 key pair that is used for instances launched in the compute * environment.
*/ inline ComputeResource& WithEc2KeyPair(Aws::String&& value) { SetEc2KeyPair(std::move(value)); return *this;} /** *The Amazon EC2 key pair that is used for instances launched in the compute * environment.
*/ inline ComputeResource& WithEc2KeyPair(const char* value) { SetEc2KeyPair(value); return *this;} /** *The Amazon ECS instance profile applied to Amazon EC2 instances in a compute
* environment. You can specify the short name or full Amazon Resource Name (ARN)
* of an instance profile. For example, ecsInstanceRole or
* arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole
* . For more information, see Amazon
* ECS Instance Role in the AWS Batch User Guide.
The Amazon ECS instance profile applied to Amazon EC2 instances in a compute
* environment. You can specify the short name or full Amazon Resource Name (ARN)
* of an instance profile. For example, ecsInstanceRole or
* arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole
* . For more information, see Amazon
* ECS Instance Role in the AWS Batch User Guide.
The Amazon ECS instance profile applied to Amazon EC2 instances in a compute
* environment. You can specify the short name or full Amazon Resource Name (ARN)
* of an instance profile. For example, ecsInstanceRole or
* arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole
* . For more information, see Amazon
* ECS Instance Role in the AWS Batch User Guide.
The Amazon ECS instance profile applied to Amazon EC2 instances in a compute
* environment. You can specify the short name or full Amazon Resource Name (ARN)
* of an instance profile. For example, ecsInstanceRole or
* arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole
* . For more information, see Amazon
* ECS Instance Role in the AWS Batch User Guide.
The Amazon ECS instance profile applied to Amazon EC2 instances in a compute
* environment. You can specify the short name or full Amazon Resource Name (ARN)
* of an instance profile. For example, ecsInstanceRole or
* arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole
* . For more information, see Amazon
* ECS Instance Role in the AWS Batch User Guide.
The Amazon ECS instance profile applied to Amazon EC2 instances in a compute
* environment. You can specify the short name or full Amazon Resource Name (ARN)
* of an instance profile. For example, ecsInstanceRole or
* arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole
* . For more information, see Amazon
* ECS Instance Role in the AWS Batch User Guide.
The Amazon ECS instance profile applied to Amazon EC2 instances in a compute
* environment. You can specify the short name or full Amazon Resource Name (ARN)
* of an instance profile. For example, ecsInstanceRole or
* arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole
* . For more information, see Amazon
* ECS Instance Role in the AWS Batch User Guide.
The Amazon ECS instance profile applied to Amazon EC2 instances in a compute
* environment. You can specify the short name or full Amazon Resource Name (ARN)
* of an instance profile. For example, ecsInstanceRole or
* arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole
* . For more information, see Amazon
* ECS Instance Role in the AWS Batch User Guide.
Key-value pair tags to be applied to resources that are launched in the * compute environment. For AWS Batch, these take the form of "String1": "String2", * where String1 is the tag key and String2 is the tag value—for example, { "Name": * "AWS Batch Instance - C4OnDemand" }.
*/ inline const Aws::MapKey-value pair tags to be applied to resources that are launched in the * compute environment. For AWS Batch, these take the form of "String1": "String2", * where String1 is the tag key and String2 is the tag value—for example, { "Name": * "AWS Batch Instance - C4OnDemand" }.
*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *Key-value pair tags to be applied to resources that are launched in the * compute environment. For AWS Batch, these take the form of "String1": "String2", * where String1 is the tag key and String2 is the tag value—for example, { "Name": * "AWS Batch Instance - C4OnDemand" }.
*/ inline void SetTags(const Aws::MapKey-value pair tags to be applied to resources that are launched in the * compute environment. For AWS Batch, these take the form of "String1": "String2", * where String1 is the tag key and String2 is the tag value—for example, { "Name": * "AWS Batch Instance - C4OnDemand" }.
*/ inline void SetTags(Aws::MapKey-value pair tags to be applied to resources that are launched in the * compute environment. For AWS Batch, these take the form of "String1": "String2", * where String1 is the tag key and String2 is the tag value—for example, { "Name": * "AWS Batch Instance - C4OnDemand" }.
*/ inline ComputeResource& WithTags(const Aws::MapKey-value pair tags to be applied to resources that are launched in the * compute environment. For AWS Batch, these take the form of "String1": "String2", * where String1 is the tag key and String2 is the tag value—for example, { "Name": * "AWS Batch Instance - C4OnDemand" }.
*/ inline ComputeResource& WithTags(Aws::MapKey-value pair tags to be applied to resources that are launched in the * compute environment. For AWS Batch, these take the form of "String1": "String2", * where String1 is the tag key and String2 is the tag value—for example, { "Name": * "AWS Batch Instance - C4OnDemand" }.
*/ inline ComputeResource& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *Key-value pair tags to be applied to resources that are launched in the * compute environment. For AWS Batch, these take the form of "String1": "String2", * where String1 is the tag key and String2 is the tag value—for example, { "Name": * "AWS Batch Instance - C4OnDemand" }.
*/ inline ComputeResource& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *Key-value pair tags to be applied to resources that are launched in the * compute environment. For AWS Batch, these take the form of "String1": "String2", * where String1 is the tag key and String2 is the tag value—for example, { "Name": * "AWS Batch Instance - C4OnDemand" }.
*/ inline ComputeResource& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *Key-value pair tags to be applied to resources that are launched in the * compute environment. For AWS Batch, these take the form of "String1": "String2", * where String1 is the tag key and String2 is the tag value—for example, { "Name": * "AWS Batch Instance - C4OnDemand" }.
*/ inline ComputeResource& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } /** *Key-value pair tags to be applied to resources that are launched in the * compute environment. For AWS Batch, these take the form of "String1": "String2", * where String1 is the tag key and String2 is the tag value—for example, { "Name": * "AWS Batch Instance - C4OnDemand" }.
*/ inline ComputeResource& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *Key-value pair tags to be applied to resources that are launched in the * compute environment. For AWS Batch, these take the form of "String1": "String2", * where String1 is the tag key and String2 is the tag value—for example, { "Name": * "AWS Batch Instance - C4OnDemand" }.
*/ inline ComputeResource& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *Key-value pair tags to be applied to resources that are launched in the * compute environment. For AWS Batch, these take the form of "String1": "String2", * where String1 is the tag key and String2 is the tag value—for example, { "Name": * "AWS Batch Instance - C4OnDemand" }.
*/ inline ComputeResource& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *The Amazon EC2 placement group to associate with your compute resources. If * you intend to submit multi-node parallel jobs to your compute environment, you * should consider creating a cluster placement group and associate it with your * compute resources. This keeps your multi-node parallel job on a logical grouping * of instances within a single Availability Zone with high network flow potential. * For more information, see Placement * Groups in the Amazon EC2 User Guide for Linux Instances.
*/ inline const Aws::String& GetPlacementGroup() const{ return m_placementGroup; } /** *The Amazon EC2 placement group to associate with your compute resources. If * you intend to submit multi-node parallel jobs to your compute environment, you * should consider creating a cluster placement group and associate it with your * compute resources. This keeps your multi-node parallel job on a logical grouping * of instances within a single Availability Zone with high network flow potential. * For more information, see Placement * Groups in the Amazon EC2 User Guide for Linux Instances.
*/ inline bool PlacementGroupHasBeenSet() const { return m_placementGroupHasBeenSet; } /** *The Amazon EC2 placement group to associate with your compute resources. If * you intend to submit multi-node parallel jobs to your compute environment, you * should consider creating a cluster placement group and associate it with your * compute resources. This keeps your multi-node parallel job on a logical grouping * of instances within a single Availability Zone with high network flow potential. * For more information, see Placement * Groups in the Amazon EC2 User Guide for Linux Instances.
*/ inline void SetPlacementGroup(const Aws::String& value) { m_placementGroupHasBeenSet = true; m_placementGroup = value; } /** *The Amazon EC2 placement group to associate with your compute resources. If * you intend to submit multi-node parallel jobs to your compute environment, you * should consider creating a cluster placement group and associate it with your * compute resources. This keeps your multi-node parallel job on a logical grouping * of instances within a single Availability Zone with high network flow potential. * For more information, see Placement * Groups in the Amazon EC2 User Guide for Linux Instances.
*/ inline void SetPlacementGroup(Aws::String&& value) { m_placementGroupHasBeenSet = true; m_placementGroup = std::move(value); } /** *The Amazon EC2 placement group to associate with your compute resources. If * you intend to submit multi-node parallel jobs to your compute environment, you * should consider creating a cluster placement group and associate it with your * compute resources. This keeps your multi-node parallel job on a logical grouping * of instances within a single Availability Zone with high network flow potential. * For more information, see Placement * Groups in the Amazon EC2 User Guide for Linux Instances.
*/ inline void SetPlacementGroup(const char* value) { m_placementGroupHasBeenSet = true; m_placementGroup.assign(value); } /** *The Amazon EC2 placement group to associate with your compute resources. If * you intend to submit multi-node parallel jobs to your compute environment, you * should consider creating a cluster placement group and associate it with your * compute resources. This keeps your multi-node parallel job on a logical grouping * of instances within a single Availability Zone with high network flow potential. * For more information, see Placement * Groups in the Amazon EC2 User Guide for Linux Instances.
*/ inline ComputeResource& WithPlacementGroup(const Aws::String& value) { SetPlacementGroup(value); return *this;} /** *The Amazon EC2 placement group to associate with your compute resources. If * you intend to submit multi-node parallel jobs to your compute environment, you * should consider creating a cluster placement group and associate it with your * compute resources. This keeps your multi-node parallel job on a logical grouping * of instances within a single Availability Zone with high network flow potential. * For more information, see Placement * Groups in the Amazon EC2 User Guide for Linux Instances.
*/ inline ComputeResource& WithPlacementGroup(Aws::String&& value) { SetPlacementGroup(std::move(value)); return *this;} /** *The Amazon EC2 placement group to associate with your compute resources. If * you intend to submit multi-node parallel jobs to your compute environment, you * should consider creating a cluster placement group and associate it with your * compute resources. This keeps your multi-node parallel job on a logical grouping * of instances within a single Availability Zone with high network flow potential. * For more information, see Placement * Groups in the Amazon EC2 User Guide for Linux Instances.
*/ inline ComputeResource& WithPlacementGroup(const char* value) { SetPlacementGroup(value); return *this;} /** *The maximum percentage that a Spot Instance price can be when compared with * the On-Demand price for that instance type before instances are launched. For * example, if your maximum percentage is 20%, then the Spot price must be below * 20% of the current On-Demand price for that Amazon EC2 instance. You always pay * the lowest (market) price and never more than your maximum percentage. If you * leave this field empty, the default value is 100% of the On-Demand price.
*/ inline int GetBidPercentage() const{ return m_bidPercentage; } /** *The maximum percentage that a Spot Instance price can be when compared with * the On-Demand price for that instance type before instances are launched. For * example, if your maximum percentage is 20%, then the Spot price must be below * 20% of the current On-Demand price for that Amazon EC2 instance. You always pay * the lowest (market) price and never more than your maximum percentage. If you * leave this field empty, the default value is 100% of the On-Demand price.
*/ inline bool BidPercentageHasBeenSet() const { return m_bidPercentageHasBeenSet; } /** *The maximum percentage that a Spot Instance price can be when compared with * the On-Demand price for that instance type before instances are launched. For * example, if your maximum percentage is 20%, then the Spot price must be below * 20% of the current On-Demand price for that Amazon EC2 instance. You always pay * the lowest (market) price and never more than your maximum percentage. If you * leave this field empty, the default value is 100% of the On-Demand price.
*/ inline void SetBidPercentage(int value) { m_bidPercentageHasBeenSet = true; m_bidPercentage = value; } /** *The maximum percentage that a Spot Instance price can be when compared with * the On-Demand price for that instance type before instances are launched. For * example, if your maximum percentage is 20%, then the Spot price must be below * 20% of the current On-Demand price for that Amazon EC2 instance. You always pay * the lowest (market) price and never more than your maximum percentage. If you * leave this field empty, the default value is 100% of the On-Demand price.
*/ inline ComputeResource& WithBidPercentage(int value) { SetBidPercentage(value); return *this;} /** *The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied
* to a SPOT compute environment. This role is required if the
* allocation strategy set to BEST_FIT or if the allocation strategy
* is not specified. For more information, see Amazon
* EC2 Spot Fleet Role in the AWS Batch User Guide.
The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied
* to a SPOT compute environment. This role is required if the
* allocation strategy set to BEST_FIT or if the allocation strategy
* is not specified. For more information, see Amazon
* EC2 Spot Fleet Role in the AWS Batch User Guide.
The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied
* to a SPOT compute environment. This role is required if the
* allocation strategy set to BEST_FIT or if the allocation strategy
* is not specified. For more information, see Amazon
* EC2 Spot Fleet Role in the AWS Batch User Guide.
The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied
* to a SPOT compute environment. This role is required if the
* allocation strategy set to BEST_FIT or if the allocation strategy
* is not specified. For more information, see Amazon
* EC2 Spot Fleet Role in the AWS Batch User Guide.
The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied
* to a SPOT compute environment. This role is required if the
* allocation strategy set to BEST_FIT or if the allocation strategy
* is not specified. For more information, see Amazon
* EC2 Spot Fleet Role in the AWS Batch User Guide.
The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied
* to a SPOT compute environment. This role is required if the
* allocation strategy set to BEST_FIT or if the allocation strategy
* is not specified. For more information, see Amazon
* EC2 Spot Fleet Role in the AWS Batch User Guide.
The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied
* to a SPOT compute environment. This role is required if the
* allocation strategy set to BEST_FIT or if the allocation strategy
* is not specified. For more information, see Amazon
* EC2 Spot Fleet Role in the AWS Batch User Guide.
The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied
* to a SPOT compute environment. This role is required if the
* allocation strategy set to BEST_FIT or if the allocation strategy
* is not specified. For more information, see Amazon
* EC2 Spot Fleet Role in the AWS Batch User Guide.
The launch template to use for your compute resources. Any other compute * resource parameters that you specify in a CreateComputeEnvironment API * operation override the same parameters in the launch template. You must specify * either the launch template ID or launch template name in the request, but not * both. For more information, see Launch * Template Support in the AWS Batch User Guide.
*/ inline const LaunchTemplateSpecification& GetLaunchTemplate() const{ return m_launchTemplate; } /** *The launch template to use for your compute resources. Any other compute * resource parameters that you specify in a CreateComputeEnvironment API * operation override the same parameters in the launch template. You must specify * either the launch template ID or launch template name in the request, but not * both. For more information, see Launch * Template Support in the AWS Batch User Guide.
*/ inline bool LaunchTemplateHasBeenSet() const { return m_launchTemplateHasBeenSet; } /** *The launch template to use for your compute resources. Any other compute * resource parameters that you specify in a CreateComputeEnvironment API * operation override the same parameters in the launch template. You must specify * either the launch template ID or launch template name in the request, but not * both. For more information, see Launch * Template Support in the AWS Batch User Guide.
*/ inline void SetLaunchTemplate(const LaunchTemplateSpecification& value) { m_launchTemplateHasBeenSet = true; m_launchTemplate = value; } /** *The launch template to use for your compute resources. Any other compute * resource parameters that you specify in a CreateComputeEnvironment API * operation override the same parameters in the launch template. You must specify * either the launch template ID or launch template name in the request, but not * both. For more information, see Launch * Template Support in the AWS Batch User Guide.
*/ inline void SetLaunchTemplate(LaunchTemplateSpecification&& value) { m_launchTemplateHasBeenSet = true; m_launchTemplate = std::move(value); } /** *The launch template to use for your compute resources. Any other compute * resource parameters that you specify in a CreateComputeEnvironment API * operation override the same parameters in the launch template. You must specify * either the launch template ID or launch template name in the request, but not * both. For more information, see Launch * Template Support in the AWS Batch User Guide.
*/ inline ComputeResource& WithLaunchTemplate(const LaunchTemplateSpecification& value) { SetLaunchTemplate(value); return *this;} /** *The launch template to use for your compute resources. Any other compute * resource parameters that you specify in a CreateComputeEnvironment API * operation override the same parameters in the launch template. You must specify * either the launch template ID or launch template name in the request, but not * both. For more information, see Launch * Template Support in the AWS Batch User Guide.
*/ inline ComputeResource& WithLaunchTemplate(LaunchTemplateSpecification&& value) { SetLaunchTemplate(std::move(value)); return *this;} private: CRType m_type; bool m_typeHasBeenSet; CRAllocationStrategy m_allocationStrategy; bool m_allocationStrategyHasBeenSet; int m_minvCpus; bool m_minvCpusHasBeenSet; int m_maxvCpus; bool m_maxvCpusHasBeenSet; int m_desiredvCpus; bool m_desiredvCpusHasBeenSet; Aws::Vector