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

com.amazonaws.services.batch.model.ComputeResource Maven / Gradle / Ivy

/*
 * Copyright 2015-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */
package com.amazonaws.services.batch.model;

import java.io.Serializable;
import javax.annotation.Generated;
import com.amazonaws.protocol.StructuredPojo;
import com.amazonaws.protocol.ProtocolMarshaller;

/**
 * 

* An object representing an AWS Batch compute resource. *

* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class ComputeResource implements Serializable, Cloneable, StructuredPojo { /** *

* The type of compute environment: EC2 or SPOT. *

*/ private String type; /** *

* 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. *

*/ private String allocationStrategy; /** *

* The minimum number of Amazon EC2 vCPUs that an environment should maintain (even if the compute environment is * DISABLED). *

*/ private Integer minvCpus; /** *

* The maximum number of Amazon EC2 vCPUs that an environment can reach. *

*/ private Integer maxvCpus; /** *

* The desired number of Amazon EC2 vCPUS in the compute environment. *

*/ private Integer desiredvCpus; /** *

* 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. *

*/ private java.util.List instanceTypes; /** *

* The Amazon Machine Image (AMI) ID used for instances launched in the compute environment. *

*/ private String imageId; /** *

* The VPC subnets into which the compute resources are launched. For more information, see VPCs and Subnets in the Amazon * VPC User Guide. *

*/ private java.util.List subnets; /** *

* 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. *

*/ private java.util.List securityGroupIds; /** *

* The Amazon EC2 key pair that is used for instances launched in the compute environment. *

*/ private String ec2KeyPair; /** *

* 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. *

*/ private String instanceRole; /** *

* 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" }. *

*/ private java.util.Map tags; /** *

* 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. *

*/ private String placementGroup; /** *

* 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. *

*/ private Integer bidPercentage; /** *

* 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. *

*/ private String spotIamFleetRole; /** *

* 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. *

*/ private LaunchTemplateSpecification launchTemplate; /** *

* The type of compute environment: EC2 or SPOT. *

* * @param type * The type of compute environment: EC2 or SPOT. * @see CRType */ public void setType(String type) { this.type = type; } /** *

* The type of compute environment: EC2 or SPOT. *

* * @return The type of compute environment: EC2 or SPOT. * @see CRType */ public String getType() { return this.type; } /** *

* The type of compute environment: EC2 or SPOT. *

* * @param type * The type of compute environment: EC2 or SPOT. * @return Returns a reference to this object so that method calls can be chained together. * @see CRType */ public ComputeResource withType(String type) { setType(type); return this; } /** *

* The type of compute environment: EC2 or SPOT. *

* * @param type * The type of compute environment: EC2 or SPOT. * @see CRType */ public void setType(CRType type) { withType(type); } /** *

* The type of compute environment: EC2 or SPOT. *

* * @param type * The type of compute environment: EC2 or SPOT. * @return Returns a reference to this object so that method calls can be chained together. * @see CRType */ public ComputeResource withType(CRType type) { this.type = type.toString(); return this; } /** *

* 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. *

* * @param allocationStrategy * 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. * @see CRAllocationStrategy */ public void setAllocationStrategy(String allocationStrategy) { this.allocationStrategy = allocationStrategy; } /** *

* 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. *

* * @return 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. * @see CRAllocationStrategy */ public String getAllocationStrategy() { return this.allocationStrategy; } /** *

* 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. *

* * @param allocationStrategy * 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. * @return Returns a reference to this object so that method calls can be chained together. * @see CRAllocationStrategy */ public ComputeResource withAllocationStrategy(String allocationStrategy) { setAllocationStrategy(allocationStrategy); return this; } /** *

* 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. *

* * @param allocationStrategy * 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. * @see CRAllocationStrategy */ public void setAllocationStrategy(CRAllocationStrategy allocationStrategy) { withAllocationStrategy(allocationStrategy); } /** *

* 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. *

* * @param allocationStrategy * 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. * @return Returns a reference to this object so that method calls can be chained together. * @see CRAllocationStrategy */ public ComputeResource withAllocationStrategy(CRAllocationStrategy allocationStrategy) { this.allocationStrategy = allocationStrategy.toString(); return this; } /** *

* The minimum number of Amazon EC2 vCPUs that an environment should maintain (even if the compute environment is * DISABLED). *

* * @param minvCpus * The minimum number of Amazon EC2 vCPUs that an environment should maintain (even if the compute * environment is DISABLED). */ public void setMinvCpus(Integer minvCpus) { this.minvCpus = minvCpus; } /** *

* The minimum number of Amazon EC2 vCPUs that an environment should maintain (even if the compute environment is * DISABLED). *

* * @return The minimum number of Amazon EC2 vCPUs that an environment should maintain (even if the compute * environment is DISABLED). */ public Integer getMinvCpus() { return this.minvCpus; } /** *

* The minimum number of Amazon EC2 vCPUs that an environment should maintain (even if the compute environment is * DISABLED). *

* * @param minvCpus * The minimum number of Amazon EC2 vCPUs that an environment should maintain (even if the compute * environment is DISABLED). * @return Returns a reference to this object so that method calls can be chained together. */ public ComputeResource withMinvCpus(Integer minvCpus) { setMinvCpus(minvCpus); return this; } /** *

* The maximum number of Amazon EC2 vCPUs that an environment can reach. *

* * @param maxvCpus * The maximum number of Amazon EC2 vCPUs that an environment can reach. */ public void setMaxvCpus(Integer maxvCpus) { this.maxvCpus = maxvCpus; } /** *

* The maximum number of Amazon EC2 vCPUs that an environment can reach. *

* * @return The maximum number of Amazon EC2 vCPUs that an environment can reach. */ public Integer getMaxvCpus() { return this.maxvCpus; } /** *

* The maximum number of Amazon EC2 vCPUs that an environment can reach. *

* * @param maxvCpus * The maximum number of Amazon EC2 vCPUs that an environment can reach. * @return Returns a reference to this object so that method calls can be chained together. */ public ComputeResource withMaxvCpus(Integer maxvCpus) { setMaxvCpus(maxvCpus); return this; } /** *

* The desired number of Amazon EC2 vCPUS in the compute environment. *

* * @param desiredvCpus * The desired number of Amazon EC2 vCPUS in the compute environment. */ public void setDesiredvCpus(Integer desiredvCpus) { this.desiredvCpus = desiredvCpus; } /** *

* The desired number of Amazon EC2 vCPUS in the compute environment. *

* * @return The desired number of Amazon EC2 vCPUS in the compute environment. */ public Integer getDesiredvCpus() { return this.desiredvCpus; } /** *

* The desired number of Amazon EC2 vCPUS in the compute environment. *

* * @param desiredvCpus * The desired number of Amazon EC2 vCPUS in the compute environment. * @return Returns a reference to this object so that method calls can be chained together. */ public ComputeResource withDesiredvCpus(Integer desiredvCpus) { setDesiredvCpus(desiredvCpus); 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. *

* * @return 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. */ public java.util.List getInstanceTypes() { return instanceTypes; } /** *

* 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. *

* * @param instanceTypes * 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. */ public void setInstanceTypes(java.util.Collection instanceTypes) { if (instanceTypes == null) { this.instanceTypes = null; return; } this.instanceTypes = new java.util.ArrayList(instanceTypes); } /** *

* 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. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setInstanceTypes(java.util.Collection)} or {@link #withInstanceTypes(java.util.Collection)} if you want * to override the existing values. *

* * @param instanceTypes * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public ComputeResource withInstanceTypes(String... instanceTypes) { if (this.instanceTypes == null) { setInstanceTypes(new java.util.ArrayList(instanceTypes.length)); } for (String ele : instanceTypes) { this.instanceTypes.add(ele); } 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. *

* * @param instanceTypes * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public ComputeResource withInstanceTypes(java.util.Collection instanceTypes) { setInstanceTypes(instanceTypes); return this; } /** *

* The Amazon Machine Image (AMI) ID used for instances launched in the compute environment. *

* * @param imageId * The Amazon Machine Image (AMI) ID used for instances launched in the compute environment. */ public void setImageId(String imageId) { this.imageId = imageId; } /** *

* The Amazon Machine Image (AMI) ID used for instances launched in the compute environment. *

* * @return The Amazon Machine Image (AMI) ID used for instances launched in the compute environment. */ public String getImageId() { return this.imageId; } /** *

* The Amazon Machine Image (AMI) ID used for instances launched in the compute environment. *

* * @param imageId * The Amazon Machine Image (AMI) ID used for instances launched in the compute environment. * @return Returns a reference to this object so that method calls can be chained together. */ public ComputeResource withImageId(String imageId) { setImageId(imageId); 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. *

* * @return The VPC subnets into which the compute resources are launched. For more information, see VPCs and Subnets in the * Amazon VPC User Guide. */ public java.util.List getSubnets() { return subnets; } /** *

* The VPC subnets into which the compute resources are launched. For more information, see VPCs and Subnets in the Amazon * VPC User Guide. *

* * @param subnets * The VPC subnets into which the compute resources are launched. For more information, see VPCs and Subnets in the * Amazon VPC User Guide. */ public void setSubnets(java.util.Collection subnets) { if (subnets == null) { this.subnets = null; return; } this.subnets = new java.util.ArrayList(subnets); } /** *

* The VPC subnets into which the compute resources are launched. For more information, see VPCs and Subnets in the Amazon * VPC User Guide. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setSubnets(java.util.Collection)} or {@link #withSubnets(java.util.Collection)} if you want to override * the existing values. *

* * @param subnets * The VPC subnets into which the compute resources are launched. For more information, see VPCs and Subnets in the * Amazon VPC User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public ComputeResource withSubnets(String... subnets) { if (this.subnets == null) { setSubnets(new java.util.ArrayList(subnets.length)); } for (String ele : subnets) { this.subnets.add(ele); } 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. *

* * @param subnets * The VPC subnets into which the compute resources are launched. For more information, see VPCs and Subnets in the * Amazon VPC User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public ComputeResource withSubnets(java.util.Collection subnets) { setSubnets(subnets); 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. *

* * @return 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. */ public java.util.List getSecurityGroupIds() { return securityGroupIds; } /** *

* 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. *

* * @param securityGroupIds * 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. */ public void setSecurityGroupIds(java.util.Collection securityGroupIds) { if (securityGroupIds == null) { this.securityGroupIds = null; return; } this.securityGroupIds = new java.util.ArrayList(securityGroupIds); } /** *

* 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. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setSecurityGroupIds(java.util.Collection)} or {@link #withSecurityGroupIds(java.util.Collection)} if you * want to override the existing values. *

* * @param securityGroupIds * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public ComputeResource withSecurityGroupIds(String... securityGroupIds) { if (this.securityGroupIds == null) { setSecurityGroupIds(new java.util.ArrayList(securityGroupIds.length)); } for (String ele : securityGroupIds) { this.securityGroupIds.add(ele); } 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. *

* * @param securityGroupIds * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public ComputeResource withSecurityGroupIds(java.util.Collection securityGroupIds) { setSecurityGroupIds(securityGroupIds); return this; } /** *

* The Amazon EC2 key pair that is used for instances launched in the compute environment. *

* * @param ec2KeyPair * The Amazon EC2 key pair that is used for instances launched in the compute environment. */ public void setEc2KeyPair(String ec2KeyPair) { this.ec2KeyPair = ec2KeyPair; } /** *

* The Amazon EC2 key pair that is used for instances launched in the compute environment. *

* * @return The Amazon EC2 key pair that is used for instances launched in the compute environment. */ public String getEc2KeyPair() { return this.ec2KeyPair; } /** *

* The Amazon EC2 key pair that is used for instances launched in the compute environment. *

* * @param ec2KeyPair * The Amazon EC2 key pair that is used for instances launched in the compute environment. * @return Returns a reference to this object so that method calls can be chained together. */ public ComputeResource withEc2KeyPair(String ec2KeyPair) { setEc2KeyPair(ec2KeyPair); 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. *

* * @param instanceRole * 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. */ public void setInstanceRole(String instanceRole) { this.instanceRole = instanceRole; } /** *

* 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. *

* * @return 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. */ public String getInstanceRole() { return this.instanceRole; } /** *

* 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. *

* * @param instanceRole * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public ComputeResource withInstanceRole(String instanceRole) { setInstanceRole(instanceRole); 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" }. *

* * @return 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" }. */ public java.util.Map getTags() { return tags; } /** *

* 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" }. *

* * @param tags * 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" }. */ public void setTags(java.util.Map tags) { this.tags = tags; } /** *

* 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" }. *

* * @param tags * 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" }. * @return Returns a reference to this object so that method calls can be chained together. */ public ComputeResource withTags(java.util.Map tags) { setTags(tags); return this; } /** * Add a single Tags entry * * @see ComputeResource#withTags * @returns a reference to this object so that method calls can be chained together. */ public ComputeResource addTagsEntry(String key, String value) { if (null == this.tags) { this.tags = new java.util.HashMap(); } if (this.tags.containsKey(key)) throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided."); this.tags.put(key, value); return this; } /** * Removes all the entries added into Tags. * * @return Returns a reference to this object so that method calls can be chained together. */ public ComputeResource clearTagsEntries() { this.tags = null; 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. *

* * @param 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. */ public void setPlacementGroup(String placementGroup) { this.placementGroup = 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. *

* * @return 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. */ public String getPlacementGroup() { return this.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. *

* * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public ComputeResource withPlacementGroup(String placementGroup) { setPlacementGroup(placementGroup); 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. *

* * @param 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. */ public void setBidPercentage(Integer bidPercentage) { this.bidPercentage = 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. *

* * @return 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. */ public Integer getBidPercentage() { return this.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. *

* * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public ComputeResource withBidPercentage(Integer bidPercentage) { setBidPercentage(bidPercentage); 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. *

* * @param spotIamFleetRole * 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. */ public void setSpotIamFleetRole(String spotIamFleetRole) { this.spotIamFleetRole = spotIamFleetRole; } /** *

* 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. *

* * @return 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. */ public String getSpotIamFleetRole() { return this.spotIamFleetRole; } /** *

* 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. *

* * @param spotIamFleetRole * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public ComputeResource withSpotIamFleetRole(String spotIamFleetRole) { setSpotIamFleetRole(spotIamFleetRole); 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. *

* * @param 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. */ public void setLaunchTemplate(LaunchTemplateSpecification launchTemplate) { this.launchTemplate = 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. *

* * @return 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. */ public LaunchTemplateSpecification getLaunchTemplate() { return this.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. *

* * @param 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. * @return Returns a reference to this object so that method calls can be chained together. */ public ComputeResource withLaunchTemplate(LaunchTemplateSpecification launchTemplate) { setLaunchTemplate(launchTemplate); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getType() != null) sb.append("Type: ").append(getType()).append(","); if (getAllocationStrategy() != null) sb.append("AllocationStrategy: ").append(getAllocationStrategy()).append(","); if (getMinvCpus() != null) sb.append("MinvCpus: ").append(getMinvCpus()).append(","); if (getMaxvCpus() != null) sb.append("MaxvCpus: ").append(getMaxvCpus()).append(","); if (getDesiredvCpus() != null) sb.append("DesiredvCpus: ").append(getDesiredvCpus()).append(","); if (getInstanceTypes() != null) sb.append("InstanceTypes: ").append(getInstanceTypes()).append(","); if (getImageId() != null) sb.append("ImageId: ").append(getImageId()).append(","); if (getSubnets() != null) sb.append("Subnets: ").append(getSubnets()).append(","); if (getSecurityGroupIds() != null) sb.append("SecurityGroupIds: ").append(getSecurityGroupIds()).append(","); if (getEc2KeyPair() != null) sb.append("Ec2KeyPair: ").append(getEc2KeyPair()).append(","); if (getInstanceRole() != null) sb.append("InstanceRole: ").append(getInstanceRole()).append(","); if (getTags() != null) sb.append("Tags: ").append(getTags()).append(","); if (getPlacementGroup() != null) sb.append("PlacementGroup: ").append(getPlacementGroup()).append(","); if (getBidPercentage() != null) sb.append("BidPercentage: ").append(getBidPercentage()).append(","); if (getSpotIamFleetRole() != null) sb.append("SpotIamFleetRole: ").append(getSpotIamFleetRole()).append(","); if (getLaunchTemplate() != null) sb.append("LaunchTemplate: ").append(getLaunchTemplate()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof ComputeResource == false) return false; ComputeResource other = (ComputeResource) obj; if (other.getType() == null ^ this.getType() == null) return false; if (other.getType() != null && other.getType().equals(this.getType()) == false) return false; if (other.getAllocationStrategy() == null ^ this.getAllocationStrategy() == null) return false; if (other.getAllocationStrategy() != null && other.getAllocationStrategy().equals(this.getAllocationStrategy()) == false) return false; if (other.getMinvCpus() == null ^ this.getMinvCpus() == null) return false; if (other.getMinvCpus() != null && other.getMinvCpus().equals(this.getMinvCpus()) == false) return false; if (other.getMaxvCpus() == null ^ this.getMaxvCpus() == null) return false; if (other.getMaxvCpus() != null && other.getMaxvCpus().equals(this.getMaxvCpus()) == false) return false; if (other.getDesiredvCpus() == null ^ this.getDesiredvCpus() == null) return false; if (other.getDesiredvCpus() != null && other.getDesiredvCpus().equals(this.getDesiredvCpus()) == false) return false; if (other.getInstanceTypes() == null ^ this.getInstanceTypes() == null) return false; if (other.getInstanceTypes() != null && other.getInstanceTypes().equals(this.getInstanceTypes()) == false) return false; if (other.getImageId() == null ^ this.getImageId() == null) return false; if (other.getImageId() != null && other.getImageId().equals(this.getImageId()) == false) return false; if (other.getSubnets() == null ^ this.getSubnets() == null) return false; if (other.getSubnets() != null && other.getSubnets().equals(this.getSubnets()) == false) return false; if (other.getSecurityGroupIds() == null ^ this.getSecurityGroupIds() == null) return false; if (other.getSecurityGroupIds() != null && other.getSecurityGroupIds().equals(this.getSecurityGroupIds()) == false) return false; if (other.getEc2KeyPair() == null ^ this.getEc2KeyPair() == null) return false; if (other.getEc2KeyPair() != null && other.getEc2KeyPair().equals(this.getEc2KeyPair()) == false) return false; if (other.getInstanceRole() == null ^ this.getInstanceRole() == null) return false; if (other.getInstanceRole() != null && other.getInstanceRole().equals(this.getInstanceRole()) == false) return false; if (other.getTags() == null ^ this.getTags() == null) return false; if (other.getTags() != null && other.getTags().equals(this.getTags()) == false) return false; if (other.getPlacementGroup() == null ^ this.getPlacementGroup() == null) return false; if (other.getPlacementGroup() != null && other.getPlacementGroup().equals(this.getPlacementGroup()) == false) return false; if (other.getBidPercentage() == null ^ this.getBidPercentage() == null) return false; if (other.getBidPercentage() != null && other.getBidPercentage().equals(this.getBidPercentage()) == false) return false; if (other.getSpotIamFleetRole() == null ^ this.getSpotIamFleetRole() == null) return false; if (other.getSpotIamFleetRole() != null && other.getSpotIamFleetRole().equals(this.getSpotIamFleetRole()) == false) return false; if (other.getLaunchTemplate() == null ^ this.getLaunchTemplate() == null) return false; if (other.getLaunchTemplate() != null && other.getLaunchTemplate().equals(this.getLaunchTemplate()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getType() == null) ? 0 : getType().hashCode()); hashCode = prime * hashCode + ((getAllocationStrategy() == null) ? 0 : getAllocationStrategy().hashCode()); hashCode = prime * hashCode + ((getMinvCpus() == null) ? 0 : getMinvCpus().hashCode()); hashCode = prime * hashCode + ((getMaxvCpus() == null) ? 0 : getMaxvCpus().hashCode()); hashCode = prime * hashCode + ((getDesiredvCpus() == null) ? 0 : getDesiredvCpus().hashCode()); hashCode = prime * hashCode + ((getInstanceTypes() == null) ? 0 : getInstanceTypes().hashCode()); hashCode = prime * hashCode + ((getImageId() == null) ? 0 : getImageId().hashCode()); hashCode = prime * hashCode + ((getSubnets() == null) ? 0 : getSubnets().hashCode()); hashCode = prime * hashCode + ((getSecurityGroupIds() == null) ? 0 : getSecurityGroupIds().hashCode()); hashCode = prime * hashCode + ((getEc2KeyPair() == null) ? 0 : getEc2KeyPair().hashCode()); hashCode = prime * hashCode + ((getInstanceRole() == null) ? 0 : getInstanceRole().hashCode()); hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode()); hashCode = prime * hashCode + ((getPlacementGroup() == null) ? 0 : getPlacementGroup().hashCode()); hashCode = prime * hashCode + ((getBidPercentage() == null) ? 0 : getBidPercentage().hashCode()); hashCode = prime * hashCode + ((getSpotIamFleetRole() == null) ? 0 : getSpotIamFleetRole().hashCode()); hashCode = prime * hashCode + ((getLaunchTemplate() == null) ? 0 : getLaunchTemplate().hashCode()); return hashCode; } @Override public ComputeResource clone() { try { return (ComputeResource) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } @com.amazonaws.annotation.SdkInternalApi @Override public void marshall(ProtocolMarshaller protocolMarshaller) { com.amazonaws.services.batch.model.transform.ComputeResourceMarshaller.getInstance().marshall(this, protocolMarshaller); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy