/** * 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 #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Macie2 { namespace Model { /** *

Provides information about an S3 bucket that Amazon Macie monitors and * analyzes.

See Also:

AWS * API Reference

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

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.

*/ inline const SharedAccess& GetSharedAccess() const{ return m_sharedAccess; } /** *

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.

*/ inline bool SharedAccessHasBeenSet() const { return m_sharedAccessHasBeenSet; } /** *

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.

*/ inline void SetSharedAccess(const SharedAccess& value) { m_sharedAccessHasBeenSet = true; m_sharedAccess = value; } /** *

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.

*/ inline void SetSharedAccess(SharedAccess&& value) { m_sharedAccessHasBeenSet = true; m_sharedAccess = std::move(value); } /** *

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.

*/ inline BucketMetadata& WithSharedAccess(const SharedAccess& value) { SetSharedAccess(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.

*/ inline BucketMetadata& WithSharedAccess(SharedAccess&& value) { SetSharedAccess(std::move(value)); return *this;} /** *

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::Vector& GetTags() const{ return m_tags; } /** *

An 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::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

An array that specifies the tags (keys and values) that are associated with * the bucket.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

An array that specifies the tags (keys and values) that are associated with * the bucket.

*/ inline BucketMetadata& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

An array that specifies the tags (keys and values) that are associated with * the bucket.

*/ inline BucketMetadata& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

An 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 m_tags; bool m_tagsHasBeenSet; bool m_versioning; bool m_versioningHasBeenSet; }; } // namespace Model } // namespace Macie2 } // namespace Aws