/* * 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; /** *

* 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: *

* *

* Data repository associations are supported on Amazon File Cache resources and all FSx for Lustre 2.12 and newer file * systems, excluding scratch_1 deployment type. *

* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class DataRepositoryAssociation implements Serializable, Cloneable, StructuredPojo { /** *

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

*/ private String associationId; private String resourceARN; private String fileSystemId; /** *

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

* */ private String lifecycle; private DataRepositoryFailureDetails failureDetails; /** *

* 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. *

*
*/ private String fileSystemPath; /** *

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

* */ private String dataRepositoryPath; /** *

* 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. *

*
*/ private Boolean batchImportMetaDataOnCreate; /** *

* 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. *

*/ private Integer importedFileChunkSize; /** *

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

*/ private S3DataRepositoryConfiguration s3; private java.util.List tags; private java.util.Date creationTime; /** *

* The globally unique ID of the Amazon File Cache resource. *

*/ private String fileCacheId; /** *

* 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. *

*
*/ private String fileCachePath; /** *

* 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. *

*/ private java.util.List dataRepositorySubdirectories; /** *

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

*/ private NFSDataRepositoryConfiguration nFS; /** *

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

* * @param associationId * The system-generated, unique ID of the data repository association. */ public void setAssociationId(String associationId) { this.associationId = associationId; } /** *

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

* * @return The system-generated, unique ID of the data repository association. */ public String getAssociationId() { return this.associationId; } /** *

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

* * @param associationId * The system-generated, unique ID of the data repository association. * @return Returns a reference to this object so that method calls can be chained together. */ public DataRepositoryAssociation withAssociationId(String associationId) { setAssociationId(associationId); return this; } /** * @param resourceARN */ public void setResourceARN(String resourceARN) { this.resourceARN = resourceARN; } /** * @return */ public String getResourceARN() { return this.resourceARN; } /** * @param resourceARN * @return Returns a reference to this object so that method calls can be chained together. */ public DataRepositoryAssociation withResourceARN(String resourceARN) { setResourceARN(resourceARN); return this; } /** * @param fileSystemId */ public void setFileSystemId(String fileSystemId) { this.fileSystemId = fileSystemId; } /** * @return */ public String getFileSystemId() { return this.fileSystemId; } /** * @param fileSystemId * @return Returns a reference to this object so that method calls can be chained together. */ public DataRepositoryAssociation withFileSystemId(String fileSystemId) { setFileSystemId(fileSystemId); return this; } /** *

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

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

*