/*
* Copyright 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.
*/
/*
* Do not modify this file. This file is generated from the batch-2016-08-10.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.Batch.Model
{
///
/// Container for the parameters to the UpdateComputeEnvironment operation.
/// Updates an Batch compute environment.
///
public partial class UpdateComputeEnvironmentRequest : AmazonBatchRequest
{
private string _computeEnvironment;
private ComputeResourceUpdate _computeResources;
private string _serviceRole;
private CEState _state;
private int? _unmanagedvCpus;
private UpdatePolicy _updatePolicy;
///
/// Gets and sets the property ComputeEnvironment.
///
/// The name or full Amazon Resource Name (ARN) of the compute environment to update.
///
///
[AWSProperty(Required=true)]
public string ComputeEnvironment
{
get { return this._computeEnvironment; }
set { this._computeEnvironment = value; }
}
// Check to see if ComputeEnvironment property is set
internal bool IsSetComputeEnvironment()
{
return this._computeEnvironment != null;
}
///
/// Gets and sets the property ComputeResources.
///
/// Details of the compute resources managed by the compute environment. Required for
/// a managed compute environment. For more information, see Compute
/// Environments in the Batch User Guide.
///
///
public ComputeResourceUpdate ComputeResources
{
get { return this._computeResources; }
set { this._computeResources = value; }
}
// Check to see if ComputeResources property is set
internal bool IsSetComputeResources()
{
return this._computeResources != null;
}
///
/// Gets and sets the property ServiceRole.
///
/// The full Amazon Resource Name (ARN) of the IAM role that allows Batch to make calls
/// to other Amazon Web Services services on your behalf. For more information, see Batch
/// service IAM role in the Batch User Guide.
///
///
///
/// If the compute environment has a service-linked role, it can't be changed to use a
/// regular IAM role. Likewise, if the compute environment has a regular IAM role, it
/// can't be changed to use a service-linked role. To update the parameters for the compute
/// environment that require an infrastructure update to change, the AWSServiceRoleForBatch
/// service-linked role must be used. For more information, see Updating
/// compute environments in the Batch User Guide.
///
///
///
/// If your specified role has a path other than /
, then you must either
/// specify the full role ARN (recommended) or prefix the role name with the path.
///
///
///
/// Depending on how you created your Batch service role, its ARN might contain the service-role
/// path prefix. When you only specify the name of the service role, Batch assumes that
/// your ARN doesn't use the service-role
path prefix. Because of this, we
/// recommend that you specify the full ARN of your service role when you create compute
/// environments.
///
///
///
public string ServiceRole
{
get { return this._serviceRole; }
set { this._serviceRole = value; }
}
// Check to see if ServiceRole property is set
internal bool IsSetServiceRole()
{
return this._serviceRole != null;
}
///
/// Gets and sets the property State.
///
/// The state of the compute environment. Compute environments in the ENABLED
/// state can accept jobs from a queue and scale in or out automatically based on the
/// workload demand of its associated queues.
///
///
///
/// If the state is ENABLED
, then the Batch scheduler can attempt to place
/// jobs from an associated job queue on the compute resources within the environment.
/// If the compute environment is managed, then it can scale its instances out or in automatically,
/// based on the job queue demand.
///
///
///
/// If the state is DISABLED
, then the Batch scheduler doesn't attempt to
/// place jobs within the environment. Jobs in a STARTING
or RUNNING
/// state continue to progress normally. Managed compute environments in the DISABLED
/// state don't scale out.
///
///
///
/// Compute environments in a DISABLED
state may continue to incur billing
/// charges. To prevent additional charges, turn off and then delete the compute environment.
/// For more information, see State
/// in the Batch User Guide.
///
///
///
/// When an instance is idle, the instance scales down to the minvCpus
value.
/// However, the instance size doesn't change. For example, consider a c5.8xlarge
/// instance with a minvCpus
value of 4
and a desiredvCpus
/// value of 36
. This instance doesn't scale down to a c5.large
/// instance.
///
///
public CEState State
{
get { return this._state; }
set { this._state = value; }
}
// Check to see if State property is set
internal bool IsSetState()
{
return this._state != null;
}
///
/// Gets and sets the property UnmanagedvCpus.
///
/// The maximum number of vCPUs expected to be used for an unmanaged compute environment.
/// Don't specify this parameter for a managed compute environment. This parameter is
/// only used for fair share scheduling to reserve vCPU capacity for new share identifiers.
/// If this parameter isn't provided for a fair share job queue, no vCPU capacity is reserved.
///
///
public int UnmanagedvCpus
{
get { return this._unmanagedvCpus.GetValueOrDefault(); }
set { this._unmanagedvCpus = value; }
}
// Check to see if UnmanagedvCpus property is set
internal bool IsSetUnmanagedvCpus()
{
return this._unmanagedvCpus.HasValue;
}
///
/// Gets and sets the property UpdatePolicy.
///
/// Specifies the updated infrastructure update policy for the compute environment. For
/// more information about infrastructure updates, see Updating
/// compute environments in the Batch User Guide.
///
///
public UpdatePolicy UpdatePolicy
{
get { return this._updatePolicy; }
set { this._updatePolicy = value; }
}
// Check to see if UpdatePolicy property is set
internal bool IsSetUpdatePolicy()
{
return this._updatePolicy != null;
}
}
}