/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace AccessAnalyzer { namespace Model { /** *

The configuration for an Amazon S3 access point or multi-region access point * for the bucket. You can propose up to 10 access points or multi-region access * points per bucket. If the proposed Amazon S3 access point configuration is for * an existing bucket, the access preview uses the proposed access point * configuration in place of the existing access points. To propose an access point * without a policy, you can provide an empty string as the access point policy. * For more information, see Creating * access points. For more information about access point policy limits, see Access * points restrictions and limitations.

See Also:

AWS * API Reference

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

The access point or multi-region access point policy.

*/ inline const Aws::String& GetAccessPointPolicy() const{ return m_accessPointPolicy; } /** *

The access point or multi-region access point policy.

*/ inline bool AccessPointPolicyHasBeenSet() const { return m_accessPointPolicyHasBeenSet; } /** *

The access point or multi-region access point policy.

*/ inline void SetAccessPointPolicy(const Aws::String& value) { m_accessPointPolicyHasBeenSet = true; m_accessPointPolicy = value; } /** *

The access point or multi-region access point policy.

*/ inline void SetAccessPointPolicy(Aws::String&& value) { m_accessPointPolicyHasBeenSet = true; m_accessPointPolicy = std::move(value); } /** *

The access point or multi-region access point policy.

*/ inline void SetAccessPointPolicy(const char* value) { m_accessPointPolicyHasBeenSet = true; m_accessPointPolicy.assign(value); } /** *

The access point or multi-region access point policy.

*/ inline S3AccessPointConfiguration& WithAccessPointPolicy(const Aws::String& value) { SetAccessPointPolicy(value); return *this;} /** *

The access point or multi-region access point policy.

*/ inline S3AccessPointConfiguration& WithAccessPointPolicy(Aws::String&& value) { SetAccessPointPolicy(std::move(value)); return *this;} /** *

The access point or multi-region access point policy.

*/ inline S3AccessPointConfiguration& WithAccessPointPolicy(const char* value) { SetAccessPointPolicy(value); return *this;} /** *

The proposed S3PublicAccessBlock configuration to apply to this * Amazon S3 access point or multi-region access point.

*/ inline const S3PublicAccessBlockConfiguration& GetPublicAccessBlock() const{ return m_publicAccessBlock; } /** *

The proposed S3PublicAccessBlock configuration to apply to this * Amazon S3 access point or multi-region access point.

*/ inline bool PublicAccessBlockHasBeenSet() const { return m_publicAccessBlockHasBeenSet; } /** *

The proposed S3PublicAccessBlock configuration to apply to this * Amazon S3 access point or multi-region access point.

*/ inline void SetPublicAccessBlock(const S3PublicAccessBlockConfiguration& value) { m_publicAccessBlockHasBeenSet = true; m_publicAccessBlock = value; } /** *

The proposed S3PublicAccessBlock configuration to apply to this * Amazon S3 access point or multi-region access point.

*/ inline void SetPublicAccessBlock(S3PublicAccessBlockConfiguration&& value) { m_publicAccessBlockHasBeenSet = true; m_publicAccessBlock = std::move(value); } /** *

The proposed S3PublicAccessBlock configuration to apply to this * Amazon S3 access point or multi-region access point.

*/ inline S3AccessPointConfiguration& WithPublicAccessBlock(const S3PublicAccessBlockConfiguration& value) { SetPublicAccessBlock(value); return *this;} /** *

The proposed S3PublicAccessBlock configuration to apply to this * Amazon S3 access point or multi-region access point.

*/ inline S3AccessPointConfiguration& WithPublicAccessBlock(S3PublicAccessBlockConfiguration&& value) { SetPublicAccessBlock(std::move(value)); return *this;} /** *

The proposed Internet and VpcConfiguration to apply * to this Amazon S3 access point. VpcConfiguration does not apply to * multi-region access points. If the access preview is for a new resource and * neither is specified, the access preview uses Internet for the * network origin. If the access preview is for an existing resource and neither is * specified, the access preview uses the exiting network origin.

*/ inline const NetworkOriginConfiguration& GetNetworkOrigin() const{ return m_networkOrigin; } /** *

The proposed Internet and VpcConfiguration to apply * to this Amazon S3 access point. VpcConfiguration does not apply to * multi-region access points. If the access preview is for a new resource and * neither is specified, the access preview uses Internet for the * network origin. If the access preview is for an existing resource and neither is * specified, the access preview uses the exiting network origin.

*/ inline bool NetworkOriginHasBeenSet() const { return m_networkOriginHasBeenSet; } /** *

The proposed Internet and VpcConfiguration to apply * to this Amazon S3 access point. VpcConfiguration does not apply to * multi-region access points. If the access preview is for a new resource and * neither is specified, the access preview uses Internet for the * network origin. If the access preview is for an existing resource and neither is * specified, the access preview uses the exiting network origin.

*/ inline void SetNetworkOrigin(const NetworkOriginConfiguration& value) { m_networkOriginHasBeenSet = true; m_networkOrigin = value; } /** *

The proposed Internet and VpcConfiguration to apply * to this Amazon S3 access point. VpcConfiguration does not apply to * multi-region access points. If the access preview is for a new resource and * neither is specified, the access preview uses Internet for the * network origin. If the access preview is for an existing resource and neither is * specified, the access preview uses the exiting network origin.

*/ inline void SetNetworkOrigin(NetworkOriginConfiguration&& value) { m_networkOriginHasBeenSet = true; m_networkOrigin = std::move(value); } /** *

The proposed Internet and VpcConfiguration to apply * to this Amazon S3 access point. VpcConfiguration does not apply to * multi-region access points. If the access preview is for a new resource and * neither is specified, the access preview uses Internet for the * network origin. If the access preview is for an existing resource and neither is * specified, the access preview uses the exiting network origin.

*/ inline S3AccessPointConfiguration& WithNetworkOrigin(const NetworkOriginConfiguration& value) { SetNetworkOrigin(value); return *this;} /** *

The proposed Internet and VpcConfiguration to apply * to this Amazon S3 access point. VpcConfiguration does not apply to * multi-region access points. If the access preview is for a new resource and * neither is specified, the access preview uses Internet for the * network origin. If the access preview is for an existing resource and neither is * specified, the access preview uses the exiting network origin.

*/ inline S3AccessPointConfiguration& WithNetworkOrigin(NetworkOriginConfiguration&& value) { SetNetworkOrigin(std::move(value)); return *this;} private: Aws::String m_accessPointPolicy; bool m_accessPointPolicyHasBeenSet = false; S3PublicAccessBlockConfiguration m_publicAccessBlock; bool m_publicAccessBlockHasBeenSet = false; NetworkOriginConfiguration m_networkOrigin; bool m_networkOriginHasBeenSet = false; }; } // namespace Model } // namespace AccessAnalyzer } // namespace Aws