Class DataRepositoryAssociation

java.lang.Object
software.amazon.awssdk.services.fsx.model.DataRepositoryAssociation
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<DataRepositoryAssociation.Builder,DataRepositoryAssociation>

@Generated("software.amazon.awssdk:codegen") public final class DataRepositoryAssociation extends Object implements SdkPojo, Serializable, ToCopyableBuilder<DataRepositoryAssociation.Builder,DataRepositoryAssociation>

The configuration of a data repository association that links an Amazon FSx for Lustre file system to an Amazon S3 bucket or an Amazon File Cache resource to an Amazon S3 bucket or an NFS file system. The data repository association configuration object is returned in the response of the following operations:

  • CreateDataRepositoryAssociation

  • UpdateDataRepositoryAssociation

  • DescribeDataRepositoryAssociations

Data repository associations are supported on Amazon File Cache resources and all FSx for Lustre 2.12 and 2.15 file systems, excluding Intelligent-Tiering and scratch_1 file systems.

See Also:
  • Method Details

    • associationId

      public final String associationId()

      The system-generated, unique ID of the data repository association.

      Returns:
      The system-generated, unique ID of the data repository association.
    • resourceARN

      public final String resourceARN()
      Returns the value of the ResourceARN property for this object.
      Returns:
      The value of the ResourceARN property for this object.
    • fileSystemId

      public final String fileSystemId()
      Returns the value of the FileSystemId property for this object.
      Returns:
      The value of the FileSystemId property for this object.
    • lifecycle

      public final DataRepositoryLifecycle lifecycle()

      Describes the state of a data repository association. The lifecycle can have the following values:

      • CREATING - The data repository association between the file system or cache and the data repository is being created. The data repository is unavailable.

      • AVAILABLE - The data repository association is available for use.

      • MISCONFIGURED - The data repository association is misconfigured. Until the configuration is corrected, automatic import and automatic export will not work (only for Amazon FSx for Lustre).

      • UPDATING - The data repository association is undergoing a customer initiated update that might affect its availability.

      • DELETING - The data repository association is undergoing a customer initiated deletion.

      • FAILED - The data repository association is in a terminal state that cannot be recovered.

      If the service returns an enum value that is not available in the current SDK version, lifecycle will return DataRepositoryLifecycle.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from lifecycleAsString().

      Returns:
      Describes the state of a data repository association. The lifecycle can have the following values:

      • CREATING - The data repository association between the file system or cache and the data repository is being created. The data repository is unavailable.

      • AVAILABLE - The data repository association is available for use.

      • MISCONFIGURED - The data repository association is misconfigured. Until the configuration is corrected, automatic import and automatic export will not work (only for Amazon FSx for Lustre).

      • UPDATING - The data repository association is undergoing a customer initiated update that might affect its availability.

      • DELETING - The data repository association is undergoing a customer initiated deletion.

      • FAILED - The data repository association is in a terminal state that cannot be recovered.

      See Also:
    • lifecycleAsString

      public final String lifecycleAsString()

      Describes the state of a data repository association. The lifecycle can have the following values:

      • CREATING - The data repository association between the file system or cache and the data repository is being created. The data repository is unavailable.

      • AVAILABLE - The data repository association is available for use.

      • MISCONFIGURED - The data repository association is misconfigured. Until the configuration is corrected, automatic import and automatic export will not work (only for Amazon FSx for Lustre).

      • UPDATING - The data repository association is undergoing a customer initiated update that might affect its availability.

      • DELETING - The data repository association is undergoing a customer initiated deletion.

      • FAILED - The data repository association is in a terminal state that cannot be recovered.

      If the service returns an enum value that is not available in the current SDK version, lifecycle will return DataRepositoryLifecycle.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from lifecycleAsString().

      Returns:
      Describes the state of a data repository association. The lifecycle can have the following values:

      • CREATING - The data repository association between the file system or cache and the data repository is being created. The data repository is unavailable.

      • AVAILABLE - The data repository association is available for use.

      • MISCONFIGURED - The data repository association is misconfigured. Until the configuration is corrected, automatic import and automatic export will not work (only for Amazon FSx for Lustre).

      • UPDATING - The data repository association is undergoing a customer initiated update that might affect its availability.

      • DELETING - The data repository association is undergoing a customer initiated deletion.

      • FAILED - The data repository association is in a terminal state that cannot be recovered.

      See Also:
    • failureDetails

      public final DataRepositoryFailureDetails failureDetails()
      Returns the value of the FailureDetails property for this object.
      Returns:
      The value of the FailureDetails property for this object.
    • fileSystemPath

      public final String fileSystemPath()

      A path on the Amazon FSx for Lustre file system that points to a high-level directory (such as /ns1/ ) or subdirectory (such as /ns1/subdir/) that will be mapped 1-1 with DataRepositoryPath. The leading forward slash in the name is required. Two data repository associations cannot have overlapping file system paths. For example, if a data repository is associated with file system path /ns1/, then you cannot link another data repository with file system path /ns1/ns2.

      This path specifies where in your file system files will be exported from or imported to. This file system directory can be linked to only one Amazon S3 bucket, and no other S3 bucket can be linked to the directory.

      If you specify only a forward slash (/) as the file system path, you can link only one data repository to the file system. You can only specify "/" as the file system path for the first data repository associated with a file system.

      Returns:
      A path on the Amazon FSx for Lustre file system that points to a high-level directory (such as /ns1/) or subdirectory (such as /ns1/subdir/) that will be mapped 1-1 with DataRepositoryPath. The leading forward slash in the name is required. Two data repository associations cannot have overlapping file system paths. For example, if a data repository is associated with file system path /ns1/, then you cannot link another data repository with file system path /ns1/ns2.

      This path specifies where in your file system files will be exported from or imported to. This file system directory can be linked to only one Amazon S3 bucket, and no other S3 bucket can be linked to the directory.

      If you specify only a forward slash (/) as the file system path, you can link only one data repository to the file system. You can only specify "/" as the file system path for the first data repository associated with a file system.

    • dataRepositoryPath

      public final String dataRepositoryPath()

      The path to the data repository that will be linked to the cache or file system.

      • For Amazon File Cache, the path can be an NFS data repository that will be linked to the cache. The path can be in one of two formats:

        • If you are not using the DataRepositorySubdirectories parameter, the path is to an NFS Export directory (or one of its subdirectories) in the format nsf://nfs-domain-name/exportpath. You can therefore link a single NFS Export to a single data repository association.

        • If you are using the DataRepositorySubdirectories parameter, the path is the domain name of the NFS file system in the format nfs://filer-domain-name, which indicates the root of the subdirectories specified with the DataRepositorySubdirectories parameter.

      • For Amazon File Cache, the path can be an S3 bucket or prefix in the format s3://bucket-name/prefix/ (where prefix is optional).

      • For Amazon FSx for Lustre, the path can be an S3 bucket or prefix in the format s3://bucket-name/prefix/ (where prefix is optional).

      Returns:
      The path to the data repository that will be linked to the cache or file system.

      • For Amazon File Cache, the path can be an NFS data repository that will be linked to the cache. The path can be in one of two formats:

        • If you are not using the DataRepositorySubdirectories parameter, the path is to an NFS Export directory (or one of its subdirectories) in the format nsf://nfs-domain-name/exportpath. You can therefore link a single NFS Export to a single data repository association.

        • If you are using the DataRepositorySubdirectories parameter, the path is the domain name of the NFS file system in the format nfs://filer-domain-name, which indicates the root of the subdirectories specified with the DataRepositorySubdirectories parameter.

      • For Amazon File Cache, the path can be an S3 bucket or prefix in the format s3://bucket-name/prefix/ (where prefix is optional).

      • For Amazon FSx for Lustre, the path can be an S3 bucket or prefix in the format s3://bucket-name/prefix/ (where prefix is optional).

    • batchImportMetaDataOnCreate

      public final Boolean batchImportMetaDataOnCreate()

      A boolean flag indicating whether an import data repository task to import metadata should run after the data repository association is created. The task runs if this flag is set to true.

      BatchImportMetaDataOnCreate is not supported for data repositories linked to an Amazon File Cache resource.

      Returns:
      A boolean flag indicating whether an import data repository task to import metadata should run after the data repository association is created. The task runs if this flag is set to true.

      BatchImportMetaDataOnCreate is not supported for data repositories linked to an Amazon File Cache resource.

    • importedFileChunkSize

      public final Integer importedFileChunkSize()

      For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system or cache.

      The default chunk size is 1,024 MiB (1 GiB) and can go as high as 512,000 MiB (500 GiB). Amazon S3 objects have a maximum size of 5 TB.

      Returns:
      For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. The maximum number of disks that a single file can be striped across is limited by the total number of disks that make up the file system or cache.

      The default chunk size is 1,024 MiB (1 GiB) and can go as high as 512,000 MiB (500 GiB). Amazon S3 objects have a maximum size of 5 TB.

    • s3

      public final S3DataRepositoryConfiguration s3()

      The configuration for an Amazon S3 data repository linked to an Amazon FSx for Lustre file system with a data repository association.

      Returns:
      The configuration for an Amazon S3 data repository linked to an Amazon FSx for Lustre file system with a data repository association.
    • hasTags

      public final boolean hasTags()
      For responses, this returns true if the service returned a value for the Tags property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • tags

      public final List<Tag> tags()
      Returns the value of the Tags property for this object.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasTags() method.

      Returns:
      The value of the Tags property for this object.
    • creationTime

      public final Instant creationTime()
      Returns the value of the CreationTime property for this object.
      Returns:
      The value of the CreationTime property for this object.
    • fileCacheId

      public final String fileCacheId()

      The globally unique ID of the Amazon File Cache resource.

      Returns:
      The globally unique ID of the Amazon File Cache resource.
    • fileCachePath

      public final String fileCachePath()

      A path on the Amazon File Cache that points to a high-level directory (such as /ns1/) or subdirectory (such as /ns1/subdir/) that will be mapped 1-1 with DataRepositoryPath. The leading forward slash in the path is required. Two data repository associations cannot have overlapping cache paths. For example, if a data repository is associated with cache path /ns1/, then you cannot link another data repository with cache path /ns1/ns2.

      This path specifies the directory in your cache where files will be exported from. This cache directory can be linked to only one data repository (S3 or NFS) and no other data repository can be linked to the directory.

      The cache path can only be set to root (/) on an NFS DRA when DataRepositorySubdirectories is specified. If you specify root (/) as the cache path, you can create only one DRA on the cache.

      The cache path cannot be set to root (/) for an S3 DRA.

      Returns:
      A path on the Amazon File Cache that points to a high-level directory (such as /ns1/) or subdirectory (such as /ns1/subdir/) that will be mapped 1-1 with DataRepositoryPath. The leading forward slash in the path is required. Two data repository associations cannot have overlapping cache paths. For example, if a data repository is associated with cache path /ns1/, then you cannot link another data repository with cache path /ns1/ns2.

      This path specifies the directory in your cache where files will be exported from. This cache directory can be linked to only one data repository (S3 or NFS) and no other data repository can be linked to the directory.

      The cache path can only be set to root (/) on an NFS DRA when DataRepositorySubdirectories is specified. If you specify root (/) as the cache path, you can create only one DRA on the cache.

      The cache path cannot be set to root (/) for an S3 DRA.

    • hasDataRepositorySubdirectories

      public final boolean hasDataRepositorySubdirectories()
      For responses, this returns true if the service returned a value for the DataRepositorySubdirectories property. This DOES NOT check that the value is non-empty (for which, you should check the isEmpty() method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
    • dataRepositorySubdirectories

      public final List<String> dataRepositorySubdirectories()

      For Amazon File Cache, a list of NFS Exports that will be linked with an NFS data repository association. All the subdirectories must be on a single NFS file system. The Export paths are in the format /exportpath1. To use this parameter, you must configure DataRepositoryPath as the domain name of the NFS file system. The NFS file system domain name in effect is the root of the subdirectories. Note that DataRepositorySubdirectories is not supported for S3 data repositories.

      Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.

      This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the hasDataRepositorySubdirectories() method.

      Returns:
      For Amazon File Cache, a list of NFS Exports that will be linked with an NFS data repository association. All the subdirectories must be on a single NFS file system. The Export paths are in the format /exportpath1. To use this parameter, you must configure DataRepositoryPath as the domain name of the NFS file system. The NFS file system domain name in effect is the root of the subdirectories. Note that DataRepositorySubdirectories is not supported for S3 data repositories.
    • nfs

      public final NFSDataRepositoryConfiguration nfs()

      The configuration for an NFS data repository linked to an Amazon File Cache resource with a data repository association.

      Returns:
      The configuration for an NFS data repository linked to an Amazon File Cache resource with a data repository association.
    • toBuilder

      Description copied from interface: ToCopyableBuilder
      Take this object and create a builder that contains all of the current property values of this object.
      Specified by:
      toBuilder in interface ToCopyableBuilder<DataRepositoryAssociation.Builder,DataRepositoryAssociation>
      Returns:
      a builder for type T
    • builder

      public static DataRepositoryAssociation.Builder builder()
    • serializableBuilderClass

      public static Class<? extends DataRepositoryAssociation.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      Description copied from interface: SdkPojo
      Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in an SdkPojo class, and is generated based on a service model.

      If an SdkPojo class does not have any inherited fields, equalsBySdkFields and equals are essentially the same.

      Specified by:
      equalsBySdkFields in interface SdkPojo
      Parameters:
      obj - the object to be compared with
      Returns:
      true if the other object equals to this object by sdk fields, false otherwise.
    • toString

      public final String toString()
      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.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
      Returns:
      List of SdkField in this POJO. May be empty list but should never be null.
    • sdkFieldNameToField

      public final Map<String,SdkField<?>> sdkFieldNameToField()
      Specified by:
      sdkFieldNameToField in interface SdkPojo
      Returns:
      The mapping between the field name and its corresponding field.