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

A complex type that contains information about the Amazon S3 origin. If the * origin is a custom origin or an S3 bucket that is configured as a website * endpoint, use the CustomOriginConfig element instead.

See * Also:

AWS * API Reference

*/ class S3OriginConfig { public: AWS_CLOUDFRONT_API S3OriginConfig(); AWS_CLOUDFRONT_API S3OriginConfig(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_CLOUDFRONT_API S3OriginConfig& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_CLOUDFRONT_API void AddToNode(Aws::Utils::Xml::XmlNode& parentNode) const; /** *

The CloudFront origin access identity to associate with the origin. Use an * origin access identity to configure the origin so that viewers can only * access objects in an Amazon S3 bucket through CloudFront. The format of the * value is:

*

origin-access-identity/cloudfront/ID-of-origin-access-identity

*

where ID-of-origin-access-identity is the value that * CloudFront returned in the ID element when you created the origin * access identity.

If you want viewers to be able to access objects using * either the CloudFront URL or the Amazon S3 URL, specify an empty * OriginAccessIdentity element.

To delete the origin access * identity from an existing distribution, update the distribution configuration * and include an empty OriginAccessIdentity element.

To * replace the origin access identity, update the distribution configuration and * specify the new origin access identity.

For more information about the * origin access identity, see Serving * Private Content through CloudFront in the Amazon CloudFront Developer * Guide.

*/ inline const Aws::String& GetOriginAccessIdentity() const{ return m_originAccessIdentity; } /** *

The CloudFront origin access identity to associate with the origin. Use an * origin access identity to configure the origin so that viewers can only * access objects in an Amazon S3 bucket through CloudFront. The format of the * value is:

*

origin-access-identity/cloudfront/ID-of-origin-access-identity

*

where ID-of-origin-access-identity is the value that * CloudFront returned in the ID element when you created the origin * access identity.

If you want viewers to be able to access objects using * either the CloudFront URL or the Amazon S3 URL, specify an empty * OriginAccessIdentity element.

To delete the origin access * identity from an existing distribution, update the distribution configuration * and include an empty OriginAccessIdentity element.

To * replace the origin access identity, update the distribution configuration and * specify the new origin access identity.

For more information about the * origin access identity, see Serving * Private Content through CloudFront in the Amazon CloudFront Developer * Guide.

*/ inline bool OriginAccessIdentityHasBeenSet() const { return m_originAccessIdentityHasBeenSet; } /** *

The CloudFront origin access identity to associate with the origin. Use an * origin access identity to configure the origin so that viewers can only * access objects in an Amazon S3 bucket through CloudFront. The format of the * value is:

*

origin-access-identity/cloudfront/ID-of-origin-access-identity

*

where ID-of-origin-access-identity is the value that * CloudFront returned in the ID element when you created the origin * access identity.

If you want viewers to be able to access objects using * either the CloudFront URL or the Amazon S3 URL, specify an empty * OriginAccessIdentity element.

To delete the origin access * identity from an existing distribution, update the distribution configuration * and include an empty OriginAccessIdentity element.

To * replace the origin access identity, update the distribution configuration and * specify the new origin access identity.

For more information about the * origin access identity, see Serving * Private Content through CloudFront in the Amazon CloudFront Developer * Guide.

*/ inline void SetOriginAccessIdentity(const Aws::String& value) { m_originAccessIdentityHasBeenSet = true; m_originAccessIdentity = value; } /** *

The CloudFront origin access identity to associate with the origin. Use an * origin access identity to configure the origin so that viewers can only * access objects in an Amazon S3 bucket through CloudFront. The format of the * value is:

*

origin-access-identity/cloudfront/ID-of-origin-access-identity

*

where ID-of-origin-access-identity is the value that * CloudFront returned in the ID element when you created the origin * access identity.

If you want viewers to be able to access objects using * either the CloudFront URL or the Amazon S3 URL, specify an empty * OriginAccessIdentity element.

To delete the origin access * identity from an existing distribution, update the distribution configuration * and include an empty OriginAccessIdentity element.

To * replace the origin access identity, update the distribution configuration and * specify the new origin access identity.

For more information about the * origin access identity, see Serving * Private Content through CloudFront in the Amazon CloudFront Developer * Guide.

*/ inline void SetOriginAccessIdentity(Aws::String&& value) { m_originAccessIdentityHasBeenSet = true; m_originAccessIdentity = std::move(value); } /** *

The CloudFront origin access identity to associate with the origin. Use an * origin access identity to configure the origin so that viewers can only * access objects in an Amazon S3 bucket through CloudFront. The format of the * value is:

*

origin-access-identity/cloudfront/ID-of-origin-access-identity

*

where ID-of-origin-access-identity is the value that * CloudFront returned in the ID element when you created the origin * access identity.

If you want viewers to be able to access objects using * either the CloudFront URL or the Amazon S3 URL, specify an empty * OriginAccessIdentity element.

To delete the origin access * identity from an existing distribution, update the distribution configuration * and include an empty OriginAccessIdentity element.

To * replace the origin access identity, update the distribution configuration and * specify the new origin access identity.

For more information about the * origin access identity, see Serving * Private Content through CloudFront in the Amazon CloudFront Developer * Guide.

*/ inline void SetOriginAccessIdentity(const char* value) { m_originAccessIdentityHasBeenSet = true; m_originAccessIdentity.assign(value); } /** *

The CloudFront origin access identity to associate with the origin. Use an * origin access identity to configure the origin so that viewers can only * access objects in an Amazon S3 bucket through CloudFront. The format of the * value is:

*

origin-access-identity/cloudfront/ID-of-origin-access-identity

*

where ID-of-origin-access-identity is the value that * CloudFront returned in the ID element when you created the origin * access identity.

If you want viewers to be able to access objects using * either the CloudFront URL or the Amazon S3 URL, specify an empty * OriginAccessIdentity element.

To delete the origin access * identity from an existing distribution, update the distribution configuration * and include an empty OriginAccessIdentity element.

To * replace the origin access identity, update the distribution configuration and * specify the new origin access identity.

For more information about the * origin access identity, see Serving * Private Content through CloudFront in the Amazon CloudFront Developer * Guide.

*/ inline S3OriginConfig& WithOriginAccessIdentity(const Aws::String& value) { SetOriginAccessIdentity(value); return *this;} /** *

The CloudFront origin access identity to associate with the origin. Use an * origin access identity to configure the origin so that viewers can only * access objects in an Amazon S3 bucket through CloudFront. The format of the * value is:

*

origin-access-identity/cloudfront/ID-of-origin-access-identity

*

where ID-of-origin-access-identity is the value that * CloudFront returned in the ID element when you created the origin * access identity.

If you want viewers to be able to access objects using * either the CloudFront URL or the Amazon S3 URL, specify an empty * OriginAccessIdentity element.

To delete the origin access * identity from an existing distribution, update the distribution configuration * and include an empty OriginAccessIdentity element.

To * replace the origin access identity, update the distribution configuration and * specify the new origin access identity.

For more information about the * origin access identity, see Serving * Private Content through CloudFront in the Amazon CloudFront Developer * Guide.

*/ inline S3OriginConfig& WithOriginAccessIdentity(Aws::String&& value) { SetOriginAccessIdentity(std::move(value)); return *this;} /** *

The CloudFront origin access identity to associate with the origin. Use an * origin access identity to configure the origin so that viewers can only * access objects in an Amazon S3 bucket through CloudFront. The format of the * value is:

*

origin-access-identity/cloudfront/ID-of-origin-access-identity

*

where ID-of-origin-access-identity is the value that * CloudFront returned in the ID element when you created the origin * access identity.

If you want viewers to be able to access objects using * either the CloudFront URL or the Amazon S3 URL, specify an empty * OriginAccessIdentity element.

To delete the origin access * identity from an existing distribution, update the distribution configuration * and include an empty OriginAccessIdentity element.

To * replace the origin access identity, update the distribution configuration and * specify the new origin access identity.

For more information about the * origin access identity, see Serving * Private Content through CloudFront in the Amazon CloudFront Developer * Guide.

*/ inline S3OriginConfig& WithOriginAccessIdentity(const char* value) { SetOriginAccessIdentity(value); return *this;} private: Aws::String m_originAccessIdentity; bool m_originAccessIdentityHasBeenSet = false; }; } // namespace Model } // namespace CloudFront } // namespace Aws