AWS SDK Version 3 for .NET
API Reference

AWS services or capabilities described in AWS Documentation may vary by region/location. Click Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

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 that are 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. We recommend that you define a default capacity provider strategy for your cluster. However, you must specify an empty array ([]) to bypass defining a default strategy.

Note:

For .NET Core this operation is only available in asynchronous form. Please refer to PutClusterCapacityProvidersAsync.

Namespace: Amazon.ECS
Assembly: AWSSDK.ECS.dll
Version: 3.x.y.z

Syntax

C#
public abstract PutClusterCapacityProvidersResponse PutClusterCapacityProviders(
         PutClusterCapacityProvidersRequest request
)

Parameters

request
Type: Amazon.ECS.Model.PutClusterCapacityProvidersRequest

Container for the necessary parameters to execute the PutClusterCapacityProviders service method.

Return Value


The response from the PutClusterCapacityProviders service method, as returned by ECS.

Exceptions

ExceptionCondition
ClientException These errors are usually caused by a client action. This client action might be using an action or resource on behalf of a user that doesn't have permissions to use the action or resource. Or, it might be specifying an identifier that isn't valid.
ClusterNotFoundException The specified cluster wasn't found. You can view your available clusters with ListClusters. Amazon ECS clusters are Region specific.
InvalidParameterException The specified parameter isn't valid. Review the available parameters for the API request. For more information about service event errors, see Amazon ECS service event messages.
ResourceInUseException The specified resource is in-use and can't be removed.
ServerException These errors are usually caused by a server issue.
UpdateInProgressException There's already a current Amazon ECS container agent update in progress on the container instance that's specified. If the container agent becomes disconnected while it's in a transitional stage, such as PENDING or STAGING, the update process can get stuck in that state. However, when the agent reconnects, it resumes where it stopped previously.

Examples

This example adds an existing capacity provider "MyCapacityProvider2" to a cluster that already has the capacity provider "MyCapacityProvider1" associated with it. Both "MyCapacityProvider2" and "MyCapacityProvider1" need to be specified.

To add an existing capacity provider to a cluuster


var client = new AmazonECSClient();
var response = client.PutClusterCapacityProviders(new PutClusterCapacityProvidersRequest 
{
    CapacityProviders = new List<string> {
        "MyCapacityProvider1",
        "MyCapacityProvider2"
    },
    Cluster = "MyCluster",
    DefaultCapacityProviderStrategy = new List<CapacityProviderStrategyItem> {
        new CapacityProviderStrategyItem {
            CapacityProvider = "MyCapacityProvider1",
            Weight = 1
        },
        new CapacityProviderStrategyItem {
            CapacityProvider = "MyCapacityProvider2",
            Weight = 1
        }
    }
});

Cluster cluster = response.Cluster;

            

This example removes a capacity provider "MyCapacityProvider2" from a cluster that has both "MyCapacityProvider2" and "MyCapacityProvider1" associated with it. Only "MyCapacityProvider1" needs to be specified in this scenario.

To remove a capacity provider from a cluster


var client = new AmazonECSClient();
var response = client.PutClusterCapacityProviders(new PutClusterCapacityProvidersRequest 
{
    CapacityProviders = new List<string> {
        "MyCapacityProvider1"
    },
    Cluster = "MyCluster",
    DefaultCapacityProviderStrategy = new List<CapacityProviderStrategyItem> {
        new CapacityProviderStrategyItem {
            Base = 0,
            CapacityProvider = "MyCapacityProvider1",
            Weight = 1
        }
    }
});

Cluster cluster = response.Cluster;

            

This example removes all capacity providers associated with a cluster.

To remove all capacity providers from a cluster


var client = new AmazonECSClient();
var response = client.PutClusterCapacityProviders(new PutClusterCapacityProvidersRequest 
{
    CapacityProviders = new List<string> {
                    
    },
    Cluster = "MyCluster",
    DefaultCapacityProviderStrategy = new List<CapacityProviderStrategyItem> {
                    
    }
});

Cluster cluster = response.Cluster;

            

Version Information

.NET Framework:
Supported in: 4.5 and newer, 3.5

See Also