/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ECS { namespace Model { /** *

The details for a capacity provider.

See Also:

AWS * API Reference

*/ class CapacityProvider { public: AWS_ECS_API CapacityProvider(); AWS_ECS_API CapacityProvider(Aws::Utils::Json::JsonView jsonValue); AWS_ECS_API CapacityProvider& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_ECS_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The Amazon Resource Name (ARN) that identifies the capacity provider.

*/ inline const Aws::String& GetCapacityProviderArn() const{ return m_capacityProviderArn; } /** *

The Amazon Resource Name (ARN) that identifies the capacity provider.

*/ inline bool CapacityProviderArnHasBeenSet() const { return m_capacityProviderArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) that identifies the capacity provider.

*/ inline void SetCapacityProviderArn(const Aws::String& value) { m_capacityProviderArnHasBeenSet = true; m_capacityProviderArn = value; } /** *

The Amazon Resource Name (ARN) that identifies the capacity provider.

*/ inline void SetCapacityProviderArn(Aws::String&& value) { m_capacityProviderArnHasBeenSet = true; m_capacityProviderArn = std::move(value); } /** *

The Amazon Resource Name (ARN) that identifies the capacity provider.

*/ inline void SetCapacityProviderArn(const char* value) { m_capacityProviderArnHasBeenSet = true; m_capacityProviderArn.assign(value); } /** *

The Amazon Resource Name (ARN) that identifies the capacity provider.

*/ inline CapacityProvider& WithCapacityProviderArn(const Aws::String& value) { SetCapacityProviderArn(value); return *this;} /** *

The Amazon Resource Name (ARN) that identifies the capacity provider.

*/ inline CapacityProvider& WithCapacityProviderArn(Aws::String&& value) { SetCapacityProviderArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) that identifies the capacity provider.

*/ inline CapacityProvider& WithCapacityProviderArn(const char* value) { SetCapacityProviderArn(value); return *this;} /** *

The name of the capacity provider.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the capacity provider.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the capacity provider.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the capacity provider.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the capacity provider.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the capacity provider.

*/ inline CapacityProvider& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the capacity provider.

*/ inline CapacityProvider& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the capacity provider.

*/ inline CapacityProvider& WithName(const char* value) { SetName(value); return *this;} /** *

The current status of the capacity provider. Only capacity providers in an * ACTIVE state can be used in a cluster. When a capacity provider is * successfully deleted, it has an INACTIVE status.

*/ inline const CapacityProviderStatus& GetStatus() const{ return m_status; } /** *

The current status of the capacity provider. Only capacity providers in an * ACTIVE state can be used in a cluster. When a capacity provider is * successfully deleted, it has an INACTIVE status.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The current status of the capacity provider. Only capacity providers in an * ACTIVE state can be used in a cluster. When a capacity provider is * successfully deleted, it has an INACTIVE status.

*/ inline void SetStatus(const CapacityProviderStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The current status of the capacity provider. Only capacity providers in an * ACTIVE state can be used in a cluster. When a capacity provider is * successfully deleted, it has an INACTIVE status.

*/ inline void SetStatus(CapacityProviderStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The current status of the capacity provider. Only capacity providers in an * ACTIVE state can be used in a cluster. When a capacity provider is * successfully deleted, it has an INACTIVE status.

*/ inline CapacityProvider& WithStatus(const CapacityProviderStatus& value) { SetStatus(value); return *this;} /** *

The current status of the capacity provider. Only capacity providers in an * ACTIVE state can be used in a cluster. When a capacity provider is * successfully deleted, it has an INACTIVE status.

*/ inline CapacityProvider& WithStatus(CapacityProviderStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

The Auto Scaling group settings for the capacity provider.

*/ inline const AutoScalingGroupProvider& GetAutoScalingGroupProvider() const{ return m_autoScalingGroupProvider; } /** *

The Auto Scaling group settings for the capacity provider.

*/ inline bool AutoScalingGroupProviderHasBeenSet() const { return m_autoScalingGroupProviderHasBeenSet; } /** *

The Auto Scaling group settings for the capacity provider.

*/ inline void SetAutoScalingGroupProvider(const AutoScalingGroupProvider& value) { m_autoScalingGroupProviderHasBeenSet = true; m_autoScalingGroupProvider = value; } /** *

The Auto Scaling group settings for the capacity provider.

*/ inline void SetAutoScalingGroupProvider(AutoScalingGroupProvider&& value) { m_autoScalingGroupProviderHasBeenSet = true; m_autoScalingGroupProvider = std::move(value); } /** *

The Auto Scaling group settings for the capacity provider.

*/ inline CapacityProvider& WithAutoScalingGroupProvider(const AutoScalingGroupProvider& value) { SetAutoScalingGroupProvider(value); return *this;} /** *

The Auto Scaling group settings for the capacity provider.

*/ inline CapacityProvider& WithAutoScalingGroupProvider(AutoScalingGroupProvider&& value) { SetAutoScalingGroupProvider(std::move(value)); return *this;} /** *

The update status of the capacity provider. The following are the possible * states that is returned.

DELETE_IN_PROGRESS

The * capacity provider is in the process of being deleted.

*
DELETE_COMPLETE

The capacity provider was successfully deleted * and has an INACTIVE status.

DELETE_FAILED
*

The capacity provider can't be deleted. The update status reason provides * further details about why the delete failed.

*/ inline const CapacityProviderUpdateStatus& GetUpdateStatus() const{ return m_updateStatus; } /** *

The update status of the capacity provider. The following are the possible * states that is returned.

DELETE_IN_PROGRESS

The * capacity provider is in the process of being deleted.

*
DELETE_COMPLETE

The capacity provider was successfully deleted * and has an INACTIVE status.

DELETE_FAILED
*

The capacity provider can't be deleted. The update status reason provides * further details about why the delete failed.

*/ inline bool UpdateStatusHasBeenSet() const { return m_updateStatusHasBeenSet; } /** *

The update status of the capacity provider. The following are the possible * states that is returned.

DELETE_IN_PROGRESS

The * capacity provider is in the process of being deleted.

*
DELETE_COMPLETE

The capacity provider was successfully deleted * and has an INACTIVE status.

DELETE_FAILED
*

The capacity provider can't be deleted. The update status reason provides * further details about why the delete failed.

*/ inline void SetUpdateStatus(const CapacityProviderUpdateStatus& value) { m_updateStatusHasBeenSet = true; m_updateStatus = value; } /** *

The update status of the capacity provider. The following are the possible * states that is returned.

DELETE_IN_PROGRESS

The * capacity provider is in the process of being deleted.

*
DELETE_COMPLETE

The capacity provider was successfully deleted * and has an INACTIVE status.

DELETE_FAILED
*

The capacity provider can't be deleted. The update status reason provides * further details about why the delete failed.

*/ inline void SetUpdateStatus(CapacityProviderUpdateStatus&& value) { m_updateStatusHasBeenSet = true; m_updateStatus = std::move(value); } /** *

The update status of the capacity provider. The following are the possible * states that is returned.

DELETE_IN_PROGRESS

The * capacity provider is in the process of being deleted.

*
DELETE_COMPLETE

The capacity provider was successfully deleted * and has an INACTIVE status.

DELETE_FAILED
*

The capacity provider can't be deleted. The update status reason provides * further details about why the delete failed.

*/ inline CapacityProvider& WithUpdateStatus(const CapacityProviderUpdateStatus& value) { SetUpdateStatus(value); return *this;} /** *

The update status of the capacity provider. The following are the possible * states that is returned.

DELETE_IN_PROGRESS

The * capacity provider is in the process of being deleted.

*
DELETE_COMPLETE

The capacity provider was successfully deleted * and has an INACTIVE status.

DELETE_FAILED
*

The capacity provider can't be deleted. The update status reason provides * further details about why the delete failed.

*/ inline CapacityProvider& WithUpdateStatus(CapacityProviderUpdateStatus&& value) { SetUpdateStatus(std::move(value)); return *this;} /** *

The update status reason. This provides further details about the update * status for the capacity provider.

*/ inline const Aws::String& GetUpdateStatusReason() const{ return m_updateStatusReason; } /** *

The update status reason. This provides further details about the update * status for the capacity provider.

*/ inline bool UpdateStatusReasonHasBeenSet() const { return m_updateStatusReasonHasBeenSet; } /** *

The update status reason. This provides further details about the update * status for the capacity provider.

*/ inline void SetUpdateStatusReason(const Aws::String& value) { m_updateStatusReasonHasBeenSet = true; m_updateStatusReason = value; } /** *

The update status reason. This provides further details about the update * status for the capacity provider.

*/ inline void SetUpdateStatusReason(Aws::String&& value) { m_updateStatusReasonHasBeenSet = true; m_updateStatusReason = std::move(value); } /** *

The update status reason. This provides further details about the update * status for the capacity provider.

*/ inline void SetUpdateStatusReason(const char* value) { m_updateStatusReasonHasBeenSet = true; m_updateStatusReason.assign(value); } /** *

The update status reason. This provides further details about the update * status for the capacity provider.

*/ inline CapacityProvider& WithUpdateStatusReason(const Aws::String& value) { SetUpdateStatusReason(value); return *this;} /** *

The update status reason. This provides further details about the update * status for the capacity provider.

*/ inline CapacityProvider& WithUpdateStatusReason(Aws::String&& value) { SetUpdateStatusReason(std::move(value)); return *this;} /** *

The update status reason. This provides further details about the update * status for the capacity provider.

*/ inline CapacityProvider& WithUpdateStatusReason(const char* value) { SetUpdateStatusReason(value); return *this;} /** *

The metadata that you apply to the capacity provider to help you categorize * and organize it. Each tag consists of a key and an optional value. You define * both.

The following basic restrictions apply to tags:

  • *

    Maximum number of tags per resource - 50

  • For each resource, * each tag key must be unique, and each tag key can have only one value.

  • *
  • Maximum key length - 128 Unicode characters in UTF-8

  • *

    Maximum value length - 256 Unicode characters in UTF-8

  • If * your tagging schema is used across multiple services and resources, remember * that other services may have restrictions on allowed characters. Generally * allowed characters are: letters, numbers, and spaces representable in UTF-8, and * the following characters: + - = . _ : / @.

  • Tag keys and values * are case-sensitive.

  • Do not use aws:, * AWS:, or any upper or lowercase combination of such as a prefix for * either keys or values as it is reserved for Amazon Web Services use. You cannot * edit or delete tag keys or values with this prefix. Tags with this prefix do not * count against your tags per resource limit.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

The metadata that you apply to the capacity provider to help you categorize * and organize it. Each tag consists of a key and an optional value. You define * both.

The following basic restrictions apply to tags:

  • *

    Maximum number of tags per resource - 50

  • For each resource, * each tag key must be unique, and each tag key can have only one value.

  • *
  • Maximum key length - 128 Unicode characters in UTF-8

  • *

    Maximum value length - 256 Unicode characters in UTF-8

  • If * your tagging schema is used across multiple services and resources, remember * that other services may have restrictions on allowed characters. Generally * allowed characters are: letters, numbers, and spaces representable in UTF-8, and * the following characters: + - = . _ : / @.

  • Tag keys and values * are case-sensitive.

  • Do not use aws:, * AWS:, or any upper or lowercase combination of such as a prefix for * either keys or values as it is reserved for Amazon Web Services use. You cannot * edit or delete tag keys or values with this prefix. Tags with this prefix do not * count against your tags per resource limit.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

The metadata that you apply to the capacity provider to help you categorize * and organize it. Each tag consists of a key and an optional value. You define * both.

The following basic restrictions apply to tags:

  • *

    Maximum number of tags per resource - 50

  • For each resource, * each tag key must be unique, and each tag key can have only one value.

  • *
  • Maximum key length - 128 Unicode characters in UTF-8

  • *

    Maximum value length - 256 Unicode characters in UTF-8

  • If * your tagging schema is used across multiple services and resources, remember * that other services may have restrictions on allowed characters. Generally * allowed characters are: letters, numbers, and spaces representable in UTF-8, and * the following characters: + - = . _ : / @.

  • Tag keys and values * are case-sensitive.

  • Do not use aws:, * AWS:, or any upper or lowercase combination of such as a prefix for * either keys or values as it is reserved for Amazon Web Services use. You cannot * edit or delete tag keys or values with this prefix. Tags with this prefix do not * count against your tags per resource limit.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

The metadata that you apply to the capacity provider to help you categorize * and organize it. Each tag consists of a key and an optional value. You define * both.

The following basic restrictions apply to tags:

  • *

    Maximum number of tags per resource - 50

  • For each resource, * each tag key must be unique, and each tag key can have only one value.

  • *
  • Maximum key length - 128 Unicode characters in UTF-8

  • *

    Maximum value length - 256 Unicode characters in UTF-8

  • If * your tagging schema is used across multiple services and resources, remember * that other services may have restrictions on allowed characters. Generally * allowed characters are: letters, numbers, and spaces representable in UTF-8, and * the following characters: + - = . _ : / @.

  • Tag keys and values * are case-sensitive.

  • Do not use aws:, * AWS:, or any upper or lowercase combination of such as a prefix for * either keys or values as it is reserved for Amazon Web Services use. You cannot * edit or delete tag keys or values with this prefix. Tags with this prefix do not * count against your tags per resource limit.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

The metadata that you apply to the capacity provider to help you categorize * and organize it. Each tag consists of a key and an optional value. You define * both.

The following basic restrictions apply to tags:

  • *

    Maximum number of tags per resource - 50

  • For each resource, * each tag key must be unique, and each tag key can have only one value.

  • *
  • Maximum key length - 128 Unicode characters in UTF-8

  • *

    Maximum value length - 256 Unicode characters in UTF-8

  • If * your tagging schema is used across multiple services and resources, remember * that other services may have restrictions on allowed characters. Generally * allowed characters are: letters, numbers, and spaces representable in UTF-8, and * the following characters: + - = . _ : / @.

  • Tag keys and values * are case-sensitive.

  • Do not use aws:, * AWS:, or any upper or lowercase combination of such as a prefix for * either keys or values as it is reserved for Amazon Web Services use. You cannot * edit or delete tag keys or values with this prefix. Tags with this prefix do not * count against your tags per resource limit.

*/ inline CapacityProvider& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

The metadata that you apply to the capacity provider to help you categorize * and organize it. Each tag consists of a key and an optional value. You define * both.

The following basic restrictions apply to tags:

  • *

    Maximum number of tags per resource - 50

  • For each resource, * each tag key must be unique, and each tag key can have only one value.

  • *
  • Maximum key length - 128 Unicode characters in UTF-8

  • *

    Maximum value length - 256 Unicode characters in UTF-8

  • If * your tagging schema is used across multiple services and resources, remember * that other services may have restrictions on allowed characters. Generally * allowed characters are: letters, numbers, and spaces representable in UTF-8, and * the following characters: + - = . _ : / @.

  • Tag keys and values * are case-sensitive.

  • Do not use aws:, * AWS:, or any upper or lowercase combination of such as a prefix for * either keys or values as it is reserved for Amazon Web Services use. You cannot * edit or delete tag keys or values with this prefix. Tags with this prefix do not * count against your tags per resource limit.

*/ inline CapacityProvider& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

The metadata that you apply to the capacity provider to help you categorize * and organize it. Each tag consists of a key and an optional value. You define * both.

The following basic restrictions apply to tags:

  • *

    Maximum number of tags per resource - 50

  • For each resource, * each tag key must be unique, and each tag key can have only one value.

  • *
  • Maximum key length - 128 Unicode characters in UTF-8

  • *

    Maximum value length - 256 Unicode characters in UTF-8

  • If * your tagging schema is used across multiple services and resources, remember * that other services may have restrictions on allowed characters. Generally * allowed characters are: letters, numbers, and spaces representable in UTF-8, and * the following characters: + - = . _ : / @.

  • Tag keys and values * are case-sensitive.

  • Do not use aws:, * AWS:, or any upper or lowercase combination of such as a prefix for * either keys or values as it is reserved for Amazon Web Services use. You cannot * edit or delete tag keys or values with this prefix. Tags with this prefix do not * count against your tags per resource limit.

*/ inline CapacityProvider& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

The metadata that you apply to the capacity provider to help you categorize * and organize it. Each tag consists of a key and an optional value. You define * both.

The following basic restrictions apply to tags:

  • *

    Maximum number of tags per resource - 50

  • For each resource, * each tag key must be unique, and each tag key can have only one value.

  • *
  • Maximum key length - 128 Unicode characters in UTF-8

  • *

    Maximum value length - 256 Unicode characters in UTF-8

  • If * your tagging schema is used across multiple services and resources, remember * that other services may have restrictions on allowed characters. Generally * allowed characters are: letters, numbers, and spaces representable in UTF-8, and * the following characters: + - = . _ : / @.

  • Tag keys and values * are case-sensitive.

  • Do not use aws:, * AWS:, or any upper or lowercase combination of such as a prefix for * either keys or values as it is reserved for Amazon Web Services use. You cannot * edit or delete tag keys or values with this prefix. Tags with this prefix do not * count against your tags per resource limit.

*/ inline CapacityProvider& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_capacityProviderArn; bool m_capacityProviderArnHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; CapacityProviderStatus m_status; bool m_statusHasBeenSet = false; AutoScalingGroupProvider m_autoScalingGroupProvider; bool m_autoScalingGroupProviderHasBeenSet = false; CapacityProviderUpdateStatus m_updateStatus; bool m_updateStatusHasBeenSet = false; Aws::String m_updateStatusReason; bool m_updateStatusReasonHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace ECS } // namespace Aws