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

software.amazon.awssdk.services.elasticache.model.IncreaseNodeGroupsInGlobalReplicationGroupRequest Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon ElastiCache module holds the client classes that are used for communicating with Amazon ElastiCache Service

There is a newer version: 2.29.39
Show newest version
/*
 * 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.elasticache.model;

import java.util.Arrays;
import java.util.Collection;
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 java.util.stream.Collectors;
import java.util.stream.Stream;
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.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.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;

/**
 */
@Generated("software.amazon.awssdk:codegen")
public final class IncreaseNodeGroupsInGlobalReplicationGroupRequest extends ElastiCacheRequest
        implements
        ToCopyableBuilder {
    private static final SdkField GLOBAL_REPLICATION_GROUP_ID_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("GlobalReplicationGroupId")
            .getter(getter(IncreaseNodeGroupsInGlobalReplicationGroupRequest::globalReplicationGroupId))
            .setter(setter(Builder::globalReplicationGroupId))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("GlobalReplicationGroupId").build())
            .build();

    private static final SdkField NODE_GROUP_COUNT_FIELD = SdkField. builder(MarshallingType.INTEGER)
            .memberName("NodeGroupCount").getter(getter(IncreaseNodeGroupsInGlobalReplicationGroupRequest::nodeGroupCount))
            .setter(setter(Builder::nodeGroupCount))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("NodeGroupCount").build()).build();

    private static final SdkField> REGIONAL_CONFIGURATIONS_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .memberName("RegionalConfigurations")
            .getter(getter(IncreaseNodeGroupsInGlobalReplicationGroupRequest::regionalConfigurations))
            .setter(setter(Builder::regionalConfigurations))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("RegionalConfigurations").build(),
                    ListTrait
                            .builder()
                            .memberLocationName("RegionalConfiguration")
                            .memberFieldInfo(
                                    SdkField. builder(MarshallingType.SDK_POJO)
                                            .constructor(RegionalConfiguration::builder)
                                            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                                                    .locationName("RegionalConfiguration").build()).build()).build()).build();

    private static final SdkField APPLY_IMMEDIATELY_FIELD = SdkField. builder(MarshallingType.BOOLEAN)
            .memberName("ApplyImmediately").getter(getter(IncreaseNodeGroupsInGlobalReplicationGroupRequest::applyImmediately))
            .setter(setter(Builder::applyImmediately))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ApplyImmediately").build()).build();

    private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(
            GLOBAL_REPLICATION_GROUP_ID_FIELD, NODE_GROUP_COUNT_FIELD, REGIONAL_CONFIGURATIONS_FIELD, APPLY_IMMEDIATELY_FIELD));

    private final String globalReplicationGroupId;

    private final Integer nodeGroupCount;

    private final List regionalConfigurations;

    private final Boolean applyImmediately;

    private IncreaseNodeGroupsInGlobalReplicationGroupRequest(BuilderImpl builder) {
        super(builder);
        this.globalReplicationGroupId = builder.globalReplicationGroupId;
        this.nodeGroupCount = builder.nodeGroupCount;
        this.regionalConfigurations = builder.regionalConfigurations;
        this.applyImmediately = builder.applyImmediately;
    }

    /**
     * 

* The name of the Global Datastore *

* * @return The name of the Global Datastore */ public final String globalReplicationGroupId() { return globalReplicationGroupId; } /** *

* The number of node groups you wish to add *

* * @return The number of node groups you wish to add */ public final Integer nodeGroupCount() { return nodeGroupCount; } /** * Returns true if the RegionalConfigurations property was specified by the sender (it may be empty), or false if * the sender did not specify the value (it will be empty). For responses returned by the SDK, the sender is the AWS * service. */ public final boolean hasRegionalConfigurations() { return regionalConfigurations != null && !(regionalConfigurations instanceof SdkAutoConstructList); } /** *

* Describes the replication group IDs, the AWS regions where they are stored and the shard configuration for each * that comprise the Global Datastore *

*

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

*

* You can use {@link #hasRegionalConfigurations()} to see if a value was sent in this field. *

* * @return Describes the replication group IDs, the AWS regions where they are stored and the shard configuration * for each that comprise the Global Datastore */ public final List regionalConfigurations() { return regionalConfigurations; } /** *

* Indicates that the process begins immediately. At present, the only permitted value for this parameter is true. *

* * @return Indicates that the process begins immediately. At present, the only permitted value for this parameter is * true. */ public final Boolean applyImmediately() { return applyImmediately; } @Override public Builder toBuilder() { return new BuilderImpl(this); } public static Builder builder() { return new BuilderImpl(); } public static Class serializableBuilderClass() { return BuilderImpl.class; } @Override public final int hashCode() { int hashCode = 1; hashCode = 31 * hashCode + super.hashCode(); hashCode = 31 * hashCode + Objects.hashCode(globalReplicationGroupId()); hashCode = 31 * hashCode + Objects.hashCode(nodeGroupCount()); hashCode = 31 * hashCode + Objects.hashCode(hasRegionalConfigurations() ? regionalConfigurations() : null); hashCode = 31 * hashCode + Objects.hashCode(applyImmediately()); 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 IncreaseNodeGroupsInGlobalReplicationGroupRequest)) { return false; } IncreaseNodeGroupsInGlobalReplicationGroupRequest other = (IncreaseNodeGroupsInGlobalReplicationGroupRequest) obj; return Objects.equals(globalReplicationGroupId(), other.globalReplicationGroupId()) && Objects.equals(nodeGroupCount(), other.nodeGroupCount()) && hasRegionalConfigurations() == other.hasRegionalConfigurations() && Objects.equals(regionalConfigurations(), other.regionalConfigurations()) && Objects.equals(applyImmediately(), other.applyImmediately()); } /** * 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("IncreaseNodeGroupsInGlobalReplicationGroupRequest") .add("GlobalReplicationGroupId", globalReplicationGroupId()).add("NodeGroupCount", nodeGroupCount()) .add("RegionalConfigurations", hasRegionalConfigurations() ? regionalConfigurations() : null) .add("ApplyImmediately", applyImmediately()).build(); } public final Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "GlobalReplicationGroupId": return Optional.ofNullable(clazz.cast(globalReplicationGroupId())); case "NodeGroupCount": return Optional.ofNullable(clazz.cast(nodeGroupCount())); case "RegionalConfigurations": return Optional.ofNullable(clazz.cast(regionalConfigurations())); case "ApplyImmediately": return Optional.ofNullable(clazz.cast(applyImmediately())); default: return Optional.empty(); } } @Override public final List> sdkFields() { return SDK_FIELDS; } private static Function getter(Function g) { return obj -> g.apply((IncreaseNodeGroupsInGlobalReplicationGroupRequest) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends ElastiCacheRequest.Builder, SdkPojo, CopyableBuilder { /** *

* The name of the Global Datastore *

* * @param globalReplicationGroupId * The name of the Global Datastore * @return Returns a reference to this object so that method calls can be chained together. */ Builder globalReplicationGroupId(String globalReplicationGroupId); /** *

* The number of node groups you wish to add *

* * @param nodeGroupCount * The number of node groups you wish to add * @return Returns a reference to this object so that method calls can be chained together. */ Builder nodeGroupCount(Integer nodeGroupCount); /** *

* Describes the replication group IDs, the AWS regions where they are stored and the shard configuration for * each that comprise the Global Datastore *

* * @param regionalConfigurations * Describes the replication group IDs, the AWS regions where they are stored and the shard configuration * for each that comprise the Global Datastore * @return Returns a reference to this object so that method calls can be chained together. */ Builder regionalConfigurations(Collection regionalConfigurations); /** *

* Describes the replication group IDs, the AWS regions where they are stored and the shard configuration for * each that comprise the Global Datastore *

* * @param regionalConfigurations * Describes the replication group IDs, the AWS regions where they are stored and the shard configuration * for each that comprise the Global Datastore * @return Returns a reference to this object so that method calls can be chained together. */ Builder regionalConfigurations(RegionalConfiguration... regionalConfigurations); /** *

* Describes the replication group IDs, the AWS regions where they are stored and the shard configuration for * each that comprise the Global Datastore *

* This is a convenience that creates an instance of the {@link List.Builder} avoiding * the need to create one manually via {@link List#builder()}. * * When the {@link Consumer} completes, {@link List.Builder#build()} is called * immediately and its result is passed to {@link #regionalConfigurations(List)}. * * @param regionalConfigurations * a consumer that will call methods on {@link List.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #regionalConfigurations(List) */ Builder regionalConfigurations(Consumer... regionalConfigurations); /** *

* Indicates that the process begins immediately. At present, the only permitted value for this parameter is * true. *

* * @param applyImmediately * Indicates that the process begins immediately. At present, the only permitted value for this parameter * is true. * @return Returns a reference to this object so that method calls can be chained together. */ Builder applyImmediately(Boolean applyImmediately); @Override Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration); @Override Builder overrideConfiguration(Consumer builderConsumer); } static final class BuilderImpl extends ElastiCacheRequest.BuilderImpl implements Builder { private String globalReplicationGroupId; private Integer nodeGroupCount; private List regionalConfigurations = DefaultSdkAutoConstructList.getInstance(); private Boolean applyImmediately; private BuilderImpl() { } private BuilderImpl(IncreaseNodeGroupsInGlobalReplicationGroupRequest model) { super(model); globalReplicationGroupId(model.globalReplicationGroupId); nodeGroupCount(model.nodeGroupCount); regionalConfigurations(model.regionalConfigurations); applyImmediately(model.applyImmediately); } public final String getGlobalReplicationGroupId() { return globalReplicationGroupId; } @Override public final Builder globalReplicationGroupId(String globalReplicationGroupId) { this.globalReplicationGroupId = globalReplicationGroupId; return this; } public final void setGlobalReplicationGroupId(String globalReplicationGroupId) { this.globalReplicationGroupId = globalReplicationGroupId; } public final Integer getNodeGroupCount() { return nodeGroupCount; } @Override public final Builder nodeGroupCount(Integer nodeGroupCount) { this.nodeGroupCount = nodeGroupCount; return this; } public final void setNodeGroupCount(Integer nodeGroupCount) { this.nodeGroupCount = nodeGroupCount; } public final Collection getRegionalConfigurations() { if (regionalConfigurations instanceof SdkAutoConstructList) { return null; } return regionalConfigurations != null ? regionalConfigurations.stream().map(RegionalConfiguration::toBuilder) .collect(Collectors.toList()) : null; } @Override public final Builder regionalConfigurations(Collection regionalConfigurations) { this.regionalConfigurations = RegionalConfigurationListCopier.copy(regionalConfigurations); return this; } @Override @SafeVarargs public final Builder regionalConfigurations(RegionalConfiguration... regionalConfigurations) { regionalConfigurations(Arrays.asList(regionalConfigurations)); return this; } @Override @SafeVarargs public final Builder regionalConfigurations(Consumer... regionalConfigurations) { regionalConfigurations(Stream.of(regionalConfigurations) .map(c -> RegionalConfiguration.builder().applyMutation(c).build()).collect(Collectors.toList())); return this; } public final void setRegionalConfigurations(Collection regionalConfigurations) { this.regionalConfigurations = RegionalConfigurationListCopier.copyFromBuilder(regionalConfigurations); } public final Boolean getApplyImmediately() { return applyImmediately; } @Override public final Builder applyImmediately(Boolean applyImmediately) { this.applyImmediately = applyImmediately; return this; } public final void setApplyImmediately(Boolean applyImmediately) { this.applyImmediately = applyImmediately; } @Override public Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration) { super.overrideConfiguration(overrideConfiguration); return this; } @Override public Builder overrideConfiguration(Consumer builderConsumer) { super.overrideConfiguration(builderConsumer); return this; } @Override public IncreaseNodeGroupsInGlobalReplicationGroupRequest build() { return new IncreaseNodeGroupsInGlobalReplicationGroupRequest(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy