/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Provides information about an S3 bucket that Amazon Macie monitors and
* analyzes.See Also:
AWS
* API Reference
The unique identifier for the AWS account that's associated with the * bucket.
*/ inline const Aws::String& GetAccountId() const{ return m_accountId; } /** *The unique identifier for the AWS account that's associated with the * bucket.
*/ inline bool AccountIdHasBeenSet() const { return m_accountIdHasBeenSet; } /** *The unique identifier for the AWS account that's associated with the * bucket.
*/ inline void SetAccountId(const Aws::String& value) { m_accountIdHasBeenSet = true; m_accountId = value; } /** *The unique identifier for the AWS account that's associated with the * bucket.
*/ inline void SetAccountId(Aws::String&& value) { m_accountIdHasBeenSet = true; m_accountId = std::move(value); } /** *The unique identifier for the AWS account that's associated with the * bucket.
*/ inline void SetAccountId(const char* value) { m_accountIdHasBeenSet = true; m_accountId.assign(value); } /** *The unique identifier for the AWS account that's associated with the * bucket.
*/ inline BucketMetadata& WithAccountId(const Aws::String& value) { SetAccountId(value); return *this;} /** *The unique identifier for the AWS account that's associated with the * bucket.
*/ inline BucketMetadata& WithAccountId(Aws::String&& value) { SetAccountId(std::move(value)); return *this;} /** *The unique identifier for the AWS account that's associated with the * bucket.
*/ inline BucketMetadata& WithAccountId(const char* value) { SetAccountId(value); return *this;} /** *The Amazon Resource Name (ARN) of the bucket.
*/ inline const Aws::String& GetBucketArn() const{ return m_bucketArn; } /** *The Amazon Resource Name (ARN) of the bucket.
*/ inline bool BucketArnHasBeenSet() const { return m_bucketArnHasBeenSet; } /** *The Amazon Resource Name (ARN) of the bucket.
*/ inline void SetBucketArn(const Aws::String& value) { m_bucketArnHasBeenSet = true; m_bucketArn = value; } /** *The Amazon Resource Name (ARN) of the bucket.
*/ inline void SetBucketArn(Aws::String&& value) { m_bucketArnHasBeenSet = true; m_bucketArn = std::move(value); } /** *The Amazon Resource Name (ARN) of the bucket.
*/ inline void SetBucketArn(const char* value) { m_bucketArnHasBeenSet = true; m_bucketArn.assign(value); } /** *The Amazon Resource Name (ARN) of the bucket.
*/ inline BucketMetadata& WithBucketArn(const Aws::String& value) { SetBucketArn(value); return *this;} /** *The Amazon Resource Name (ARN) of the bucket.
*/ inline BucketMetadata& WithBucketArn(Aws::String&& value) { SetBucketArn(std::move(value)); return *this;} /** *The Amazon Resource Name (ARN) of the bucket.
*/ inline BucketMetadata& WithBucketArn(const char* value) { SetBucketArn(value); return *this;} /** *The date and time, in UTC and extended ISO 8601 format, when the bucket was * created.
*/ inline const Aws::Utils::DateTime& GetBucketCreatedAt() const{ return m_bucketCreatedAt; } /** *The date and time, in UTC and extended ISO 8601 format, when the bucket was * created.
*/ inline bool BucketCreatedAtHasBeenSet() const { return m_bucketCreatedAtHasBeenSet; } /** *The date and time, in UTC and extended ISO 8601 format, when the bucket was * created.
*/ inline void SetBucketCreatedAt(const Aws::Utils::DateTime& value) { m_bucketCreatedAtHasBeenSet = true; m_bucketCreatedAt = value; } /** *The date and time, in UTC and extended ISO 8601 format, when the bucket was * created.
*/ inline void SetBucketCreatedAt(Aws::Utils::DateTime&& value) { m_bucketCreatedAtHasBeenSet = true; m_bucketCreatedAt = std::move(value); } /** *The date and time, in UTC and extended ISO 8601 format, when the bucket was * created.
*/ inline BucketMetadata& WithBucketCreatedAt(const Aws::Utils::DateTime& value) { SetBucketCreatedAt(value); return *this;} /** *The date and time, in UTC and extended ISO 8601 format, when the bucket was * created.
*/ inline BucketMetadata& WithBucketCreatedAt(Aws::Utils::DateTime&& value) { SetBucketCreatedAt(std::move(value)); return *this;} /** *The name of the bucket.
*/ inline const Aws::String& GetBucketName() const{ return m_bucketName; } /** *The name of the bucket.
*/ inline bool BucketNameHasBeenSet() const { return m_bucketNameHasBeenSet; } /** *The name of the bucket.
*/ inline void SetBucketName(const Aws::String& value) { m_bucketNameHasBeenSet = true; m_bucketName = value; } /** *The name of the bucket.
*/ inline void SetBucketName(Aws::String&& value) { m_bucketNameHasBeenSet = true; m_bucketName = std::move(value); } /** *The name of the bucket.
*/ inline void SetBucketName(const char* value) { m_bucketNameHasBeenSet = true; m_bucketName.assign(value); } /** *The name of the bucket.
*/ inline BucketMetadata& WithBucketName(const Aws::String& value) { SetBucketName(value); return *this;} /** *The name of the bucket.
*/ inline BucketMetadata& WithBucketName(Aws::String&& value) { SetBucketName(std::move(value)); return *this;} /** *The name of the bucket.
*/ inline BucketMetadata& WithBucketName(const char* value) { SetBucketName(value); return *this;} /** *The total number of objects that Amazon Macie can analyze in the bucket. * These objects use a file format, file extension, or content type that Amazon * Macie supports.
*/ inline long long GetClassifiableObjectCount() const{ return m_classifiableObjectCount; } /** *The total number of objects that Amazon Macie can analyze in the bucket. * These objects use a file format, file extension, or content type that Amazon * Macie supports.
*/ inline bool ClassifiableObjectCountHasBeenSet() const { return m_classifiableObjectCountHasBeenSet; } /** *The total number of objects that Amazon Macie can analyze in the bucket. * These objects use a file format, file extension, or content type that Amazon * Macie supports.
*/ inline void SetClassifiableObjectCount(long long value) { m_classifiableObjectCountHasBeenSet = true; m_classifiableObjectCount = value; } /** *The total number of objects that Amazon Macie can analyze in the bucket. * These objects use a file format, file extension, or content type that Amazon * Macie supports.
*/ inline BucketMetadata& WithClassifiableObjectCount(long long value) { SetClassifiableObjectCount(value); return *this;} /** *The date and time, in UTC and extended ISO 8601 format, when Amazon Macie * last analyzed the bucket.
*/ inline const Aws::Utils::DateTime& GetLastUpdated() const{ return m_lastUpdated; } /** *The date and time, in UTC and extended ISO 8601 format, when Amazon Macie * last analyzed the bucket.
*/ inline bool LastUpdatedHasBeenSet() const { return m_lastUpdatedHasBeenSet; } /** *The date and time, in UTC and extended ISO 8601 format, when Amazon Macie * last analyzed the bucket.
*/ inline void SetLastUpdated(const Aws::Utils::DateTime& value) { m_lastUpdatedHasBeenSet = true; m_lastUpdated = value; } /** *The date and time, in UTC and extended ISO 8601 format, when Amazon Macie * last analyzed the bucket.
*/ inline void SetLastUpdated(Aws::Utils::DateTime&& value) { m_lastUpdatedHasBeenSet = true; m_lastUpdated = std::move(value); } /** *The date and time, in UTC and extended ISO 8601 format, when Amazon Macie * last analyzed the bucket.
*/ inline BucketMetadata& WithLastUpdated(const Aws::Utils::DateTime& value) { SetLastUpdated(value); return *this;} /** *The date and time, in UTC and extended ISO 8601 format, when Amazon Macie * last analyzed the bucket.
*/ inline BucketMetadata& WithLastUpdated(Aws::Utils::DateTime&& value) { SetLastUpdated(std::move(value)); return *this;} /** *The total number of objects in the bucket.
*/ inline long long GetObjectCount() const{ return m_objectCount; } /** *The total number of objects in the bucket.
*/ inline bool ObjectCountHasBeenSet() const { return m_objectCountHasBeenSet; } /** *The total number of objects in the bucket.
*/ inline void SetObjectCount(long long value) { m_objectCountHasBeenSet = true; m_objectCount = value; } /** *The total number of objects in the bucket.
*/ inline BucketMetadata& WithObjectCount(long long value) { SetObjectCount(value); return *this;} /** *The total number of objects that are in the bucket, grouped by server-side * encryption type. This includes a grouping that reports the total number of * objects that aren't encrypted or use client-side encryption.
*/ inline const ObjectCountByEncryptionType& GetObjectCountByEncryptionType() const{ return m_objectCountByEncryptionType; } /** *The total number of objects that are in the bucket, grouped by server-side * encryption type. This includes a grouping that reports the total number of * objects that aren't encrypted or use client-side encryption.
*/ inline bool ObjectCountByEncryptionTypeHasBeenSet() const { return m_objectCountByEncryptionTypeHasBeenSet; } /** *The total number of objects that are in the bucket, grouped by server-side * encryption type. This includes a grouping that reports the total number of * objects that aren't encrypted or use client-side encryption.
*/ inline void SetObjectCountByEncryptionType(const ObjectCountByEncryptionType& value) { m_objectCountByEncryptionTypeHasBeenSet = true; m_objectCountByEncryptionType = value; } /** *The total number of objects that are in the bucket, grouped by server-side * encryption type. This includes a grouping that reports the total number of * objects that aren't encrypted or use client-side encryption.
*/ inline void SetObjectCountByEncryptionType(ObjectCountByEncryptionType&& value) { m_objectCountByEncryptionTypeHasBeenSet = true; m_objectCountByEncryptionType = std::move(value); } /** *The total number of objects that are in the bucket, grouped by server-side * encryption type. This includes a grouping that reports the total number of * objects that aren't encrypted or use client-side encryption.
*/ inline BucketMetadata& WithObjectCountByEncryptionType(const ObjectCountByEncryptionType& value) { SetObjectCountByEncryptionType(value); return *this;} /** *The total number of objects that are in the bucket, grouped by server-side * encryption type. This includes a grouping that reports the total number of * objects that aren't encrypted or use client-side encryption.
*/ inline BucketMetadata& WithObjectCountByEncryptionType(ObjectCountByEncryptionType&& value) { SetObjectCountByEncryptionType(std::move(value)); return *this;} /** *Specifies whether the bucket is publicly accessible. If this value is true, * an access control list (ACL), bucket policy, or block public access settings * allow the bucket to be accessed by the general public.
*/ inline const BucketPublicAccess& GetPublicAccess() const{ return m_publicAccess; } /** *Specifies whether the bucket is publicly accessible. If this value is true, * an access control list (ACL), bucket policy, or block public access settings * allow the bucket to be accessed by the general public.
*/ inline bool PublicAccessHasBeenSet() const { return m_publicAccessHasBeenSet; } /** *Specifies whether the bucket is publicly accessible. If this value is true, * an access control list (ACL), bucket policy, or block public access settings * allow the bucket to be accessed by the general public.
*/ inline void SetPublicAccess(const BucketPublicAccess& value) { m_publicAccessHasBeenSet = true; m_publicAccess = value; } /** *Specifies whether the bucket is publicly accessible. If this value is true, * an access control list (ACL), bucket policy, or block public access settings * allow the bucket to be accessed by the general public.
*/ inline void SetPublicAccess(BucketPublicAccess&& value) { m_publicAccessHasBeenSet = true; m_publicAccess = std::move(value); } /** *Specifies whether the bucket is publicly accessible. If this value is true, * an access control list (ACL), bucket policy, or block public access settings * allow the bucket to be accessed by the general public.
*/ inline BucketMetadata& WithPublicAccess(const BucketPublicAccess& value) { SetPublicAccess(value); return *this;} /** *Specifies whether the bucket is publicly accessible. If this value is true, * an access control list (ACL), bucket policy, or block public access settings * allow the bucket to be accessed by the general public.
*/ inline BucketMetadata& WithPublicAccess(BucketPublicAccess&& value) { SetPublicAccess(std::move(value)); return *this;} /** *The AWS Region that hosts the bucket.
*/ inline const Aws::String& GetRegion() const{ return m_region; } /** *The AWS Region that hosts the bucket.
*/ inline bool RegionHasBeenSet() const { return m_regionHasBeenSet; } /** *The AWS Region that hosts the bucket.
*/ inline void SetRegion(const Aws::String& value) { m_regionHasBeenSet = true; m_region = value; } /** *The AWS Region that hosts the bucket.
*/ inline void SetRegion(Aws::String&& value) { m_regionHasBeenSet = true; m_region = std::move(value); } /** *The AWS Region that hosts the bucket.
*/ inline void SetRegion(const char* value) { m_regionHasBeenSet = true; m_region.assign(value); } /** *The AWS Region that hosts the bucket.
*/ inline BucketMetadata& WithRegion(const Aws::String& value) { SetRegion(value); return *this;} /** *The AWS Region that hosts the bucket.
*/ inline BucketMetadata& WithRegion(Aws::String&& value) { SetRegion(std::move(value)); return *this;} /** *The AWS Region that hosts the bucket.
*/ inline BucketMetadata& WithRegion(const char* value) { SetRegion(value); return *this;} /** *Specifies whether the bucket is configured to replicate one or more objects * to buckets for other AWS accounts and, if so, which accounts.
*/ inline const ReplicationDetails& GetReplicationDetails() const{ return m_replicationDetails; } /** *Specifies whether the bucket is configured to replicate one or more objects * to buckets for other AWS accounts and, if so, which accounts.
*/ inline bool ReplicationDetailsHasBeenSet() const { return m_replicationDetailsHasBeenSet; } /** *Specifies whether the bucket is configured to replicate one or more objects * to buckets for other AWS accounts and, if so, which accounts.
*/ inline void SetReplicationDetails(const ReplicationDetails& value) { m_replicationDetailsHasBeenSet = true; m_replicationDetails = value; } /** *Specifies whether the bucket is configured to replicate one or more objects * to buckets for other AWS accounts and, if so, which accounts.
*/ inline void SetReplicationDetails(ReplicationDetails&& value) { m_replicationDetailsHasBeenSet = true; m_replicationDetails = std::move(value); } /** *Specifies whether the bucket is configured to replicate one or more objects * to buckets for other AWS accounts and, if so, which accounts.
*/ inline BucketMetadata& WithReplicationDetails(const ReplicationDetails& value) { SetReplicationDetails(value); return *this;} /** *Specifies whether the bucket is configured to replicate one or more objects * to buckets for other AWS accounts and, if so, which accounts.
*/ inline BucketMetadata& WithReplicationDetails(ReplicationDetails&& value) { SetReplicationDetails(std::move(value)); return *this;} /** *Specifies whether the bucket is shared with another AWS account. Valid values * are:
EXTERNAL - The bucket is shared with an AWS account that * isn’t part of the same Amazon Macie organization.
INTERNAL - The * bucket is shared with an AWS account that's part of the same Amazon Macie * organization.
NOT_SHARED - The bucket isn't shared with other * AWS accounts.
Specifies whether the bucket is shared with another AWS account. Valid values * are:
EXTERNAL - The bucket is shared with an AWS account that * isn’t part of the same Amazon Macie organization.
INTERNAL - The * bucket is shared with an AWS account that's part of the same Amazon Macie * organization.
NOT_SHARED - The bucket isn't shared with other * AWS accounts.
Specifies whether the bucket is shared with another AWS account. Valid values * are:
EXTERNAL - The bucket is shared with an AWS account that * isn’t part of the same Amazon Macie organization.
INTERNAL - The * bucket is shared with an AWS account that's part of the same Amazon Macie * organization.
NOT_SHARED - The bucket isn't shared with other * AWS accounts.
Specifies whether the bucket is shared with another AWS account. Valid values * are:
EXTERNAL - The bucket is shared with an AWS account that * isn’t part of the same Amazon Macie organization.
INTERNAL - The * bucket is shared with an AWS account that's part of the same Amazon Macie * organization.
NOT_SHARED - The bucket isn't shared with other * AWS accounts.
Specifies whether the bucket is shared with another AWS account. Valid values * are:
EXTERNAL - The bucket is shared with an AWS account that * isn’t part of the same Amazon Macie organization.
INTERNAL - The * bucket is shared with an AWS account that's part of the same Amazon Macie * organization.
NOT_SHARED - The bucket isn't shared with other * AWS accounts.
Specifies whether the bucket is shared with another AWS account. Valid values * are:
EXTERNAL - The bucket is shared with an AWS account that * isn’t part of the same Amazon Macie organization.
INTERNAL - The * bucket is shared with an AWS account that's part of the same Amazon Macie * organization.
NOT_SHARED - The bucket isn't shared with other * AWS accounts.
The total storage size, in bytes, of the bucket.
*/ inline long long GetSizeInBytes() const{ return m_sizeInBytes; } /** *The total storage size, in bytes, of the bucket.
*/ inline bool SizeInBytesHasBeenSet() const { return m_sizeInBytesHasBeenSet; } /** *The total storage size, in bytes, of the bucket.
*/ inline void SetSizeInBytes(long long value) { m_sizeInBytesHasBeenSet = true; m_sizeInBytes = value; } /** *The total storage size, in bytes, of the bucket.
*/ inline BucketMetadata& WithSizeInBytes(long long value) { SetSizeInBytes(value); return *this;} /** *The total compressed storage size, in bytes, of the bucket.
*/ inline long long GetSizeInBytesCompressed() const{ return m_sizeInBytesCompressed; } /** *The total compressed storage size, in bytes, of the bucket.
*/ inline bool SizeInBytesCompressedHasBeenSet() const { return m_sizeInBytesCompressedHasBeenSet; } /** *The total compressed storage size, in bytes, of the bucket.
*/ inline void SetSizeInBytesCompressed(long long value) { m_sizeInBytesCompressedHasBeenSet = true; m_sizeInBytesCompressed = value; } /** *The total compressed storage size, in bytes, of the bucket.
*/ inline BucketMetadata& WithSizeInBytesCompressed(long long value) { SetSizeInBytesCompressed(value); return *this;} /** *An array that specifies the tags (keys and values) that are associated with * the bucket.
*/ inline const Aws::VectorAn array that specifies the tags (keys and values) that are associated with * the bucket.
*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *An array that specifies the tags (keys and values) that are associated with * the bucket.
*/ inline void SetTags(const Aws::VectorAn array that specifies the tags (keys and values) that are associated with * the bucket.
*/ inline void SetTags(Aws::VectorAn array that specifies the tags (keys and values) that are associated with * the bucket.
*/ inline BucketMetadata& WithTags(const Aws::VectorAn array that specifies the tags (keys and values) that are associated with * the bucket.
*/ inline BucketMetadata& WithTags(Aws::VectorAn array that specifies the tags (keys and values) that are associated with * the bucket.
*/ inline BucketMetadata& AddTags(const KeyValuePair& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *An array that specifies the tags (keys and values) that are associated with * the bucket.
*/ inline BucketMetadata& AddTags(KeyValuePair&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *Specifies whether versioning is enabled for the bucket.
*/ inline bool GetVersioning() const{ return m_versioning; } /** *Specifies whether versioning is enabled for the bucket.
*/ inline bool VersioningHasBeenSet() const { return m_versioningHasBeenSet; } /** *Specifies whether versioning is enabled for the bucket.
*/ inline void SetVersioning(bool value) { m_versioningHasBeenSet = true; m_versioning = value; } /** *Specifies whether versioning is enabled for the bucket.
*/ inline BucketMetadata& WithVersioning(bool value) { SetVersioning(value); return *this;} private: Aws::String m_accountId; bool m_accountIdHasBeenSet; Aws::String m_bucketArn; bool m_bucketArnHasBeenSet; Aws::Utils::DateTime m_bucketCreatedAt; bool m_bucketCreatedAtHasBeenSet; Aws::String m_bucketName; bool m_bucketNameHasBeenSet; long long m_classifiableObjectCount; bool m_classifiableObjectCountHasBeenSet; Aws::Utils::DateTime m_lastUpdated; bool m_lastUpdatedHasBeenSet; long long m_objectCount; bool m_objectCountHasBeenSet; ObjectCountByEncryptionType m_objectCountByEncryptionType; bool m_objectCountByEncryptionTypeHasBeenSet; BucketPublicAccess m_publicAccess; bool m_publicAccessHasBeenSet; Aws::String m_region; bool m_regionHasBeenSet; ReplicationDetails m_replicationDetails; bool m_replicationDetailsHasBeenSet; SharedAccess m_sharedAccess; bool m_sharedAccessHasBeenSet; long long m_sizeInBytes; bool m_sizeInBytesHasBeenSet; long long m_sizeInBytesCompressed; bool m_sizeInBytesCompressedHasBeenSet; Aws::Vector