/** * 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 GuardDuty { namespace Model { /** *

Describes the public access policies that apply to the S3 * bucket.

See Also:

AWS * API Reference

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

Contains information about how permissions are configured for the S3 * bucket.

*/ inline const PermissionConfiguration& GetPermissionConfiguration() const{ return m_permissionConfiguration; } /** *

Contains information about how permissions are configured for the S3 * bucket.

*/ inline bool PermissionConfigurationHasBeenSet() const { return m_permissionConfigurationHasBeenSet; } /** *

Contains information about how permissions are configured for the S3 * bucket.

*/ inline void SetPermissionConfiguration(const PermissionConfiguration& value) { m_permissionConfigurationHasBeenSet = true; m_permissionConfiguration = value; } /** *

Contains information about how permissions are configured for the S3 * bucket.

*/ inline void SetPermissionConfiguration(PermissionConfiguration&& value) { m_permissionConfigurationHasBeenSet = true; m_permissionConfiguration = std::move(value); } /** *

Contains information about how permissions are configured for the S3 * bucket.

*/ inline PublicAccess& WithPermissionConfiguration(const PermissionConfiguration& value) { SetPermissionConfiguration(value); return *this;} /** *

Contains information about how permissions are configured for the S3 * bucket.

*/ inline PublicAccess& WithPermissionConfiguration(PermissionConfiguration&& value) { SetPermissionConfiguration(std::move(value)); return *this;} /** *

Describes the effective permission on this bucket after factoring all * attached policies.

*/ inline const Aws::String& GetEffectivePermission() const{ return m_effectivePermission; } /** *

Describes the effective permission on this bucket after factoring all * attached policies.

*/ inline bool EffectivePermissionHasBeenSet() const { return m_effectivePermissionHasBeenSet; } /** *

Describes the effective permission on this bucket after factoring all * attached policies.

*/ inline void SetEffectivePermission(const Aws::String& value) { m_effectivePermissionHasBeenSet = true; m_effectivePermission = value; } /** *

Describes the effective permission on this bucket after factoring all * attached policies.

*/ inline void SetEffectivePermission(Aws::String&& value) { m_effectivePermissionHasBeenSet = true; m_effectivePermission = std::move(value); } /** *

Describes the effective permission on this bucket after factoring all * attached policies.

*/ inline void SetEffectivePermission(const char* value) { m_effectivePermissionHasBeenSet = true; m_effectivePermission.assign(value); } /** *

Describes the effective permission on this bucket after factoring all * attached policies.

*/ inline PublicAccess& WithEffectivePermission(const Aws::String& value) { SetEffectivePermission(value); return *this;} /** *

Describes the effective permission on this bucket after factoring all * attached policies.

*/ inline PublicAccess& WithEffectivePermission(Aws::String&& value) { SetEffectivePermission(std::move(value)); return *this;} /** *

Describes the effective permission on this bucket after factoring all * attached policies.

*/ inline PublicAccess& WithEffectivePermission(const char* value) { SetEffectivePermission(value); return *this;} private: PermissionConfiguration m_permissionConfiguration; bool m_permissionConfigurationHasBeenSet = false; Aws::String m_effectivePermission; bool m_effectivePermissionHasBeenSet = false; }; } // namespace Model } // namespace GuardDuty } // namespace Aws