/** * 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 Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace CloudFront { namespace Model { /** *

A custom origin. A custom origin is any origin that is not an Amazon * S3 bucket, with one exception. An Amazon S3 bucket that is configured * with static website hosting is a custom origin.

See * Also:

AWS * API Reference

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

The HTTP port that CloudFront uses to connect to the origin. Specify the HTTP * port that the origin listens on.

*/ inline int GetHTTPPort() const{ return m_hTTPPort; } /** *

The HTTP port that CloudFront uses to connect to the origin. Specify the HTTP * port that the origin listens on.

*/ inline bool HTTPPortHasBeenSet() const { return m_hTTPPortHasBeenSet; } /** *

The HTTP port that CloudFront uses to connect to the origin. Specify the HTTP * port that the origin listens on.

*/ inline void SetHTTPPort(int value) { m_hTTPPortHasBeenSet = true; m_hTTPPort = value; } /** *

The HTTP port that CloudFront uses to connect to the origin. Specify the HTTP * port that the origin listens on.

*/ inline CustomOriginConfig& WithHTTPPort(int value) { SetHTTPPort(value); return *this;} /** *

The HTTPS port that CloudFront uses to connect to the origin. Specify the * HTTPS port that the origin listens on.

*/ inline int GetHTTPSPort() const{ return m_hTTPSPort; } /** *

The HTTPS port that CloudFront uses to connect to the origin. Specify the * HTTPS port that the origin listens on.

*/ inline bool HTTPSPortHasBeenSet() const { return m_hTTPSPortHasBeenSet; } /** *

The HTTPS port that CloudFront uses to connect to the origin. Specify the * HTTPS port that the origin listens on.

*/ inline void SetHTTPSPort(int value) { m_hTTPSPortHasBeenSet = true; m_hTTPSPort = value; } /** *

The HTTPS port that CloudFront uses to connect to the origin. Specify the * HTTPS port that the origin listens on.

*/ inline CustomOriginConfig& WithHTTPSPort(int value) { SetHTTPSPort(value); return *this;} /** *

Specifies the protocol (HTTP or HTTPS) that CloudFront uses to connect to the * origin. Valid values are:

  • http-only – CloudFront * always uses HTTP to connect to the origin.

  • * match-viewer – CloudFront connects to the origin using the same * protocol that the viewer used to connect to CloudFront.

  • * https-only – CloudFront always uses HTTPS to connect to the * origin.

*/ inline const OriginProtocolPolicy& GetOriginProtocolPolicy() const{ return m_originProtocolPolicy; } /** *

Specifies the protocol (HTTP or HTTPS) that CloudFront uses to connect to the * origin. Valid values are:

  • http-only – CloudFront * always uses HTTP to connect to the origin.

  • * match-viewer – CloudFront connects to the origin using the same * protocol that the viewer used to connect to CloudFront.

  • * https-only – CloudFront always uses HTTPS to connect to the * origin.

*/ inline bool OriginProtocolPolicyHasBeenSet() const { return m_originProtocolPolicyHasBeenSet; } /** *

Specifies the protocol (HTTP or HTTPS) that CloudFront uses to connect to the * origin. Valid values are:

  • http-only – CloudFront * always uses HTTP to connect to the origin.

  • * match-viewer – CloudFront connects to the origin using the same * protocol that the viewer used to connect to CloudFront.

  • * https-only – CloudFront always uses HTTPS to connect to the * origin.

*/ inline void SetOriginProtocolPolicy(const OriginProtocolPolicy& value) { m_originProtocolPolicyHasBeenSet = true; m_originProtocolPolicy = value; } /** *

Specifies the protocol (HTTP or HTTPS) that CloudFront uses to connect to the * origin. Valid values are:

  • http-only – CloudFront * always uses HTTP to connect to the origin.

  • * match-viewer – CloudFront connects to the origin using the same * protocol that the viewer used to connect to CloudFront.

  • * https-only – CloudFront always uses HTTPS to connect to the * origin.

*/ inline void SetOriginProtocolPolicy(OriginProtocolPolicy&& value) { m_originProtocolPolicyHasBeenSet = true; m_originProtocolPolicy = std::move(value); } /** *

Specifies the protocol (HTTP or HTTPS) that CloudFront uses to connect to the * origin. Valid values are:

  • http-only – CloudFront * always uses HTTP to connect to the origin.

  • * match-viewer – CloudFront connects to the origin using the same * protocol that the viewer used to connect to CloudFront.

  • * https-only – CloudFront always uses HTTPS to connect to the * origin.

*/ inline CustomOriginConfig& WithOriginProtocolPolicy(const OriginProtocolPolicy& value) { SetOriginProtocolPolicy(value); return *this;} /** *

Specifies the protocol (HTTP or HTTPS) that CloudFront uses to connect to the * origin. Valid values are:

  • http-only – CloudFront * always uses HTTP to connect to the origin.

  • * match-viewer – CloudFront connects to the origin using the same * protocol that the viewer used to connect to CloudFront.

  • * https-only – CloudFront always uses HTTPS to connect to the * origin.

*/ inline CustomOriginConfig& WithOriginProtocolPolicy(OriginProtocolPolicy&& value) { SetOriginProtocolPolicy(std::move(value)); return *this;} /** *

Specifies the minimum SSL/TLS protocol that CloudFront uses when connecting * to your origin over HTTPS. Valid values include SSLv3, * TLSv1, TLSv1.1, and TLSv1.2.

For * more information, see Minimum * Origin SSL Protocol in the Amazon CloudFront Developer Guide.

*/ inline const OriginSslProtocols& GetOriginSslProtocols() const{ return m_originSslProtocols; } /** *

Specifies the minimum SSL/TLS protocol that CloudFront uses when connecting * to your origin over HTTPS. Valid values include SSLv3, * TLSv1, TLSv1.1, and TLSv1.2.

For * more information, see Minimum * Origin SSL Protocol in the Amazon CloudFront Developer Guide.

*/ inline bool OriginSslProtocolsHasBeenSet() const { return m_originSslProtocolsHasBeenSet; } /** *

Specifies the minimum SSL/TLS protocol that CloudFront uses when connecting * to your origin over HTTPS. Valid values include SSLv3, * TLSv1, TLSv1.1, and TLSv1.2.

For * more information, see Minimum * Origin SSL Protocol in the Amazon CloudFront Developer Guide.

*/ inline void SetOriginSslProtocols(const OriginSslProtocols& value) { m_originSslProtocolsHasBeenSet = true; m_originSslProtocols = value; } /** *

Specifies the minimum SSL/TLS protocol that CloudFront uses when connecting * to your origin over HTTPS. Valid values include SSLv3, * TLSv1, TLSv1.1, and TLSv1.2.

For * more information, see Minimum * Origin SSL Protocol in the Amazon CloudFront Developer Guide.

*/ inline void SetOriginSslProtocols(OriginSslProtocols&& value) { m_originSslProtocolsHasBeenSet = true; m_originSslProtocols = std::move(value); } /** *

Specifies the minimum SSL/TLS protocol that CloudFront uses when connecting * to your origin over HTTPS. Valid values include SSLv3, * TLSv1, TLSv1.1, and TLSv1.2.

For * more information, see Minimum * Origin SSL Protocol in the Amazon CloudFront Developer Guide.

*/ inline CustomOriginConfig& WithOriginSslProtocols(const OriginSslProtocols& value) { SetOriginSslProtocols(value); return *this;} /** *

Specifies the minimum SSL/TLS protocol that CloudFront uses when connecting * to your origin over HTTPS. Valid values include SSLv3, * TLSv1, TLSv1.1, and TLSv1.2.

For * more information, see Minimum * Origin SSL Protocol in the Amazon CloudFront Developer Guide.

*/ inline CustomOriginConfig& WithOriginSslProtocols(OriginSslProtocols&& value) { SetOriginSslProtocols(std::move(value)); return *this;} /** *

Specifies how long, in seconds, CloudFront waits for a response from the * origin. This is also known as the origin response timeout. The minimum * timeout is 1 second, the maximum is 60 seconds, and the default (if you don't * specify otherwise) is 30 seconds.

For more information, see Origin * Response Timeout in the Amazon CloudFront Developer Guide.

*/ inline int GetOriginReadTimeout() const{ return m_originReadTimeout; } /** *

Specifies how long, in seconds, CloudFront waits for a response from the * origin. This is also known as the origin response timeout. The minimum * timeout is 1 second, the maximum is 60 seconds, and the default (if you don't * specify otherwise) is 30 seconds.

For more information, see Origin * Response Timeout in the Amazon CloudFront Developer Guide.

*/ inline bool OriginReadTimeoutHasBeenSet() const { return m_originReadTimeoutHasBeenSet; } /** *

Specifies how long, in seconds, CloudFront waits for a response from the * origin. This is also known as the origin response timeout. The minimum * timeout is 1 second, the maximum is 60 seconds, and the default (if you don't * specify otherwise) is 30 seconds.

For more information, see Origin * Response Timeout in the Amazon CloudFront Developer Guide.

*/ inline void SetOriginReadTimeout(int value) { m_originReadTimeoutHasBeenSet = true; m_originReadTimeout = value; } /** *

Specifies how long, in seconds, CloudFront waits for a response from the * origin. This is also known as the origin response timeout. The minimum * timeout is 1 second, the maximum is 60 seconds, and the default (if you don't * specify otherwise) is 30 seconds.

For more information, see Origin * Response Timeout in the Amazon CloudFront Developer Guide.

*/ inline CustomOriginConfig& WithOriginReadTimeout(int value) { SetOriginReadTimeout(value); return *this;} /** *

Specifies how long, in seconds, CloudFront persists its connection to the * origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the * default (if you don't specify otherwise) is 5 seconds.

For more * information, see Origin * Keep-alive Timeout in the Amazon CloudFront Developer Guide.

*/ inline int GetOriginKeepaliveTimeout() const{ return m_originKeepaliveTimeout; } /** *

Specifies how long, in seconds, CloudFront persists its connection to the * origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the * default (if you don't specify otherwise) is 5 seconds.

For more * information, see Origin * Keep-alive Timeout in the Amazon CloudFront Developer Guide.

*/ inline bool OriginKeepaliveTimeoutHasBeenSet() const { return m_originKeepaliveTimeoutHasBeenSet; } /** *

Specifies how long, in seconds, CloudFront persists its connection to the * origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the * default (if you don't specify otherwise) is 5 seconds.

For more * information, see Origin * Keep-alive Timeout in the Amazon CloudFront Developer Guide.

*/ inline void SetOriginKeepaliveTimeout(int value) { m_originKeepaliveTimeoutHasBeenSet = true; m_originKeepaliveTimeout = value; } /** *

Specifies how long, in seconds, CloudFront persists its connection to the * origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the * default (if you don't specify otherwise) is 5 seconds.

For more * information, see Origin * Keep-alive Timeout in the Amazon CloudFront Developer Guide.

*/ inline CustomOriginConfig& WithOriginKeepaliveTimeout(int value) { SetOriginKeepaliveTimeout(value); return *this;} private: int m_hTTPPort; bool m_hTTPPortHasBeenSet = false; int m_hTTPSPort; bool m_hTTPSPortHasBeenSet = false; OriginProtocolPolicy m_originProtocolPolicy; bool m_originProtocolPolicyHasBeenSet = false; OriginSslProtocols m_originSslProtocols; bool m_originSslProtocolsHasBeenSet = false; int m_originReadTimeout; bool m_originReadTimeoutHasBeenSet = false; int m_originKeepaliveTimeout; bool m_originKeepaliveTimeoutHasBeenSet = false; }; } // namespace Model } // namespace CloudFront } // namespace Aws