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

The details of an Amazon S3 bucket.

See Also:

AWS * API Reference

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

The canonical user ID of the owner of the S3 bucket.

*/ inline const Aws::String& GetOwnerId() const{ return m_ownerId; } /** *

The canonical user ID of the owner of the S3 bucket.

*/ inline bool OwnerIdHasBeenSet() const { return m_ownerIdHasBeenSet; } /** *

The canonical user ID of the owner of the S3 bucket.

*/ inline void SetOwnerId(const Aws::String& value) { m_ownerIdHasBeenSet = true; m_ownerId = value; } /** *

The canonical user ID of the owner of the S3 bucket.

*/ inline void SetOwnerId(Aws::String&& value) { m_ownerIdHasBeenSet = true; m_ownerId = std::move(value); } /** *

The canonical user ID of the owner of the S3 bucket.

*/ inline void SetOwnerId(const char* value) { m_ownerIdHasBeenSet = true; m_ownerId.assign(value); } /** *

The canonical user ID of the owner of the S3 bucket.

*/ inline AwsS3BucketDetails& WithOwnerId(const Aws::String& value) { SetOwnerId(value); return *this;} /** *

The canonical user ID of the owner of the S3 bucket.

*/ inline AwsS3BucketDetails& WithOwnerId(Aws::String&& value) { SetOwnerId(std::move(value)); return *this;} /** *

The canonical user ID of the owner of the S3 bucket.

*/ inline AwsS3BucketDetails& WithOwnerId(const char* value) { SetOwnerId(value); return *this;} /** *

The display name of the owner of the S3 bucket.

*/ inline const Aws::String& GetOwnerName() const{ return m_ownerName; } /** *

The display name of the owner of the S3 bucket.

*/ inline bool OwnerNameHasBeenSet() const { return m_ownerNameHasBeenSet; } /** *

The display name of the owner of the S3 bucket.

*/ inline void SetOwnerName(const Aws::String& value) { m_ownerNameHasBeenSet = true; m_ownerName = value; } /** *

The display name of the owner of the S3 bucket.

*/ inline void SetOwnerName(Aws::String&& value) { m_ownerNameHasBeenSet = true; m_ownerName = std::move(value); } /** *

The display name of the owner of the S3 bucket.

*/ inline void SetOwnerName(const char* value) { m_ownerNameHasBeenSet = true; m_ownerName.assign(value); } /** *

The display name of the owner of the S3 bucket.

*/ inline AwsS3BucketDetails& WithOwnerName(const Aws::String& value) { SetOwnerName(value); return *this;} /** *

The display name of the owner of the S3 bucket.

*/ inline AwsS3BucketDetails& WithOwnerName(Aws::String&& value) { SetOwnerName(std::move(value)); return *this;} /** *

The display name of the owner of the S3 bucket.

*/ inline AwsS3BucketDetails& WithOwnerName(const char* value) { SetOwnerName(value); return *this;} /** *

The Amazon Web Services account identifier of the account that owns the S3 * bucket.

*/ inline const Aws::String& GetOwnerAccountId() const{ return m_ownerAccountId; } /** *

The Amazon Web Services account identifier of the account that owns the S3 * bucket.

*/ inline bool OwnerAccountIdHasBeenSet() const { return m_ownerAccountIdHasBeenSet; } /** *

The Amazon Web Services account identifier of the account that owns the S3 * bucket.

*/ inline void SetOwnerAccountId(const Aws::String& value) { m_ownerAccountIdHasBeenSet = true; m_ownerAccountId = value; } /** *

The Amazon Web Services account identifier of the account that owns the S3 * bucket.

*/ inline void SetOwnerAccountId(Aws::String&& value) { m_ownerAccountIdHasBeenSet = true; m_ownerAccountId = std::move(value); } /** *

The Amazon Web Services account identifier of the account that owns the S3 * bucket.

*/ inline void SetOwnerAccountId(const char* value) { m_ownerAccountIdHasBeenSet = true; m_ownerAccountId.assign(value); } /** *

The Amazon Web Services account identifier of the account that owns the S3 * bucket.

*/ inline AwsS3BucketDetails& WithOwnerAccountId(const Aws::String& value) { SetOwnerAccountId(value); return *this;} /** *

The Amazon Web Services account identifier of the account that owns the S3 * bucket.

*/ inline AwsS3BucketDetails& WithOwnerAccountId(Aws::String&& value) { SetOwnerAccountId(std::move(value)); return *this;} /** *

The Amazon Web Services account identifier of the account that owns the S3 * bucket.

*/ inline AwsS3BucketDetails& WithOwnerAccountId(const char* value) { SetOwnerAccountId(value); return *this;} /** *

Indicates when the S3 bucket was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline const Aws::String& GetCreatedAt() const{ return m_createdAt; } /** *

Indicates when the S3 bucket was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline bool CreatedAtHasBeenSet() const { return m_createdAtHasBeenSet; } /** *

Indicates when the S3 bucket was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetCreatedAt(const Aws::String& value) { m_createdAtHasBeenSet = true; m_createdAt = value; } /** *

Indicates when the S3 bucket was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetCreatedAt(Aws::String&& value) { m_createdAtHasBeenSet = true; m_createdAt = std::move(value); } /** *

Indicates when the S3 bucket was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline void SetCreatedAt(const char* value) { m_createdAtHasBeenSet = true; m_createdAt.assign(value); } /** *

Indicates when the S3 bucket was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsS3BucketDetails& WithCreatedAt(const Aws::String& value) { SetCreatedAt(value); return *this;} /** *

Indicates when the S3 bucket was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsS3BucketDetails& WithCreatedAt(Aws::String&& value) { SetCreatedAt(std::move(value)); return *this;} /** *

Indicates when the S3 bucket was created.

Uses the * date-time format specified in RFC 3339 section 5.6, * Internet Date/Time Format. The value cannot contain spaces, and date and * time should be separated by T. For example, * 2020-03-22T13:22:13.933Z.

*/ inline AwsS3BucketDetails& WithCreatedAt(const char* value) { SetCreatedAt(value); return *this;} /** *

The encryption rules that are applied to the S3 bucket.

*/ inline const AwsS3BucketServerSideEncryptionConfiguration& GetServerSideEncryptionConfiguration() const{ return m_serverSideEncryptionConfiguration; } /** *

The encryption rules that are applied to the S3 bucket.

*/ inline bool ServerSideEncryptionConfigurationHasBeenSet() const { return m_serverSideEncryptionConfigurationHasBeenSet; } /** *

The encryption rules that are applied to the S3 bucket.

*/ inline void SetServerSideEncryptionConfiguration(const AwsS3BucketServerSideEncryptionConfiguration& value) { m_serverSideEncryptionConfigurationHasBeenSet = true; m_serverSideEncryptionConfiguration = value; } /** *

The encryption rules that are applied to the S3 bucket.

*/ inline void SetServerSideEncryptionConfiguration(AwsS3BucketServerSideEncryptionConfiguration&& value) { m_serverSideEncryptionConfigurationHasBeenSet = true; m_serverSideEncryptionConfiguration = std::move(value); } /** *

The encryption rules that are applied to the S3 bucket.

*/ inline AwsS3BucketDetails& WithServerSideEncryptionConfiguration(const AwsS3BucketServerSideEncryptionConfiguration& value) { SetServerSideEncryptionConfiguration(value); return *this;} /** *

The encryption rules that are applied to the S3 bucket.

*/ inline AwsS3BucketDetails& WithServerSideEncryptionConfiguration(AwsS3BucketServerSideEncryptionConfiguration&& value) { SetServerSideEncryptionConfiguration(std::move(value)); return *this;} /** *

The lifecycle configuration for objects in the S3 bucket.

*/ inline const AwsS3BucketBucketLifecycleConfigurationDetails& GetBucketLifecycleConfiguration() const{ return m_bucketLifecycleConfiguration; } /** *

The lifecycle configuration for objects in the S3 bucket.

*/ inline bool BucketLifecycleConfigurationHasBeenSet() const { return m_bucketLifecycleConfigurationHasBeenSet; } /** *

The lifecycle configuration for objects in the S3 bucket.

*/ inline void SetBucketLifecycleConfiguration(const AwsS3BucketBucketLifecycleConfigurationDetails& value) { m_bucketLifecycleConfigurationHasBeenSet = true; m_bucketLifecycleConfiguration = value; } /** *

The lifecycle configuration for objects in the S3 bucket.

*/ inline void SetBucketLifecycleConfiguration(AwsS3BucketBucketLifecycleConfigurationDetails&& value) { m_bucketLifecycleConfigurationHasBeenSet = true; m_bucketLifecycleConfiguration = std::move(value); } /** *

The lifecycle configuration for objects in the S3 bucket.

*/ inline AwsS3BucketDetails& WithBucketLifecycleConfiguration(const AwsS3BucketBucketLifecycleConfigurationDetails& value) { SetBucketLifecycleConfiguration(value); return *this;} /** *

The lifecycle configuration for objects in the S3 bucket.

*/ inline AwsS3BucketDetails& WithBucketLifecycleConfiguration(AwsS3BucketBucketLifecycleConfigurationDetails&& value) { SetBucketLifecycleConfiguration(std::move(value)); return *this;} /** *

Provides information about the Amazon S3 Public Access Block configuration * for the S3 bucket.

*/ inline const AwsS3AccountPublicAccessBlockDetails& GetPublicAccessBlockConfiguration() const{ return m_publicAccessBlockConfiguration; } /** *

Provides information about the Amazon S3 Public Access Block configuration * for the S3 bucket.

*/ inline bool PublicAccessBlockConfigurationHasBeenSet() const { return m_publicAccessBlockConfigurationHasBeenSet; } /** *

Provides information about the Amazon S3 Public Access Block configuration * for the S3 bucket.

*/ inline void SetPublicAccessBlockConfiguration(const AwsS3AccountPublicAccessBlockDetails& value) { m_publicAccessBlockConfigurationHasBeenSet = true; m_publicAccessBlockConfiguration = value; } /** *

Provides information about the Amazon S3 Public Access Block configuration * for the S3 bucket.

*/ inline void SetPublicAccessBlockConfiguration(AwsS3AccountPublicAccessBlockDetails&& value) { m_publicAccessBlockConfigurationHasBeenSet = true; m_publicAccessBlockConfiguration = std::move(value); } /** *

Provides information about the Amazon S3 Public Access Block configuration * for the S3 bucket.

*/ inline AwsS3BucketDetails& WithPublicAccessBlockConfiguration(const AwsS3AccountPublicAccessBlockDetails& value) { SetPublicAccessBlockConfiguration(value); return *this;} /** *

Provides information about the Amazon S3 Public Access Block configuration * for the S3 bucket.

*/ inline AwsS3BucketDetails& WithPublicAccessBlockConfiguration(AwsS3AccountPublicAccessBlockDetails&& value) { SetPublicAccessBlockConfiguration(std::move(value)); return *this;} /** *

The access control list for the S3 bucket.

*/ inline const Aws::String& GetAccessControlList() const{ return m_accessControlList; } /** *

The access control list for the S3 bucket.

*/ inline bool AccessControlListHasBeenSet() const { return m_accessControlListHasBeenSet; } /** *

The access control list for the S3 bucket.

*/ inline void SetAccessControlList(const Aws::String& value) { m_accessControlListHasBeenSet = true; m_accessControlList = value; } /** *

The access control list for the S3 bucket.

*/ inline void SetAccessControlList(Aws::String&& value) { m_accessControlListHasBeenSet = true; m_accessControlList = std::move(value); } /** *

The access control list for the S3 bucket.

*/ inline void SetAccessControlList(const char* value) { m_accessControlListHasBeenSet = true; m_accessControlList.assign(value); } /** *

The access control list for the S3 bucket.

*/ inline AwsS3BucketDetails& WithAccessControlList(const Aws::String& value) { SetAccessControlList(value); return *this;} /** *

The access control list for the S3 bucket.

*/ inline AwsS3BucketDetails& WithAccessControlList(Aws::String&& value) { SetAccessControlList(std::move(value)); return *this;} /** *

The access control list for the S3 bucket.

*/ inline AwsS3BucketDetails& WithAccessControlList(const char* value) { SetAccessControlList(value); return *this;} /** *

The logging configuration for the S3 bucket.

*/ inline const AwsS3BucketLoggingConfiguration& GetBucketLoggingConfiguration() const{ return m_bucketLoggingConfiguration; } /** *

The logging configuration for the S3 bucket.

*/ inline bool BucketLoggingConfigurationHasBeenSet() const { return m_bucketLoggingConfigurationHasBeenSet; } /** *

The logging configuration for the S3 bucket.

*/ inline void SetBucketLoggingConfiguration(const AwsS3BucketLoggingConfiguration& value) { m_bucketLoggingConfigurationHasBeenSet = true; m_bucketLoggingConfiguration = value; } /** *

The logging configuration for the S3 bucket.

*/ inline void SetBucketLoggingConfiguration(AwsS3BucketLoggingConfiguration&& value) { m_bucketLoggingConfigurationHasBeenSet = true; m_bucketLoggingConfiguration = std::move(value); } /** *

The logging configuration for the S3 bucket.

*/ inline AwsS3BucketDetails& WithBucketLoggingConfiguration(const AwsS3BucketLoggingConfiguration& value) { SetBucketLoggingConfiguration(value); return *this;} /** *

The logging configuration for the S3 bucket.

*/ inline AwsS3BucketDetails& WithBucketLoggingConfiguration(AwsS3BucketLoggingConfiguration&& value) { SetBucketLoggingConfiguration(std::move(value)); return *this;} /** *

The website configuration parameters for the S3 bucket.

*/ inline const AwsS3BucketWebsiteConfiguration& GetBucketWebsiteConfiguration() const{ return m_bucketWebsiteConfiguration; } /** *

The website configuration parameters for the S3 bucket.

*/ inline bool BucketWebsiteConfigurationHasBeenSet() const { return m_bucketWebsiteConfigurationHasBeenSet; } /** *

The website configuration parameters for the S3 bucket.

*/ inline void SetBucketWebsiteConfiguration(const AwsS3BucketWebsiteConfiguration& value) { m_bucketWebsiteConfigurationHasBeenSet = true; m_bucketWebsiteConfiguration = value; } /** *

The website configuration parameters for the S3 bucket.

*/ inline void SetBucketWebsiteConfiguration(AwsS3BucketWebsiteConfiguration&& value) { m_bucketWebsiteConfigurationHasBeenSet = true; m_bucketWebsiteConfiguration = std::move(value); } /** *

The website configuration parameters for the S3 bucket.

*/ inline AwsS3BucketDetails& WithBucketWebsiteConfiguration(const AwsS3BucketWebsiteConfiguration& value) { SetBucketWebsiteConfiguration(value); return *this;} /** *

The website configuration parameters for the S3 bucket.

*/ inline AwsS3BucketDetails& WithBucketWebsiteConfiguration(AwsS3BucketWebsiteConfiguration&& value) { SetBucketWebsiteConfiguration(std::move(value)); return *this;} /** *

The notification configuration for the S3 bucket.

*/ inline const AwsS3BucketNotificationConfiguration& GetBucketNotificationConfiguration() const{ return m_bucketNotificationConfiguration; } /** *

The notification configuration for the S3 bucket.

*/ inline bool BucketNotificationConfigurationHasBeenSet() const { return m_bucketNotificationConfigurationHasBeenSet; } /** *

The notification configuration for the S3 bucket.

*/ inline void SetBucketNotificationConfiguration(const AwsS3BucketNotificationConfiguration& value) { m_bucketNotificationConfigurationHasBeenSet = true; m_bucketNotificationConfiguration = value; } /** *

The notification configuration for the S3 bucket.

*/ inline void SetBucketNotificationConfiguration(AwsS3BucketNotificationConfiguration&& value) { m_bucketNotificationConfigurationHasBeenSet = true; m_bucketNotificationConfiguration = std::move(value); } /** *

The notification configuration for the S3 bucket.

*/ inline AwsS3BucketDetails& WithBucketNotificationConfiguration(const AwsS3BucketNotificationConfiguration& value) { SetBucketNotificationConfiguration(value); return *this;} /** *

The notification configuration for the S3 bucket.

*/ inline AwsS3BucketDetails& WithBucketNotificationConfiguration(AwsS3BucketNotificationConfiguration&& value) { SetBucketNotificationConfiguration(std::move(value)); return *this;} /** *

The versioning state of an S3 bucket.

*/ inline const AwsS3BucketBucketVersioningConfiguration& GetBucketVersioningConfiguration() const{ return m_bucketVersioningConfiguration; } /** *

The versioning state of an S3 bucket.

*/ inline bool BucketVersioningConfigurationHasBeenSet() const { return m_bucketVersioningConfigurationHasBeenSet; } /** *

The versioning state of an S3 bucket.

*/ inline void SetBucketVersioningConfiguration(const AwsS3BucketBucketVersioningConfiguration& value) { m_bucketVersioningConfigurationHasBeenSet = true; m_bucketVersioningConfiguration = value; } /** *

The versioning state of an S3 bucket.

*/ inline void SetBucketVersioningConfiguration(AwsS3BucketBucketVersioningConfiguration&& value) { m_bucketVersioningConfigurationHasBeenSet = true; m_bucketVersioningConfiguration = std::move(value); } /** *

The versioning state of an S3 bucket.

*/ inline AwsS3BucketDetails& WithBucketVersioningConfiguration(const AwsS3BucketBucketVersioningConfiguration& value) { SetBucketVersioningConfiguration(value); return *this;} /** *

The versioning state of an S3 bucket.

*/ inline AwsS3BucketDetails& WithBucketVersioningConfiguration(AwsS3BucketBucketVersioningConfiguration&& value) { SetBucketVersioningConfiguration(std::move(value)); return *this;} /** *

Specifies which rule Amazon S3 applies by default to every new object placed * in the specified bucket.

*/ inline const AwsS3BucketObjectLockConfiguration& GetObjectLockConfiguration() const{ return m_objectLockConfiguration; } /** *

Specifies which rule Amazon S3 applies by default to every new object placed * in the specified bucket.

*/ inline bool ObjectLockConfigurationHasBeenSet() const { return m_objectLockConfigurationHasBeenSet; } /** *

Specifies which rule Amazon S3 applies by default to every new object placed * in the specified bucket.

*/ inline void SetObjectLockConfiguration(const AwsS3BucketObjectLockConfiguration& value) { m_objectLockConfigurationHasBeenSet = true; m_objectLockConfiguration = value; } /** *

Specifies which rule Amazon S3 applies by default to every new object placed * in the specified bucket.

*/ inline void SetObjectLockConfiguration(AwsS3BucketObjectLockConfiguration&& value) { m_objectLockConfigurationHasBeenSet = true; m_objectLockConfiguration = std::move(value); } /** *

Specifies which rule Amazon S3 applies by default to every new object placed * in the specified bucket.

*/ inline AwsS3BucketDetails& WithObjectLockConfiguration(const AwsS3BucketObjectLockConfiguration& value) { SetObjectLockConfiguration(value); return *this;} /** *

Specifies which rule Amazon S3 applies by default to every new object placed * in the specified bucket.

*/ inline AwsS3BucketDetails& WithObjectLockConfiguration(AwsS3BucketObjectLockConfiguration&& value) { SetObjectLockConfiguration(std::move(value)); return *this;} private: Aws::String m_ownerId; bool m_ownerIdHasBeenSet = false; Aws::String m_ownerName; bool m_ownerNameHasBeenSet = false; Aws::String m_ownerAccountId; bool m_ownerAccountIdHasBeenSet = false; Aws::String m_createdAt; bool m_createdAtHasBeenSet = false; AwsS3BucketServerSideEncryptionConfiguration m_serverSideEncryptionConfiguration; bool m_serverSideEncryptionConfigurationHasBeenSet = false; AwsS3BucketBucketLifecycleConfigurationDetails m_bucketLifecycleConfiguration; bool m_bucketLifecycleConfigurationHasBeenSet = false; AwsS3AccountPublicAccessBlockDetails m_publicAccessBlockConfiguration; bool m_publicAccessBlockConfigurationHasBeenSet = false; Aws::String m_accessControlList; bool m_accessControlListHasBeenSet = false; AwsS3BucketLoggingConfiguration m_bucketLoggingConfiguration; bool m_bucketLoggingConfigurationHasBeenSet = false; AwsS3BucketWebsiteConfiguration m_bucketWebsiteConfiguration; bool m_bucketWebsiteConfigurationHasBeenSet = false; AwsS3BucketNotificationConfiguration m_bucketNotificationConfiguration; bool m_bucketNotificationConfigurationHasBeenSet = false; AwsS3BucketBucketVersioningConfiguration m_bucketVersioningConfiguration; bool m_bucketVersioningConfigurationHasBeenSet = false; AwsS3BucketObjectLockConfiguration m_objectLockConfiguration; bool m_objectLockConfigurationHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws