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

software.amazon.awssdk.services.fsx.model.LustreFileSystemConfiguration Maven / Gradle / Ivy

Go to download

The AWS Java SDK for FSx module holds the client classes that are used for communicating with FSx.

There is a newer version: 2.28.4
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.fsx.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.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;

/**
 * 

* The configuration for the Amazon FSx for Lustre file system. *

*/ @Generated("software.amazon.awssdk:codegen") public final class LustreFileSystemConfiguration implements SdkPojo, Serializable, ToCopyableBuilder { private static final SdkField WEEKLY_MAINTENANCE_START_TIME_FIELD = SdkField . builder(MarshallingType.STRING) .memberName("WeeklyMaintenanceStartTime") .getter(getter(LustreFileSystemConfiguration::weeklyMaintenanceStartTime)) .setter(setter(Builder::weeklyMaintenanceStartTime)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("WeeklyMaintenanceStartTime").build()) .build(); private static final SdkField DATA_REPOSITORY_CONFIGURATION_FIELD = SdkField . builder(MarshallingType.SDK_POJO) .memberName("DataRepositoryConfiguration") .getter(getter(LustreFileSystemConfiguration::dataRepositoryConfiguration)) .setter(setter(Builder::dataRepositoryConfiguration)) .constructor(DataRepositoryConfiguration::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DataRepositoryConfiguration") .build()).build(); private static final SdkField DEPLOYMENT_TYPE_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("DeploymentType").getter(getter(LustreFileSystemConfiguration::deploymentTypeAsString)) .setter(setter(Builder::deploymentType)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DeploymentType").build()).build(); private static final SdkField PER_UNIT_STORAGE_THROUGHPUT_FIELD = SdkField . builder(MarshallingType.INTEGER).memberName("PerUnitStorageThroughput") .getter(getter(LustreFileSystemConfiguration::perUnitStorageThroughput)) .setter(setter(Builder::perUnitStorageThroughput)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("PerUnitStorageThroughput").build()) .build(); private static final SdkField MOUNT_NAME_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("MountName").getter(getter(LustreFileSystemConfiguration::mountName)).setter(setter(Builder::mountName)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("MountName").build()).build(); private static final SdkField DAILY_AUTOMATIC_BACKUP_START_TIME_FIELD = SdkField . builder(MarshallingType.STRING) .memberName("DailyAutomaticBackupStartTime") .getter(getter(LustreFileSystemConfiguration::dailyAutomaticBackupStartTime)) .setter(setter(Builder::dailyAutomaticBackupStartTime)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DailyAutomaticBackupStartTime") .build()).build(); private static final SdkField AUTOMATIC_BACKUP_RETENTION_DAYS_FIELD = SdkField . builder(MarshallingType.INTEGER) .memberName("AutomaticBackupRetentionDays") .getter(getter(LustreFileSystemConfiguration::automaticBackupRetentionDays)) .setter(setter(Builder::automaticBackupRetentionDays)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AutomaticBackupRetentionDays") .build()).build(); private static final SdkField COPY_TAGS_TO_BACKUPS_FIELD = SdkField. builder(MarshallingType.BOOLEAN) .memberName("CopyTagsToBackups").getter(getter(LustreFileSystemConfiguration::copyTagsToBackups)) .setter(setter(Builder::copyTagsToBackups)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("CopyTagsToBackups").build()).build(); private static final SdkField DRIVE_CACHE_TYPE_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("DriveCacheType").getter(getter(LustreFileSystemConfiguration::driveCacheTypeAsString)) .setter(setter(Builder::driveCacheType)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DriveCacheType").build()).build(); private static final SdkField DATA_COMPRESSION_TYPE_FIELD = SdkField. builder(MarshallingType.STRING) .memberName("DataCompressionType").getter(getter(LustreFileSystemConfiguration::dataCompressionTypeAsString)) .setter(setter(Builder::dataCompressionType)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("DataCompressionType").build()) .build(); private static final SdkField LOG_CONFIGURATION_FIELD = SdkField . builder(MarshallingType.SDK_POJO).memberName("LogConfiguration") .getter(getter(LustreFileSystemConfiguration::logConfiguration)).setter(setter(Builder::logConfiguration)) .constructor(LustreLogConfiguration::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("LogConfiguration").build()).build(); private static final SdkField ROOT_SQUASH_CONFIGURATION_FIELD = SdkField . builder(MarshallingType.SDK_POJO).memberName("RootSquashConfiguration") .getter(getter(LustreFileSystemConfiguration::rootSquashConfiguration)) .setter(setter(Builder::rootSquashConfiguration)).constructor(LustreRootSquashConfiguration::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("RootSquashConfiguration").build()) .build(); private static final SdkField METADATA_CONFIGURATION_FIELD = SdkField . builder(MarshallingType.SDK_POJO).memberName("MetadataConfiguration") .getter(getter(LustreFileSystemConfiguration::metadataConfiguration)).setter(setter(Builder::metadataConfiguration)) .constructor(FileSystemLustreMetadataConfiguration::builder) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("MetadataConfiguration").build()) .build(); private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList( WEEKLY_MAINTENANCE_START_TIME_FIELD, DATA_REPOSITORY_CONFIGURATION_FIELD, DEPLOYMENT_TYPE_FIELD, PER_UNIT_STORAGE_THROUGHPUT_FIELD, MOUNT_NAME_FIELD, DAILY_AUTOMATIC_BACKUP_START_TIME_FIELD, AUTOMATIC_BACKUP_RETENTION_DAYS_FIELD, COPY_TAGS_TO_BACKUPS_FIELD, DRIVE_CACHE_TYPE_FIELD, DATA_COMPRESSION_TYPE_FIELD, LOG_CONFIGURATION_FIELD, ROOT_SQUASH_CONFIGURATION_FIELD, METADATA_CONFIGURATION_FIELD)); private static final long serialVersionUID = 1L; private final String weeklyMaintenanceStartTime; private final DataRepositoryConfiguration dataRepositoryConfiguration; private final String deploymentType; private final Integer perUnitStorageThroughput; private final String mountName; private final String dailyAutomaticBackupStartTime; private final Integer automaticBackupRetentionDays; private final Boolean copyTagsToBackups; private final String driveCacheType; private final String dataCompressionType; private final LustreLogConfiguration logConfiguration; private final LustreRootSquashConfiguration rootSquashConfiguration; private final FileSystemLustreMetadataConfiguration metadataConfiguration; private LustreFileSystemConfiguration(BuilderImpl builder) { this.weeklyMaintenanceStartTime = builder.weeklyMaintenanceStartTime; this.dataRepositoryConfiguration = builder.dataRepositoryConfiguration; this.deploymentType = builder.deploymentType; this.perUnitStorageThroughput = builder.perUnitStorageThroughput; this.mountName = builder.mountName; this.dailyAutomaticBackupStartTime = builder.dailyAutomaticBackupStartTime; this.automaticBackupRetentionDays = builder.automaticBackupRetentionDays; this.copyTagsToBackups = builder.copyTagsToBackups; this.driveCacheType = builder.driveCacheType; this.dataCompressionType = builder.dataCompressionType; this.logConfiguration = builder.logConfiguration; this.rootSquashConfiguration = builder.rootSquashConfiguration; this.metadataConfiguration = builder.metadataConfiguration; } /** *

* The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC time zone. Here, * d is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday. *

* * @return The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC time zone. Here, * d is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday. */ public final String weeklyMaintenanceStartTime() { return weeklyMaintenanceStartTime; } /** * Returns the value of the DataRepositoryConfiguration property for this object. * * @return The value of the DataRepositoryConfiguration property for this object. */ public final DataRepositoryConfiguration dataRepositoryConfiguration() { return dataRepositoryConfiguration; } /** *

* The deployment type of the FSx for Lustre file system. Scratch deployment type is designed for temporary * storage and shorter-term processing of data. *

*

* SCRATCH_1 and SCRATCH_2 deployment types are best suited for when you need temporary * storage and shorter-term processing of data. The SCRATCH_2 deployment type provides in-transit * encryption of data and higher burst throughput capacity than SCRATCH_1. *

*

* The PERSISTENT_1 and PERSISTENT_2 deployment type is used for longer-term storage and * workloads and encryption of data in transit. PERSISTENT_2 offers higher * PerUnitStorageThroughput (up to 1000 MB/s/TiB) along with a lower minimum storage capacity * requirement (600 GiB). To learn more about FSx for Lustre deployment types, see FSx for Lustre deployment * options. *

*

* The default is SCRATCH_1. *

*

* If the service returns an enum value that is not available in the current SDK version, {@link #deploymentType} * will return {@link LustreDeploymentType#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is * available from {@link #deploymentTypeAsString}. *

* * @return The deployment type of the FSx for Lustre file system. Scratch deployment type is designed for * temporary storage and shorter-term processing of data.

*

* SCRATCH_1 and SCRATCH_2 deployment types are best suited for when you need * temporary storage and shorter-term processing of data. The SCRATCH_2 deployment type * provides in-transit encryption of data and higher burst throughput capacity than SCRATCH_1. *

*

* The PERSISTENT_1 and PERSISTENT_2 deployment type is used for longer-term * storage and workloads and encryption of data in transit. PERSISTENT_2 offers higher * PerUnitStorageThroughput (up to 1000 MB/s/TiB) along with a lower minimum storage capacity * requirement (600 GiB). To learn more about FSx for Lustre deployment types, see FSx for Lustre * deployment options. *

*

* The default is SCRATCH_1. * @see LustreDeploymentType */ public final LustreDeploymentType deploymentType() { return LustreDeploymentType.fromValue(deploymentType); } /** *

* The deployment type of the FSx for Lustre file system. Scratch deployment type is designed for temporary * storage and shorter-term processing of data. *

*

* SCRATCH_1 and SCRATCH_2 deployment types are best suited for when you need temporary * storage and shorter-term processing of data. The SCRATCH_2 deployment type provides in-transit * encryption of data and higher burst throughput capacity than SCRATCH_1. *

*

* The PERSISTENT_1 and PERSISTENT_2 deployment type is used for longer-term storage and * workloads and encryption of data in transit. PERSISTENT_2 offers higher * PerUnitStorageThroughput (up to 1000 MB/s/TiB) along with a lower minimum storage capacity * requirement (600 GiB). To learn more about FSx for Lustre deployment types, see FSx for Lustre deployment * options. *

*

* The default is SCRATCH_1. *

*

* If the service returns an enum value that is not available in the current SDK version, {@link #deploymentType} * will return {@link LustreDeploymentType#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is * available from {@link #deploymentTypeAsString}. *

* * @return The deployment type of the FSx for Lustre file system. Scratch deployment type is designed for * temporary storage and shorter-term processing of data.

*

* SCRATCH_1 and SCRATCH_2 deployment types are best suited for when you need * temporary storage and shorter-term processing of data. The SCRATCH_2 deployment type * provides in-transit encryption of data and higher burst throughput capacity than SCRATCH_1. *

*

* The PERSISTENT_1 and PERSISTENT_2 deployment type is used for longer-term * storage and workloads and encryption of data in transit. PERSISTENT_2 offers higher * PerUnitStorageThroughput (up to 1000 MB/s/TiB) along with a lower minimum storage capacity * requirement (600 GiB). To learn more about FSx for Lustre deployment types, see FSx for Lustre * deployment options. *

*

* The default is SCRATCH_1. * @see LustreDeploymentType */ public final String deploymentTypeAsString() { return deploymentType; } /** *

* Per unit storage throughput represents the megabytes per second of read or write throughput per 1 tebibyte of * storage provisioned. File system throughput capacity is equal to Storage capacity (TiB) * * PerUnitStorageThroughput (MB/s/TiB). This option is only valid for PERSISTENT_1 and * PERSISTENT_2 deployment types. *

*

* Valid values: *

*
    *
  • *

    * For PERSISTENT_1 SSD storage: 50, 100, 200. *

    *
  • *
  • *

    * For PERSISTENT_1 HDD storage: 12, 40. *

    *
  • *
  • *

    * For PERSISTENT_2 SSD storage: 125, 250, 500, 1000. *

    *
  • *
* * @return Per unit storage throughput represents the megabytes per second of read or write throughput per 1 * tebibyte of storage provisioned. File system throughput capacity is equal to Storage capacity (TiB) * * PerUnitStorageThroughput (MB/s/TiB). This option is only valid for PERSISTENT_1 and * PERSISTENT_2 deployment types.

*

* Valid values: *

*
    *
  • *

    * For PERSISTENT_1 SSD storage: 50, 100, 200. *

    *
  • *
  • *

    * For PERSISTENT_1 HDD storage: 12, 40. *

    *
  • *
  • *

    * For PERSISTENT_2 SSD storage: 125, 250, 500, 1000. *

    *
  • */ public final Integer perUnitStorageThroughput() { return perUnitStorageThroughput; } /** *

    * You use the MountName value when mounting the file system. *

    *

    * For the SCRATCH_1 deployment type, this value is always "fsx". For * SCRATCH_2, PERSISTENT_1, and PERSISTENT_2 deployment types, this value is * a string that is unique within an Amazon Web Services Region. *

    * * @return You use the MountName value when mounting the file system.

    *

    * For the SCRATCH_1 deployment type, this value is always "fsx". For * SCRATCH_2, PERSISTENT_1, and PERSISTENT_2 deployment types, this * value is a string that is unique within an Amazon Web Services Region. */ public final String mountName() { return mountName; } /** * Returns the value of the DailyAutomaticBackupStartTime property for this object. * * @return The value of the DailyAutomaticBackupStartTime property for this object. */ public final String dailyAutomaticBackupStartTime() { return dailyAutomaticBackupStartTime; } /** * Returns the value of the AutomaticBackupRetentionDays property for this object. * * @return The value of the AutomaticBackupRetentionDays property for this object. */ public final Integer automaticBackupRetentionDays() { return automaticBackupRetentionDays; } /** *

    * A boolean flag indicating whether tags on the file system are copied to backups. If it's set to true, all tags on * the file system are copied to all automatic backups and any user-initiated backups where the user doesn't specify * any tags. If this value is true, and you specify one or more tags, only the specified tags are copied to backups. * If you specify one or more tags when creating a user-initiated backup, no tags are copied from the file system, * regardless of this value. (Default = false) *

    * * @return A boolean flag indicating whether tags on the file system are copied to backups. If it's set to true, all * tags on the file system are copied to all automatic backups and any user-initiated backups where the user * doesn't specify any tags. If this value is true, and you specify one or more tags, only the specified * tags are copied to backups. If you specify one or more tags when creating a user-initiated backup, no * tags are copied from the file system, regardless of this value. (Default = false) */ public final Boolean copyTagsToBackups() { return copyTagsToBackups; } /** *

    * The type of drive cache used by PERSISTENT_1 file systems that are provisioned with HDD storage * devices. This parameter is required when StorageType is HDD. When set to READ the file * system has an SSD storage cache that is sized to 20% of the file system's storage capacity. This improves the * performance for frequently accessed files by caching up to 20% of the total storage capacity. *

    *

    * This parameter is required when StorageType is set to HDD. *

    *

    * If the service returns an enum value that is not available in the current SDK version, {@link #driveCacheType} * will return {@link DriveCacheType#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available * from {@link #driveCacheTypeAsString}. *

    * * @return The type of drive cache used by PERSISTENT_1 file systems that are provisioned with HDD * storage devices. This parameter is required when StorageType is HDD. When set to * READ the file system has an SSD storage cache that is sized to 20% of the file system's * storage capacity. This improves the performance for frequently accessed files by caching up to 20% of the * total storage capacity.

    *

    * This parameter is required when StorageType is set to HDD. * @see DriveCacheType */ public final DriveCacheType driveCacheType() { return DriveCacheType.fromValue(driveCacheType); } /** *

    * The type of drive cache used by PERSISTENT_1 file systems that are provisioned with HDD storage * devices. This parameter is required when StorageType is HDD. When set to READ the file * system has an SSD storage cache that is sized to 20% of the file system's storage capacity. This improves the * performance for frequently accessed files by caching up to 20% of the total storage capacity. *

    *

    * This parameter is required when StorageType is set to HDD. *

    *

    * If the service returns an enum value that is not available in the current SDK version, {@link #driveCacheType} * will return {@link DriveCacheType#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available * from {@link #driveCacheTypeAsString}. *

    * * @return The type of drive cache used by PERSISTENT_1 file systems that are provisioned with HDD * storage devices. This parameter is required when StorageType is HDD. When set to * READ the file system has an SSD storage cache that is sized to 20% of the file system's * storage capacity. This improves the performance for frequently accessed files by caching up to 20% of the * total storage capacity.

    *

    * This parameter is required when StorageType is set to HDD. * @see DriveCacheType */ public final String driveCacheTypeAsString() { return driveCacheType; } /** *

    * The data compression configuration for the file system. DataCompressionType can have the following * values: *

    *
      *
    • *

      * NONE - Data compression is turned off for the file system. *

      *
    • *
    • *

      * LZ4 - Data compression is turned on with the LZ4 algorithm. *

      *
    • *
    *

    * For more information, see Lustre data compression. *

    *

    * If the service returns an enum value that is not available in the current SDK version, * {@link #dataCompressionType} will return {@link DataCompressionType#UNKNOWN_TO_SDK_VERSION}. The raw value * returned by the service is available from {@link #dataCompressionTypeAsString}. *

    * * @return The data compression configuration for the file system. DataCompressionType can have the * following values:

    *
      *
    • *

      * NONE - Data compression is turned off for the file system. *

      *
    • *
    • *

      * LZ4 - Data compression is turned on with the LZ4 algorithm. *

      *
    • *
    *

    * For more information, see Lustre data * compression. * @see DataCompressionType */ public final DataCompressionType dataCompressionType() { return DataCompressionType.fromValue(dataCompressionType); } /** *

    * The data compression configuration for the file system. DataCompressionType can have the following * values: *

    *
      *
    • *

      * NONE - Data compression is turned off for the file system. *

      *
    • *
    • *

      * LZ4 - Data compression is turned on with the LZ4 algorithm. *

      *
    • *
    *

    * For more information, see Lustre data compression. *

    *

    * If the service returns an enum value that is not available in the current SDK version, * {@link #dataCompressionType} will return {@link DataCompressionType#UNKNOWN_TO_SDK_VERSION}. The raw value * returned by the service is available from {@link #dataCompressionTypeAsString}. *

    * * @return The data compression configuration for the file system. DataCompressionType can have the * following values:

    *
      *
    • *

      * NONE - Data compression is turned off for the file system. *

      *
    • *
    • *

      * LZ4 - Data compression is turned on with the LZ4 algorithm. *

      *
    • *
    *

    * For more information, see Lustre data * compression. * @see DataCompressionType */ public final String dataCompressionTypeAsString() { return dataCompressionType; } /** *

    * The Lustre logging configuration. Lustre logging writes the enabled log events for your file system to Amazon * CloudWatch Logs. *

    * * @return The Lustre logging configuration. Lustre logging writes the enabled log events for your file system to * Amazon CloudWatch Logs. */ public final LustreLogConfiguration logConfiguration() { return logConfiguration; } /** *

    * The Lustre root squash configuration for an Amazon FSx for Lustre file system. When enabled, root squash * restricts root-level access from clients that try to access your file system as a root user. *

    * * @return The Lustre root squash configuration for an Amazon FSx for Lustre file system. When enabled, root squash * restricts root-level access from clients that try to access your file system as a root user. */ public final LustreRootSquashConfiguration rootSquashConfiguration() { return rootSquashConfiguration; } /** *

    * The Lustre metadata performance configuration for an Amazon FSx for Lustre file system using a * PERSISTENT_2 deployment type. *

    * * @return The Lustre metadata performance configuration for an Amazon FSx for Lustre file system using a * PERSISTENT_2 deployment type. */ public final FileSystemLustreMetadataConfiguration metadataConfiguration() { return metadataConfiguration; } @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 + Objects.hashCode(weeklyMaintenanceStartTime()); hashCode = 31 * hashCode + Objects.hashCode(dataRepositoryConfiguration()); hashCode = 31 * hashCode + Objects.hashCode(deploymentTypeAsString()); hashCode = 31 * hashCode + Objects.hashCode(perUnitStorageThroughput()); hashCode = 31 * hashCode + Objects.hashCode(mountName()); hashCode = 31 * hashCode + Objects.hashCode(dailyAutomaticBackupStartTime()); hashCode = 31 * hashCode + Objects.hashCode(automaticBackupRetentionDays()); hashCode = 31 * hashCode + Objects.hashCode(copyTagsToBackups()); hashCode = 31 * hashCode + Objects.hashCode(driveCacheTypeAsString()); hashCode = 31 * hashCode + Objects.hashCode(dataCompressionTypeAsString()); hashCode = 31 * hashCode + Objects.hashCode(logConfiguration()); hashCode = 31 * hashCode + Objects.hashCode(rootSquashConfiguration()); hashCode = 31 * hashCode + Objects.hashCode(metadataConfiguration()); 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 LustreFileSystemConfiguration)) { return false; } LustreFileSystemConfiguration other = (LustreFileSystemConfiguration) obj; return Objects.equals(weeklyMaintenanceStartTime(), other.weeklyMaintenanceStartTime()) && Objects.equals(dataRepositoryConfiguration(), other.dataRepositoryConfiguration()) && Objects.equals(deploymentTypeAsString(), other.deploymentTypeAsString()) && Objects.equals(perUnitStorageThroughput(), other.perUnitStorageThroughput()) && Objects.equals(mountName(), other.mountName()) && Objects.equals(dailyAutomaticBackupStartTime(), other.dailyAutomaticBackupStartTime()) && Objects.equals(automaticBackupRetentionDays(), other.automaticBackupRetentionDays()) && Objects.equals(copyTagsToBackups(), other.copyTagsToBackups()) && Objects.equals(driveCacheTypeAsString(), other.driveCacheTypeAsString()) && Objects.equals(dataCompressionTypeAsString(), other.dataCompressionTypeAsString()) && Objects.equals(logConfiguration(), other.logConfiguration()) && Objects.equals(rootSquashConfiguration(), other.rootSquashConfiguration()) && Objects.equals(metadataConfiguration(), other.metadataConfiguration()); } /** * 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("LustreFileSystemConfiguration").add("WeeklyMaintenanceStartTime", weeklyMaintenanceStartTime()) .add("DataRepositoryConfiguration", dataRepositoryConfiguration()) .add("DeploymentType", deploymentTypeAsString()).add("PerUnitStorageThroughput", perUnitStorageThroughput()) .add("MountName", mountName()).add("DailyAutomaticBackupStartTime", dailyAutomaticBackupStartTime()) .add("AutomaticBackupRetentionDays", automaticBackupRetentionDays()) .add("CopyTagsToBackups", copyTagsToBackups()).add("DriveCacheType", driveCacheTypeAsString()) .add("DataCompressionType", dataCompressionTypeAsString()).add("LogConfiguration", logConfiguration()) .add("RootSquashConfiguration", rootSquashConfiguration()).add("MetadataConfiguration", metadataConfiguration()) .build(); } public final Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "WeeklyMaintenanceStartTime": return Optional.ofNullable(clazz.cast(weeklyMaintenanceStartTime())); case "DataRepositoryConfiguration": return Optional.ofNullable(clazz.cast(dataRepositoryConfiguration())); case "DeploymentType": return Optional.ofNullable(clazz.cast(deploymentTypeAsString())); case "PerUnitStorageThroughput": return Optional.ofNullable(clazz.cast(perUnitStorageThroughput())); case "MountName": return Optional.ofNullable(clazz.cast(mountName())); case "DailyAutomaticBackupStartTime": return Optional.ofNullable(clazz.cast(dailyAutomaticBackupStartTime())); case "AutomaticBackupRetentionDays": return Optional.ofNullable(clazz.cast(automaticBackupRetentionDays())); case "CopyTagsToBackups": return Optional.ofNullable(clazz.cast(copyTagsToBackups())); case "DriveCacheType": return Optional.ofNullable(clazz.cast(driveCacheTypeAsString())); case "DataCompressionType": return Optional.ofNullable(clazz.cast(dataCompressionTypeAsString())); case "LogConfiguration": return Optional.ofNullable(clazz.cast(logConfiguration())); case "RootSquashConfiguration": return Optional.ofNullable(clazz.cast(rootSquashConfiguration())); case "MetadataConfiguration": return Optional.ofNullable(clazz.cast(metadataConfiguration())); default: return Optional.empty(); } } @Override public final List> sdkFields() { return SDK_FIELDS; } private static Function getter(Function g) { return obj -> g.apply((LustreFileSystemConfiguration) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends SdkPojo, CopyableBuilder { /** *

    * The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC time zone. Here, * d is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday. *

    * * @param weeklyMaintenanceStartTime * The preferred start time to perform weekly maintenance, formatted d:HH:MM in the UTC time zone. Here, * d is the weekday number, from 1 through 7, beginning with Monday and ending with Sunday. * @return Returns a reference to this object so that method calls can be chained together. */ Builder weeklyMaintenanceStartTime(String weeklyMaintenanceStartTime); /** * Sets the value of the DataRepositoryConfiguration property for this object. * * @param dataRepositoryConfiguration * The new value for the DataRepositoryConfiguration property for this object. * @return Returns a reference to this object so that method calls can be chained together. */ Builder dataRepositoryConfiguration(DataRepositoryConfiguration dataRepositoryConfiguration); /** * Sets the value of the DataRepositoryConfiguration property for this object. * * This is a convenience method that creates an instance of the {@link DataRepositoryConfiguration.Builder} * avoiding the need to create one manually via {@link DataRepositoryConfiguration#builder()}. * *

    * When the {@link Consumer} completes, {@link DataRepositoryConfiguration.Builder#build()} is called * immediately and its result is passed to {@link #dataRepositoryConfiguration(DataRepositoryConfiguration)}. * * @param dataRepositoryConfiguration * a consumer that will call methods on {@link DataRepositoryConfiguration.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #dataRepositoryConfiguration(DataRepositoryConfiguration) */ default Builder dataRepositoryConfiguration(Consumer dataRepositoryConfiguration) { return dataRepositoryConfiguration(DataRepositoryConfiguration.builder().applyMutation(dataRepositoryConfiguration) .build()); } /** *

    * The deployment type of the FSx for Lustre file system. Scratch deployment type is designed for * temporary storage and shorter-term processing of data. *

    *

    * SCRATCH_1 and SCRATCH_2 deployment types are best suited for when you need * temporary storage and shorter-term processing of data. The SCRATCH_2 deployment type provides * in-transit encryption of data and higher burst throughput capacity than SCRATCH_1. *

    *

    * The PERSISTENT_1 and PERSISTENT_2 deployment type is used for longer-term storage * and workloads and encryption of data in transit. PERSISTENT_2 offers higher * PerUnitStorageThroughput (up to 1000 MB/s/TiB) along with a lower minimum storage capacity * requirement (600 GiB). To learn more about FSx for Lustre deployment types, see FSx for Lustre * deployment options. *

    *

    * The default is SCRATCH_1. *

    * * @param deploymentType * The deployment type of the FSx for Lustre file system. Scratch deployment type is designed for * temporary storage and shorter-term processing of data.

    *

    * SCRATCH_1 and SCRATCH_2 deployment types are best suited for when you need * temporary storage and shorter-term processing of data. The SCRATCH_2 deployment type * provides in-transit encryption of data and higher burst throughput capacity than * SCRATCH_1. *

    *

    * The PERSISTENT_1 and PERSISTENT_2 deployment type is used for longer-term * storage and workloads and encryption of data in transit. PERSISTENT_2 offers higher * PerUnitStorageThroughput (up to 1000 MB/s/TiB) along with a lower minimum storage * capacity requirement (600 GiB). To learn more about FSx for Lustre deployment types, see FSx for Lustre * deployment options. *

    *

    * The default is SCRATCH_1. * @see LustreDeploymentType * @return Returns a reference to this object so that method calls can be chained together. * @see LustreDeploymentType */ Builder deploymentType(String deploymentType); /** *

    * The deployment type of the FSx for Lustre file system. Scratch deployment type is designed for * temporary storage and shorter-term processing of data. *

    *

    * SCRATCH_1 and SCRATCH_2 deployment types are best suited for when you need * temporary storage and shorter-term processing of data. The SCRATCH_2 deployment type provides * in-transit encryption of data and higher burst throughput capacity than SCRATCH_1. *

    *

    * The PERSISTENT_1 and PERSISTENT_2 deployment type is used for longer-term storage * and workloads and encryption of data in transit. PERSISTENT_2 offers higher * PerUnitStorageThroughput (up to 1000 MB/s/TiB) along with a lower minimum storage capacity * requirement (600 GiB). To learn more about FSx for Lustre deployment types, see FSx for Lustre * deployment options. *

    *

    * The default is SCRATCH_1. *

    * * @param deploymentType * The deployment type of the FSx for Lustre file system. Scratch deployment type is designed for * temporary storage and shorter-term processing of data.

    *

    * SCRATCH_1 and SCRATCH_2 deployment types are best suited for when you need * temporary storage and shorter-term processing of data. The SCRATCH_2 deployment type * provides in-transit encryption of data and higher burst throughput capacity than * SCRATCH_1. *

    *

    * The PERSISTENT_1 and PERSISTENT_2 deployment type is used for longer-term * storage and workloads and encryption of data in transit. PERSISTENT_2 offers higher * PerUnitStorageThroughput (up to 1000 MB/s/TiB) along with a lower minimum storage * capacity requirement (600 GiB). To learn more about FSx for Lustre deployment types, see FSx for Lustre * deployment options. *

    *

    * The default is SCRATCH_1. * @see LustreDeploymentType * @return Returns a reference to this object so that method calls can be chained together. * @see LustreDeploymentType */ Builder deploymentType(LustreDeploymentType deploymentType); /** *

    * Per unit storage throughput represents the megabytes per second of read or write throughput per 1 tebibyte of * storage provisioned. File system throughput capacity is equal to Storage capacity (TiB) * * PerUnitStorageThroughput (MB/s/TiB). This option is only valid for PERSISTENT_1 and * PERSISTENT_2 deployment types. *

    *

    * Valid values: *

    *
      *
    • *

      * For PERSISTENT_1 SSD storage: 50, 100, 200. *

      *
    • *
    • *

      * For PERSISTENT_1 HDD storage: 12, 40. *

      *
    • *
    • *

      * For PERSISTENT_2 SSD storage: 125, 250, 500, 1000. *

      *
    • *
    * * @param perUnitStorageThroughput * Per unit storage throughput represents the megabytes per second of read or write throughput per 1 * tebibyte of storage provisioned. File system throughput capacity is equal to Storage capacity (TiB) * * PerUnitStorageThroughput (MB/s/TiB). This option is only valid for PERSISTENT_1 and * PERSISTENT_2 deployment types.

    *

    * Valid values: *

    *
      *
    • *

      * For PERSISTENT_1 SSD storage: 50, 100, 200. *

      *
    • *
    • *

      * For PERSISTENT_1 HDD storage: 12, 40. *

      *
    • *
    • *

      * For PERSISTENT_2 SSD storage: 125, 250, 500, 1000. *

      *
    • * @return Returns a reference to this object so that method calls can be chained together. */ Builder perUnitStorageThroughput(Integer perUnitStorageThroughput); /** *

      * You use the MountName value when mounting the file system. *

      *

      * For the SCRATCH_1 deployment type, this value is always "fsx". For * SCRATCH_2, PERSISTENT_1, and PERSISTENT_2 deployment types, this value * is a string that is unique within an Amazon Web Services Region. *

      * * @param mountName * You use the MountName value when mounting the file system.

      *

      * For the SCRATCH_1 deployment type, this value is always "fsx". For * SCRATCH_2, PERSISTENT_1, and PERSISTENT_2 deployment types, * this value is a string that is unique within an Amazon Web Services Region. * @return Returns a reference to this object so that method calls can be chained together. */ Builder mountName(String mountName); /** * Sets the value of the DailyAutomaticBackupStartTime property for this object. * * @param dailyAutomaticBackupStartTime * The new value for the DailyAutomaticBackupStartTime property for this object. * @return Returns a reference to this object so that method calls can be chained together. */ Builder dailyAutomaticBackupStartTime(String dailyAutomaticBackupStartTime); /** * Sets the value of the AutomaticBackupRetentionDays property for this object. * * @param automaticBackupRetentionDays * The new value for the AutomaticBackupRetentionDays property for this object. * @return Returns a reference to this object so that method calls can be chained together. */ Builder automaticBackupRetentionDays(Integer automaticBackupRetentionDays); /** *

      * A boolean flag indicating whether tags on the file system are copied to backups. If it's set to true, all * tags on the file system are copied to all automatic backups and any user-initiated backups where the user * doesn't specify any tags. If this value is true, and you specify one or more tags, only the specified tags * are copied to backups. If you specify one or more tags when creating a user-initiated backup, no tags are * copied from the file system, regardless of this value. (Default = false) *

      * * @param copyTagsToBackups * A boolean flag indicating whether tags on the file system are copied to backups. If it's set to true, * all tags on the file system are copied to all automatic backups and any user-initiated backups where * the user doesn't specify any tags. If this value is true, and you specify one or more tags, only the * specified tags are copied to backups. If you specify one or more tags when creating a user-initiated * backup, no tags are copied from the file system, regardless of this value. (Default = false) * @return Returns a reference to this object so that method calls can be chained together. */ Builder copyTagsToBackups(Boolean copyTagsToBackups); /** *

      * The type of drive cache used by PERSISTENT_1 file systems that are provisioned with HDD storage * devices. This parameter is required when StorageType is HDD. When set to READ the * file system has an SSD storage cache that is sized to 20% of the file system's storage capacity. This * improves the performance for frequently accessed files by caching up to 20% of the total storage capacity. *

      *

      * This parameter is required when StorageType is set to HDD. *

      * * @param driveCacheType * The type of drive cache used by PERSISTENT_1 file systems that are provisioned with HDD * storage devices. This parameter is required when StorageType is HDD. When set to * READ the file system has an SSD storage cache that is sized to 20% of the file system's * storage capacity. This improves the performance for frequently accessed files by caching up to 20% of * the total storage capacity.

      *

      * This parameter is required when StorageType is set to HDD. * @see DriveCacheType * @return Returns a reference to this object so that method calls can be chained together. * @see DriveCacheType */ Builder driveCacheType(String driveCacheType); /** *

      * The type of drive cache used by PERSISTENT_1 file systems that are provisioned with HDD storage * devices. This parameter is required when StorageType is HDD. When set to READ the * file system has an SSD storage cache that is sized to 20% of the file system's storage capacity. This * improves the performance for frequently accessed files by caching up to 20% of the total storage capacity. *

      *

      * This parameter is required when StorageType is set to HDD. *

      * * @param driveCacheType * The type of drive cache used by PERSISTENT_1 file systems that are provisioned with HDD * storage devices. This parameter is required when StorageType is HDD. When set to * READ the file system has an SSD storage cache that is sized to 20% of the file system's * storage capacity. This improves the performance for frequently accessed files by caching up to 20% of * the total storage capacity.

      *

      * This parameter is required when StorageType is set to HDD. * @see DriveCacheType * @return Returns a reference to this object so that method calls can be chained together. * @see DriveCacheType */ Builder driveCacheType(DriveCacheType driveCacheType); /** *

      * The data compression configuration for the file system. DataCompressionType can have the * following values: *

      *
        *
      • *

        * NONE - Data compression is turned off for the file system. *

        *
      • *
      • *

        * LZ4 - Data compression is turned on with the LZ4 algorithm. *

        *
      • *
      *

      * For more information, see Lustre data compression. *

      * * @param dataCompressionType * The data compression configuration for the file system. DataCompressionType can have the * following values:

      *
        *
      • *

        * NONE - Data compression is turned off for the file system. *

        *
      • *
      • *

        * LZ4 - Data compression is turned on with the LZ4 algorithm. *

        *
      • *
      *

      * For more information, see Lustre data * compression. * @see DataCompressionType * @return Returns a reference to this object so that method calls can be chained together. * @see DataCompressionType */ Builder dataCompressionType(String dataCompressionType); /** *

      * The data compression configuration for the file system. DataCompressionType can have the * following values: *

      *
        *
      • *

        * NONE - Data compression is turned off for the file system. *

        *
      • *
      • *

        * LZ4 - Data compression is turned on with the LZ4 algorithm. *

        *
      • *
      *

      * For more information, see Lustre data compression. *

      * * @param dataCompressionType * The data compression configuration for the file system. DataCompressionType can have the * following values:

      *
        *
      • *

        * NONE - Data compression is turned off for the file system. *

        *
      • *
      • *

        * LZ4 - Data compression is turned on with the LZ4 algorithm. *

        *
      • *
      *

      * For more information, see Lustre data * compression. * @see DataCompressionType * @return Returns a reference to this object so that method calls can be chained together. * @see DataCompressionType */ Builder dataCompressionType(DataCompressionType dataCompressionType); /** *

      * The Lustre logging configuration. Lustre logging writes the enabled log events for your file system to Amazon * CloudWatch Logs. *

      * * @param logConfiguration * The Lustre logging configuration. Lustre logging writes the enabled log events for your file system to * Amazon CloudWatch Logs. * @return Returns a reference to this object so that method calls can be chained together. */ Builder logConfiguration(LustreLogConfiguration logConfiguration); /** *

      * The Lustre logging configuration. Lustre logging writes the enabled log events for your file system to Amazon * CloudWatch Logs. *

      * This is a convenience method that creates an instance of the {@link LustreLogConfiguration.Builder} avoiding * the need to create one manually via {@link LustreLogConfiguration#builder()}. * *

      * When the {@link Consumer} completes, {@link LustreLogConfiguration.Builder#build()} is called immediately and * its result is passed to {@link #logConfiguration(LustreLogConfiguration)}. * * @param logConfiguration * a consumer that will call methods on {@link LustreLogConfiguration.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #logConfiguration(LustreLogConfiguration) */ default Builder logConfiguration(Consumer logConfiguration) { return logConfiguration(LustreLogConfiguration.builder().applyMutation(logConfiguration).build()); } /** *

      * The Lustre root squash configuration for an Amazon FSx for Lustre file system. When enabled, root squash * restricts root-level access from clients that try to access your file system as a root user. *

      * * @param rootSquashConfiguration * The Lustre root squash configuration for an Amazon FSx for Lustre file system. When enabled, root * squash restricts root-level access from clients that try to access your file system as a root user. * @return Returns a reference to this object so that method calls can be chained together. */ Builder rootSquashConfiguration(LustreRootSquashConfiguration rootSquashConfiguration); /** *

      * The Lustre root squash configuration for an Amazon FSx for Lustre file system. When enabled, root squash * restricts root-level access from clients that try to access your file system as a root user. *

      * This is a convenience method that creates an instance of the {@link LustreRootSquashConfiguration.Builder} * avoiding the need to create one manually via {@link LustreRootSquashConfiguration#builder()}. * *

      * When the {@link Consumer} completes, {@link LustreRootSquashConfiguration.Builder#build()} is called * immediately and its result is passed to {@link #rootSquashConfiguration(LustreRootSquashConfiguration)}. * * @param rootSquashConfiguration * a consumer that will call methods on {@link LustreRootSquashConfiguration.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #rootSquashConfiguration(LustreRootSquashConfiguration) */ default Builder rootSquashConfiguration(Consumer rootSquashConfiguration) { return rootSquashConfiguration(LustreRootSquashConfiguration.builder().applyMutation(rootSquashConfiguration).build()); } /** *

      * The Lustre metadata performance configuration for an Amazon FSx for Lustre file system using a * PERSISTENT_2 deployment type. *

      * * @param metadataConfiguration * The Lustre metadata performance configuration for an Amazon FSx for Lustre file system using a * PERSISTENT_2 deployment type. * @return Returns a reference to this object so that method calls can be chained together. */ Builder metadataConfiguration(FileSystemLustreMetadataConfiguration metadataConfiguration); /** *

      * The Lustre metadata performance configuration for an Amazon FSx for Lustre file system using a * PERSISTENT_2 deployment type. *

      * This is a convenience method that creates an instance of the * {@link FileSystemLustreMetadataConfiguration.Builder} avoiding the need to create one manually via * {@link FileSystemLustreMetadataConfiguration#builder()}. * *

      * When the {@link Consumer} completes, {@link FileSystemLustreMetadataConfiguration.Builder#build()} is called * immediately and its result is passed to {@link #metadataConfiguration(FileSystemLustreMetadataConfiguration)}. * * @param metadataConfiguration * a consumer that will call methods on {@link FileSystemLustreMetadataConfiguration.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #metadataConfiguration(FileSystemLustreMetadataConfiguration) */ default Builder metadataConfiguration(Consumer metadataConfiguration) { return metadataConfiguration(FileSystemLustreMetadataConfiguration.builder().applyMutation(metadataConfiguration) .build()); } } static final class BuilderImpl implements Builder { private String weeklyMaintenanceStartTime; private DataRepositoryConfiguration dataRepositoryConfiguration; private String deploymentType; private Integer perUnitStorageThroughput; private String mountName; private String dailyAutomaticBackupStartTime; private Integer automaticBackupRetentionDays; private Boolean copyTagsToBackups; private String driveCacheType; private String dataCompressionType; private LustreLogConfiguration logConfiguration; private LustreRootSquashConfiguration rootSquashConfiguration; private FileSystemLustreMetadataConfiguration metadataConfiguration; private BuilderImpl() { } private BuilderImpl(LustreFileSystemConfiguration model) { weeklyMaintenanceStartTime(model.weeklyMaintenanceStartTime); dataRepositoryConfiguration(model.dataRepositoryConfiguration); deploymentType(model.deploymentType); perUnitStorageThroughput(model.perUnitStorageThroughput); mountName(model.mountName); dailyAutomaticBackupStartTime(model.dailyAutomaticBackupStartTime); automaticBackupRetentionDays(model.automaticBackupRetentionDays); copyTagsToBackups(model.copyTagsToBackups); driveCacheType(model.driveCacheType); dataCompressionType(model.dataCompressionType); logConfiguration(model.logConfiguration); rootSquashConfiguration(model.rootSquashConfiguration); metadataConfiguration(model.metadataConfiguration); } public final String getWeeklyMaintenanceStartTime() { return weeklyMaintenanceStartTime; } public final void setWeeklyMaintenanceStartTime(String weeklyMaintenanceStartTime) { this.weeklyMaintenanceStartTime = weeklyMaintenanceStartTime; } @Override public final Builder weeklyMaintenanceStartTime(String weeklyMaintenanceStartTime) { this.weeklyMaintenanceStartTime = weeklyMaintenanceStartTime; return this; } public final DataRepositoryConfiguration.Builder getDataRepositoryConfiguration() { return dataRepositoryConfiguration != null ? dataRepositoryConfiguration.toBuilder() : null; } public final void setDataRepositoryConfiguration(DataRepositoryConfiguration.BuilderImpl dataRepositoryConfiguration) { this.dataRepositoryConfiguration = dataRepositoryConfiguration != null ? dataRepositoryConfiguration.build() : null; } @Override public final Builder dataRepositoryConfiguration(DataRepositoryConfiguration dataRepositoryConfiguration) { this.dataRepositoryConfiguration = dataRepositoryConfiguration; return this; } public final String getDeploymentType() { return deploymentType; } public final void setDeploymentType(String deploymentType) { this.deploymentType = deploymentType; } @Override public final Builder deploymentType(String deploymentType) { this.deploymentType = deploymentType; return this; } @Override public final Builder deploymentType(LustreDeploymentType deploymentType) { this.deploymentType(deploymentType == null ? null : deploymentType.toString()); return this; } public final Integer getPerUnitStorageThroughput() { return perUnitStorageThroughput; } public final void setPerUnitStorageThroughput(Integer perUnitStorageThroughput) { this.perUnitStorageThroughput = perUnitStorageThroughput; } @Override public final Builder perUnitStorageThroughput(Integer perUnitStorageThroughput) { this.perUnitStorageThroughput = perUnitStorageThroughput; return this; } public final String getMountName() { return mountName; } public final void setMountName(String mountName) { this.mountName = mountName; } @Override public final Builder mountName(String mountName) { this.mountName = mountName; return this; } public final String getDailyAutomaticBackupStartTime() { return dailyAutomaticBackupStartTime; } public final void setDailyAutomaticBackupStartTime(String dailyAutomaticBackupStartTime) { this.dailyAutomaticBackupStartTime = dailyAutomaticBackupStartTime; } @Override public final Builder dailyAutomaticBackupStartTime(String dailyAutomaticBackupStartTime) { this.dailyAutomaticBackupStartTime = dailyAutomaticBackupStartTime; return this; } public final Integer getAutomaticBackupRetentionDays() { return automaticBackupRetentionDays; } public final void setAutomaticBackupRetentionDays(Integer automaticBackupRetentionDays) { this.automaticBackupRetentionDays = automaticBackupRetentionDays; } @Override public final Builder automaticBackupRetentionDays(Integer automaticBackupRetentionDays) { this.automaticBackupRetentionDays = automaticBackupRetentionDays; return this; } public final Boolean getCopyTagsToBackups() { return copyTagsToBackups; } public final void setCopyTagsToBackups(Boolean copyTagsToBackups) { this.copyTagsToBackups = copyTagsToBackups; } @Override public final Builder copyTagsToBackups(Boolean copyTagsToBackups) { this.copyTagsToBackups = copyTagsToBackups; return this; } public final String getDriveCacheType() { return driveCacheType; } public final void setDriveCacheType(String driveCacheType) { this.driveCacheType = driveCacheType; } @Override public final Builder driveCacheType(String driveCacheType) { this.driveCacheType = driveCacheType; return this; } @Override public final Builder driveCacheType(DriveCacheType driveCacheType) { this.driveCacheType(driveCacheType == null ? null : driveCacheType.toString()); return this; } public final String getDataCompressionType() { return dataCompressionType; } public final void setDataCompressionType(String dataCompressionType) { this.dataCompressionType = dataCompressionType; } @Override public final Builder dataCompressionType(String dataCompressionType) { this.dataCompressionType = dataCompressionType; return this; } @Override public final Builder dataCompressionType(DataCompressionType dataCompressionType) { this.dataCompressionType(dataCompressionType == null ? null : dataCompressionType.toString()); return this; } public final LustreLogConfiguration.Builder getLogConfiguration() { return logConfiguration != null ? logConfiguration.toBuilder() : null; } public final void setLogConfiguration(LustreLogConfiguration.BuilderImpl logConfiguration) { this.logConfiguration = logConfiguration != null ? logConfiguration.build() : null; } @Override public final Builder logConfiguration(LustreLogConfiguration logConfiguration) { this.logConfiguration = logConfiguration; return this; } public final LustreRootSquashConfiguration.Builder getRootSquashConfiguration() { return rootSquashConfiguration != null ? rootSquashConfiguration.toBuilder() : null; } public final void setRootSquashConfiguration(LustreRootSquashConfiguration.BuilderImpl rootSquashConfiguration) { this.rootSquashConfiguration = rootSquashConfiguration != null ? rootSquashConfiguration.build() : null; } @Override public final Builder rootSquashConfiguration(LustreRootSquashConfiguration rootSquashConfiguration) { this.rootSquashConfiguration = rootSquashConfiguration; return this; } public final FileSystemLustreMetadataConfiguration.Builder getMetadataConfiguration() { return metadataConfiguration != null ? metadataConfiguration.toBuilder() : null; } public final void setMetadataConfiguration(FileSystemLustreMetadataConfiguration.BuilderImpl metadataConfiguration) { this.metadataConfiguration = metadataConfiguration != null ? metadataConfiguration.build() : null; } @Override public final Builder metadataConfiguration(FileSystemLustreMetadataConfiguration metadataConfiguration) { this.metadataConfiguration = metadataConfiguration; return this; } @Override public LustreFileSystemConfiguration build() { return new LustreFileSystemConfiguration(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy