// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`UpdateAddon`](crate::operation::update_addon::builders::UpdateAddonFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`cluster_name(impl Into<String>)`](crate::operation::update_addon::builders::UpdateAddonFluentBuilder::cluster_name) / [`set_cluster_name(Option<String>)`](crate::operation::update_addon::builders::UpdateAddonFluentBuilder::set_cluster_name):<br>required: **true**<br><p>The name of your cluster.</p><br>
/// - [`addon_name(impl Into<String>)`](crate::operation::update_addon::builders::UpdateAddonFluentBuilder::addon_name) / [`set_addon_name(Option<String>)`](crate::operation::update_addon::builders::UpdateAddonFluentBuilder::set_addon_name):<br>required: **true**<br><p>The name of the add-on. The name must match one of the names returned by <a href="https://docs.aws.amazon.com/eks/latest/APIReference/API_ListAddons.html"> <code>ListAddons</code> </a>.</p><br>
/// - [`addon_version(impl Into<String>)`](crate::operation::update_addon::builders::UpdateAddonFluentBuilder::addon_version) / [`set_addon_version(Option<String>)`](crate::operation::update_addon::builders::UpdateAddonFluentBuilder::set_addon_version):<br>required: **false**<br><p>The version of the add-on. The version must match one of the versions returned by <a href="https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html"> <code>DescribeAddonVersions</code> </a>.</p><br>
/// - [`service_account_role_arn(impl Into<String>)`](crate::operation::update_addon::builders::UpdateAddonFluentBuilder::service_account_role_arn) / [`set_service_account_role_arn(Option<String>)`](crate::operation::update_addon::builders::UpdateAddonFluentBuilder::set_service_account_role_arn):<br>required: **false**<br><p>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 <a href="https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html">Amazon EKS node IAM role</a> in the <i>Amazon EKS User Guide</i>.</p><note> <p>To specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) provider created for your cluster. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html">Enabling IAM roles for service accounts on your cluster</a> in the <i>Amazon EKS User Guide</i>.</p> </note><br>
/// - [`resolve_conflicts(ResolveConflicts)`](crate::operation::update_addon::builders::UpdateAddonFluentBuilder::resolve_conflicts) / [`set_resolve_conflicts(Option<ResolveConflicts>)`](crate::operation::update_addon::builders::UpdateAddonFluentBuilder::set_resolve_conflicts):<br>required: **false**<br><p>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:</p> <ul> <li> <p><b>None</b> – Amazon EKS doesn't change the value. The update might fail.</p></li> <li> <p><b>Overwrite</b> – Amazon EKS overwrites the changed value back to the Amazon EKS default value.</p></li> <li> <p><b>Preserve</b> – 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.</p></li> </ul><br>
/// - [`client_request_token(impl Into<String>)`](crate::operation::update_addon::builders::UpdateAddonFluentBuilder::client_request_token) / [`set_client_request_token(Option<String>)`](crate::operation::update_addon::builders::UpdateAddonFluentBuilder::set_client_request_token):<br>required: **false**<br><p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p><br>
/// - [`configuration_values(impl Into<String>)`](crate::operation::update_addon::builders::UpdateAddonFluentBuilder::configuration_values) / [`set_configuration_values(Option<String>)`](crate::operation::update_addon::builders::UpdateAddonFluentBuilder::set_configuration_values):<br>required: **false**<br><p>The set of configuration values for the add-on that's created. The values that you provide are validated against the schema returned by <code>DescribeAddonConfiguration</code>.</p><br>
/// - On success, responds with [`UpdateAddonOutput`](crate::operation::update_addon::UpdateAddonOutput) with field(s):
/// - [`update(Option<Update>)`](crate::operation::update_addon::UpdateAddonOutput::update): <p>An object representing an asynchronous update.</p>
/// - On failure, responds with [`SdkError<UpdateAddonError>`](crate::operation::update_addon::UpdateAddonError)
pub fn update_addon(&self) -> crate::operation::update_addon::builders::UpdateAddonFluentBuilder {
crate::operation::update_addon::builders::UpdateAddonFluentBuilder::new(self.handle.clone())
}
}