/** * 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 namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace S3Control { namespace Model { /** *

A container for the Amazon S3 Storage Lens configuration.

See * Also:

AWS * API Reference

*/ class StorageLensConfiguration { public: AWS_S3CONTROL_API StorageLensConfiguration(); AWS_S3CONTROL_API StorageLensConfiguration(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_S3CONTROL_API StorageLensConfiguration& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_S3CONTROL_API void AddToNode(Aws::Utils::Xml::XmlNode& parentNode) const; /** *

A container for the Amazon S3 Storage Lens configuration ID.

*/ inline const Aws::String& GetId() const{ return m_id; } /** *

A container for the Amazon S3 Storage Lens configuration ID.

*/ inline bool IdHasBeenSet() const { return m_idHasBeenSet; } /** *

A container for the Amazon S3 Storage Lens configuration ID.

*/ inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; } /** *

A container for the Amazon S3 Storage Lens configuration ID.

*/ inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); } /** *

A container for the Amazon S3 Storage Lens configuration ID.

*/ inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); } /** *

A container for the Amazon S3 Storage Lens configuration ID.

*/ inline StorageLensConfiguration& WithId(const Aws::String& value) { SetId(value); return *this;} /** *

A container for the Amazon S3 Storage Lens configuration ID.

*/ inline StorageLensConfiguration& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;} /** *

A container for the Amazon S3 Storage Lens configuration ID.

*/ inline StorageLensConfiguration& WithId(const char* value) { SetId(value); return *this;} /** *

A container for all the account-level configurations of your S3 Storage Lens * configuration.

*/ inline const AccountLevel& GetAccountLevel() const{ return m_accountLevel; } /** *

A container for all the account-level configurations of your S3 Storage Lens * configuration.

*/ inline bool AccountLevelHasBeenSet() const { return m_accountLevelHasBeenSet; } /** *

A container for all the account-level configurations of your S3 Storage Lens * configuration.

*/ inline void SetAccountLevel(const AccountLevel& value) { m_accountLevelHasBeenSet = true; m_accountLevel = value; } /** *

A container for all the account-level configurations of your S3 Storage Lens * configuration.

*/ inline void SetAccountLevel(AccountLevel&& value) { m_accountLevelHasBeenSet = true; m_accountLevel = std::move(value); } /** *

A container for all the account-level configurations of your S3 Storage Lens * configuration.

*/ inline StorageLensConfiguration& WithAccountLevel(const AccountLevel& value) { SetAccountLevel(value); return *this;} /** *

A container for all the account-level configurations of your S3 Storage Lens * configuration.

*/ inline StorageLensConfiguration& WithAccountLevel(AccountLevel&& value) { SetAccountLevel(std::move(value)); return *this;} /** *

A container for what is included in this configuration. This container can * only be valid if there is no Exclude container submitted, and it's * not empty.

*/ inline const Include& GetInclude() const{ return m_include; } /** *

A container for what is included in this configuration. This container can * only be valid if there is no Exclude container submitted, and it's * not empty.

*/ inline bool IncludeHasBeenSet() const { return m_includeHasBeenSet; } /** *

A container for what is included in this configuration. This container can * only be valid if there is no Exclude container submitted, and it's * not empty.

*/ inline void SetInclude(const Include& value) { m_includeHasBeenSet = true; m_include = value; } /** *

A container for what is included in this configuration. This container can * only be valid if there is no Exclude container submitted, and it's * not empty.

*/ inline void SetInclude(Include&& value) { m_includeHasBeenSet = true; m_include = std::move(value); } /** *

A container for what is included in this configuration. This container can * only be valid if there is no Exclude container submitted, and it's * not empty.

*/ inline StorageLensConfiguration& WithInclude(const Include& value) { SetInclude(value); return *this;} /** *

A container for what is included in this configuration. This container can * only be valid if there is no Exclude container submitted, and it's * not empty.

*/ inline StorageLensConfiguration& WithInclude(Include&& value) { SetInclude(std::move(value)); return *this;} /** *

A container for what is excluded in this configuration. This container can * only be valid if there is no Include container submitted, and it's * not empty.

*/ inline const Exclude& GetExclude() const{ return m_exclude; } /** *

A container for what is excluded in this configuration. This container can * only be valid if there is no Include container submitted, and it's * not empty.

*/ inline bool ExcludeHasBeenSet() const { return m_excludeHasBeenSet; } /** *

A container for what is excluded in this configuration. This container can * only be valid if there is no Include container submitted, and it's * not empty.

*/ inline void SetExclude(const Exclude& value) { m_excludeHasBeenSet = true; m_exclude = value; } /** *

A container for what is excluded in this configuration. This container can * only be valid if there is no Include container submitted, and it's * not empty.

*/ inline void SetExclude(Exclude&& value) { m_excludeHasBeenSet = true; m_exclude = std::move(value); } /** *

A container for what is excluded in this configuration. This container can * only be valid if there is no Include container submitted, and it's * not empty.

*/ inline StorageLensConfiguration& WithExclude(const Exclude& value) { SetExclude(value); return *this;} /** *

A container for what is excluded in this configuration. This container can * only be valid if there is no Include container submitted, and it's * not empty.

*/ inline StorageLensConfiguration& WithExclude(Exclude&& value) { SetExclude(std::move(value)); return *this;} /** *

A container to specify the properties of your S3 Storage Lens metrics export * including, the destination, schema and format.

*/ inline const StorageLensDataExport& GetDataExport() const{ return m_dataExport; } /** *

A container to specify the properties of your S3 Storage Lens metrics export * including, the destination, schema and format.

*/ inline bool DataExportHasBeenSet() const { return m_dataExportHasBeenSet; } /** *

A container to specify the properties of your S3 Storage Lens metrics export * including, the destination, schema and format.

*/ inline void SetDataExport(const StorageLensDataExport& value) { m_dataExportHasBeenSet = true; m_dataExport = value; } /** *

A container to specify the properties of your S3 Storage Lens metrics export * including, the destination, schema and format.

*/ inline void SetDataExport(StorageLensDataExport&& value) { m_dataExportHasBeenSet = true; m_dataExport = std::move(value); } /** *

A container to specify the properties of your S3 Storage Lens metrics export * including, the destination, schema and format.

*/ inline StorageLensConfiguration& WithDataExport(const StorageLensDataExport& value) { SetDataExport(value); return *this;} /** *

A container to specify the properties of your S3 Storage Lens metrics export * including, the destination, schema and format.

*/ inline StorageLensConfiguration& WithDataExport(StorageLensDataExport&& value) { SetDataExport(std::move(value)); return *this;} /** *

A container for whether the S3 Storage Lens configuration is enabled.

*/ inline bool GetIsEnabled() const{ return m_isEnabled; } /** *

A container for whether the S3 Storage Lens configuration is enabled.

*/ inline bool IsEnabledHasBeenSet() const { return m_isEnabledHasBeenSet; } /** *

A container for whether the S3 Storage Lens configuration is enabled.

*/ inline void SetIsEnabled(bool value) { m_isEnabledHasBeenSet = true; m_isEnabled = value; } /** *

A container for whether the S3 Storage Lens configuration is enabled.

*/ inline StorageLensConfiguration& WithIsEnabled(bool value) { SetIsEnabled(value); return *this;} /** *

A container for the Amazon Web Services organization for this S3 Storage Lens * configuration.

*/ inline const StorageLensAwsOrg& GetAwsOrg() const{ return m_awsOrg; } /** *

A container for the Amazon Web Services organization for this S3 Storage Lens * configuration.

*/ inline bool AwsOrgHasBeenSet() const { return m_awsOrgHasBeenSet; } /** *

A container for the Amazon Web Services organization for this S3 Storage Lens * configuration.

*/ inline void SetAwsOrg(const StorageLensAwsOrg& value) { m_awsOrgHasBeenSet = true; m_awsOrg = value; } /** *

A container for the Amazon Web Services organization for this S3 Storage Lens * configuration.

*/ inline void SetAwsOrg(StorageLensAwsOrg&& value) { m_awsOrgHasBeenSet = true; m_awsOrg = std::move(value); } /** *

A container for the Amazon Web Services organization for this S3 Storage Lens * configuration.

*/ inline StorageLensConfiguration& WithAwsOrg(const StorageLensAwsOrg& value) { SetAwsOrg(value); return *this;} /** *

A container for the Amazon Web Services organization for this S3 Storage Lens * configuration.

*/ inline StorageLensConfiguration& WithAwsOrg(StorageLensAwsOrg&& value) { SetAwsOrg(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This * property is read-only and follows the following format: * arn:aws:s3:us-east-1:example-account-id:storage-lens/your-dashboard-name *

*/ inline const Aws::String& GetStorageLensArn() const{ return m_storageLensArn; } /** *

The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This * property is read-only and follows the following format: * arn:aws:s3:us-east-1:example-account-id:storage-lens/your-dashboard-name *

*/ inline bool StorageLensArnHasBeenSet() const { return m_storageLensArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This * property is read-only and follows the following format: * arn:aws:s3:us-east-1:example-account-id:storage-lens/your-dashboard-name *

*/ inline void SetStorageLensArn(const Aws::String& value) { m_storageLensArnHasBeenSet = true; m_storageLensArn = value; } /** *

The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This * property is read-only and follows the following format: * arn:aws:s3:us-east-1:example-account-id:storage-lens/your-dashboard-name *

*/ inline void SetStorageLensArn(Aws::String&& value) { m_storageLensArnHasBeenSet = true; m_storageLensArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This * property is read-only and follows the following format: * arn:aws:s3:us-east-1:example-account-id:storage-lens/your-dashboard-name *

*/ inline void SetStorageLensArn(const char* value) { m_storageLensArnHasBeenSet = true; m_storageLensArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This * property is read-only and follows the following format: * arn:aws:s3:us-east-1:example-account-id:storage-lens/your-dashboard-name *

*/ inline StorageLensConfiguration& WithStorageLensArn(const Aws::String& value) { SetStorageLensArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This * property is read-only and follows the following format: * arn:aws:s3:us-east-1:example-account-id:storage-lens/your-dashboard-name *

*/ inline StorageLensConfiguration& WithStorageLensArn(Aws::String&& value) { SetStorageLensArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the S3 Storage Lens configuration. This * property is read-only and follows the following format: * arn:aws:s3:us-east-1:example-account-id:storage-lens/your-dashboard-name *

*/ inline StorageLensConfiguration& WithStorageLensArn(const char* value) { SetStorageLensArn(value); return *this;} private: Aws::String m_id; bool m_idHasBeenSet = false; AccountLevel m_accountLevel; bool m_accountLevelHasBeenSet = false; Include m_include; bool m_includeHasBeenSet = false; Exclude m_exclude; bool m_excludeHasBeenSet = false; StorageLensDataExport m_dataExport; bool m_dataExportHasBeenSet = false; bool m_isEnabled; bool m_isEnabledHasBeenSet = false; StorageLensAwsOrg m_awsOrg; bool m_awsOrgHasBeenSet = false; Aws::String m_storageLensArn; bool m_storageLensArnHasBeenSet = false; }; } // namespace Model } // namespace S3Control } // namespace Aws