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

software.amazon.awssdk.services.ec2.model.CreateClientVpnEndpointResponse 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.ec2.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.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.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 CreateClientVpnEndpointResponse extends Ec2Response implements
        ToCopyableBuilder {
    private static final SdkField CLIENT_VPN_ENDPOINT_ID_FIELD = SdkField
            . builder(MarshallingType.STRING)
            .memberName("ClientVpnEndpointId")
            .getter(getter(CreateClientVpnEndpointResponse::clientVpnEndpointId))
            .setter(setter(Builder::clientVpnEndpointId))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ClientVpnEndpointId")
                    .unmarshallLocationName("clientVpnEndpointId").build()).build();

    private static final SdkField STATUS_FIELD = SdkField
            . builder(MarshallingType.SDK_POJO)
            .memberName("Status")
            .getter(getter(CreateClientVpnEndpointResponse::status))
            .setter(setter(Builder::status))
            .constructor(ClientVpnEndpointStatus::builder)
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Status")
                    .unmarshallLocationName("status").build()).build();

    private static final SdkField DNS_NAME_FIELD = SdkField
            . builder(MarshallingType.STRING)
            .memberName("DnsName")
            .getter(getter(CreateClientVpnEndpointResponse::dnsName))
            .setter(setter(Builder::dnsName))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DnsName")
                    .unmarshallLocationName("dnsName").build()).build();

    private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(CLIENT_VPN_ENDPOINT_ID_FIELD,
            STATUS_FIELD, DNS_NAME_FIELD));

    private final String clientVpnEndpointId;

    private final ClientVpnEndpointStatus status;

    private final String dnsName;

    private CreateClientVpnEndpointResponse(BuilderImpl builder) {
        super(builder);
        this.clientVpnEndpointId = builder.clientVpnEndpointId;
        this.status = builder.status;
        this.dnsName = builder.dnsName;
    }

    /**
     * 

* The ID of the Client VPN endpoint. *

* * @return The ID of the Client VPN endpoint. */ public String clientVpnEndpointId() { return clientVpnEndpointId; } /** *

* The current state of the Client VPN endpoint. *

* * @return The current state of the Client VPN endpoint. */ public ClientVpnEndpointStatus status() { return status; } /** *

* The DNS name to be used by clients when establishing their VPN session. *

* * @return The DNS name to be used by clients when establishing their VPN session. */ public String dnsName() { return dnsName; } @Override public Builder toBuilder() { return new BuilderImpl(this); } public static Builder builder() { return new BuilderImpl(); } public static Class serializableBuilderClass() { return BuilderImpl.class; } @Override public int hashCode() { int hashCode = 1; hashCode = 31 * hashCode + super.hashCode(); hashCode = 31 * hashCode + Objects.hashCode(clientVpnEndpointId()); hashCode = 31 * hashCode + Objects.hashCode(status()); hashCode = 31 * hashCode + Objects.hashCode(dnsName()); return hashCode; } @Override public boolean equals(Object obj) { return super.equals(obj) && equalsBySdkFields(obj); } @Override public boolean equalsBySdkFields(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof CreateClientVpnEndpointResponse)) { return false; } CreateClientVpnEndpointResponse other = (CreateClientVpnEndpointResponse) obj; return Objects.equals(clientVpnEndpointId(), other.clientVpnEndpointId()) && Objects.equals(status(), other.status()) && Objects.equals(dnsName(), other.dnsName()); } /** * 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 String toString() { return ToString.builder("CreateClientVpnEndpointResponse").add("ClientVpnEndpointId", clientVpnEndpointId()) .add("Status", status()).add("DnsName", dnsName()).build(); } public Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "ClientVpnEndpointId": return Optional.ofNullable(clazz.cast(clientVpnEndpointId())); case "Status": return Optional.ofNullable(clazz.cast(status())); case "DnsName": return Optional.ofNullable(clazz.cast(dnsName())); default: return Optional.empty(); } } @Override public List> sdkFields() { return SDK_FIELDS; } private static Function getter(Function g) { return obj -> g.apply((CreateClientVpnEndpointResponse) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends Ec2Response.Builder, SdkPojo, CopyableBuilder { /** *

* The ID of the Client VPN endpoint. *

* * @param clientVpnEndpointId * The ID of the Client VPN endpoint. * @return Returns a reference to this object so that method calls can be chained together. */ Builder clientVpnEndpointId(String clientVpnEndpointId); /** *

* The current state of the Client VPN endpoint. *

* * @param status * The current state of the Client VPN endpoint. * @return Returns a reference to this object so that method calls can be chained together. */ Builder status(ClientVpnEndpointStatus status); /** *

* The current state of the Client VPN endpoint. *

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

* The DNS name to be used by clients when establishing their VPN session. *

* * @param dnsName * The DNS name to be used by clients when establishing their VPN session. * @return Returns a reference to this object so that method calls can be chained together. */ Builder dnsName(String dnsName); } static final class BuilderImpl extends Ec2Response.BuilderImpl implements Builder { private String clientVpnEndpointId; private ClientVpnEndpointStatus status; private String dnsName; private BuilderImpl() { } private BuilderImpl(CreateClientVpnEndpointResponse model) { super(model); clientVpnEndpointId(model.clientVpnEndpointId); status(model.status); dnsName(model.dnsName); } public final String getClientVpnEndpointId() { return clientVpnEndpointId; } @Override public final Builder clientVpnEndpointId(String clientVpnEndpointId) { this.clientVpnEndpointId = clientVpnEndpointId; return this; } public final void setClientVpnEndpointId(String clientVpnEndpointId) { this.clientVpnEndpointId = clientVpnEndpointId; } public final ClientVpnEndpointStatus.Builder getStatus() { return status != null ? status.toBuilder() : null; } @Override public final Builder status(ClientVpnEndpointStatus status) { this.status = status; return this; } public final void setStatus(ClientVpnEndpointStatus.BuilderImpl status) { this.status = status != null ? status.build() : null; } public final String getDnsName() { return dnsName; } @Override public final Builder dnsName(String dnsName) { this.dnsName = dnsName; return this; } public final void setDnsName(String dnsName) { this.dnsName = dnsName; } @Override public CreateClientVpnEndpointResponse build() { return new CreateClientVpnEndpointResponse(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy