All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.eks.model.UnsupportedAvailabilityZoneException 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.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.BiConsumer;
import java.util.function.Function;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.awscore.exception.AwsErrorDetails;
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.ListTrait;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructList;
import software.amazon.awssdk.core.util.SdkAutoConstructList;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;

/**
 * 

* At least one of your specified cluster subnets is in an Availability Zone that does not support Amazon EKS. The * exception output specifies the supported Availability Zones for your account, from which you can choose subnets for * your cluster. *

*/ @Generated("software.amazon.awssdk:codegen") public final class UnsupportedAvailabilityZoneException extends EksException implements ToCopyableBuilder { private static final SdkField CLUSTER_NAME_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("clusterName").getter(getter(UnsupportedAvailabilityZoneException::clusterName)) .setter(setter(Builder::clusterName)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("clusterName").build()).build(); private static final SdkField NODEGROUP_NAME_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("nodegroupName").getter(getter(UnsupportedAvailabilityZoneException::nodegroupName)) .setter(setter(Builder::nodegroupName)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("nodegroupName").build()).build(); private static final SdkField> VALID_ZONES_FIELD = SdkField .> builder(MarshallingType.LIST) .memberName("validZones") .getter(getter(UnsupportedAvailabilityZoneException::validZones)) .setter(setter(Builder::validZones)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("validZones").build(), ListTrait .builder() .memberLocationName(null) .memberFieldInfo( SdkField. builder(MarshallingType.STRING) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD) .locationName("member").build()).build()).build()).build(); private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(CLUSTER_NAME_FIELD, NODEGROUP_NAME_FIELD, VALID_ZONES_FIELD)); private static final Map> SDK_NAME_TO_FIELD = memberNameToFieldInitializer(); private static final long serialVersionUID = 1L; private final String clusterName; private final String nodegroupName; private final List validZones; private UnsupportedAvailabilityZoneException(BuilderImpl builder) { super(builder); this.clusterName = builder.clusterName; this.nodegroupName = builder.nodegroupName; this.validZones = builder.validZones; } @Override public Builder toBuilder() { return new BuilderImpl(this); } public static Builder builder() { return new BuilderImpl(); } public static Class serializableBuilderClass() { return BuilderImpl.class; } /** *

* The Amazon EKS cluster associated with the exception. *

* * @return The Amazon EKS cluster associated with the exception. */ public String clusterName() { return clusterName; } /** *

* The Amazon EKS managed node group associated with the exception. *

* * @return The Amazon EKS managed node group associated with the exception. */ public String nodegroupName() { return nodegroupName; } /** * For responses, this returns true if the service returned a value for the ValidZones property. This DOES NOT check * that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). This is * useful because the SDK will never return a null collection or map, but you may need to differentiate between the * service returning nothing (or null) and the service returning an empty collection or map. For requests, this * returns true if a value for the property was specified in the request builder, and false if a value was not * specified. */ public boolean hasValidZones() { return validZones != null && !(validZones instanceof SdkAutoConstructList); } /** *

* The supported Availability Zones for your account. Choose subnets in these Availability Zones for your cluster. *

*

* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

*

* This method will never return null. If you would like to know whether the service returned this field (so that * you can differentiate between null and empty), you can use the {@link #hasValidZones} method. *

* * @return The supported Availability Zones for your account. Choose subnets in these Availability Zones for your * cluster. */ public List validZones() { return validZones; } @Override public final List> sdkFields() { return SDK_FIELDS; } @Override public final Map> sdkFieldNameToField() { return SDK_NAME_TO_FIELD; } private static Map> memberNameToFieldInitializer() { Map> map = new HashMap<>(); map.put("clusterName", CLUSTER_NAME_FIELD); map.put("nodegroupName", NODEGROUP_NAME_FIELD); map.put("validZones", VALID_ZONES_FIELD); return Collections.unmodifiableMap(map); } private static Function getter(Function g) { return obj -> g.apply((UnsupportedAvailabilityZoneException) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends SdkPojo, CopyableBuilder, EksException.Builder { /** *

* The Amazon EKS cluster associated with the exception. *

* * @param clusterName * The Amazon EKS cluster associated with the exception. * @return Returns a reference to this object so that method calls can be chained together. */ Builder clusterName(String clusterName); /** *

* The Amazon EKS managed node group associated with the exception. *

* * @param nodegroupName * The Amazon EKS managed node group associated with the exception. * @return Returns a reference to this object so that method calls can be chained together. */ Builder nodegroupName(String nodegroupName); /** *

* The supported Availability Zones for your account. Choose subnets in these Availability Zones for your * cluster. *

* * @param validZones * The supported Availability Zones for your account. Choose subnets in these Availability Zones for your * cluster. * @return Returns a reference to this object so that method calls can be chained together. */ Builder validZones(Collection validZones); /** *

* The supported Availability Zones for your account. Choose subnets in these Availability Zones for your * cluster. *

* * @param validZones * The supported Availability Zones for your account. Choose subnets in these Availability Zones for your * cluster. * @return Returns a reference to this object so that method calls can be chained together. */ Builder validZones(String... validZones); @Override Builder awsErrorDetails(AwsErrorDetails awsErrorDetails); @Override Builder message(String message); @Override Builder requestId(String requestId); @Override Builder statusCode(int statusCode); @Override Builder cause(Throwable cause); @Override Builder writableStackTrace(Boolean writableStackTrace); } static final class BuilderImpl extends EksException.BuilderImpl implements Builder { private String clusterName; private String nodegroupName; private List validZones = DefaultSdkAutoConstructList.getInstance(); private BuilderImpl() { } private BuilderImpl(UnsupportedAvailabilityZoneException model) { super(model); clusterName(model.clusterName); nodegroupName(model.nodegroupName); validZones(model.validZones); } public final String getClusterName() { return clusterName; } public final void setClusterName(String clusterName) { this.clusterName = clusterName; } @Override public final Builder clusterName(String clusterName) { this.clusterName = clusterName; return this; } public final String getNodegroupName() { return nodegroupName; } public final void setNodegroupName(String nodegroupName) { this.nodegroupName = nodegroupName; } @Override public final Builder nodegroupName(String nodegroupName) { this.nodegroupName = nodegroupName; return this; } public final Collection getValidZones() { if (validZones instanceof SdkAutoConstructList) { return null; } return validZones; } public final void setValidZones(Collection validZones) { this.validZones = StringListCopier.copy(validZones); } @Override public final Builder validZones(Collection validZones) { this.validZones = StringListCopier.copy(validZones); return this; } @Override @SafeVarargs public final Builder validZones(String... validZones) { validZones(Arrays.asList(validZones)); return this; } @Override public BuilderImpl awsErrorDetails(AwsErrorDetails awsErrorDetails) { this.awsErrorDetails = awsErrorDetails; return this; } @Override public BuilderImpl message(String message) { this.message = message; return this; } @Override public BuilderImpl requestId(String requestId) { this.requestId = requestId; return this; } @Override public BuilderImpl statusCode(int statusCode) { this.statusCode = statusCode; return this; } @Override public BuilderImpl cause(Throwable cause) { this.cause = cause; return this; } @Override public BuilderImpl writableStackTrace(Boolean writableStackTrace) { this.writableStackTrace = writableStackTrace; return this; } @Override public UnsupportedAvailabilityZoneException build() { return new UnsupportedAvailabilityZoneException(this); } @Override public List> sdkFields() { return SDK_FIELDS; } @Override public Map> sdkFieldNameToField() { return SDK_NAME_TO_FIELD; } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy