/* * Copyright 2018-2023 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 com.amazonaws.services.ec2.model; import java.io.Serializable; import javax.annotation.Generated; /** *
* Describes Availability Zones, Local Zones, and Wavelength Zones. *
* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AvailabilityZone implements Serializable, Cloneable { /** *
* The state of the Availability Zone, Local Zone, or Wavelength Zone. This value is always available
.
*
* For Availability Zones, this parameter always has the value of opt-in-not-required
.
*
* For Local Zones and Wavelength Zones, this parameter is the opt-in status. The possible values are
* opted-in
, and not-opted-in
.
*
* Any messages about the Availability Zone, Local Zone, or Wavelength Zone. *
*/ private com.amazonaws.internal.SdkInternalList* The name of the Region. *
*/ private String regionName; /** ** The name of the Availability Zone, Local Zone, or Wavelength Zone. *
*/ private String zoneName; /** ** The ID of the Availability Zone, Local Zone, or Wavelength Zone. *
*/ private String zoneId; /** ** For Availability Zones, this parameter has the same value as the Region name. *
*
* For Local Zones, the name of the associated group, for example us-west-2-lax-1
.
*
* For Wavelength Zones, the name of the associated group, for example us-east-1-wl1-bos-wlz-1
.
*
* The name of the network border group. *
*/ private String networkBorderGroup; /** *
* The type of zone. The valid values are availability-zone
, local-zone
, and
* wavelength-zone
.
*
* The name of the zone that handles some of the Local Zone or Wavelength Zone control plane operations, such as API * calls. *
*/ private String parentZoneName; /** ** The ID of the zone that handles some of the Local Zone or Wavelength Zone control plane operations, such as API * calls. *
*/ private String parentZoneId; /** *
* The state of the Availability Zone, Local Zone, or Wavelength Zone. This value is always available
.
*
available
.
* @see AvailabilityZoneState
*/
public void setState(String state) {
this.state = state;
}
/**
*
* The state of the Availability Zone, Local Zone, or Wavelength Zone. This value is always available
.
*
available
.
* @see AvailabilityZoneState
*/
public String getState() {
return this.state;
}
/**
*
* The state of the Availability Zone, Local Zone, or Wavelength Zone. This value is always available
.
*
available
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see AvailabilityZoneState
*/
public AvailabilityZone withState(String state) {
setState(state);
return this;
}
/**
*
* The state of the Availability Zone, Local Zone, or Wavelength Zone. This value is always available
.
*
available
.
* @see AvailabilityZoneState
*/
public void setState(AvailabilityZoneState state) {
withState(state);
}
/**
*
* The state of the Availability Zone, Local Zone, or Wavelength Zone. This value is always available
.
*
available
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see AvailabilityZoneState
*/
public AvailabilityZone withState(AvailabilityZoneState state) {
this.state = state.toString();
return this;
}
/**
*
* For Availability Zones, this parameter always has the value of opt-in-not-required
.
*
* For Local Zones and Wavelength Zones, this parameter is the opt-in status. The possible values are
* opted-in
, and not-opted-in
.
*
opt-in-not-required
.
*
* For Local Zones and Wavelength Zones, this parameter is the opt-in status. The possible values are
* opted-in
, and not-opted-in
.
* @see AvailabilityZoneOptInStatus
*/
public void setOptInStatus(String optInStatus) {
this.optInStatus = optInStatus;
}
/**
*
* For Availability Zones, this parameter always has the value of opt-in-not-required
.
*
* For Local Zones and Wavelength Zones, this parameter is the opt-in status. The possible values are
* opted-in
, and not-opted-in
.
*
opt-in-not-required
.
*
* For Local Zones and Wavelength Zones, this parameter is the opt-in status. The possible values are
* opted-in
, and not-opted-in
.
* @see AvailabilityZoneOptInStatus
*/
public String getOptInStatus() {
return this.optInStatus;
}
/**
*
* For Availability Zones, this parameter always has the value of opt-in-not-required
.
*
* For Local Zones and Wavelength Zones, this parameter is the opt-in status. The possible values are
* opted-in
, and not-opted-in
.
*
opt-in-not-required
.
*
* For Local Zones and Wavelength Zones, this parameter is the opt-in status. The possible values are
* opted-in
, and not-opted-in
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see AvailabilityZoneOptInStatus
*/
public AvailabilityZone withOptInStatus(String optInStatus) {
setOptInStatus(optInStatus);
return this;
}
/**
*
* For Availability Zones, this parameter always has the value of opt-in-not-required
.
*
* For Local Zones and Wavelength Zones, this parameter is the opt-in status. The possible values are
* opted-in
, and not-opted-in
.
*
opt-in-not-required
.
*
* For Local Zones and Wavelength Zones, this parameter is the opt-in status. The possible values are
* opted-in
, and not-opted-in
.
* @see AvailabilityZoneOptInStatus
*/
public void setOptInStatus(AvailabilityZoneOptInStatus optInStatus) {
withOptInStatus(optInStatus);
}
/**
*
* For Availability Zones, this parameter always has the value of opt-in-not-required
.
*
* For Local Zones and Wavelength Zones, this parameter is the opt-in status. The possible values are
* opted-in
, and not-opted-in
.
*
opt-in-not-required
.
*
* For Local Zones and Wavelength Zones, this parameter is the opt-in status. The possible values are
* opted-in
, and not-opted-in
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see AvailabilityZoneOptInStatus
*/
public AvailabilityZone withOptInStatus(AvailabilityZoneOptInStatus optInStatus) {
this.optInStatus = optInStatus.toString();
return this;
}
/**
*
* Any messages about the Availability Zone, Local Zone, or Wavelength Zone. *
* * @return Any messages about the Availability Zone, Local Zone, or Wavelength Zone. */ public java.util.List* Any messages about the Availability Zone, Local Zone, or Wavelength Zone. *
* * @param messages * Any messages about the Availability Zone, Local Zone, or Wavelength Zone. */ public void setMessages(java.util.Collection* Any messages about the Availability Zone, Local Zone, or Wavelength Zone. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setMessages(java.util.Collection)} or {@link #withMessages(java.util.Collection)} if you want to override * the existing values. *
* * @param messages * Any messages about the Availability Zone, Local Zone, or Wavelength Zone. * @return Returns a reference to this object so that method calls can be chained together. */ public AvailabilityZone withMessages(AvailabilityZoneMessage... messages) { if (this.messages == null) { setMessages(new com.amazonaws.internal.SdkInternalList* Any messages about the Availability Zone, Local Zone, or Wavelength Zone. *
* * @param messages * Any messages about the Availability Zone, Local Zone, or Wavelength Zone. * @return Returns a reference to this object so that method calls can be chained together. */ public AvailabilityZone withMessages(java.util.Collection* The name of the Region. *
* * @param regionName * The name of the Region. */ public void setRegionName(String regionName) { this.regionName = regionName; } /** ** The name of the Region. *
* * @return The name of the Region. */ public String getRegionName() { return this.regionName; } /** ** The name of the Region. *
* * @param regionName * The name of the Region. * @return Returns a reference to this object so that method calls can be chained together. */ public AvailabilityZone withRegionName(String regionName) { setRegionName(regionName); return this; } /** ** The name of the Availability Zone, Local Zone, or Wavelength Zone. *
* * @param zoneName * The name of the Availability Zone, Local Zone, or Wavelength Zone. */ public void setZoneName(String zoneName) { this.zoneName = zoneName; } /** ** The name of the Availability Zone, Local Zone, or Wavelength Zone. *
* * @return The name of the Availability Zone, Local Zone, or Wavelength Zone. */ public String getZoneName() { return this.zoneName; } /** ** The name of the Availability Zone, Local Zone, or Wavelength Zone. *
* * @param zoneName * The name of the Availability Zone, Local Zone, or Wavelength Zone. * @return Returns a reference to this object so that method calls can be chained together. */ public AvailabilityZone withZoneName(String zoneName) { setZoneName(zoneName); return this; } /** ** The ID of the Availability Zone, Local Zone, or Wavelength Zone. *
* * @param zoneId * The ID of the Availability Zone, Local Zone, or Wavelength Zone. */ public void setZoneId(String zoneId) { this.zoneId = zoneId; } /** ** The ID of the Availability Zone, Local Zone, or Wavelength Zone. *
* * @return The ID of the Availability Zone, Local Zone, or Wavelength Zone. */ public String getZoneId() { return this.zoneId; } /** ** The ID of the Availability Zone, Local Zone, or Wavelength Zone. *
* * @param zoneId * The ID of the Availability Zone, Local Zone, or Wavelength Zone. * @return Returns a reference to this object so that method calls can be chained together. */ public AvailabilityZone withZoneId(String zoneId) { setZoneId(zoneId); return this; } /** ** For Availability Zones, this parameter has the same value as the Region name. *
*
* For Local Zones, the name of the associated group, for example us-west-2-lax-1
.
*
* For Wavelength Zones, the name of the associated group, for example us-east-1-wl1-bos-wlz-1
.
*
* For Local Zones, the name of the associated group, for example us-west-2-lax-1
.
*
* For Wavelength Zones, the name of the associated group, for example us-east-1-wl1-bos-wlz-1
.
*/
public void setGroupName(String groupName) {
this.groupName = groupName;
}
/**
*
* For Availability Zones, this parameter has the same value as the Region name. *
*
* For Local Zones, the name of the associated group, for example us-west-2-lax-1
.
*
* For Wavelength Zones, the name of the associated group, for example us-east-1-wl1-bos-wlz-1
.
*
* For Local Zones, the name of the associated group, for example us-west-2-lax-1
.
*
* For Wavelength Zones, the name of the associated group, for example us-east-1-wl1-bos-wlz-1
.
*/
public String getGroupName() {
return this.groupName;
}
/**
*
* For Availability Zones, this parameter has the same value as the Region name. *
*
* For Local Zones, the name of the associated group, for example us-west-2-lax-1
.
*
* For Wavelength Zones, the name of the associated group, for example us-east-1-wl1-bos-wlz-1
.
*
* For Local Zones, the name of the associated group, for example us-west-2-lax-1
.
*
* For Wavelength Zones, the name of the associated group, for example us-east-1-wl1-bos-wlz-1
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public AvailabilityZone withGroupName(String groupName) {
setGroupName(groupName);
return this;
}
/**
*
* The name of the network border group. *
* * @param networkBorderGroup * The name of the network border group. */ public void setNetworkBorderGroup(String networkBorderGroup) { this.networkBorderGroup = networkBorderGroup; } /** ** The name of the network border group. *
* * @return The name of the network border group. */ public String getNetworkBorderGroup() { return this.networkBorderGroup; } /** ** The name of the network border group. *
* * @param networkBorderGroup * The name of the network border group. * @return Returns a reference to this object so that method calls can be chained together. */ public AvailabilityZone withNetworkBorderGroup(String networkBorderGroup) { setNetworkBorderGroup(networkBorderGroup); return this; } /** *
* The type of zone. The valid values are availability-zone
, local-zone
, and
* wavelength-zone
.
*
availability-zone
, local-zone
, and
* wavelength-zone
.
*/
public void setZoneType(String zoneType) {
this.zoneType = zoneType;
}
/**
*
* The type of zone. The valid values are availability-zone
, local-zone
, and
* wavelength-zone
.
*
availability-zone
, local-zone
, and
* wavelength-zone
.
*/
public String getZoneType() {
return this.zoneType;
}
/**
*
* The type of zone. The valid values are availability-zone
, local-zone
, and
* wavelength-zone
.
*
availability-zone
, local-zone
, and
* wavelength-zone
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public AvailabilityZone withZoneType(String zoneType) {
setZoneType(zoneType);
return this;
}
/**
* * The name of the zone that handles some of the Local Zone or Wavelength Zone control plane operations, such as API * calls. *
* * @param parentZoneName * The name of the zone that handles some of the Local Zone or Wavelength Zone control plane operations, such * as API calls. */ public void setParentZoneName(String parentZoneName) { this.parentZoneName = parentZoneName; } /** ** The name of the zone that handles some of the Local Zone or Wavelength Zone control plane operations, such as API * calls. *
* * @return The name of the zone that handles some of the Local Zone or Wavelength Zone control plane operations, * such as API calls. */ public String getParentZoneName() { return this.parentZoneName; } /** ** The name of the zone that handles some of the Local Zone or Wavelength Zone control plane operations, such as API * calls. *
* * @param parentZoneName * The name of the zone that handles some of the Local Zone or Wavelength Zone control plane operations, such * as API calls. * @return Returns a reference to this object so that method calls can be chained together. */ public AvailabilityZone withParentZoneName(String parentZoneName) { setParentZoneName(parentZoneName); return this; } /** ** The ID of the zone that handles some of the Local Zone or Wavelength Zone control plane operations, such as API * calls. *
* * @param parentZoneId * The ID of the zone that handles some of the Local Zone or Wavelength Zone control plane operations, such * as API calls. */ public void setParentZoneId(String parentZoneId) { this.parentZoneId = parentZoneId; } /** ** The ID of the zone that handles some of the Local Zone or Wavelength Zone control plane operations, such as API * calls. *
* * @return The ID of the zone that handles some of the Local Zone or Wavelength Zone control plane operations, such * as API calls. */ public String getParentZoneId() { return this.parentZoneId; } /** ** The ID of the zone that handles some of the Local Zone or Wavelength Zone control plane operations, such as API * calls. *
* * @param parentZoneId * The ID of the zone that handles some of the Local Zone or Wavelength Zone control plane operations, such * as API calls. * @return Returns a reference to this object so that method calls can be chained together. */ public AvailabilityZone withParentZoneId(String parentZoneId) { setParentZoneId(parentZoneId); return this; } /** * 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. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getState() != null) sb.append("State: ").append(getState()).append(","); if (getOptInStatus() != null) sb.append("OptInStatus: ").append(getOptInStatus()).append(","); if (getMessages() != null) sb.append("Messages: ").append(getMessages()).append(","); if (getRegionName() != null) sb.append("RegionName: ").append(getRegionName()).append(","); if (getZoneName() != null) sb.append("ZoneName: ").append(getZoneName()).append(","); if (getZoneId() != null) sb.append("ZoneId: ").append(getZoneId()).append(","); if (getGroupName() != null) sb.append("GroupName: ").append(getGroupName()).append(","); if (getNetworkBorderGroup() != null) sb.append("NetworkBorderGroup: ").append(getNetworkBorderGroup()).append(","); if (getZoneType() != null) sb.append("ZoneType: ").append(getZoneType()).append(","); if (getParentZoneName() != null) sb.append("ParentZoneName: ").append(getParentZoneName()).append(","); if (getParentZoneId() != null) sb.append("ParentZoneId: ").append(getParentZoneId()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof AvailabilityZone == false) return false; AvailabilityZone other = (AvailabilityZone) obj; if (other.getState() == null ^ this.getState() == null) return false; if (other.getState() != null && other.getState().equals(this.getState()) == false) return false; if (other.getOptInStatus() == null ^ this.getOptInStatus() == null) return false; if (other.getOptInStatus() != null && other.getOptInStatus().equals(this.getOptInStatus()) == false) return false; if (other.getMessages() == null ^ this.getMessages() == null) return false; if (other.getMessages() != null && other.getMessages().equals(this.getMessages()) == false) return false; if (other.getRegionName() == null ^ this.getRegionName() == null) return false; if (other.getRegionName() != null && other.getRegionName().equals(this.getRegionName()) == false) return false; if (other.getZoneName() == null ^ this.getZoneName() == null) return false; if (other.getZoneName() != null && other.getZoneName().equals(this.getZoneName()) == false) return false; if (other.getZoneId() == null ^ this.getZoneId() == null) return false; if (other.getZoneId() != null && other.getZoneId().equals(this.getZoneId()) == false) return false; if (other.getGroupName() == null ^ this.getGroupName() == null) return false; if (other.getGroupName() != null && other.getGroupName().equals(this.getGroupName()) == false) return false; if (other.getNetworkBorderGroup() == null ^ this.getNetworkBorderGroup() == null) return false; if (other.getNetworkBorderGroup() != null && other.getNetworkBorderGroup().equals(this.getNetworkBorderGroup()) == false) return false; if (other.getZoneType() == null ^ this.getZoneType() == null) return false; if (other.getZoneType() != null && other.getZoneType().equals(this.getZoneType()) == false) return false; if (other.getParentZoneName() == null ^ this.getParentZoneName() == null) return false; if (other.getParentZoneName() != null && other.getParentZoneName().equals(this.getParentZoneName()) == false) return false; if (other.getParentZoneId() == null ^ this.getParentZoneId() == null) return false; if (other.getParentZoneId() != null && other.getParentZoneId().equals(this.getParentZoneId()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getState() == null) ? 0 : getState().hashCode()); hashCode = prime * hashCode + ((getOptInStatus() == null) ? 0 : getOptInStatus().hashCode()); hashCode = prime * hashCode + ((getMessages() == null) ? 0 : getMessages().hashCode()); hashCode = prime * hashCode + ((getRegionName() == null) ? 0 : getRegionName().hashCode()); hashCode = prime * hashCode + ((getZoneName() == null) ? 0 : getZoneName().hashCode()); hashCode = prime * hashCode + ((getZoneId() == null) ? 0 : getZoneId().hashCode()); hashCode = prime * hashCode + ((getGroupName() == null) ? 0 : getGroupName().hashCode()); hashCode = prime * hashCode + ((getNetworkBorderGroup() == null) ? 0 : getNetworkBorderGroup().hashCode()); hashCode = prime * hashCode + ((getZoneType() == null) ? 0 : getZoneType().hashCode()); hashCode = prime * hashCode + ((getParentZoneName() == null) ? 0 : getParentZoneName().hashCode()); hashCode = prime * hashCode + ((getParentZoneId() == null) ? 0 : getParentZoneId().hashCode()); return hashCode; } @Override public AvailabilityZone clone() { try { return (AvailabilityZone) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } }