/** * 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 #include #include namespace Aws { namespace ECS { namespace Model { /** */ class RegisterContainerInstanceRequest : public ECSRequest { public: AWS_ECS_API RegisterContainerInstanceRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "RegisterContainerInstance"; } AWS_ECS_API Aws::String SerializePayload() const override; AWS_ECS_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The short name or full Amazon Resource Name (ARN) of the cluster to register * your container instance with. If you do not specify a cluster, the default * cluster is assumed.

*/ inline const Aws::String& GetCluster() const{ return m_cluster; } /** *

The short name or full Amazon Resource Name (ARN) of the cluster to register * your container instance with. If you do not specify a cluster, the default * cluster is assumed.

*/ inline bool ClusterHasBeenSet() const { return m_clusterHasBeenSet; } /** *

The short name or full Amazon Resource Name (ARN) of the cluster to register * your container instance with. If you do not specify a cluster, the default * cluster is assumed.

*/ inline void SetCluster(const Aws::String& value) { m_clusterHasBeenSet = true; m_cluster = value; } /** *

The short name or full Amazon Resource Name (ARN) of the cluster to register * your container instance with. If you do not specify a cluster, the default * cluster is assumed.

*/ inline void SetCluster(Aws::String&& value) { m_clusterHasBeenSet = true; m_cluster = std::move(value); } /** *

The short name or full Amazon Resource Name (ARN) of the cluster to register * your container instance with. If you do not specify a cluster, the default * cluster is assumed.

*/ inline void SetCluster(const char* value) { m_clusterHasBeenSet = true; m_cluster.assign(value); } /** *

The short name or full Amazon Resource Name (ARN) of the cluster to register * your container instance with. If you do not specify a cluster, the default * cluster is assumed.

*/ inline RegisterContainerInstanceRequest& WithCluster(const Aws::String& value) { SetCluster(value); return *this;} /** *

The short name or full Amazon Resource Name (ARN) of the cluster to register * your container instance with. If you do not specify a cluster, the default * cluster is assumed.

*/ inline RegisterContainerInstanceRequest& WithCluster(Aws::String&& value) { SetCluster(std::move(value)); return *this;} /** *

The short name or full Amazon Resource Name (ARN) of the cluster to register * your container instance with. If you do not specify a cluster, the default * cluster is assumed.

*/ inline RegisterContainerInstanceRequest& WithCluster(const char* value) { SetCluster(value); return *this;} /** *

The instance identity document for the EC2 instance to register. This * document can be found by running the following command from the instance: * curl * http://169.254.169.254/latest/dynamic/instance-identity/document/

*/ inline const Aws::String& GetInstanceIdentityDocument() const{ return m_instanceIdentityDocument; } /** *

The instance identity document for the EC2 instance to register. This * document can be found by running the following command from the instance: * curl * http://169.254.169.254/latest/dynamic/instance-identity/document/

*/ inline bool InstanceIdentityDocumentHasBeenSet() const { return m_instanceIdentityDocumentHasBeenSet; } /** *

The instance identity document for the EC2 instance to register. This * document can be found by running the following command from the instance: * curl * http://169.254.169.254/latest/dynamic/instance-identity/document/

*/ inline void SetInstanceIdentityDocument(const Aws::String& value) { m_instanceIdentityDocumentHasBeenSet = true; m_instanceIdentityDocument = value; } /** *

The instance identity document for the EC2 instance to register. This * document can be found by running the following command from the instance: * curl * http://169.254.169.254/latest/dynamic/instance-identity/document/

*/ inline void SetInstanceIdentityDocument(Aws::String&& value) { m_instanceIdentityDocumentHasBeenSet = true; m_instanceIdentityDocument = std::move(value); } /** *

The instance identity document for the EC2 instance to register. This * document can be found by running the following command from the instance: * curl * http://169.254.169.254/latest/dynamic/instance-identity/document/

*/ inline void SetInstanceIdentityDocument(const char* value) { m_instanceIdentityDocumentHasBeenSet = true; m_instanceIdentityDocument.assign(value); } /** *

The instance identity document for the EC2 instance to register. This * document can be found by running the following command from the instance: * curl * http://169.254.169.254/latest/dynamic/instance-identity/document/

*/ inline RegisterContainerInstanceRequest& WithInstanceIdentityDocument(const Aws::String& value) { SetInstanceIdentityDocument(value); return *this;} /** *

The instance identity document for the EC2 instance to register. This * document can be found by running the following command from the instance: * curl * http://169.254.169.254/latest/dynamic/instance-identity/document/

*/ inline RegisterContainerInstanceRequest& WithInstanceIdentityDocument(Aws::String&& value) { SetInstanceIdentityDocument(std::move(value)); return *this;} /** *

The instance identity document for the EC2 instance to register. This * document can be found by running the following command from the instance: * curl * http://169.254.169.254/latest/dynamic/instance-identity/document/

*/ inline RegisterContainerInstanceRequest& WithInstanceIdentityDocument(const char* value) { SetInstanceIdentityDocument(value); return *this;} /** *

The instance identity document signature for the EC2 instance to register. * This signature can be found by running the following command from the instance: * curl * http://169.254.169.254/latest/dynamic/instance-identity/signature/

*/ inline const Aws::String& GetInstanceIdentityDocumentSignature() const{ return m_instanceIdentityDocumentSignature; } /** *

The instance identity document signature for the EC2 instance to register. * This signature can be found by running the following command from the instance: * curl * http://169.254.169.254/latest/dynamic/instance-identity/signature/

*/ inline bool InstanceIdentityDocumentSignatureHasBeenSet() const { return m_instanceIdentityDocumentSignatureHasBeenSet; } /** *

The instance identity document signature for the EC2 instance to register. * This signature can be found by running the following command from the instance: * curl * http://169.254.169.254/latest/dynamic/instance-identity/signature/

*/ inline void SetInstanceIdentityDocumentSignature(const Aws::String& value) { m_instanceIdentityDocumentSignatureHasBeenSet = true; m_instanceIdentityDocumentSignature = value; } /** *

The instance identity document signature for the EC2 instance to register. * This signature can be found by running the following command from the instance: * curl * http://169.254.169.254/latest/dynamic/instance-identity/signature/

*/ inline void SetInstanceIdentityDocumentSignature(Aws::String&& value) { m_instanceIdentityDocumentSignatureHasBeenSet = true; m_instanceIdentityDocumentSignature = std::move(value); } /** *

The instance identity document signature for the EC2 instance to register. * This signature can be found by running the following command from the instance: * curl * http://169.254.169.254/latest/dynamic/instance-identity/signature/

*/ inline void SetInstanceIdentityDocumentSignature(const char* value) { m_instanceIdentityDocumentSignatureHasBeenSet = true; m_instanceIdentityDocumentSignature.assign(value); } /** *

The instance identity document signature for the EC2 instance to register. * This signature can be found by running the following command from the instance: * curl * http://169.254.169.254/latest/dynamic/instance-identity/signature/

*/ inline RegisterContainerInstanceRequest& WithInstanceIdentityDocumentSignature(const Aws::String& value) { SetInstanceIdentityDocumentSignature(value); return *this;} /** *

The instance identity document signature for the EC2 instance to register. * This signature can be found by running the following command from the instance: * curl * http://169.254.169.254/latest/dynamic/instance-identity/signature/

*/ inline RegisterContainerInstanceRequest& WithInstanceIdentityDocumentSignature(Aws::String&& value) { SetInstanceIdentityDocumentSignature(std::move(value)); return *this;} /** *

The instance identity document signature for the EC2 instance to register. * This signature can be found by running the following command from the instance: * curl * http://169.254.169.254/latest/dynamic/instance-identity/signature/

*/ inline RegisterContainerInstanceRequest& WithInstanceIdentityDocumentSignature(const char* value) { SetInstanceIdentityDocumentSignature(value); return *this;} /** *

The resources available on the instance.

*/ inline const Aws::Vector& GetTotalResources() const{ return m_totalResources; } /** *

The resources available on the instance.

*/ inline bool TotalResourcesHasBeenSet() const { return m_totalResourcesHasBeenSet; } /** *

The resources available on the instance.

*/ inline void SetTotalResources(const Aws::Vector& value) { m_totalResourcesHasBeenSet = true; m_totalResources = value; } /** *

The resources available on the instance.

*/ inline void SetTotalResources(Aws::Vector&& value) { m_totalResourcesHasBeenSet = true; m_totalResources = std::move(value); } /** *

The resources available on the instance.

*/ inline RegisterContainerInstanceRequest& WithTotalResources(const Aws::Vector& value) { SetTotalResources(value); return *this;} /** *

The resources available on the instance.

*/ inline RegisterContainerInstanceRequest& WithTotalResources(Aws::Vector&& value) { SetTotalResources(std::move(value)); return *this;} /** *

The resources available on the instance.

*/ inline RegisterContainerInstanceRequest& AddTotalResources(const Resource& value) { m_totalResourcesHasBeenSet = true; m_totalResources.push_back(value); return *this; } /** *

The resources available on the instance.

*/ inline RegisterContainerInstanceRequest& AddTotalResources(Resource&& value) { m_totalResourcesHasBeenSet = true; m_totalResources.push_back(std::move(value)); return *this; } /** *

The version information for the Amazon ECS container agent and Docker daemon * that runs on the container instance.

*/ inline const VersionInfo& GetVersionInfo() const{ return m_versionInfo; } /** *

The version information for the Amazon ECS container agent and Docker daemon * that runs on the container instance.

*/ inline bool VersionInfoHasBeenSet() const { return m_versionInfoHasBeenSet; } /** *

The version information for the Amazon ECS container agent and Docker daemon * that runs on the container instance.

*/ inline void SetVersionInfo(const VersionInfo& value) { m_versionInfoHasBeenSet = true; m_versionInfo = value; } /** *

The version information for the Amazon ECS container agent and Docker daemon * that runs on the container instance.

*/ inline void SetVersionInfo(VersionInfo&& value) { m_versionInfoHasBeenSet = true; m_versionInfo = std::move(value); } /** *

The version information for the Amazon ECS container agent and Docker daemon * that runs on the container instance.

*/ inline RegisterContainerInstanceRequest& WithVersionInfo(const VersionInfo& value) { SetVersionInfo(value); return *this;} /** *

The version information for the Amazon ECS container agent and Docker daemon * that runs on the container instance.

*/ inline RegisterContainerInstanceRequest& WithVersionInfo(VersionInfo&& value) { SetVersionInfo(std::move(value)); return *this;} /** *

The ARN of the container instance (if it was previously registered).

*/ inline const Aws::String& GetContainerInstanceArn() const{ return m_containerInstanceArn; } /** *

The ARN of the container instance (if it was previously registered).

*/ inline bool ContainerInstanceArnHasBeenSet() const { return m_containerInstanceArnHasBeenSet; } /** *

The ARN of the container instance (if it was previously registered).

*/ inline void SetContainerInstanceArn(const Aws::String& value) { m_containerInstanceArnHasBeenSet = true; m_containerInstanceArn = value; } /** *

The ARN of the container instance (if it was previously registered).

*/ inline void SetContainerInstanceArn(Aws::String&& value) { m_containerInstanceArnHasBeenSet = true; m_containerInstanceArn = std::move(value); } /** *

The ARN of the container instance (if it was previously registered).

*/ inline void SetContainerInstanceArn(const char* value) { m_containerInstanceArnHasBeenSet = true; m_containerInstanceArn.assign(value); } /** *

The ARN of the container instance (if it was previously registered).

*/ inline RegisterContainerInstanceRequest& WithContainerInstanceArn(const Aws::String& value) { SetContainerInstanceArn(value); return *this;} /** *

The ARN of the container instance (if it was previously registered).

*/ inline RegisterContainerInstanceRequest& WithContainerInstanceArn(Aws::String&& value) { SetContainerInstanceArn(std::move(value)); return *this;} /** *

The ARN of the container instance (if it was previously registered).

*/ inline RegisterContainerInstanceRequest& WithContainerInstanceArn(const char* value) { SetContainerInstanceArn(value); return *this;} /** *

The container instance attributes that this container instance supports.

*/ inline const Aws::Vector& GetAttributes() const{ return m_attributes; } /** *

The container instance attributes that this container instance supports.

*/ inline bool AttributesHasBeenSet() const { return m_attributesHasBeenSet; } /** *

The container instance attributes that this container instance supports.

*/ inline void SetAttributes(const Aws::Vector& value) { m_attributesHasBeenSet = true; m_attributes = value; } /** *

The container instance attributes that this container instance supports.

*/ inline void SetAttributes(Aws::Vector&& value) { m_attributesHasBeenSet = true; m_attributes = std::move(value); } /** *

The container instance attributes that this container instance supports.

*/ inline RegisterContainerInstanceRequest& WithAttributes(const Aws::Vector& value) { SetAttributes(value); return *this;} /** *

The container instance attributes that this container instance supports.

*/ inline RegisterContainerInstanceRequest& WithAttributes(Aws::Vector&& value) { SetAttributes(std::move(value)); return *this;} /** *

The container instance attributes that this container instance supports.

*/ inline RegisterContainerInstanceRequest& AddAttributes(const Attribute& value) { m_attributesHasBeenSet = true; m_attributes.push_back(value); return *this; } /** *

The container instance attributes that this container instance supports.

*/ inline RegisterContainerInstanceRequest& AddAttributes(Attribute&& value) { m_attributesHasBeenSet = true; m_attributes.push_back(std::move(value)); return *this; } /** *

The devices that are available on the container instance. The only supported * device type is a GPU.

*/ inline const Aws::Vector& GetPlatformDevices() const{ return m_platformDevices; } /** *

The devices that are available on the container instance. The only supported * device type is a GPU.

*/ inline bool PlatformDevicesHasBeenSet() const { return m_platformDevicesHasBeenSet; } /** *

The devices that are available on the container instance. The only supported * device type is a GPU.

*/ inline void SetPlatformDevices(const Aws::Vector& value) { m_platformDevicesHasBeenSet = true; m_platformDevices = value; } /** *

The devices that are available on the container instance. The only supported * device type is a GPU.

*/ inline void SetPlatformDevices(Aws::Vector&& value) { m_platformDevicesHasBeenSet = true; m_platformDevices = std::move(value); } /** *

The devices that are available on the container instance. The only supported * device type is a GPU.

*/ inline RegisterContainerInstanceRequest& WithPlatformDevices(const Aws::Vector& value) { SetPlatformDevices(value); return *this;} /** *

The devices that are available on the container instance. The only supported * device type is a GPU.

*/ inline RegisterContainerInstanceRequest& WithPlatformDevices(Aws::Vector&& value) { SetPlatformDevices(std::move(value)); return *this;} /** *

The devices that are available on the container instance. The only supported * device type is a GPU.

*/ inline RegisterContainerInstanceRequest& AddPlatformDevices(const PlatformDevice& value) { m_platformDevicesHasBeenSet = true; m_platformDevices.push_back(value); return *this; } /** *

The devices that are available on the container instance. The only supported * device type is a GPU.

*/ inline RegisterContainerInstanceRequest& AddPlatformDevices(PlatformDevice&& value) { m_platformDevicesHasBeenSet = true; m_platformDevices.push_back(std::move(value)); return *this; } /** *

The metadata that you apply to the container instance to help you categorize * and organize them. 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 container instance to help you categorize * and organize them. 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 container instance to help you categorize * and organize them. 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 container instance to help you categorize * and organize them. 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 container instance to help you categorize * and organize them. 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 RegisterContainerInstanceRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

The metadata that you apply to the container instance to help you categorize * and organize them. 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 RegisterContainerInstanceRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

The metadata that you apply to the container instance to help you categorize * and organize them. 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 RegisterContainerInstanceRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

The metadata that you apply to the container instance to help you categorize * and organize them. 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 RegisterContainerInstanceRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_cluster; bool m_clusterHasBeenSet = false; Aws::String m_instanceIdentityDocument; bool m_instanceIdentityDocumentHasBeenSet = false; Aws::String m_instanceIdentityDocumentSignature; bool m_instanceIdentityDocumentSignatureHasBeenSet = false; Aws::Vector m_totalResources; bool m_totalResourcesHasBeenSet = false; VersionInfo m_versionInfo; bool m_versionInfoHasBeenSet = false; Aws::String m_containerInstanceArn; bool m_containerInstanceArnHasBeenSet = false; Aws::Vector m_attributes; bool m_attributesHasBeenSet = false; Aws::Vector m_platformDevices; bool m_platformDevicesHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace ECS } // namespace Aws