/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace EKS { namespace Model { /** */ class UpdateAddonRequest : public EKSRequest { public: AWS_EKS_API UpdateAddonRequest(); // 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 "UpdateAddon"; } AWS_EKS_API Aws::String SerializePayload() const override; /** *

The name of the cluster.

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

The name of the cluster.

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

The name of the cluster.

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

The name of the cluster.

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

The name of the cluster.

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

The name of the cluster.

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

The name of the cluster.

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

The name of the cluster.

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

The name of the add-on. The name must match one of the names returned by * ListAddons .

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

The name of the add-on. The name must match one of the names returned by * ListAddons .

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

The name of the add-on. The name must match one of the names returned by * ListAddons .

*/ 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 returned by * ListAddons .

*/ 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 returned by * ListAddons .

*/ 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 returned by * ListAddons .

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

The name of the add-on. The name must match one of the names returned by * ListAddons .

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

The name of the add-on. The name must match one of the names returned by * ListAddons .

*/ inline UpdateAddonRequest& 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 UpdateAddonRequest& 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 UpdateAddonRequest& 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 UpdateAddonRequest& 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 UpdateAddonRequest& 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 UpdateAddonRequest& 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 UpdateAddonRequest& WithServiceAccountRoleArn(const char* value) { SetServiceAccountRoleArn(value); return *this;} /** *

How to resolve field value conflicts for an Amazon EKS add-on if you've * changed a value from the Amazon EKS default value. Conflicts are handled based * on the option you choose:

  • None – Amazon EKS doesn't * change the value. The update might fail.

  • Overwrite – * Amazon EKS overwrites the changed value back to the Amazon EKS default * value.

  • Preserve – Amazon EKS preserves the value. If * you choose this option, we recommend that you test any field and value changes * on a non-production cluster before updating the add-on on your production * cluster.

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

How to resolve field value conflicts for an Amazon EKS add-on if you've * changed a value from the Amazon EKS default value. Conflicts are handled based * on the option you choose:

  • None – Amazon EKS doesn't * change the value. The update might fail.

  • Overwrite – * Amazon EKS overwrites the changed value back to the Amazon EKS default * value.

  • Preserve – Amazon EKS preserves the value. If * you choose this option, we recommend that you test any field and value changes * on a non-production cluster before updating the add-on on your production * cluster.

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

How to resolve field value conflicts for an Amazon EKS add-on if you've * changed a value from the Amazon EKS default value. Conflicts are handled based * on the option you choose:

  • None – Amazon EKS doesn't * change the value. The update might fail.

  • Overwrite – * Amazon EKS overwrites the changed value back to the Amazon EKS default * value.

  • Preserve – Amazon EKS preserves the value. If * you choose this option, we recommend that you test any field and value changes * on a non-production cluster before updating the add-on on your production * cluster.

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

How to resolve field value conflicts for an Amazon EKS add-on if you've * changed a value from the Amazon EKS default value. Conflicts are handled based * on the option you choose:

  • None – Amazon EKS doesn't * change the value. The update might fail.

  • Overwrite – * Amazon EKS overwrites the changed value back to the Amazon EKS default * value.

  • Preserve – Amazon EKS preserves the value. If * you choose this option, we recommend that you test any field and value changes * on a non-production cluster before updating the add-on on your production * cluster.

*/ 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 if you've * changed a value from the Amazon EKS default value. Conflicts are handled based * on the option you choose:

  • None – Amazon EKS doesn't * change the value. The update might fail.

  • Overwrite – * Amazon EKS overwrites the changed value back to the Amazon EKS default * value.

  • Preserve – Amazon EKS preserves the value. If * you choose this option, we recommend that you test any field and value changes * on a non-production cluster before updating the add-on on your production * cluster.

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

How to resolve field value conflicts for an Amazon EKS add-on if you've * changed a value from the Amazon EKS default value. Conflicts are handled based * on the option you choose:

  • None – Amazon EKS doesn't * change the value. The update might fail.

  • Overwrite – * Amazon EKS overwrites the changed value back to the Amazon EKS default * value.

  • Preserve – Amazon EKS preserves the value. If * you choose this option, we recommend that you test any field and value changes * on a non-production cluster before updating the add-on on your production * cluster.

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

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

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

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

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

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; } /** *

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); } /** *

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); } /** *

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

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

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

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

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

*/ inline UpdateAddonRequest& WithClientRequestToken(const char* value) { SetClientRequestToken(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 UpdateAddonRequest& 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 UpdateAddonRequest& 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 UpdateAddonRequest& 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::String m_configurationValues; bool m_configurationValuesHasBeenSet = false; }; } // namespace Model } // namespace EKS } // namespace Aws