/**
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * SPDX-License-Identifier: Apache-2.0.
 */
#pragma once
#include  The configuration for an Amazon S3 data repository linked to an Amazon FSx
   * for Lustre file system with a data repository association. The configuration
   * consists of an  Data repository associations on Amazon File Cache
   * don't use AutoImportPolicy that defines which file events on
   * the data repository are automatically imported to the file system and an
   * AutoExportPolicy that defines which file events on the file system
   * are automatically exported to the data repository. File events are when files or
   * directories are added, changed, or deleted on the file system or the data
   * repository.S3DataRepositoryConfiguration because they don't support
   * automatic import or automatic export.See Also:
   AWS
   * API Reference
Specifies the type of updated objects (new, changed, deleted) that will be * automatically imported from the linked S3 bucket to your file system.
*/ inline const AutoImportPolicy& GetAutoImportPolicy() const{ return m_autoImportPolicy; } /** *Specifies the type of updated objects (new, changed, deleted) that will be * automatically imported from the linked S3 bucket to your file system.
*/ inline bool AutoImportPolicyHasBeenSet() const { return m_autoImportPolicyHasBeenSet; } /** *Specifies the type of updated objects (new, changed, deleted) that will be * automatically imported from the linked S3 bucket to your file system.
*/ inline void SetAutoImportPolicy(const AutoImportPolicy& value) { m_autoImportPolicyHasBeenSet = true; m_autoImportPolicy = value; } /** *Specifies the type of updated objects (new, changed, deleted) that will be * automatically imported from the linked S3 bucket to your file system.
*/ inline void SetAutoImportPolicy(AutoImportPolicy&& value) { m_autoImportPolicyHasBeenSet = true; m_autoImportPolicy = std::move(value); } /** *Specifies the type of updated objects (new, changed, deleted) that will be * automatically imported from the linked S3 bucket to your file system.
*/ inline S3DataRepositoryConfiguration& WithAutoImportPolicy(const AutoImportPolicy& value) { SetAutoImportPolicy(value); return *this;} /** *Specifies the type of updated objects (new, changed, deleted) that will be * automatically imported from the linked S3 bucket to your file system.
*/ inline S3DataRepositoryConfiguration& WithAutoImportPolicy(AutoImportPolicy&& value) { SetAutoImportPolicy(std::move(value)); return *this;} /** *Specifies the type of updated objects (new, changed, deleted) that will be * automatically exported from your file system to the linked S3 bucket.
*/ inline const AutoExportPolicy& GetAutoExportPolicy() const{ return m_autoExportPolicy; } /** *Specifies the type of updated objects (new, changed, deleted) that will be * automatically exported from your file system to the linked S3 bucket.
*/ inline bool AutoExportPolicyHasBeenSet() const { return m_autoExportPolicyHasBeenSet; } /** *Specifies the type of updated objects (new, changed, deleted) that will be * automatically exported from your file system to the linked S3 bucket.
*/ inline void SetAutoExportPolicy(const AutoExportPolicy& value) { m_autoExportPolicyHasBeenSet = true; m_autoExportPolicy = value; } /** *Specifies the type of updated objects (new, changed, deleted) that will be * automatically exported from your file system to the linked S3 bucket.
*/ inline void SetAutoExportPolicy(AutoExportPolicy&& value) { m_autoExportPolicyHasBeenSet = true; m_autoExportPolicy = std::move(value); } /** *Specifies the type of updated objects (new, changed, deleted) that will be * automatically exported from your file system to the linked S3 bucket.
*/ inline S3DataRepositoryConfiguration& WithAutoExportPolicy(const AutoExportPolicy& value) { SetAutoExportPolicy(value); return *this;} /** *Specifies the type of updated objects (new, changed, deleted) that will be * automatically exported from your file system to the linked S3 bucket.
*/ inline S3DataRepositoryConfiguration& WithAutoExportPolicy(AutoExportPolicy&& value) { SetAutoExportPolicy(std::move(value)); return *this;} private: AutoImportPolicy m_autoImportPolicy; bool m_autoImportPolicyHasBeenSet = false; AutoExportPolicy m_autoExportPolicy; bool m_autoExportPolicyHasBeenSet = false; }; } // namespace Model } // namespace FSx } // namespace Aws