/* * 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.fsx.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *
* Configuration for the FSx for NetApp ONTAP file system. *
* * @see AWS * API Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class OntapFileSystemConfiguration implements Serializable, Cloneable, StructuredPojo { private Integer automaticBackupRetentionDays; private String dailyAutomaticBackupStartTime; /** ** Specifies the FSx for ONTAP file system deployment type in use in the file system. *
*
* MULTI_AZ_1
- (Default) A high availability file system configured for Multi-AZ redundancy to
* tolerate temporary Availability Zone (AZ) unavailability.
*
* SINGLE_AZ_1
- A file system configured for Single-AZ redundancy.
*
* For information about the use cases for Multi-AZ and Single-AZ deployments, refer to Choosing Multi-AZ or * Single-AZ file system deployment. *
*/ private String deploymentType; /** ** (Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. * By default in the Amazon FSx API, Amazon FSx selects an unused IP address range for you from the 198.19.* range. * By default in the Amazon FSx console, Amazon FSx chooses the last 64 IP addresses from the VPC’s primary CIDR * range to use as the endpoint IP address range for the file system. You can have overlapping endpoint IP addresses * for file systems deployed in the same VPC/route tables. *
*/ private String endpointIpAddressRange; /** *
* The Management
and Intercluster
endpoints that are used to access data or to manage the
* file system using the NetApp ONTAP CLI, REST API, or NetApp SnapMirror.
*
* The SSD IOPS configuration for the ONTAP file system, specifying the number of provisioned IOPS and the provision * mode. *
*/ private DiskIopsConfiguration diskIopsConfiguration; private String preferredSubnetId; /** ** (Multi-AZ only) The VPC route tables in which your file system's endpoints are created. *
*/ private java.util.List
* You can use the fsxadmin
user account to access the NetApp ONTAP CLI and REST API. The password
* value is always redacted in the response.
*
* Specifies the FSx for ONTAP file system deployment type in use in the file system. *
*
* MULTI_AZ_1
- (Default) A high availability file system configured for Multi-AZ redundancy to
* tolerate temporary Availability Zone (AZ) unavailability.
*
* SINGLE_AZ_1
- A file system configured for Single-AZ redundancy.
*
* For information about the use cases for Multi-AZ and Single-AZ deployments, refer to Choosing Multi-AZ or * Single-AZ file system deployment. *
* * @param deploymentType * Specifies the FSx for ONTAP file system deployment type in use in the file system. *
* MULTI_AZ_1
- (Default) A high availability file system configured for Multi-AZ redundancy to
* tolerate temporary Availability Zone (AZ) unavailability.
*
* SINGLE_AZ_1
- A file system configured for Single-AZ redundancy.
*
* For information about the use cases for Multi-AZ and Single-AZ deployments, refer to Choosing Multi-AZ * or Single-AZ file system deployment. * @see OntapDeploymentType */ public void setDeploymentType(String deploymentType) { this.deploymentType = deploymentType; } /** *
* Specifies the FSx for ONTAP file system deployment type in use in the file system. *
*
* MULTI_AZ_1
- (Default) A high availability file system configured for Multi-AZ redundancy to
* tolerate temporary Availability Zone (AZ) unavailability.
*
* SINGLE_AZ_1
- A file system configured for Single-AZ redundancy.
*
* For information about the use cases for Multi-AZ and Single-AZ deployments, refer to Choosing Multi-AZ or * Single-AZ file system deployment. *
* * @return Specifies the FSx for ONTAP file system deployment type in use in the file system. *
* MULTI_AZ_1
- (Default) A high availability file system configured for Multi-AZ redundancy to
* tolerate temporary Availability Zone (AZ) unavailability.
*
* SINGLE_AZ_1
- A file system configured for Single-AZ redundancy.
*
* For information about the use cases for Multi-AZ and Single-AZ deployments, refer to Choosing Multi-AZ * or Single-AZ file system deployment. * @see OntapDeploymentType */ public String getDeploymentType() { return this.deploymentType; } /** *
* Specifies the FSx for ONTAP file system deployment type in use in the file system. *
*
* MULTI_AZ_1
- (Default) A high availability file system configured for Multi-AZ redundancy to
* tolerate temporary Availability Zone (AZ) unavailability.
*
* SINGLE_AZ_1
- A file system configured for Single-AZ redundancy.
*
* For information about the use cases for Multi-AZ and Single-AZ deployments, refer to Choosing Multi-AZ or * Single-AZ file system deployment. *
* * @param deploymentType * Specifies the FSx for ONTAP file system deployment type in use in the file system. *
* MULTI_AZ_1
- (Default) A high availability file system configured for Multi-AZ redundancy to
* tolerate temporary Availability Zone (AZ) unavailability.
*
* SINGLE_AZ_1
- A file system configured for Single-AZ redundancy.
*
* For information about the use cases for Multi-AZ and Single-AZ deployments, refer to Choosing Multi-AZ * or Single-AZ file system deployment. * @return Returns a reference to this object so that method calls can be chained together. * @see OntapDeploymentType */ public OntapFileSystemConfiguration withDeploymentType(String deploymentType) { setDeploymentType(deploymentType); return this; } /** *
* Specifies the FSx for ONTAP file system deployment type in use in the file system. *
*
* MULTI_AZ_1
- (Default) A high availability file system configured for Multi-AZ redundancy to
* tolerate temporary Availability Zone (AZ) unavailability.
*
* SINGLE_AZ_1
- A file system configured for Single-AZ redundancy.
*
* For information about the use cases for Multi-AZ and Single-AZ deployments, refer to Choosing Multi-AZ or * Single-AZ file system deployment. *
* * @param deploymentType * Specifies the FSx for ONTAP file system deployment type in use in the file system. *
* MULTI_AZ_1
- (Default) A high availability file system configured for Multi-AZ redundancy to
* tolerate temporary Availability Zone (AZ) unavailability.
*
* SINGLE_AZ_1
- A file system configured for Single-AZ redundancy.
*
* For information about the use cases for Multi-AZ and Single-AZ deployments, refer to Choosing Multi-AZ * or Single-AZ file system deployment. * @return Returns a reference to this object so that method calls can be chained together. * @see OntapDeploymentType */ public OntapFileSystemConfiguration withDeploymentType(OntapDeploymentType deploymentType) { this.deploymentType = deploymentType.toString(); return this; } /** *
* (Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. * By default in the Amazon FSx API, Amazon FSx selects an unused IP address range for you from the 198.19.* range. * By default in the Amazon FSx console, Amazon FSx chooses the last 64 IP addresses from the VPC’s primary CIDR * range to use as the endpoint IP address range for the file system. You can have overlapping endpoint IP addresses * for file systems deployed in the same VPC/route tables. *
* * @param endpointIpAddressRange * (Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be * created. By default in the Amazon FSx API, Amazon FSx selects an unused IP address range for you from the * 198.19.* range. By default in the Amazon FSx console, Amazon FSx chooses the last 64 IP addresses from the * VPC’s primary CIDR range to use as the endpoint IP address range for the file system. You can have * overlapping endpoint IP addresses for file systems deployed in the same VPC/route tables. */ public void setEndpointIpAddressRange(String endpointIpAddressRange) { this.endpointIpAddressRange = endpointIpAddressRange; } /** ** (Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. * By default in the Amazon FSx API, Amazon FSx selects an unused IP address range for you from the 198.19.* range. * By default in the Amazon FSx console, Amazon FSx chooses the last 64 IP addresses from the VPC’s primary CIDR * range to use as the endpoint IP address range for the file system. You can have overlapping endpoint IP addresses * for file systems deployed in the same VPC/route tables. *
* * @return (Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be * created. By default in the Amazon FSx API, Amazon FSx selects an unused IP address range for you from the * 198.19.* range. By default in the Amazon FSx console, Amazon FSx chooses the last 64 IP addresses from * the VPC’s primary CIDR range to use as the endpoint IP address range for the file system. You can have * overlapping endpoint IP addresses for file systems deployed in the same VPC/route tables. */ public String getEndpointIpAddressRange() { return this.endpointIpAddressRange; } /** ** (Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be created. * By default in the Amazon FSx API, Amazon FSx selects an unused IP address range for you from the 198.19.* range. * By default in the Amazon FSx console, Amazon FSx chooses the last 64 IP addresses from the VPC’s primary CIDR * range to use as the endpoint IP address range for the file system. You can have overlapping endpoint IP addresses * for file systems deployed in the same VPC/route tables. *
* * @param endpointIpAddressRange * (Multi-AZ only) Specifies the IP address range in which the endpoints to access your file system will be * created. By default in the Amazon FSx API, Amazon FSx selects an unused IP address range for you from the * 198.19.* range. By default in the Amazon FSx console, Amazon FSx chooses the last 64 IP addresses from the * VPC’s primary CIDR range to use as the endpoint IP address range for the file system. You can have * overlapping endpoint IP addresses for file systems deployed in the same VPC/route tables. * @return Returns a reference to this object so that method calls can be chained together. */ public OntapFileSystemConfiguration withEndpointIpAddressRange(String endpointIpAddressRange) { setEndpointIpAddressRange(endpointIpAddressRange); return this; } /** *
* The Management
and Intercluster
endpoints that are used to access data or to manage the
* file system using the NetApp ONTAP CLI, REST API, or NetApp SnapMirror.
*
Management
and Intercluster
endpoints that are used to access data or to
* manage the file system using the NetApp ONTAP CLI, REST API, or NetApp SnapMirror.
*/
public void setEndpoints(FileSystemEndpoints endpoints) {
this.endpoints = endpoints;
}
/**
*
* The Management
and Intercluster
endpoints that are used to access data or to manage the
* file system using the NetApp ONTAP CLI, REST API, or NetApp SnapMirror.
*
Management
and Intercluster
endpoints that are used to access data or to
* manage the file system using the NetApp ONTAP CLI, REST API, or NetApp SnapMirror.
*/
public FileSystemEndpoints getEndpoints() {
return this.endpoints;
}
/**
*
* The Management
and Intercluster
endpoints that are used to access data or to manage the
* file system using the NetApp ONTAP CLI, REST API, or NetApp SnapMirror.
*
Management
and Intercluster
endpoints that are used to access data or to
* manage the file system using the NetApp ONTAP CLI, REST API, or NetApp SnapMirror.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public OntapFileSystemConfiguration withEndpoints(FileSystemEndpoints endpoints) {
setEndpoints(endpoints);
return this;
}
/**
* * The SSD IOPS configuration for the ONTAP file system, specifying the number of provisioned IOPS and the provision * mode. *
* * @param diskIopsConfiguration * The SSD IOPS configuration for the ONTAP file system, specifying the number of provisioned IOPS and the * provision mode. */ public void setDiskIopsConfiguration(DiskIopsConfiguration diskIopsConfiguration) { this.diskIopsConfiguration = diskIopsConfiguration; } /** ** The SSD IOPS configuration for the ONTAP file system, specifying the number of provisioned IOPS and the provision * mode. *
* * @return The SSD IOPS configuration for the ONTAP file system, specifying the number of provisioned IOPS and the * provision mode. */ public DiskIopsConfiguration getDiskIopsConfiguration() { return this.diskIopsConfiguration; } /** ** The SSD IOPS configuration for the ONTAP file system, specifying the number of provisioned IOPS and the provision * mode. *
* * @param diskIopsConfiguration * The SSD IOPS configuration for the ONTAP file system, specifying the number of provisioned IOPS and the * provision mode. * @return Returns a reference to this object so that method calls can be chained together. */ public OntapFileSystemConfiguration withDiskIopsConfiguration(DiskIopsConfiguration diskIopsConfiguration) { setDiskIopsConfiguration(diskIopsConfiguration); return this; } /** * @param preferredSubnetId */ public void setPreferredSubnetId(String preferredSubnetId) { this.preferredSubnetId = preferredSubnetId; } /** * @return */ public String getPreferredSubnetId() { return this.preferredSubnetId; } /** * @param preferredSubnetId * @return Returns a reference to this object so that method calls can be chained together. */ public OntapFileSystemConfiguration withPreferredSubnetId(String preferredSubnetId) { setPreferredSubnetId(preferredSubnetId); return this; } /** ** (Multi-AZ only) The VPC route tables in which your file system's endpoints are created. *
* * @return (Multi-AZ only) The VPC route tables in which your file system's endpoints are created. */ public java.util.List* (Multi-AZ only) The VPC route tables in which your file system's endpoints are created. *
* * @param routeTableIds * (Multi-AZ only) The VPC route tables in which your file system's endpoints are created. */ public void setRouteTableIds(java.util.Collection* (Multi-AZ only) The VPC route tables in which your file system's endpoints are created. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setRouteTableIds(java.util.Collection)} or {@link #withRouteTableIds(java.util.Collection)} if you want * to override the existing values. *
* * @param routeTableIds * (Multi-AZ only) The VPC route tables in which your file system's endpoints are created. * @return Returns a reference to this object so that method calls can be chained together. */ public OntapFileSystemConfiguration withRouteTableIds(String... routeTableIds) { if (this.routeTableIds == null) { setRouteTableIds(new java.util.ArrayList* (Multi-AZ only) The VPC route tables in which your file system's endpoints are created. *
* * @param routeTableIds * (Multi-AZ only) The VPC route tables in which your file system's endpoints are created. * @return Returns a reference to this object so that method calls can be chained together. */ public OntapFileSystemConfiguration withRouteTableIds(java.util.Collection
* You can use the fsxadmin
user account to access the NetApp ONTAP CLI and REST API. The password
* value is always redacted in the response.
*
fsxadmin
user account to access the NetApp ONTAP CLI and REST API. The
* password value is always redacted in the response.
*/
public void setFsxAdminPassword(String fsxAdminPassword) {
this.fsxAdminPassword = fsxAdminPassword;
}
/**
*
* You can use the fsxadmin
user account to access the NetApp ONTAP CLI and REST API. The password
* value is always redacted in the response.
*
fsxadmin
user account to access the NetApp ONTAP CLI and REST API. The
* password value is always redacted in the response.
*/
public String getFsxAdminPassword() {
return this.fsxAdminPassword;
}
/**
*
* You can use the fsxadmin
user account to access the NetApp ONTAP CLI and REST API. The password
* value is always redacted in the response.
*
fsxadmin
user account to access the NetApp ONTAP CLI and REST API. The
* password value is always redacted in the response.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public OntapFileSystemConfiguration withFsxAdminPassword(String fsxAdminPassword) {
setFsxAdminPassword(fsxAdminPassword);
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 (getAutomaticBackupRetentionDays() != null)
sb.append("AutomaticBackupRetentionDays: ").append(getAutomaticBackupRetentionDays()).append(",");
if (getDailyAutomaticBackupStartTime() != null)
sb.append("DailyAutomaticBackupStartTime: ").append(getDailyAutomaticBackupStartTime()).append(",");
if (getDeploymentType() != null)
sb.append("DeploymentType: ").append(getDeploymentType()).append(",");
if (getEndpointIpAddressRange() != null)
sb.append("EndpointIpAddressRange: ").append(getEndpointIpAddressRange()).append(",");
if (getEndpoints() != null)
sb.append("Endpoints: ").append(getEndpoints()).append(",");
if (getDiskIopsConfiguration() != null)
sb.append("DiskIopsConfiguration: ").append(getDiskIopsConfiguration()).append(",");
if (getPreferredSubnetId() != null)
sb.append("PreferredSubnetId: ").append(getPreferredSubnetId()).append(",");
if (getRouteTableIds() != null)
sb.append("RouteTableIds: ").append(getRouteTableIds()).append(",");
if (getThroughputCapacity() != null)
sb.append("ThroughputCapacity: ").append(getThroughputCapacity()).append(",");
if (getWeeklyMaintenanceStartTime() != null)
sb.append("WeeklyMaintenanceStartTime: ").append(getWeeklyMaintenanceStartTime()).append(",");
if (getFsxAdminPassword() != null)
sb.append("FsxAdminPassword: ").append("***Sensitive Data Redacted***");
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof OntapFileSystemConfiguration == false)
return false;
OntapFileSystemConfiguration other = (OntapFileSystemConfiguration) obj;
if (other.getAutomaticBackupRetentionDays() == null ^ this.getAutomaticBackupRetentionDays() == null)
return false;
if (other.getAutomaticBackupRetentionDays() != null && other.getAutomaticBackupRetentionDays().equals(this.getAutomaticBackupRetentionDays()) == false)
return false;
if (other.getDailyAutomaticBackupStartTime() == null ^ this.getDailyAutomaticBackupStartTime() == null)
return false;
if (other.getDailyAutomaticBackupStartTime() != null
&& other.getDailyAutomaticBackupStartTime().equals(this.getDailyAutomaticBackupStartTime()) == false)
return false;
if (other.getDeploymentType() == null ^ this.getDeploymentType() == null)
return false;
if (other.getDeploymentType() != null && other.getDeploymentType().equals(this.getDeploymentType()) == false)
return false;
if (other.getEndpointIpAddressRange() == null ^ this.getEndpointIpAddressRange() == null)
return false;
if (other.getEndpointIpAddressRange() != null && other.getEndpointIpAddressRange().equals(this.getEndpointIpAddressRange()) == false)
return false;
if (other.getEndpoints() == null ^ this.getEndpoints() == null)
return false;
if (other.getEndpoints() != null && other.getEndpoints().equals(this.getEndpoints()) == false)
return false;
if (other.getDiskIopsConfiguration() == null ^ this.getDiskIopsConfiguration() == null)
return false;
if (other.getDiskIopsConfiguration() != null && other.getDiskIopsConfiguration().equals(this.getDiskIopsConfiguration()) == false)
return false;
if (other.getPreferredSubnetId() == null ^ this.getPreferredSubnetId() == null)
return false;
if (other.getPreferredSubnetId() != null && other.getPreferredSubnetId().equals(this.getPreferredSubnetId()) == false)
return false;
if (other.getRouteTableIds() == null ^ this.getRouteTableIds() == null)
return false;
if (other.getRouteTableIds() != null && other.getRouteTableIds().equals(this.getRouteTableIds()) == false)
return false;
if (other.getThroughputCapacity() == null ^ this.getThroughputCapacity() == null)
return false;
if (other.getThroughputCapacity() != null && other.getThroughputCapacity().equals(this.getThroughputCapacity()) == false)
return false;
if (other.getWeeklyMaintenanceStartTime() == null ^ this.getWeeklyMaintenanceStartTime() == null)
return false;
if (other.getWeeklyMaintenanceStartTime() != null && other.getWeeklyMaintenanceStartTime().equals(this.getWeeklyMaintenanceStartTime()) == false)
return false;
if (other.getFsxAdminPassword() == null ^ this.getFsxAdminPassword() == null)
return false;
if (other.getFsxAdminPassword() != null && other.getFsxAdminPassword().equals(this.getFsxAdminPassword()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getAutomaticBackupRetentionDays() == null) ? 0 : getAutomaticBackupRetentionDays().hashCode());
hashCode = prime * hashCode + ((getDailyAutomaticBackupStartTime() == null) ? 0 : getDailyAutomaticBackupStartTime().hashCode());
hashCode = prime * hashCode + ((getDeploymentType() == null) ? 0 : getDeploymentType().hashCode());
hashCode = prime * hashCode + ((getEndpointIpAddressRange() == null) ? 0 : getEndpointIpAddressRange().hashCode());
hashCode = prime * hashCode + ((getEndpoints() == null) ? 0 : getEndpoints().hashCode());
hashCode = prime * hashCode + ((getDiskIopsConfiguration() == null) ? 0 : getDiskIopsConfiguration().hashCode());
hashCode = prime * hashCode + ((getPreferredSubnetId() == null) ? 0 : getPreferredSubnetId().hashCode());
hashCode = prime * hashCode + ((getRouteTableIds() == null) ? 0 : getRouteTableIds().hashCode());
hashCode = prime * hashCode + ((getThroughputCapacity() == null) ? 0 : getThroughputCapacity().hashCode());
hashCode = prime * hashCode + ((getWeeklyMaintenanceStartTime() == null) ? 0 : getWeeklyMaintenanceStartTime().hashCode());
hashCode = prime * hashCode + ((getFsxAdminPassword() == null) ? 0 : getFsxAdminPassword().hashCode());
return hashCode;
}
@Override
public OntapFileSystemConfiguration clone() {
try {
return (OntapFileSystemConfiguration) super.clone();
} catch (CloneNotSupportedException e) {
throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
}
}
@com.amazonaws.annotation.SdkInternalApi
@Override
public void marshall(ProtocolMarshaller protocolMarshaller) {
com.amazonaws.services.fsx.model.transform.OntapFileSystemConfigurationMarshaller.getInstance().marshall(this, protocolMarshaller);
}
}