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

A CloudFront distribution configuration.

See Also:

AWS * API Reference

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

Provides information about the cache configuration for the distribution.

*/ inline const AwsCloudFrontDistributionCacheBehaviors& GetCacheBehaviors() const{ return m_cacheBehaviors; } /** *

Provides information about the cache configuration for the distribution.

*/ inline bool CacheBehaviorsHasBeenSet() const { return m_cacheBehaviorsHasBeenSet; } /** *

Provides information about the cache configuration for the distribution.

*/ inline void SetCacheBehaviors(const AwsCloudFrontDistributionCacheBehaviors& value) { m_cacheBehaviorsHasBeenSet = true; m_cacheBehaviors = value; } /** *

Provides information about the cache configuration for the distribution.

*/ inline void SetCacheBehaviors(AwsCloudFrontDistributionCacheBehaviors&& value) { m_cacheBehaviorsHasBeenSet = true; m_cacheBehaviors = std::move(value); } /** *

Provides information about the cache configuration for the distribution.

*/ inline AwsCloudFrontDistributionDetails& WithCacheBehaviors(const AwsCloudFrontDistributionCacheBehaviors& value) { SetCacheBehaviors(value); return *this;} /** *

Provides information about the cache configuration for the distribution.

*/ inline AwsCloudFrontDistributionDetails& WithCacheBehaviors(AwsCloudFrontDistributionCacheBehaviors&& value) { SetCacheBehaviors(std::move(value)); return *this;} /** *

The default cache behavior for the configuration.

*/ inline const AwsCloudFrontDistributionDefaultCacheBehavior& GetDefaultCacheBehavior() const{ return m_defaultCacheBehavior; } /** *

The default cache behavior for the configuration.

*/ inline bool DefaultCacheBehaviorHasBeenSet() const { return m_defaultCacheBehaviorHasBeenSet; } /** *

The default cache behavior for the configuration.

*/ inline void SetDefaultCacheBehavior(const AwsCloudFrontDistributionDefaultCacheBehavior& value) { m_defaultCacheBehaviorHasBeenSet = true; m_defaultCacheBehavior = value; } /** *

The default cache behavior for the configuration.

*/ inline void SetDefaultCacheBehavior(AwsCloudFrontDistributionDefaultCacheBehavior&& value) { m_defaultCacheBehaviorHasBeenSet = true; m_defaultCacheBehavior = std::move(value); } /** *

The default cache behavior for the configuration.

*/ inline AwsCloudFrontDistributionDetails& WithDefaultCacheBehavior(const AwsCloudFrontDistributionDefaultCacheBehavior& value) { SetDefaultCacheBehavior(value); return *this;} /** *

The default cache behavior for the configuration.

*/ inline AwsCloudFrontDistributionDetails& WithDefaultCacheBehavior(AwsCloudFrontDistributionDefaultCacheBehavior&& value) { SetDefaultCacheBehavior(std::move(value)); return *this;} /** *

The object that CloudFront sends in response to requests from the origin (for * example, index.html) when a viewer requests the root URL for the distribution * (http://www.example.com) instead of an object in your distribution * (http://www.example.com/product-description.html).

*/ inline const Aws::String& GetDefaultRootObject() const{ return m_defaultRootObject; } /** *

The object that CloudFront sends in response to requests from the origin (for * example, index.html) when a viewer requests the root URL for the distribution * (http://www.example.com) instead of an object in your distribution * (http://www.example.com/product-description.html).

*/ inline bool DefaultRootObjectHasBeenSet() const { return m_defaultRootObjectHasBeenSet; } /** *

The object that CloudFront sends in response to requests from the origin (for * example, index.html) when a viewer requests the root URL for the distribution * (http://www.example.com) instead of an object in your distribution * (http://www.example.com/product-description.html).

*/ inline void SetDefaultRootObject(const Aws::String& value) { m_defaultRootObjectHasBeenSet = true; m_defaultRootObject = value; } /** *

The object that CloudFront sends in response to requests from the origin (for * example, index.html) when a viewer requests the root URL for the distribution * (http://www.example.com) instead of an object in your distribution * (http://www.example.com/product-description.html).

*/ inline void SetDefaultRootObject(Aws::String&& value) { m_defaultRootObjectHasBeenSet = true; m_defaultRootObject = std::move(value); } /** *

The object that CloudFront sends in response to requests from the origin (for * example, index.html) when a viewer requests the root URL for the distribution * (http://www.example.com) instead of an object in your distribution * (http://www.example.com/product-description.html).

*/ inline void SetDefaultRootObject(const char* value) { m_defaultRootObjectHasBeenSet = true; m_defaultRootObject.assign(value); } /** *

The object that CloudFront sends in response to requests from the origin (for * example, index.html) when a viewer requests the root URL for the distribution * (http://www.example.com) instead of an object in your distribution * (http://www.example.com/product-description.html).

*/ inline AwsCloudFrontDistributionDetails& WithDefaultRootObject(const Aws::String& value) { SetDefaultRootObject(value); return *this;} /** *

The object that CloudFront sends in response to requests from the origin (for * example, index.html) when a viewer requests the root URL for the distribution * (http://www.example.com) instead of an object in your distribution * (http://www.example.com/product-description.html).

*/ inline AwsCloudFrontDistributionDetails& WithDefaultRootObject(Aws::String&& value) { SetDefaultRootObject(std::move(value)); return *this;} /** *

The object that CloudFront sends in response to requests from the origin (for * example, index.html) when a viewer requests the root URL for the distribution * (http://www.example.com) instead of an object in your distribution * (http://www.example.com/product-description.html).

*/ inline AwsCloudFrontDistributionDetails& WithDefaultRootObject(const char* value) { SetDefaultRootObject(value); return *this;} /** *

The domain name corresponding to the distribution.

*/ inline const Aws::String& GetDomainName() const{ return m_domainName; } /** *

The domain name corresponding to the distribution.

*/ inline bool DomainNameHasBeenSet() const { return m_domainNameHasBeenSet; } /** *

The domain name corresponding to the distribution.

*/ inline void SetDomainName(const Aws::String& value) { m_domainNameHasBeenSet = true; m_domainName = value; } /** *

The domain name corresponding to the distribution.

*/ inline void SetDomainName(Aws::String&& value) { m_domainNameHasBeenSet = true; m_domainName = std::move(value); } /** *

The domain name corresponding to the distribution.

*/ inline void SetDomainName(const char* value) { m_domainNameHasBeenSet = true; m_domainName.assign(value); } /** *

The domain name corresponding to the distribution.

*/ inline AwsCloudFrontDistributionDetails& WithDomainName(const Aws::String& value) { SetDomainName(value); return *this;} /** *

The domain name corresponding to the distribution.

*/ inline AwsCloudFrontDistributionDetails& WithDomainName(Aws::String&& value) { SetDomainName(std::move(value)); return *this;} /** *

The domain name corresponding to the distribution.

*/ inline AwsCloudFrontDistributionDetails& WithDomainName(const char* value) { SetDomainName(value); return *this;} /** *

The entity tag is a hash of the object.

*/ inline const Aws::String& GetETag() const{ return m_eTag; } /** *

The entity tag is a hash of the object.

*/ inline bool ETagHasBeenSet() const { return m_eTagHasBeenSet; } /** *

The entity tag is a hash of the object.

*/ inline void SetETag(const Aws::String& value) { m_eTagHasBeenSet = true; m_eTag = value; } /** *

The entity tag is a hash of the object.

*/ inline void SetETag(Aws::String&& value) { m_eTagHasBeenSet = true; m_eTag = std::move(value); } /** *

The entity tag is a hash of the object.

*/ inline void SetETag(const char* value) { m_eTagHasBeenSet = true; m_eTag.assign(value); } /** *

The entity tag is a hash of the object.

*/ inline AwsCloudFrontDistributionDetails& WithETag(const Aws::String& value) { SetETag(value); return *this;} /** *

The entity tag is a hash of the object.

*/ inline AwsCloudFrontDistributionDetails& WithETag(Aws::String&& value) { SetETag(std::move(value)); return *this;} /** *

The entity tag is a hash of the object.

*/ inline AwsCloudFrontDistributionDetails& WithETag(const char* value) { SetETag(value); return *this;} /** *

Indicates when that the distribution was last modified.

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& GetLastModifiedTime() const{ return m_lastModifiedTime; } /** *

Indicates when that the distribution was last modified.

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 LastModifiedTimeHasBeenSet() const { return m_lastModifiedTimeHasBeenSet; } /** *

Indicates when that the distribution was last modified.

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 SetLastModifiedTime(const Aws::String& value) { m_lastModifiedTimeHasBeenSet = true; m_lastModifiedTime = value; } /** *

Indicates when that the distribution was last modified.

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 SetLastModifiedTime(Aws::String&& value) { m_lastModifiedTimeHasBeenSet = true; m_lastModifiedTime = std::move(value); } /** *

Indicates when that the distribution was last modified.

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 SetLastModifiedTime(const char* value) { m_lastModifiedTimeHasBeenSet = true; m_lastModifiedTime.assign(value); } /** *

Indicates when that the distribution was last modified.

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 AwsCloudFrontDistributionDetails& WithLastModifiedTime(const Aws::String& value) { SetLastModifiedTime(value); return *this;} /** *

Indicates when that the distribution was last modified.

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 AwsCloudFrontDistributionDetails& WithLastModifiedTime(Aws::String&& value) { SetLastModifiedTime(std::move(value)); return *this;} /** *

Indicates when that the distribution was last modified.

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 AwsCloudFrontDistributionDetails& WithLastModifiedTime(const char* value) { SetLastModifiedTime(value); return *this;} /** *

A complex type that controls whether access logs are written for the * distribution.

*/ inline const AwsCloudFrontDistributionLogging& GetLogging() const{ return m_logging; } /** *

A complex type that controls whether access logs are written for the * distribution.

*/ inline bool LoggingHasBeenSet() const { return m_loggingHasBeenSet; } /** *

A complex type that controls whether access logs are written for the * distribution.

*/ inline void SetLogging(const AwsCloudFrontDistributionLogging& value) { m_loggingHasBeenSet = true; m_logging = value; } /** *

A complex type that controls whether access logs are written for the * distribution.

*/ inline void SetLogging(AwsCloudFrontDistributionLogging&& value) { m_loggingHasBeenSet = true; m_logging = std::move(value); } /** *

A complex type that controls whether access logs are written for the * distribution.

*/ inline AwsCloudFrontDistributionDetails& WithLogging(const AwsCloudFrontDistributionLogging& value) { SetLogging(value); return *this;} /** *

A complex type that controls whether access logs are written for the * distribution.

*/ inline AwsCloudFrontDistributionDetails& WithLogging(AwsCloudFrontDistributionLogging&& value) { SetLogging(std::move(value)); return *this;} /** *

A complex type that contains information about origins for this * distribution.

*/ inline const AwsCloudFrontDistributionOrigins& GetOrigins() const{ return m_origins; } /** *

A complex type that contains information about origins for this * distribution.

*/ inline bool OriginsHasBeenSet() const { return m_originsHasBeenSet; } /** *

A complex type that contains information about origins for this * distribution.

*/ inline void SetOrigins(const AwsCloudFrontDistributionOrigins& value) { m_originsHasBeenSet = true; m_origins = value; } /** *

A complex type that contains information about origins for this * distribution.

*/ inline void SetOrigins(AwsCloudFrontDistributionOrigins&& value) { m_originsHasBeenSet = true; m_origins = std::move(value); } /** *

A complex type that contains information about origins for this * distribution.

*/ inline AwsCloudFrontDistributionDetails& WithOrigins(const AwsCloudFrontDistributionOrigins& value) { SetOrigins(value); return *this;} /** *

A complex type that contains information about origins for this * distribution.

*/ inline AwsCloudFrontDistributionDetails& WithOrigins(AwsCloudFrontDistributionOrigins&& value) { SetOrigins(std::move(value)); return *this;} /** *

Provides information about the origin groups in the distribution.

*/ inline const AwsCloudFrontDistributionOriginGroups& GetOriginGroups() const{ return m_originGroups; } /** *

Provides information about the origin groups in the distribution.

*/ inline bool OriginGroupsHasBeenSet() const { return m_originGroupsHasBeenSet; } /** *

Provides information about the origin groups in the distribution.

*/ inline void SetOriginGroups(const AwsCloudFrontDistributionOriginGroups& value) { m_originGroupsHasBeenSet = true; m_originGroups = value; } /** *

Provides information about the origin groups in the distribution.

*/ inline void SetOriginGroups(AwsCloudFrontDistributionOriginGroups&& value) { m_originGroupsHasBeenSet = true; m_originGroups = std::move(value); } /** *

Provides information about the origin groups in the distribution.

*/ inline AwsCloudFrontDistributionDetails& WithOriginGroups(const AwsCloudFrontDistributionOriginGroups& value) { SetOriginGroups(value); return *this;} /** *

Provides information about the origin groups in the distribution.

*/ inline AwsCloudFrontDistributionDetails& WithOriginGroups(AwsCloudFrontDistributionOriginGroups&& value) { SetOriginGroups(std::move(value)); return *this;} /** *

Provides information about the TLS/SSL configuration that the distribution * uses to communicate with viewers.

*/ inline const AwsCloudFrontDistributionViewerCertificate& GetViewerCertificate() const{ return m_viewerCertificate; } /** *

Provides information about the TLS/SSL configuration that the distribution * uses to communicate with viewers.

*/ inline bool ViewerCertificateHasBeenSet() const { return m_viewerCertificateHasBeenSet; } /** *

Provides information about the TLS/SSL configuration that the distribution * uses to communicate with viewers.

*/ inline void SetViewerCertificate(const AwsCloudFrontDistributionViewerCertificate& value) { m_viewerCertificateHasBeenSet = true; m_viewerCertificate = value; } /** *

Provides information about the TLS/SSL configuration that the distribution * uses to communicate with viewers.

*/ inline void SetViewerCertificate(AwsCloudFrontDistributionViewerCertificate&& value) { m_viewerCertificateHasBeenSet = true; m_viewerCertificate = std::move(value); } /** *

Provides information about the TLS/SSL configuration that the distribution * uses to communicate with viewers.

*/ inline AwsCloudFrontDistributionDetails& WithViewerCertificate(const AwsCloudFrontDistributionViewerCertificate& value) { SetViewerCertificate(value); return *this;} /** *

Provides information about the TLS/SSL configuration that the distribution * uses to communicate with viewers.

*/ inline AwsCloudFrontDistributionDetails& WithViewerCertificate(AwsCloudFrontDistributionViewerCertificate&& value) { SetViewerCertificate(std::move(value)); return *this;} /** *

Indicates the current status of the distribution.

*/ inline const Aws::String& GetStatus() const{ return m_status; } /** *

Indicates the current status of the distribution.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

Indicates the current status of the distribution.

*/ inline void SetStatus(const Aws::String& value) { m_statusHasBeenSet = true; m_status = value; } /** *

Indicates the current status of the distribution.

*/ inline void SetStatus(Aws::String&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

Indicates the current status of the distribution.

*/ inline void SetStatus(const char* value) { m_statusHasBeenSet = true; m_status.assign(value); } /** *

Indicates the current status of the distribution.

*/ inline AwsCloudFrontDistributionDetails& WithStatus(const Aws::String& value) { SetStatus(value); return *this;} /** *

Indicates the current status of the distribution.

*/ inline AwsCloudFrontDistributionDetails& WithStatus(Aws::String&& value) { SetStatus(std::move(value)); return *this;} /** *

Indicates the current status of the distribution.

*/ inline AwsCloudFrontDistributionDetails& WithStatus(const char* value) { SetStatus(value); return *this;} /** *

A unique identifier that specifies the WAF web ACL, if any, to associate with * this distribution.

*/ inline const Aws::String& GetWebAclId() const{ return m_webAclId; } /** *

A unique identifier that specifies the WAF web ACL, if any, to associate with * this distribution.

*/ inline bool WebAclIdHasBeenSet() const { return m_webAclIdHasBeenSet; } /** *

A unique identifier that specifies the WAF web ACL, if any, to associate with * this distribution.

*/ inline void SetWebAclId(const Aws::String& value) { m_webAclIdHasBeenSet = true; m_webAclId = value; } /** *

A unique identifier that specifies the WAF web ACL, if any, to associate with * this distribution.

*/ inline void SetWebAclId(Aws::String&& value) { m_webAclIdHasBeenSet = true; m_webAclId = std::move(value); } /** *

A unique identifier that specifies the WAF web ACL, if any, to associate with * this distribution.

*/ inline void SetWebAclId(const char* value) { m_webAclIdHasBeenSet = true; m_webAclId.assign(value); } /** *

A unique identifier that specifies the WAF web ACL, if any, to associate with * this distribution.

*/ inline AwsCloudFrontDistributionDetails& WithWebAclId(const Aws::String& value) { SetWebAclId(value); return *this;} /** *

A unique identifier that specifies the WAF web ACL, if any, to associate with * this distribution.

*/ inline AwsCloudFrontDistributionDetails& WithWebAclId(Aws::String&& value) { SetWebAclId(std::move(value)); return *this;} /** *

A unique identifier that specifies the WAF web ACL, if any, to associate with * this distribution.

*/ inline AwsCloudFrontDistributionDetails& WithWebAclId(const char* value) { SetWebAclId(value); return *this;} private: AwsCloudFrontDistributionCacheBehaviors m_cacheBehaviors; bool m_cacheBehaviorsHasBeenSet = false; AwsCloudFrontDistributionDefaultCacheBehavior m_defaultCacheBehavior; bool m_defaultCacheBehaviorHasBeenSet = false; Aws::String m_defaultRootObject; bool m_defaultRootObjectHasBeenSet = false; Aws::String m_domainName; bool m_domainNameHasBeenSet = false; Aws::String m_eTag; bool m_eTagHasBeenSet = false; Aws::String m_lastModifiedTime; bool m_lastModifiedTimeHasBeenSet = false; AwsCloudFrontDistributionLogging m_logging; bool m_loggingHasBeenSet = false; AwsCloudFrontDistributionOrigins m_origins; bool m_originsHasBeenSet = false; AwsCloudFrontDistributionOriginGroups m_originGroups; bool m_originGroupsHasBeenSet = false; AwsCloudFrontDistributionViewerCertificate m_viewerCertificate; bool m_viewerCertificateHasBeenSet = false; Aws::String m_status; bool m_statusHasBeenSet = false; Aws::String m_webAclId; bool m_webAclIdHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws