/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace FSx { namespace Model { /** *

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 newer file systems, excluding scratch_1 * deployment type.

See Also:

AWS * API Reference

*/ class DataRepositoryAssociation { public: AWS_FSX_API DataRepositoryAssociation(); AWS_FSX_API DataRepositoryAssociation(Aws::Utils::Json::JsonView jsonValue); AWS_FSX_API DataRepositoryAssociation& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_FSX_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

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

*/ inline const Aws::String& GetAssociationId() const{ return m_associationId; } /** *

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

*/ inline bool AssociationIdHasBeenSet() const { return m_associationIdHasBeenSet; } /** *

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

*/ inline void SetAssociationId(const Aws::String& value) { m_associationIdHasBeenSet = true; m_associationId = value; } /** *

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

*/ inline void SetAssociationId(Aws::String&& value) { m_associationIdHasBeenSet = true; m_associationId = std::move(value); } /** *

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

*/ inline void SetAssociationId(const char* value) { m_associationIdHasBeenSet = true; m_associationId.assign(value); } /** *

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

*/ inline DataRepositoryAssociation& WithAssociationId(const Aws::String& value) { SetAssociationId(value); return *this;} /** *

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

*/ inline DataRepositoryAssociation& WithAssociationId(Aws::String&& value) { SetAssociationId(std::move(value)); return *this;} /** *

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

*/ inline DataRepositoryAssociation& WithAssociationId(const char* value) { SetAssociationId(value); return *this;} inline const Aws::String& GetResourceARN() const{ return m_resourceARN; } inline bool ResourceARNHasBeenSet() const { return m_resourceARNHasBeenSet; } inline void SetResourceARN(const Aws::String& value) { m_resourceARNHasBeenSet = true; m_resourceARN = value; } inline void SetResourceARN(Aws::String&& value) { m_resourceARNHasBeenSet = true; m_resourceARN = std::move(value); } inline void SetResourceARN(const char* value) { m_resourceARNHasBeenSet = true; m_resourceARN.assign(value); } inline DataRepositoryAssociation& WithResourceARN(const Aws::String& value) { SetResourceARN(value); return *this;} inline DataRepositoryAssociation& WithResourceARN(Aws::String&& value) { SetResourceARN(std::move(value)); return *this;} inline DataRepositoryAssociation& WithResourceARN(const char* value) { SetResourceARN(value); return *this;} inline const Aws::String& GetFileSystemId() const{ return m_fileSystemId; } inline bool FileSystemIdHasBeenSet() const { return m_fileSystemIdHasBeenSet; } inline void SetFileSystemId(const Aws::String& value) { m_fileSystemIdHasBeenSet = true; m_fileSystemId = value; } inline void SetFileSystemId(Aws::String&& value) { m_fileSystemIdHasBeenSet = true; m_fileSystemId = std::move(value); } inline void SetFileSystemId(const char* value) { m_fileSystemIdHasBeenSet = true; m_fileSystemId.assign(value); } inline DataRepositoryAssociation& WithFileSystemId(const Aws::String& value) { SetFileSystemId(value); return *this;} inline DataRepositoryAssociation& WithFileSystemId(Aws::String&& value) { SetFileSystemId(std::move(value)); return *this;} inline DataRepositoryAssociation& WithFileSystemId(const char* value) { SetFileSystemId(value); return *this;} /** *

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.

*/ inline const DataRepositoryLifecycle& GetLifecycle() const{ return m_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.

*/ inline bool LifecycleHasBeenSet() const { return m_lifecycleHasBeenSet; } /** *

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.

*/ inline void SetLifecycle(const DataRepositoryLifecycle& value) { m_lifecycleHasBeenSet = true; m_lifecycle = value; } /** *

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.

*/ inline void SetLifecycle(DataRepositoryLifecycle&& value) { m_lifecycleHasBeenSet = true; m_lifecycle = std::move(value); } /** *

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.

*/ inline DataRepositoryAssociation& WithLifecycle(const DataRepositoryLifecycle& value) { SetLifecycle(value); return *this;} /** *

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.

*/ inline DataRepositoryAssociation& WithLifecycle(DataRepositoryLifecycle&& value) { SetLifecycle(std::move(value)); return *this;} inline const DataRepositoryFailureDetails& GetFailureDetails() const{ return m_failureDetails; } inline bool FailureDetailsHasBeenSet() const { return m_failureDetailsHasBeenSet; } inline void SetFailureDetails(const DataRepositoryFailureDetails& value) { m_failureDetailsHasBeenSet = true; m_failureDetails = value; } inline void SetFailureDetails(DataRepositoryFailureDetails&& value) { m_failureDetailsHasBeenSet = true; m_failureDetails = std::move(value); } inline DataRepositoryAssociation& WithFailureDetails(const DataRepositoryFailureDetails& value) { SetFailureDetails(value); return *this;} inline DataRepositoryAssociation& WithFailureDetails(DataRepositoryFailureDetails&& value) { SetFailureDetails(std::move(value)); return *this;} /** *

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.

*/ inline const Aws::String& GetFileSystemPath() const{ return m_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.

*/ inline bool FileSystemPathHasBeenSet() const { return m_fileSystemPathHasBeenSet; } /** *

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.

*/ inline void SetFileSystemPath(const Aws::String& value) { m_fileSystemPathHasBeenSet = true; m_fileSystemPath = value; } /** *

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.

*/ inline void SetFileSystemPath(Aws::String&& value) { m_fileSystemPathHasBeenSet = true; m_fileSystemPath = std::move(value); } /** *

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.

*/ inline void SetFileSystemPath(const char* value) { m_fileSystemPathHasBeenSet = true; m_fileSystemPath.assign(value); } /** *

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.

*/ inline DataRepositoryAssociation& WithFileSystemPath(const Aws::String& value) { SetFileSystemPath(value); return *this;} /** *

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.

*/ inline DataRepositoryAssociation& WithFileSystemPath(Aws::String&& value) { SetFileSystemPath(std::move(value)); return *this;} /** *

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.

*/ inline DataRepositoryAssociation& WithFileSystemPath(const char* value) { SetFileSystemPath(value); return *this;} /** *

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://myBucket/myPrefix/.

    *
  • For Amazon FSx for Lustre, the path can be an S3 bucket or prefix * in the format s3://myBucket/myPrefix/.

*/ inline const Aws::String& GetDataRepositoryPath() const{ return m_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://myBucket/myPrefix/.

    *
  • For Amazon FSx for Lustre, the path can be an S3 bucket or prefix * in the format s3://myBucket/myPrefix/.

*/ inline bool DataRepositoryPathHasBeenSet() const { return m_dataRepositoryPathHasBeenSet; } /** *

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://myBucket/myPrefix/.

    *
  • For Amazon FSx for Lustre, the path can be an S3 bucket or prefix * in the format s3://myBucket/myPrefix/.

*/ inline void SetDataRepositoryPath(const Aws::String& value) { m_dataRepositoryPathHasBeenSet = true; m_dataRepositoryPath = value; } /** *

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://myBucket/myPrefix/.

    *
  • For Amazon FSx for Lustre, the path can be an S3 bucket or prefix * in the format s3://myBucket/myPrefix/.

*/ inline void SetDataRepositoryPath(Aws::String&& value) { m_dataRepositoryPathHasBeenSet = true; m_dataRepositoryPath = std::move(value); } /** *

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://myBucket/myPrefix/.

    *
  • For Amazon FSx for Lustre, the path can be an S3 bucket or prefix * in the format s3://myBucket/myPrefix/.

*/ inline void SetDataRepositoryPath(const char* value) { m_dataRepositoryPathHasBeenSet = true; m_dataRepositoryPath.assign(value); } /** *

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://myBucket/myPrefix/.

    *
  • For Amazon FSx for Lustre, the path can be an S3 bucket or prefix * in the format s3://myBucket/myPrefix/.

*/ inline DataRepositoryAssociation& WithDataRepositoryPath(const Aws::String& value) { SetDataRepositoryPath(value); return *this;} /** *

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://myBucket/myPrefix/.

    *
  • For Amazon FSx for Lustre, the path can be an S3 bucket or prefix * in the format s3://myBucket/myPrefix/.

*/ inline DataRepositoryAssociation& WithDataRepositoryPath(Aws::String&& value) { SetDataRepositoryPath(std::move(value)); return *this;} /** *

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://myBucket/myPrefix/.

    *
  • For Amazon FSx for Lustre, the path can be an S3 bucket or prefix * in the format s3://myBucket/myPrefix/.

*/ inline DataRepositoryAssociation& WithDataRepositoryPath(const char* value) { SetDataRepositoryPath(value); return *this;} /** *

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.

*/ inline bool GetBatchImportMetaDataOnCreate() const{ return m_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.

*/ inline bool BatchImportMetaDataOnCreateHasBeenSet() const { return m_batchImportMetaDataOnCreateHasBeenSet; } /** *

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.

*/ inline void SetBatchImportMetaDataOnCreate(bool value) { m_batchImportMetaDataOnCreateHasBeenSet = true; m_batchImportMetaDataOnCreate = value; } /** *

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.

*/ inline DataRepositoryAssociation& WithBatchImportMetaDataOnCreate(bool value) { SetBatchImportMetaDataOnCreate(value); return *this;} /** *

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.

*/ inline int GetImportedFileChunkSize() const{ return m_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.

*/ inline bool ImportedFileChunkSizeHasBeenSet() const { return m_importedFileChunkSizeHasBeenSet; } /** *

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.

*/ inline void SetImportedFileChunkSize(int value) { m_importedFileChunkSizeHasBeenSet = true; m_importedFileChunkSize = value; } /** *

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.

*/ inline DataRepositoryAssociation& WithImportedFileChunkSize(int value) { SetImportedFileChunkSize(value); return *this;} /** *

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

*/ inline const S3DataRepositoryConfiguration& GetS3() const{ return m_s3; } /** *

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

*/ inline bool S3HasBeenSet() const { return m_s3HasBeenSet; } /** *

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

*/ inline void SetS3(const S3DataRepositoryConfiguration& value) { m_s3HasBeenSet = true; m_s3 = value; } /** *

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

*/ inline void SetS3(S3DataRepositoryConfiguration&& value) { m_s3HasBeenSet = true; m_s3 = std::move(value); } /** *

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

*/ inline DataRepositoryAssociation& WithS3(const S3DataRepositoryConfiguration& value) { SetS3(value); return *this;} /** *

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

*/ inline DataRepositoryAssociation& WithS3(S3DataRepositoryConfiguration&& value) { SetS3(std::move(value)); return *this;} inline const Aws::Vector& GetTags() const{ return m_tags; } inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } inline DataRepositoryAssociation& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} inline DataRepositoryAssociation& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} inline DataRepositoryAssociation& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } inline DataRepositoryAssociation& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } inline const Aws::Utils::DateTime& GetCreationTime() const{ return m_creationTime; } inline bool CreationTimeHasBeenSet() const { return m_creationTimeHasBeenSet; } inline void SetCreationTime(const Aws::Utils::DateTime& value) { m_creationTimeHasBeenSet = true; m_creationTime = value; } inline void SetCreationTime(Aws::Utils::DateTime&& value) { m_creationTimeHasBeenSet = true; m_creationTime = std::move(value); } inline DataRepositoryAssociation& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;} inline DataRepositoryAssociation& WithCreationTime(Aws::Utils::DateTime&& value) { SetCreationTime(std::move(value)); return *this;} /** *

The globally unique ID of the Amazon File Cache resource.

*/ inline const Aws::String& GetFileCacheId() const{ return m_fileCacheId; } /** *

The globally unique ID of the Amazon File Cache resource.

*/ inline bool FileCacheIdHasBeenSet() const { return m_fileCacheIdHasBeenSet; } /** *

The globally unique ID of the Amazon File Cache resource.

*/ inline void SetFileCacheId(const Aws::String& value) { m_fileCacheIdHasBeenSet = true; m_fileCacheId = value; } /** *

The globally unique ID of the Amazon File Cache resource.

*/ inline void SetFileCacheId(Aws::String&& value) { m_fileCacheIdHasBeenSet = true; m_fileCacheId = std::move(value); } /** *

The globally unique ID of the Amazon File Cache resource.

*/ inline void SetFileCacheId(const char* value) { m_fileCacheIdHasBeenSet = true; m_fileCacheId.assign(value); } /** *

The globally unique ID of the Amazon File Cache resource.

*/ inline DataRepositoryAssociation& WithFileCacheId(const Aws::String& value) { SetFileCacheId(value); return *this;} /** *

The globally unique ID of the Amazon File Cache resource.

*/ inline DataRepositoryAssociation& WithFileCacheId(Aws::String&& value) { SetFileCacheId(std::move(value)); return *this;} /** *

The globally unique ID of the Amazon File Cache resource.

*/ inline DataRepositoryAssociation& WithFileCacheId(const char* value) { SetFileCacheId(value); return *this;} /** *

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.

* */ inline const Aws::String& GetFileCachePath() const{ return m_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.

* */ inline bool FileCachePathHasBeenSet() const { return m_fileCachePathHasBeenSet; } /** *

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.

* */ inline void SetFileCachePath(const Aws::String& value) { m_fileCachePathHasBeenSet = true; m_fileCachePath = value; } /** *

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.

* */ inline void SetFileCachePath(Aws::String&& value) { m_fileCachePathHasBeenSet = true; m_fileCachePath = std::move(value); } /** *

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.

* */ inline void SetFileCachePath(const char* value) { m_fileCachePathHasBeenSet = true; m_fileCachePath.assign(value); } /** *

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.

* */ inline DataRepositoryAssociation& WithFileCachePath(const Aws::String& value) { SetFileCachePath(value); return *this;} /** *

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.

* */ inline DataRepositoryAssociation& WithFileCachePath(Aws::String&& value) { SetFileCachePath(std::move(value)); return *this;} /** *

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.

* */ inline DataRepositoryAssociation& WithFileCachePath(const char* value) { SetFileCachePath(value); return *this;} /** *

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.

*/ inline const Aws::Vector& GetDataRepositorySubdirectories() const{ return m_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.

*/ inline bool DataRepositorySubdirectoriesHasBeenSet() const { return m_dataRepositorySubdirectoriesHasBeenSet; } /** *

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.

*/ inline void SetDataRepositorySubdirectories(const Aws::Vector& value) { m_dataRepositorySubdirectoriesHasBeenSet = true; m_dataRepositorySubdirectories = value; } /** *

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.

*/ inline void SetDataRepositorySubdirectories(Aws::Vector&& value) { m_dataRepositorySubdirectoriesHasBeenSet = true; m_dataRepositorySubdirectories = std::move(value); } /** *

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.

*/ inline DataRepositoryAssociation& WithDataRepositorySubdirectories(const Aws::Vector& value) { SetDataRepositorySubdirectories(value); return *this;} /** *

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.

*/ inline DataRepositoryAssociation& WithDataRepositorySubdirectories(Aws::Vector&& value) { SetDataRepositorySubdirectories(std::move(value)); return *this;} /** *

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.

*/ inline DataRepositoryAssociation& AddDataRepositorySubdirectories(const Aws::String& value) { m_dataRepositorySubdirectoriesHasBeenSet = true; m_dataRepositorySubdirectories.push_back(value); return *this; } /** *

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.

*/ inline DataRepositoryAssociation& AddDataRepositorySubdirectories(Aws::String&& value) { m_dataRepositorySubdirectoriesHasBeenSet = true; m_dataRepositorySubdirectories.push_back(std::move(value)); return *this; } /** *

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.

*/ inline DataRepositoryAssociation& AddDataRepositorySubdirectories(const char* value) { m_dataRepositorySubdirectoriesHasBeenSet = true; m_dataRepositorySubdirectories.push_back(value); return *this; } /** *

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

*/ inline const NFSDataRepositoryConfiguration& GetNFS() const{ return m_nFS; } /** *

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

*/ inline bool NFSHasBeenSet() const { return m_nFSHasBeenSet; } /** *

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

*/ inline void SetNFS(const NFSDataRepositoryConfiguration& value) { m_nFSHasBeenSet = true; m_nFS = value; } /** *

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

*/ inline void SetNFS(NFSDataRepositoryConfiguration&& value) { m_nFSHasBeenSet = true; m_nFS = std::move(value); } /** *

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

*/ inline DataRepositoryAssociation& WithNFS(const NFSDataRepositoryConfiguration& value) { SetNFS(value); return *this;} /** *

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

*/ inline DataRepositoryAssociation& WithNFS(NFSDataRepositoryConfiguration&& value) { SetNFS(std::move(value)); return *this;} private: Aws::String m_associationId; bool m_associationIdHasBeenSet = false; Aws::String m_resourceARN; bool m_resourceARNHasBeenSet = false; Aws::String m_fileSystemId; bool m_fileSystemIdHasBeenSet = false; DataRepositoryLifecycle m_lifecycle; bool m_lifecycleHasBeenSet = false; DataRepositoryFailureDetails m_failureDetails; bool m_failureDetailsHasBeenSet = false; Aws::String m_fileSystemPath; bool m_fileSystemPathHasBeenSet = false; Aws::String m_dataRepositoryPath; bool m_dataRepositoryPathHasBeenSet = false; bool m_batchImportMetaDataOnCreate; bool m_batchImportMetaDataOnCreateHasBeenSet = false; int m_importedFileChunkSize; bool m_importedFileChunkSizeHasBeenSet = false; S3DataRepositoryConfiguration m_s3; bool m_s3HasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::Utils::DateTime m_creationTime; bool m_creationTimeHasBeenSet = false; Aws::String m_fileCacheId; bool m_fileCacheIdHasBeenSet = false; Aws::String m_fileCachePath; bool m_fileCachePathHasBeenSet = false; Aws::Vector m_dataRepositorySubdirectories; bool m_dataRepositorySubdirectoriesHasBeenSet = false; NFSDataRepositoryConfiguration m_nFS; bool m_nFSHasBeenSet = false; }; } // namespace Model } // namespace FSx } // namespace Aws