/** * 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 namespace Aws { namespace EKS { namespace Model { /** */ class CreateAddonRequest : public EKSRequest { public: AWS_EKS_API CreateAddonRequest(); // 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 "CreateAddon"; } AWS_EKS_API Aws::String SerializePayload() const override; /** *

The name of the cluster to create the add-on for.

*/ inline const Aws::String& GetClusterName() const{ return m_clusterName; } /** *

The name of the cluster to create the add-on for.

*/ inline bool ClusterNameHasBeenSet() const { return m_clusterNameHasBeenSet; } /** *

The name of the cluster to create the add-on for.

*/ inline void SetClusterName(const Aws::String& value) { m_clusterNameHasBeenSet = true; m_clusterName = value; } /** *

The name of the cluster to create the add-on for.

*/ inline void SetClusterName(Aws::String&& value) { m_clusterNameHasBeenSet = true; m_clusterName = std::move(value); } /** *

The name of the cluster to create the add-on for.

*/ inline void SetClusterName(const char* value) { m_clusterNameHasBeenSet = true; m_clusterName.assign(value); } /** *

The name of the cluster to create the add-on for.

*/ inline CreateAddonRequest& WithClusterName(const Aws::String& value) { SetClusterName(value); return *this;} /** *

The name of the cluster to create the add-on for.

*/ inline CreateAddonRequest& WithClusterName(Aws::String&& value) { SetClusterName(std::move(value)); return *this;} /** *

The name of the cluster to create the add-on for.

*/ inline CreateAddonRequest& WithClusterName(const char* value) { SetClusterName(value); return *this;} /** *

The name of the add-on. The name must match one of the names that * DescribeAddonVersions returns.

*/ inline const Aws::String& GetAddonName() const{ return m_addonName; } /** *

The name of the add-on. The name must match one of the names that * DescribeAddonVersions returns.

*/ inline bool AddonNameHasBeenSet() const { return m_addonNameHasBeenSet; } /** *

The name of the add-on. The name must match one of the names that * DescribeAddonVersions returns.

*/ inline void SetAddonName(const Aws::String& value) { m_addonNameHasBeenSet = true; m_addonName = value; } /** *

The name of the add-on. The name must match one of the names that * DescribeAddonVersions returns.

*/ inline void SetAddonName(Aws::String&& value) { m_addonNameHasBeenSet = true; m_addonName = std::move(value); } /** *

The name of the add-on. The name must match one of the names that * DescribeAddonVersions returns.

*/ inline void SetAddonName(const char* value) { m_addonNameHasBeenSet = true; m_addonName.assign(value); } /** *

The name of the add-on. The name must match one of the names that * DescribeAddonVersions returns.

*/ inline CreateAddonRequest& WithAddonName(const Aws::String& value) { SetAddonName(value); return *this;} /** *

The name of the add-on. The name must match one of the names that * DescribeAddonVersions returns.

*/ inline CreateAddonRequest& WithAddonName(Aws::String&& value) { SetAddonName(std::move(value)); return *this;} /** *

The name of the add-on. The name must match one of the names that * DescribeAddonVersions returns.

*/ inline CreateAddonRequest& WithAddonName(const char* value) { SetAddonName(value); return *this;} /** *

The version of the add-on. The version must match one of the versions * returned by * DescribeAddonVersions .

*/ inline const Aws::String& GetAddonVersion() const{ return m_addonVersion; } /** *

The version of the add-on. The version must match one of the versions * returned by * DescribeAddonVersions .

*/ inline bool AddonVersionHasBeenSet() const { return m_addonVersionHasBeenSet; } /** *

The version of the add-on. The version must match one of the versions * returned by * DescribeAddonVersions .

*/ inline void SetAddonVersion(const Aws::String& value) { m_addonVersionHasBeenSet = true; m_addonVersion = value; } /** *

The version of the add-on. The version must match one of the versions * returned by * DescribeAddonVersions .

*/ inline void SetAddonVersion(Aws::String&& value) { m_addonVersionHasBeenSet = true; m_addonVersion = std::move(value); } /** *

The version of the add-on. The version must match one of the versions * returned by * DescribeAddonVersions .

*/ inline void SetAddonVersion(const char* value) { m_addonVersionHasBeenSet = true; m_addonVersion.assign(value); } /** *

The version of the add-on. The version must match one of the versions * returned by * DescribeAddonVersions .

*/ inline CreateAddonRequest& WithAddonVersion(const Aws::String& value) { SetAddonVersion(value); return *this;} /** *

The version of the add-on. The version must match one of the versions * returned by * DescribeAddonVersions .

*/ inline CreateAddonRequest& WithAddonVersion(Aws::String&& value) { SetAddonVersion(std::move(value)); return *this;} /** *

The version of the add-on. The version must match one of the versions * returned by * DescribeAddonVersions .

*/ inline CreateAddonRequest& WithAddonVersion(const char* value) { SetAddonVersion(value); return *this;} /** *

The Amazon Resource Name (ARN) of an existing IAM role to bind to the * add-on's service account. The role must be assigned the IAM permissions required * by the add-on. If you don't specify an existing IAM role, then the add-on uses * the permissions assigned to the node IAM role. For more information, see Amazon * EKS node IAM role in the Amazon EKS User Guide.

To * specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) * provider created for your cluster. For more information, see Enabling * IAM roles for service accounts on your cluster in the Amazon EKS User * Guide.

*/ inline const Aws::String& GetServiceAccountRoleArn() const{ return m_serviceAccountRoleArn; } /** *

The Amazon Resource Name (ARN) of an existing IAM role to bind to the * add-on's service account. The role must be assigned the IAM permissions required * by the add-on. If you don't specify an existing IAM role, then the add-on uses * the permissions assigned to the node IAM role. For more information, see Amazon * EKS node IAM role in the Amazon EKS User Guide.

To * specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) * provider created for your cluster. For more information, see Enabling * IAM roles for service accounts on your cluster in the Amazon EKS User * Guide.

*/ inline bool ServiceAccountRoleArnHasBeenSet() const { return m_serviceAccountRoleArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of an existing IAM role to bind to the * add-on's service account. The role must be assigned the IAM permissions required * by the add-on. If you don't specify an existing IAM role, then the add-on uses * the permissions assigned to the node IAM role. For more information, see Amazon * EKS node IAM role in the Amazon EKS User Guide.

To * specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) * provider created for your cluster. For more information, see Enabling * IAM roles for service accounts on your cluster in the Amazon EKS User * Guide.

*/ inline void SetServiceAccountRoleArn(const Aws::String& value) { m_serviceAccountRoleArnHasBeenSet = true; m_serviceAccountRoleArn = value; } /** *

The Amazon Resource Name (ARN) of an existing IAM role to bind to the * add-on's service account. The role must be assigned the IAM permissions required * by the add-on. If you don't specify an existing IAM role, then the add-on uses * the permissions assigned to the node IAM role. For more information, see Amazon * EKS node IAM role in the Amazon EKS User Guide.

To * specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) * provider created for your cluster. For more information, see Enabling * IAM roles for service accounts on your cluster in the Amazon EKS User * Guide.

*/ inline void SetServiceAccountRoleArn(Aws::String&& value) { m_serviceAccountRoleArnHasBeenSet = true; m_serviceAccountRoleArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of an existing IAM role to bind to the * add-on's service account. The role must be assigned the IAM permissions required * by the add-on. If you don't specify an existing IAM role, then the add-on uses * the permissions assigned to the node IAM role. For more information, see Amazon * EKS node IAM role in the Amazon EKS User Guide.

To * specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) * provider created for your cluster. For more information, see Enabling * IAM roles for service accounts on your cluster in the Amazon EKS User * Guide.

*/ inline void SetServiceAccountRoleArn(const char* value) { m_serviceAccountRoleArnHasBeenSet = true; m_serviceAccountRoleArn.assign(value); } /** *

The Amazon Resource Name (ARN) of an existing IAM role to bind to the * add-on's service account. The role must be assigned the IAM permissions required * by the add-on. If you don't specify an existing IAM role, then the add-on uses * the permissions assigned to the node IAM role. For more information, see Amazon * EKS node IAM role in the Amazon EKS User Guide.

To * specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) * provider created for your cluster. For more information, see Enabling * IAM roles for service accounts on your cluster in the Amazon EKS User * Guide.

*/ inline CreateAddonRequest& WithServiceAccountRoleArn(const Aws::String& value) { SetServiceAccountRoleArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of an existing IAM role to bind to the * add-on's service account. The role must be assigned the IAM permissions required * by the add-on. If you don't specify an existing IAM role, then the add-on uses * the permissions assigned to the node IAM role. For more information, see Amazon * EKS node IAM role in the Amazon EKS User Guide.

To * specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) * provider created for your cluster. For more information, see Enabling * IAM roles for service accounts on your cluster in the Amazon EKS User * Guide.

*/ inline CreateAddonRequest& WithServiceAccountRoleArn(Aws::String&& value) { SetServiceAccountRoleArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of an existing IAM role to bind to the * add-on's service account. The role must be assigned the IAM permissions required * by the add-on. If you don't specify an existing IAM role, then the add-on uses * the permissions assigned to the node IAM role. For more information, see Amazon * EKS node IAM role in the Amazon EKS User Guide.

To * specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) * provider created for your cluster. For more information, see Enabling * IAM roles for service accounts on your cluster in the Amazon EKS User * Guide.

*/ inline CreateAddonRequest& WithServiceAccountRoleArn(const char* value) { SetServiceAccountRoleArn(value); return *this;} /** *

How to resolve field value conflicts for an Amazon EKS add-on. Conflicts are * handled based on the value you choose:

  • None – If the * self-managed version of the add-on is installed on your cluster, Amazon EKS * doesn't change the value. Creation of the add-on might fail.

  • * Overwrite – If the self-managed version of the add-on is installed on * your cluster and the Amazon EKS default value is different than the existing * value, Amazon EKS changes the value to the Amazon EKS default value.

  • *
  • Preserve – Not supported. You can set this value when updating * an add-on though. For more information, see UpdateAddon.

    *

If you don't currently have the self-managed version of the * add-on installed on your cluster, the Amazon EKS add-on is installed. Amazon EKS * sets all values to default values, regardless of the option that you * specify.

*/ inline const ResolveConflicts& GetResolveConflicts() const{ return m_resolveConflicts; } /** *

How to resolve field value conflicts for an Amazon EKS add-on. Conflicts are * handled based on the value you choose:

  • None – If the * self-managed version of the add-on is installed on your cluster, Amazon EKS * doesn't change the value. Creation of the add-on might fail.

  • * Overwrite – If the self-managed version of the add-on is installed on * your cluster and the Amazon EKS default value is different than the existing * value, Amazon EKS changes the value to the Amazon EKS default value.

  • *
  • Preserve – Not supported. You can set this value when updating * an add-on though. For more information, see UpdateAddon.

    *

If you don't currently have the self-managed version of the * add-on installed on your cluster, the Amazon EKS add-on is installed. Amazon EKS * sets all values to default values, regardless of the option that you * specify.

*/ inline bool ResolveConflictsHasBeenSet() const { return m_resolveConflictsHasBeenSet; } /** *

How to resolve field value conflicts for an Amazon EKS add-on. Conflicts are * handled based on the value you choose:

  • None – If the * self-managed version of the add-on is installed on your cluster, Amazon EKS * doesn't change the value. Creation of the add-on might fail.

  • * Overwrite – If the self-managed version of the add-on is installed on * your cluster and the Amazon EKS default value is different than the existing * value, Amazon EKS changes the value to the Amazon EKS default value.

  • *
  • Preserve – Not supported. You can set this value when updating * an add-on though. For more information, see UpdateAddon.

    *

If you don't currently have the self-managed version of the * add-on installed on your cluster, the Amazon EKS add-on is installed. Amazon EKS * sets all values to default values, regardless of the option that you * specify.

*/ inline void SetResolveConflicts(const ResolveConflicts& value) { m_resolveConflictsHasBeenSet = true; m_resolveConflicts = value; } /** *

How to resolve field value conflicts for an Amazon EKS add-on. Conflicts are * handled based on the value you choose:

  • None – If the * self-managed version of the add-on is installed on your cluster, Amazon EKS * doesn't change the value. Creation of the add-on might fail.

  • * Overwrite – If the self-managed version of the add-on is installed on * your cluster and the Amazon EKS default value is different than the existing * value, Amazon EKS changes the value to the Amazon EKS default value.

  • *
  • Preserve – Not supported. You can set this value when updating * an add-on though. For more information, see UpdateAddon.

    *

If you don't currently have the self-managed version of the * add-on installed on your cluster, the Amazon EKS add-on is installed. Amazon EKS * sets all values to default values, regardless of the option that you * specify.

*/ inline void SetResolveConflicts(ResolveConflicts&& value) { m_resolveConflictsHasBeenSet = true; m_resolveConflicts = std::move(value); } /** *

How to resolve field value conflicts for an Amazon EKS add-on. Conflicts are * handled based on the value you choose:

  • None – If the * self-managed version of the add-on is installed on your cluster, Amazon EKS * doesn't change the value. Creation of the add-on might fail.

  • * Overwrite – If the self-managed version of the add-on is installed on * your cluster and the Amazon EKS default value is different than the existing * value, Amazon EKS changes the value to the Amazon EKS default value.

  • *
  • Preserve – Not supported. You can set this value when updating * an add-on though. For more information, see UpdateAddon.

    *

If you don't currently have the self-managed version of the * add-on installed on your cluster, the Amazon EKS add-on is installed. Amazon EKS * sets all values to default values, regardless of the option that you * specify.

*/ inline CreateAddonRequest& WithResolveConflicts(const ResolveConflicts& value) { SetResolveConflicts(value); return *this;} /** *

How to resolve field value conflicts for an Amazon EKS add-on. Conflicts are * handled based on the value you choose:

  • None – If the * self-managed version of the add-on is installed on your cluster, Amazon EKS * doesn't change the value. Creation of the add-on might fail.

  • * Overwrite – If the self-managed version of the add-on is installed on * your cluster and the Amazon EKS default value is different than the existing * value, Amazon EKS changes the value to the Amazon EKS default value.

  • *
  • Preserve – Not supported. You can set this value when updating * an add-on though. For more information, see UpdateAddon.

    *

If you don't currently have the self-managed version of the * add-on installed on your cluster, the Amazon EKS add-on is installed. Amazon EKS * sets all values to default values, regardless of the option that you * specify.

*/ inline CreateAddonRequest& WithResolveConflicts(ResolveConflicts&& value) { SetResolveConflicts(std::move(value)); return *this;} /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency of the request.

*/ inline const Aws::String& GetClientRequestToken() const{ return m_clientRequestToken; } /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency of the request.

*/ inline bool ClientRequestTokenHasBeenSet() const { return m_clientRequestTokenHasBeenSet; } /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency of the request.

*/ inline void SetClientRequestToken(const Aws::String& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = value; } /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency of the request.

*/ inline void SetClientRequestToken(Aws::String&& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = std::move(value); } /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency of the request.

*/ inline void SetClientRequestToken(const char* value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken.assign(value); } /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency of the request.

*/ inline CreateAddonRequest& WithClientRequestToken(const Aws::String& value) { SetClientRequestToken(value); return *this;} /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency of the request.

*/ inline CreateAddonRequest& WithClientRequestToken(Aws::String&& value) { SetClientRequestToken(std::move(value)); return *this;} /** *

A unique, case-sensitive identifier that you provide to ensure the * idempotency of the request.

*/ inline CreateAddonRequest& WithClientRequestToken(const char* value) { SetClientRequestToken(value); return *this;} /** *

The metadata to apply to the cluster to assist with categorization and * organization. Each tag consists of a key and an optional value. You define * both.

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

The metadata to apply to the cluster to assist with categorization and * organization. Each tag consists of a key and an optional value. You define * both.

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

The metadata to apply to the cluster to assist with categorization and * organization. Each tag consists of a key and an optional value. You define * both.

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

The metadata to apply to the cluster to assist with categorization and * organization. Each tag consists of a key and an optional value. You define * both.

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

The metadata to apply to the cluster to assist with categorization and * organization. Each tag consists of a key and an optional value. You define * both.

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

The metadata to apply to the cluster to assist with categorization and * organization. Each tag consists of a key and an optional value. You define * both.

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

The metadata to apply to the cluster to assist with categorization and * organization. Each tag consists of a key and an optional value. You define * both.

*/ inline CreateAddonRequest& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

The metadata to apply to the cluster to assist with categorization and * organization. Each tag consists of a key and an optional value. You define * both.

*/ inline CreateAddonRequest& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

The metadata to apply to the cluster to assist with categorization and * organization. Each tag consists of a key and an optional value. You define * both.

*/ inline CreateAddonRequest& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

The metadata to apply to the cluster to assist with categorization and * organization. Each tag consists of a key and an optional value. You define * both.

*/ inline CreateAddonRequest& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } /** *

The metadata to apply to the cluster to assist with categorization and * organization. Each tag consists of a key and an optional value. You define * both.

*/ inline CreateAddonRequest& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

The metadata to apply to the cluster to assist with categorization and * organization. Each tag consists of a key and an optional value. You define * both.

*/ inline CreateAddonRequest& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

The metadata to apply to the cluster to assist with categorization and * organization. Each tag consists of a key and an optional value. You define * both.

*/ inline CreateAddonRequest& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

The set of configuration values for the add-on that's created. The values * that you provide are validated against the schema in * DescribeAddonConfiguration .

*/ inline const Aws::String& GetConfigurationValues() const{ return m_configurationValues; } /** *

The set of configuration values for the add-on that's created. The values * that you provide are validated against the schema in * DescribeAddonConfiguration .

*/ inline bool ConfigurationValuesHasBeenSet() const { return m_configurationValuesHasBeenSet; } /** *

The set of configuration values for the add-on that's created. The values * that you provide are validated against the schema in * DescribeAddonConfiguration .

*/ inline void SetConfigurationValues(const Aws::String& value) { m_configurationValuesHasBeenSet = true; m_configurationValues = value; } /** *

The set of configuration values for the add-on that's created. The values * that you provide are validated against the schema in * DescribeAddonConfiguration .

*/ inline void SetConfigurationValues(Aws::String&& value) { m_configurationValuesHasBeenSet = true; m_configurationValues = std::move(value); } /** *

The set of configuration values for the add-on that's created. The values * that you provide are validated against the schema in * DescribeAddonConfiguration .

*/ inline void SetConfigurationValues(const char* value) { m_configurationValuesHasBeenSet = true; m_configurationValues.assign(value); } /** *

The set of configuration values for the add-on that's created. The values * that you provide are validated against the schema in * DescribeAddonConfiguration .

*/ inline CreateAddonRequest& WithConfigurationValues(const Aws::String& value) { SetConfigurationValues(value); return *this;} /** *

The set of configuration values for the add-on that's created. The values * that you provide are validated against the schema in * DescribeAddonConfiguration .

*/ inline CreateAddonRequest& WithConfigurationValues(Aws::String&& value) { SetConfigurationValues(std::move(value)); return *this;} /** *

The set of configuration values for the add-on that's created. The values * that you provide are validated against the schema in * DescribeAddonConfiguration .

*/ inline CreateAddonRequest& WithConfigurationValues(const char* value) { SetConfigurationValues(value); return *this;} private: Aws::String m_clusterName; bool m_clusterNameHasBeenSet = false; Aws::String m_addonName; bool m_addonNameHasBeenSet = false; Aws::String m_addonVersion; bool m_addonVersionHasBeenSet = false; Aws::String m_serviceAccountRoleArn; bool m_serviceAccountRoleArnHasBeenSet = false; ResolveConflicts m_resolveConflicts; bool m_resolveConflictsHasBeenSet = false; Aws::String m_clientRequestToken; bool m_clientRequestTokenHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; Aws::String m_configurationValues; bool m_configurationValuesHasBeenSet = false; }; } // namespace Model } // namespace EKS } // namespace Aws