/** * 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 Windows file access auditing configuration used when creating or updating * an Amazon FSx for Windows File Server file system.

See Also:

AWS * API Reference

*/ class WindowsAuditLogCreateConfiguration { public: AWS_FSX_API WindowsAuditLogCreateConfiguration(); AWS_FSX_API WindowsAuditLogCreateConfiguration(Aws::Utils::Json::JsonView jsonValue); AWS_FSX_API WindowsAuditLogCreateConfiguration& 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 WindowsAuditLogCreateConfiguration& 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 WindowsAuditLogCreateConfiguration& 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 WindowsAuditLogCreateConfiguration& 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 WindowsAuditLogCreateConfiguration& WithFileShareAccessAuditLogLevel(WindowsAccessAuditLogLevel&& value) { SetFileShareAccessAuditLogLevel(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) that specifies 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, with the following * requirements:

  • The destination ARN that you provide (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.

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

  • *

    If you do not provide a destination in AuditLogDestination, * Amazon FSx will create and use a log stream in the CloudWatch Logs * /aws/fsx/windows log group.

  • If * AuditLogDestination is provided and the resource does not exist, * the request will fail with a BadRequest error.

  • If * FileAccessAuditLogLevel and * FileShareAccessAuditLogLevel are both set to DISABLED, * you cannot specify a destination in AuditLogDestination.

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

The Amazon Resource Name (ARN) that specifies 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, with the following * requirements:

  • The destination ARN that you provide (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.

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

  • *

    If you do not provide a destination in AuditLogDestination, * Amazon FSx will create and use a log stream in the CloudWatch Logs * /aws/fsx/windows log group.

  • If * AuditLogDestination is provided and the resource does not exist, * the request will fail with a BadRequest error.

  • If * FileAccessAuditLogLevel and * FileShareAccessAuditLogLevel are both set to DISABLED, * you cannot specify a destination in AuditLogDestination.

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

The Amazon Resource Name (ARN) that specifies 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, with the following * requirements:

  • The destination ARN that you provide (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.

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

  • *

    If you do not provide a destination in AuditLogDestination, * Amazon FSx will create and use a log stream in the CloudWatch Logs * /aws/fsx/windows log group.

  • If * AuditLogDestination is provided and the resource does not exist, * the request will fail with a BadRequest error.

  • If * FileAccessAuditLogLevel and * FileShareAccessAuditLogLevel are both set to DISABLED, * you cannot specify a destination in AuditLogDestination.

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

The Amazon Resource Name (ARN) that specifies 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, with the following * requirements:

  • The destination ARN that you provide (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.

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

  • *

    If you do not provide a destination in AuditLogDestination, * Amazon FSx will create and use a log stream in the CloudWatch Logs * /aws/fsx/windows log group.

  • If * AuditLogDestination is provided and the resource does not exist, * the request will fail with a BadRequest error.

  • If * FileAccessAuditLogLevel and * FileShareAccessAuditLogLevel are both set to DISABLED, * you cannot specify a destination in AuditLogDestination.

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

The Amazon Resource Name (ARN) that specifies 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, with the following * requirements:

  • The destination ARN that you provide (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.

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

  • *

    If you do not provide a destination in AuditLogDestination, * Amazon FSx will create and use a log stream in the CloudWatch Logs * /aws/fsx/windows log group.

  • If * AuditLogDestination is provided and the resource does not exist, * the request will fail with a BadRequest error.

  • If * FileAccessAuditLogLevel and * FileShareAccessAuditLogLevel are both set to DISABLED, * you cannot specify a destination in AuditLogDestination.

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

The Amazon Resource Name (ARN) that specifies 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, with the following * requirements:

  • The destination ARN that you provide (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.

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

  • *

    If you do not provide a destination in AuditLogDestination, * Amazon FSx will create and use a log stream in the CloudWatch Logs * /aws/fsx/windows log group.

  • If * AuditLogDestination is provided and the resource does not exist, * the request will fail with a BadRequest error.

  • If * FileAccessAuditLogLevel and * FileShareAccessAuditLogLevel are both set to DISABLED, * you cannot specify a destination in AuditLogDestination.

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

The Amazon Resource Name (ARN) that specifies 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, with the following * requirements:

  • The destination ARN that you provide (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.

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

  • *

    If you do not provide a destination in AuditLogDestination, * Amazon FSx will create and use a log stream in the CloudWatch Logs * /aws/fsx/windows log group.

  • If * AuditLogDestination is provided and the resource does not exist, * the request will fail with a BadRequest error.

  • If * FileAccessAuditLogLevel and * FileShareAccessAuditLogLevel are both set to DISABLED, * you cannot specify a destination in AuditLogDestination.

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

The Amazon Resource Name (ARN) that specifies 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, with the following * requirements:

  • The destination ARN that you provide (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.

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

  • *

    If you do not provide a destination in AuditLogDestination, * Amazon FSx will create and use a log stream in the CloudWatch Logs * /aws/fsx/windows log group.

  • If * AuditLogDestination is provided and the resource does not exist, * the request will fail with a BadRequest error.

  • If * FileAccessAuditLogLevel and * FileShareAccessAuditLogLevel are both set to DISABLED, * you cannot specify a destination in AuditLogDestination.

  • *
*/ inline WindowsAuditLogCreateConfiguration& 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