software.amazon.awssdk.services.directconnect.model.BGPPeer 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.directconnect.model;
import java.io.Serializable;
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.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;
/**
*
* Information about a BGP peer.
*
*/
@Generated("software.amazon.awssdk:codegen")
public final class BGPPeer implements SdkPojo, Serializable, ToCopyableBuilder {
private static final SdkField BGP_PEER_ID_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("bgpPeerId").getter(getter(BGPPeer::bgpPeerId)).setter(setter(Builder::bgpPeerId))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("bgpPeerId").build()).build();
private static final SdkField ASN_FIELD = SdkField. builder(MarshallingType.INTEGER).memberName("asn")
.getter(getter(BGPPeer::asn)).setter(setter(Builder::asn))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("asn").build()).build();
private static final SdkField AUTH_KEY_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("authKey").getter(getter(BGPPeer::authKey)).setter(setter(Builder::authKey))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("authKey").build()).build();
private static final SdkField ADDRESS_FAMILY_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("addressFamily").getter(getter(BGPPeer::addressFamilyAsString)).setter(setter(Builder::addressFamily))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("addressFamily").build()).build();
private static final SdkField AMAZON_ADDRESS_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("amazonAddress").getter(getter(BGPPeer::amazonAddress)).setter(setter(Builder::amazonAddress))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("amazonAddress").build()).build();
private static final SdkField CUSTOMER_ADDRESS_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("customerAddress").getter(getter(BGPPeer::customerAddress)).setter(setter(Builder::customerAddress))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("customerAddress").build()).build();
private static final SdkField BGP_PEER_STATE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("bgpPeerState").getter(getter(BGPPeer::bgpPeerStateAsString)).setter(setter(Builder::bgpPeerState))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("bgpPeerState").build()).build();
private static final SdkField BGP_STATUS_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("bgpStatus").getter(getter(BGPPeer::bgpStatusAsString)).setter(setter(Builder::bgpStatus))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("bgpStatus").build()).build();
private static final SdkField AWS_DEVICE_V2_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("awsDeviceV2").getter(getter(BGPPeer::awsDeviceV2)).setter(setter(Builder::awsDeviceV2))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("awsDeviceV2").build()).build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(BGP_PEER_ID_FIELD, ASN_FIELD,
AUTH_KEY_FIELD, ADDRESS_FAMILY_FIELD, AMAZON_ADDRESS_FIELD, CUSTOMER_ADDRESS_FIELD, BGP_PEER_STATE_FIELD,
BGP_STATUS_FIELD, AWS_DEVICE_V2_FIELD));
private static final long serialVersionUID = 1L;
private final String bgpPeerId;
private final Integer asn;
private final String authKey;
private final String addressFamily;
private final String amazonAddress;
private final String customerAddress;
private final String bgpPeerState;
private final String bgpStatus;
private final String awsDeviceV2;
private BGPPeer(BuilderImpl builder) {
this.bgpPeerId = builder.bgpPeerId;
this.asn = builder.asn;
this.authKey = builder.authKey;
this.addressFamily = builder.addressFamily;
this.amazonAddress = builder.amazonAddress;
this.customerAddress = builder.customerAddress;
this.bgpPeerState = builder.bgpPeerState;
this.bgpStatus = builder.bgpStatus;
this.awsDeviceV2 = builder.awsDeviceV2;
}
/**
*
* The ID of the BGP peer.
*
*
* @return The ID of the BGP peer.
*/
public final String bgpPeerId() {
return bgpPeerId;
}
/**
*
* The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.
*
*
* @return The autonomous system (AS) number for Border Gateway Protocol (BGP) configuration.
*/
public final Integer asn() {
return asn;
}
/**
*
* The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a maximun
* lenth of 80 characters.
*
*
* @return The authentication key for BGP configuration. This string has a minimum length of 6 characters and and a
* maximun lenth of 80 characters.
*/
public final String authKey() {
return authKey;
}
/**
*
* The address family for the BGP peer.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #addressFamily}
* will return {@link AddressFamily#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #addressFamilyAsString}.
*
*
* @return The address family for the BGP peer.
* @see AddressFamily
*/
public final AddressFamily addressFamily() {
return AddressFamily.fromValue(addressFamily);
}
/**
*
* The address family for the BGP peer.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #addressFamily}
* will return {@link AddressFamily#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #addressFamilyAsString}.
*
*
* @return The address family for the BGP peer.
* @see AddressFamily
*/
public final String addressFamilyAsString() {
return addressFamily;
}
/**
*
* The IP address assigned to the Amazon interface.
*
*
* @return The IP address assigned to the Amazon interface.
*/
public final String amazonAddress() {
return amazonAddress;
}
/**
*
* The IP address assigned to the customer interface.
*
*
* @return The IP address assigned to the customer interface.
*/
public final String customerAddress() {
return customerAddress;
}
/**
*
* The state of the BGP peer. The following are the possible values:
*
*
* -
*
* verifying: The BGP peering addresses or ASN require validation before the BGP peer can be created.
* This state applies only to public virtual interfaces.
*
*
* -
*
* pending: The BGP peer is created, and remains in this state until it is ready to be established.
*
*
* -
*
* available: The BGP peer is ready to be established.
*
*
* -
*
* deleting: The BGP peer is being deleted.
*
*
* -
*
* deleted: The BGP peer is deleted and cannot be established.
*
*
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #bgpPeerState} will
* return {@link BGPPeerState#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #bgpPeerStateAsString}.
*
*
* @return The state of the BGP peer. The following are the possible values:
*
* -
*
* verifying: The BGP peering addresses or ASN require validation before the BGP peer can be
* created. This state applies only to public virtual interfaces.
*
*
* -
*
* pending: The BGP peer is created, and remains in this state until it is ready to be
* established.
*
*
* -
*
* available: The BGP peer is ready to be established.
*
*
* -
*
* deleting: The BGP peer is being deleted.
*
*
* -
*
* deleted: The BGP peer is deleted and cannot be established.
*
*
* @see BGPPeerState
*/
public final BGPPeerState bgpPeerState() {
return BGPPeerState.fromValue(bgpPeerState);
}
/**
*
* The state of the BGP peer. The following are the possible values:
*
*
* -
*
* verifying: The BGP peering addresses or ASN require validation before the BGP peer can be created.
* This state applies only to public virtual interfaces.
*
*
* -
*
* pending: The BGP peer is created, and remains in this state until it is ready to be established.
*
*
* -
*
* available: The BGP peer is ready to be established.
*
*
* -
*
* deleting: The BGP peer is being deleted.
*
*
* -
*
* deleted: The BGP peer is deleted and cannot be established.
*
*
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #bgpPeerState} will
* return {@link BGPPeerState#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #bgpPeerStateAsString}.
*
*
* @return The state of the BGP peer. The following are the possible values:
*
* -
*
* verifying: The BGP peering addresses or ASN require validation before the BGP peer can be
* created. This state applies only to public virtual interfaces.
*
*
* -
*
* pending: The BGP peer is created, and remains in this state until it is ready to be
* established.
*
*
* -
*
* available: The BGP peer is ready to be established.
*
*
* -
*
* deleting: The BGP peer is being deleted.
*
*
* -
*
* deleted: The BGP peer is deleted and cannot be established.
*
*
* @see BGPPeerState
*/
public final String bgpPeerStateAsString() {
return bgpPeerState;
}
/**
*
* The status of the BGP peer. The following are the possible values:
*
*
* -
*
* up: The BGP peer is established. This state does not indicate the state of the routing function.
* Ensure that you are receiving routes over the BGP session.
*
*
* -
*
* down: The BGP peer is down.
*
*
* -
*
* unknown: The BGP peer status is not available.
*
*
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #bgpStatus} will
* return {@link BGPStatus#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #bgpStatusAsString}.
*
*
* @return The status of the BGP peer. The following are the possible values:
*
* -
*
* up: The BGP peer is established. This state does not indicate the state of the routing
* function. Ensure that you are receiving routes over the BGP session.
*
*
* -
*
* down: The BGP peer is down.
*
*
* -
*
* unknown: The BGP peer status is not available.
*
*
* @see BGPStatus
*/
public final BGPStatus bgpStatus() {
return BGPStatus.fromValue(bgpStatus);
}
/**
*
* The status of the BGP peer. The following are the possible values:
*
*
* -
*
* up: The BGP peer is established. This state does not indicate the state of the routing function.
* Ensure that you are receiving routes over the BGP session.
*
*
* -
*
* down: The BGP peer is down.
*
*
* -
*
* unknown: The BGP peer status is not available.
*
*
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #bgpStatus} will
* return {@link BGPStatus#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #bgpStatusAsString}.
*
*
* @return The status of the BGP peer. The following are the possible values:
*
* -
*
* up: The BGP peer is established. This state does not indicate the state of the routing
* function. Ensure that you are receiving routes over the BGP session.
*
*
* -
*
* down: The BGP peer is down.
*
*
* -
*
* unknown: The BGP peer status is not available.
*
*
* @see BGPStatus
*/
public final String bgpStatusAsString() {
return bgpStatus;
}
/**
*
* The Direct Connect endpoint on which the BGP peer terminates.
*
*
* @return The Direct Connect endpoint on which the BGP peer terminates.
*/
public final String awsDeviceV2() {
return awsDeviceV2;
}
@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 + Objects.hashCode(bgpPeerId());
hashCode = 31 * hashCode + Objects.hashCode(asn());
hashCode = 31 * hashCode + Objects.hashCode(authKey());
hashCode = 31 * hashCode + Objects.hashCode(addressFamilyAsString());
hashCode = 31 * hashCode + Objects.hashCode(amazonAddress());
hashCode = 31 * hashCode + Objects.hashCode(customerAddress());
hashCode = 31 * hashCode + Objects.hashCode(bgpPeerStateAsString());
hashCode = 31 * hashCode + Objects.hashCode(bgpStatusAsString());
hashCode = 31 * hashCode + Objects.hashCode(awsDeviceV2());
return hashCode;
}
@Override
public final boolean equals(Object obj) {
return equalsBySdkFields(obj);
}
@Override
public final boolean equalsBySdkFields(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof BGPPeer)) {
return false;
}
BGPPeer other = (BGPPeer) obj;
return Objects.equals(bgpPeerId(), other.bgpPeerId()) && Objects.equals(asn(), other.asn())
&& Objects.equals(authKey(), other.authKey())
&& Objects.equals(addressFamilyAsString(), other.addressFamilyAsString())
&& Objects.equals(amazonAddress(), other.amazonAddress())
&& Objects.equals(customerAddress(), other.customerAddress())
&& Objects.equals(bgpPeerStateAsString(), other.bgpPeerStateAsString())
&& Objects.equals(bgpStatusAsString(), other.bgpStatusAsString())
&& Objects.equals(awsDeviceV2(), other.awsDeviceV2());
}
/**
* 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("BGPPeer").add("BgpPeerId", bgpPeerId()).add("Asn", asn()).add("AuthKey", authKey())
.add("AddressFamily", addressFamilyAsString()).add("AmazonAddress", amazonAddress())
.add("CustomerAddress", customerAddress()).add("BgpPeerState", bgpPeerStateAsString())
.add("BgpStatus", bgpStatusAsString()).add("AwsDeviceV2", awsDeviceV2()).build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "bgpPeerId":
return Optional.ofNullable(clazz.cast(bgpPeerId()));
case "asn":
return Optional.ofNullable(clazz.cast(asn()));
case "authKey":
return Optional.ofNullable(clazz.cast(authKey()));
case "addressFamily":
return Optional.ofNullable(clazz.cast(addressFamilyAsString()));
case "amazonAddress":
return Optional.ofNullable(clazz.cast(amazonAddress()));
case "customerAddress":
return Optional.ofNullable(clazz.cast(customerAddress()));
case "bgpPeerState":
return Optional.ofNullable(clazz.cast(bgpPeerStateAsString()));
case "bgpStatus":
return Optional.ofNullable(clazz.cast(bgpStatusAsString()));
case "awsDeviceV2":
return Optional.ofNullable(clazz.cast(awsDeviceV2()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function