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

The configuration that Amazon FSx for Windows File Server uses to audit and * log user accesses of files, folders, and file shares on the Amazon FSx for * Windows File Server file system. For more information, see * File access auditing.

See Also:

AWS * API Reference

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

Sets which attempt type is logged by Amazon FSx for file and folder * accesses.

  • SUCCESS_ONLY - only successful attempts * to access files or folders are logged.

  • * FAILURE_ONLY - only failed attempts to access files or folders are * logged.

  • SUCCESS_AND_FAILURE - both successful * attempts and failed attempts to access files or folders are logged.

  • *
  • DISABLED - access auditing of files and folders is turned * off.

*/ inline const WindowsAccessAuditLogLevel& GetFileAccessAuditLogLevel() const{ return m_fileAccessAuditLogLevel; } /** *

Sets which attempt type is logged by Amazon FSx for file and folder * accesses.

  • SUCCESS_ONLY - only successful attempts * to access files or folders are logged.

  • * FAILURE_ONLY - only failed attempts to access files or folders are * logged.

  • SUCCESS_AND_FAILURE - both successful * attempts and failed attempts to access files or folders are logged.

  • *
  • DISABLED - access auditing of files and folders is turned * off.

*/ inline bool FileAccessAuditLogLevelHasBeenSet() const { return m_fileAccessAuditLogLevelHasBeenSet; } /** *

Sets which attempt type is logged by Amazon FSx for file and folder * accesses.

  • SUCCESS_ONLY - only successful attempts * to access files or folders are logged.

  • * FAILURE_ONLY - only failed attempts to access files or folders are * logged.

  • SUCCESS_AND_FAILURE - both successful * attempts and failed attempts to access files or folders are logged.

  • *
  • DISABLED - access auditing of files and folders is turned * off.

*/ inline void SetFileAccessAuditLogLevel(const WindowsAccessAuditLogLevel& value) { m_fileAccessAuditLogLevelHasBeenSet = true; m_fileAccessAuditLogLevel = value; } /** *

Sets which attempt type is logged by Amazon FSx for file and folder * accesses.

  • SUCCESS_ONLY - only successful attempts * to access files or folders are logged.

  • * FAILURE_ONLY - only failed attempts to access files or folders are * logged.

  • SUCCESS_AND_FAILURE - both successful * attempts and failed attempts to access files or folders are logged.

  • *
  • DISABLED - access auditing of files and folders is turned * off.

*/ inline void SetFileAccessAuditLogLevel(WindowsAccessAuditLogLevel&& value) { m_fileAccessAuditLogLevelHasBeenSet = true; m_fileAccessAuditLogLevel = std::move(value); } /** *

Sets which attempt type is logged by Amazon FSx for file and folder * accesses.

  • SUCCESS_ONLY - only successful attempts * to access files or folders are logged.

  • * FAILURE_ONLY - only failed attempts to access files or folders are * logged.

  • SUCCESS_AND_FAILURE - both successful * attempts and failed attempts to access files or folders are logged.

  • *
  • DISABLED - access auditing of files and folders is turned * off.

*/ inline WindowsAuditLogConfiguration& WithFileAccessAuditLogLevel(const WindowsAccessAuditLogLevel& value) { SetFileAccessAuditLogLevel(value); return *this;} /** *

Sets which attempt type is logged by Amazon FSx for file and folder * accesses.

  • SUCCESS_ONLY - only successful attempts * to access files or folders are logged.

  • * FAILURE_ONLY - only failed attempts to access files or folders are * logged.

  • SUCCESS_AND_FAILURE - both successful * attempts and failed attempts to access files or folders are logged.

  • *
  • DISABLED - access auditing of files and folders is turned * off.

*/ inline WindowsAuditLogConfiguration& WithFileAccessAuditLogLevel(WindowsAccessAuditLogLevel&& value) { SetFileAccessAuditLogLevel(std::move(value)); return *this;} /** *

Sets which attempt type is logged by Amazon FSx for file share accesses.

*
  • SUCCESS_ONLY - only successful attempts to access * file shares are logged.

  • FAILURE_ONLY - only * failed attempts to access file shares are logged.

  • * SUCCESS_AND_FAILURE - both successful attempts and failed attempts * to access file shares are logged.

  • DISABLED - * access auditing of file shares is turned off.

*/ inline const WindowsAccessAuditLogLevel& GetFileShareAccessAuditLogLevel() const{ return m_fileShareAccessAuditLogLevel; } /** *

Sets which attempt type is logged by Amazon FSx for file share accesses.

*
  • SUCCESS_ONLY - only successful attempts to access * file shares are logged.

  • FAILURE_ONLY - only * failed attempts to access file shares are logged.

  • * SUCCESS_AND_FAILURE - both successful attempts and failed attempts * to access file shares are logged.

  • DISABLED - * access auditing of file shares is turned off.

*/ inline bool FileShareAccessAuditLogLevelHasBeenSet() const { return m_fileShareAccessAuditLogLevelHasBeenSet; } /** *

Sets which attempt type is logged by Amazon FSx for file share accesses.

*
  • SUCCESS_ONLY - only successful attempts to access * file shares are logged.

  • FAILURE_ONLY - only * failed attempts to access file shares are logged.

  • * SUCCESS_AND_FAILURE - both successful attempts and failed attempts * to access file shares are logged.

  • DISABLED - * access auditing of file shares is turned off.

*/ inline void SetFileShareAccessAuditLogLevel(const WindowsAccessAuditLogLevel& value) { m_fileShareAccessAuditLogLevelHasBeenSet = true; m_fileShareAccessAuditLogLevel = value; } /** *

Sets which attempt type is logged by Amazon FSx for file share accesses.

*
  • SUCCESS_ONLY - only successful attempts to access * file shares are logged.

  • FAILURE_ONLY - only * failed attempts to access file shares are logged.

  • * SUCCESS_AND_FAILURE - both successful attempts and failed attempts * to access file shares are logged.

  • DISABLED - * access auditing of file shares is turned off.

*/ inline void SetFileShareAccessAuditLogLevel(WindowsAccessAuditLogLevel&& value) { m_fileShareAccessAuditLogLevelHasBeenSet = true; m_fileShareAccessAuditLogLevel = std::move(value); } /** *

Sets which attempt type is logged by Amazon FSx for file share accesses.

*
  • SUCCESS_ONLY - only successful attempts to access * file shares are logged.

  • FAILURE_ONLY - only * failed attempts to access file shares are logged.

  • * SUCCESS_AND_FAILURE - both successful attempts and failed attempts * to access file shares are logged.

  • DISABLED - * access auditing of file shares is turned off.

*/ inline WindowsAuditLogConfiguration& WithFileShareAccessAuditLogLevel(const WindowsAccessAuditLogLevel& value) { SetFileShareAccessAuditLogLevel(value); return *this;} /** *

Sets which attempt type is logged by Amazon FSx for file share accesses.

*
  • SUCCESS_ONLY - only successful attempts to access * file shares are logged.

  • FAILURE_ONLY - only * failed attempts to access file shares are logged.

  • * SUCCESS_AND_FAILURE - both successful attempts and failed attempts * to access file shares are logged.

  • DISABLED - * access auditing of file shares is turned off.

*/ inline WindowsAuditLogConfiguration& WithFileShareAccessAuditLogLevel(WindowsAccessAuditLogLevel&& value) { SetFileShareAccessAuditLogLevel(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) for the destination of the audit logs. The * destination can be any Amazon CloudWatch Logs log group ARN or Amazon Kinesis * Data Firehose delivery stream ARN.

The name of the Amazon CloudWatch Logs * log group must begin with the /aws/fsx prefix. The name of the * Amazon Kinesis Data Firehouse delivery stream must begin with the * aws-fsx prefix.

The destination ARN (either CloudWatch Logs * log group or Kinesis Data Firehose delivery stream) must be in the same Amazon * Web Services partition, Amazon Web Services Region, and Amazon Web Services * account as your Amazon FSx file system.

*/ inline const Aws::String& GetAuditLogDestination() const{ return m_auditLogDestination; } /** *

The Amazon Resource Name (ARN) for the destination of the audit logs. The * destination can be any Amazon CloudWatch Logs log group ARN or Amazon Kinesis * Data Firehose delivery stream ARN.

The name of the Amazon CloudWatch Logs * log group must begin with the /aws/fsx prefix. The name of the * Amazon Kinesis Data Firehouse delivery stream must begin with the * aws-fsx prefix.

The destination ARN (either CloudWatch Logs * log group or Kinesis Data Firehose delivery stream) must be in the same Amazon * Web Services partition, Amazon Web Services Region, and Amazon Web Services * account as your Amazon FSx file system.

*/ inline bool AuditLogDestinationHasBeenSet() const { return m_auditLogDestinationHasBeenSet; } /** *

The Amazon Resource Name (ARN) for the destination of the audit logs. The * destination can be any Amazon CloudWatch Logs log group ARN or Amazon Kinesis * Data Firehose delivery stream ARN.

The name of the Amazon CloudWatch Logs * log group must begin with the /aws/fsx prefix. The name of the * Amazon Kinesis Data Firehouse delivery stream must begin with the * aws-fsx prefix.

The destination ARN (either CloudWatch Logs * log group or Kinesis Data Firehose delivery stream) must be in the same Amazon * Web Services partition, Amazon Web Services Region, and Amazon Web Services * account as your Amazon FSx file system.

*/ inline void SetAuditLogDestination(const Aws::String& value) { m_auditLogDestinationHasBeenSet = true; m_auditLogDestination = value; } /** *

The Amazon Resource Name (ARN) for the destination of the audit logs. The * destination can be any Amazon CloudWatch Logs log group ARN or Amazon Kinesis * Data Firehose delivery stream ARN.

The name of the Amazon CloudWatch Logs * log group must begin with the /aws/fsx prefix. The name of the * Amazon Kinesis Data Firehouse delivery stream must begin with the * aws-fsx prefix.

The destination ARN (either CloudWatch Logs * log group or Kinesis Data Firehose delivery stream) must be in the same Amazon * Web Services partition, Amazon Web Services Region, and Amazon Web Services * account as your Amazon FSx file system.

*/ inline void SetAuditLogDestination(Aws::String&& value) { m_auditLogDestinationHasBeenSet = true; m_auditLogDestination = std::move(value); } /** *

The Amazon Resource Name (ARN) for the destination of the audit logs. The * destination can be any Amazon CloudWatch Logs log group ARN or Amazon Kinesis * Data Firehose delivery stream ARN.

The name of the Amazon CloudWatch Logs * log group must begin with the /aws/fsx prefix. The name of the * Amazon Kinesis Data Firehouse delivery stream must begin with the * aws-fsx prefix.

The destination ARN (either CloudWatch Logs * log group or Kinesis Data Firehose delivery stream) must be in the same Amazon * Web Services partition, Amazon Web Services Region, and Amazon Web Services * account as your Amazon FSx file system.

*/ inline void SetAuditLogDestination(const char* value) { m_auditLogDestinationHasBeenSet = true; m_auditLogDestination.assign(value); } /** *

The Amazon Resource Name (ARN) for the destination of the audit logs. The * destination can be any Amazon CloudWatch Logs log group ARN or Amazon Kinesis * Data Firehose delivery stream ARN.

The name of the Amazon CloudWatch Logs * log group must begin with the /aws/fsx prefix. The name of the * Amazon Kinesis Data Firehouse delivery stream must begin with the * aws-fsx prefix.

The destination ARN (either CloudWatch Logs * log group or Kinesis Data Firehose delivery stream) must be in the same Amazon * Web Services partition, Amazon Web Services Region, and Amazon Web Services * account as your Amazon FSx file system.

*/ inline WindowsAuditLogConfiguration& WithAuditLogDestination(const Aws::String& value) { SetAuditLogDestination(value); return *this;} /** *

The Amazon Resource Name (ARN) for the destination of the audit logs. The * destination can be any Amazon CloudWatch Logs log group ARN or Amazon Kinesis * Data Firehose delivery stream ARN.

The name of the Amazon CloudWatch Logs * log group must begin with the /aws/fsx prefix. The name of the * Amazon Kinesis Data Firehouse delivery stream must begin with the * aws-fsx prefix.

The destination ARN (either CloudWatch Logs * log group or Kinesis Data Firehose delivery stream) must be in the same Amazon * Web Services partition, Amazon Web Services Region, and Amazon Web Services * account as your Amazon FSx file system.

*/ inline WindowsAuditLogConfiguration& WithAuditLogDestination(Aws::String&& value) { SetAuditLogDestination(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) for the destination of the audit logs. The * destination can be any Amazon CloudWatch Logs log group ARN or Amazon Kinesis * Data Firehose delivery stream ARN.

The name of the Amazon CloudWatch Logs * log group must begin with the /aws/fsx prefix. The name of the * Amazon Kinesis Data Firehouse delivery stream must begin with the * aws-fsx prefix.

The destination ARN (either CloudWatch Logs * log group or Kinesis Data Firehose delivery stream) must be in the same Amazon * Web Services partition, Amazon Web Services Region, and Amazon Web Services * account as your Amazon FSx file system.

*/ inline WindowsAuditLogConfiguration& WithAuditLogDestination(const char* value) { SetAuditLogDestination(value); return *this;} private: WindowsAccessAuditLogLevel m_fileAccessAuditLogLevel; bool m_fileAccessAuditLogLevelHasBeenSet = false; WindowsAccessAuditLogLevel m_fileShareAccessAuditLogLevel; bool m_fileShareAccessAuditLogLevelHasBeenSet = false; Aws::String m_auditLogDestination; bool m_auditLogDestinationHasBeenSet = false; }; } // namespace Model } // namespace FSx } // namespace Aws