putClusterCapacityProviders method
- required List<
String> capacityProviders, - required String cluster,
- required List<
CapacityProviderStrategyItem> defaultCapacityProviderStrategy,
Modifies the available capacity providers and the default capacity provider strategy for a cluster.
You must specify both the available capacity providers and a default capacity provider strategy for the cluster. If the specified cluster has existing capacity providers associated with it, you must specify all existing capacity providers in addition to any new ones you want to add. Any existing capacity providers associated with a cluster that are omitted from a PutClusterCapacityProviders API call will be disassociated with the cluster. You can only disassociate an existing capacity provider from a cluster if it's not being used by any existing tasks.
When creating a service or running a task on a cluster, if no capacity
provider or launch type is specified, then the cluster's default capacity
provider strategy is used. It is recommended to define a default capacity
provider strategy for your cluster, however you may specify an empty array
([]
) to bypass defining a default strategy.
May throw ServerException. May throw ClientException. May throw InvalidParameterException. May throw ClusterNotFoundException. May throw ResourceInUseException. May throw UpdateInProgressException.
Parameter capacityProviders
:
The name of one or more capacity providers to associate with the cluster.
If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the CreateCapacityProvider API operation.
To use a AWS Fargate capacity provider, specify either the
FARGATE
or FARGATE_SPOT
capacity providers. The
AWS Fargate capacity providers are available to all accounts and only need
to be associated with a cluster to be used.
Parameter cluster
:
The short name or full Amazon Resource Name (ARN) of the cluster to modify
the capacity provider settings for. If you do not specify a cluster, the
default cluster is assumed.
Parameter defaultCapacityProviderStrategy
:
The capacity provider strategy to use by default for the cluster.
When creating a service or running a task on a cluster, if no capacity provider or launch type is specified then the default capacity provider strategy for the cluster is used.
A capacity provider strategy consists of one or more capacity providers
along with the base
and weight
to assign to
them. A capacity provider must be associated with the cluster to be used
in a capacity provider strategy. The PutClusterCapacityProviders
API is used to associate a capacity provider with a cluster. Only capacity
providers with an ACTIVE
or UPDATING
status can
be used.
If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New capacity providers can be created with the CreateCapacityProvider API operation.
To use a AWS Fargate capacity provider, specify either the
FARGATE
or FARGATE_SPOT
capacity providers. The
AWS Fargate capacity providers are available to all accounts and only need
to be associated with a cluster to be used.
Implementation
Future<PutClusterCapacityProvidersResponse> putClusterCapacityProviders({
required List<String> capacityProviders,
required String cluster,
required List<CapacityProviderStrategyItem> defaultCapacityProviderStrategy,
}) async {
ArgumentError.checkNotNull(capacityProviders, 'capacityProviders');
ArgumentError.checkNotNull(cluster, 'cluster');
ArgumentError.checkNotNull(
defaultCapacityProviderStrategy, 'defaultCapacityProviderStrategy');
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target':
'AmazonEC2ContainerServiceV20141113.PutClusterCapacityProviders'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'capacityProviders': capacityProviders,
'cluster': cluster,
'defaultCapacityProviderStrategy': defaultCapacityProviderStrategy,
},
);
return PutClusterCapacityProvidersResponse.fromJson(jsonResponse.body);
}