
software.amazon.awssdk.services.eks.model.UpdateAddonRequest Maven / Gradle / Ivy
/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
package software.amazon.awssdk.services.eks.model;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.DefaultValueTrait;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
*/
@Generated("software.amazon.awssdk:codegen")
public final class UpdateAddonRequest extends EksRequest implements
ToCopyableBuilder {
private static final SdkField CLUSTER_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("clusterName").getter(getter(UpdateAddonRequest::clusterName)).setter(setter(Builder::clusterName))
.traits(LocationTrait.builder().location(MarshallLocation.PATH).locationName("name").build()).build();
private static final SdkField ADDON_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("addonName").getter(getter(UpdateAddonRequest::addonName)).setter(setter(Builder::addonName))
.traits(LocationTrait.builder().location(MarshallLocation.PATH).locationName("addonName").build()).build();
private static final SdkField ADDON_VERSION_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("addonVersion").getter(getter(UpdateAddonRequest::addonVersion)).setter(setter(Builder::addonVersion))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("addonVersion").build()).build();
private static final SdkField SERVICE_ACCOUNT_ROLE_ARN_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("serviceAccountRoleArn").getter(getter(UpdateAddonRequest::serviceAccountRoleArn))
.setter(setter(Builder::serviceAccountRoleArn))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("serviceAccountRoleArn").build())
.build();
private static final SdkField RESOLVE_CONFLICTS_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("resolveConflicts").getter(getter(UpdateAddonRequest::resolveConflictsAsString))
.setter(setter(Builder::resolveConflicts))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("resolveConflicts").build()).build();
private static final SdkField CLIENT_REQUEST_TOKEN_FIELD = SdkField
. builder(MarshallingType.STRING)
.memberName("clientRequestToken")
.getter(getter(UpdateAddonRequest::clientRequestToken))
.setter(setter(Builder::clientRequestToken))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("clientRequestToken").build(),
DefaultValueTrait.idempotencyToken()).build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(CLUSTER_NAME_FIELD,
ADDON_NAME_FIELD, ADDON_VERSION_FIELD, SERVICE_ACCOUNT_ROLE_ARN_FIELD, RESOLVE_CONFLICTS_FIELD,
CLIENT_REQUEST_TOKEN_FIELD));
private final String clusterName;
private final String addonName;
private final String addonVersion;
private final String serviceAccountRoleArn;
private final String resolveConflicts;
private final String clientRequestToken;
private UpdateAddonRequest(BuilderImpl builder) {
super(builder);
this.clusterName = builder.clusterName;
this.addonName = builder.addonName;
this.addonVersion = builder.addonVersion;
this.serviceAccountRoleArn = builder.serviceAccountRoleArn;
this.resolveConflicts = builder.resolveConflicts;
this.clientRequestToken = builder.clientRequestToken;
}
/**
*
* The name of the cluster.
*
*
* @return The name of the cluster.
*/
public final String clusterName() {
return clusterName;
}
/**
*
* The name of the add-on. The name must match one of the names returned by ListAddons
.
*
*
* @return The name of the add-on. The name must match one of the names returned by ListAddons
* .
*/
public final String addonName() {
return addonName;
}
/**
*
* The version of the add-on. The version must match one of the versions returned by
* DescribeAddonVersions
.
*
*
* @return The version of the add-on. The version must match one of the versions returned by
* DescribeAddonVersions
.
*/
public final String addonVersion() {
return addonVersion;
}
/**
*
* 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.
*
*
*
* @return 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.
*
*/
public final String serviceAccountRoleArn() {
return serviceAccountRoleArn;
}
/**
*
* How to resolve parameter value conflicts when applying the new version of the add-on to the cluster.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #resolveConflicts}
* will return {@link ResolveConflicts#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #resolveConflictsAsString}.
*
*
* @return How to resolve parameter value conflicts when applying the new version of the add-on to the cluster.
* @see ResolveConflicts
*/
public final ResolveConflicts resolveConflicts() {
return ResolveConflicts.fromValue(resolveConflicts);
}
/**
*
* How to resolve parameter value conflicts when applying the new version of the add-on to the cluster.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #resolveConflicts}
* will return {@link ResolveConflicts#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available
* from {@link #resolveConflictsAsString}.
*
*
* @return How to resolve parameter value conflicts when applying the new version of the add-on to the cluster.
* @see ResolveConflicts
*/
public final String resolveConflictsAsString() {
return resolveConflicts;
}
/**
*
* Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
*
*
* @return Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
*/
public final String clientRequestToken() {
return clientRequestToken;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class extends Builder> serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public final int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + super.hashCode();
hashCode = 31 * hashCode + Objects.hashCode(clusterName());
hashCode = 31 * hashCode + Objects.hashCode(addonName());
hashCode = 31 * hashCode + Objects.hashCode(addonVersion());
hashCode = 31 * hashCode + Objects.hashCode(serviceAccountRoleArn());
hashCode = 31 * hashCode + Objects.hashCode(resolveConflictsAsString());
hashCode = 31 * hashCode + Objects.hashCode(clientRequestToken());
return hashCode;
}
@Override
public final boolean equals(Object obj) {
return super.equals(obj) && equalsBySdkFields(obj);
}
@Override
public final boolean equalsBySdkFields(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof UpdateAddonRequest)) {
return false;
}
UpdateAddonRequest other = (UpdateAddonRequest) obj;
return Objects.equals(clusterName(), other.clusterName()) && Objects.equals(addonName(), other.addonName())
&& Objects.equals(addonVersion(), other.addonVersion())
&& Objects.equals(serviceAccountRoleArn(), other.serviceAccountRoleArn())
&& Objects.equals(resolveConflictsAsString(), other.resolveConflictsAsString())
&& Objects.equals(clientRequestToken(), other.clientRequestToken());
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*/
@Override
public final String toString() {
return ToString.builder("UpdateAddonRequest").add("ClusterName", clusterName()).add("AddonName", addonName())
.add("AddonVersion", addonVersion()).add("ServiceAccountRoleArn", serviceAccountRoleArn())
.add("ResolveConflicts", resolveConflictsAsString()).add("ClientRequestToken", clientRequestToken()).build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "clusterName":
return Optional.ofNullable(clazz.cast(clusterName()));
case "addonName":
return Optional.ofNullable(clazz.cast(addonName()));
case "addonVersion":
return Optional.ofNullable(clazz.cast(addonVersion()));
case "serviceAccountRoleArn":
return Optional.ofNullable(clazz.cast(serviceAccountRoleArn()));
case "resolveConflicts":
return Optional.ofNullable(clazz.cast(resolveConflictsAsString()));
case "clientRequestToken":
return Optional.ofNullable(clazz.cast(clientRequestToken()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function