/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.cloudfront.model; import java.io.Serializable; import javax.annotation.Generated; /** *

* A complex type that determines the distribution's SSL/TLS configuration for communicating with viewers. *

*

* If the distribution doesn't use Aliases (also known as alternate domain names or CNAMEs)—that is, if the * distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net—set * CloudFrontDefaultCertificate to true and leave all other fields empty. *

*

* If the distribution uses Aliases (alternate domain names or CNAMEs), use the fields in this type to * specify the following settings: *

* *

* All distributions support HTTPS connections from viewers. To require viewers to use HTTPS only, or to redirect them * from HTTP to HTTPS, use ViewerProtocolPolicy in the CacheBehavior or * DefaultCacheBehavior. To specify how CloudFront should use SSL/TLS to communicate with your custom * origin, use CustomOriginConfig. *

*

* For more information, see Using HTTPS with * CloudFront and * Using Alternate Domain Names and HTTPS in the Amazon CloudFront Developer Guide. *

* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class ViewerCertificate implements Serializable, Cloneable { /** *

* If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net, set this * field to true. *

*

* If the distribution uses Aliases (alternate domain names or CNAMEs), set this field to * false and specify values for the following fields: *

* */ private Boolean cloudFrontDefaultCertificate; /** *

* If the distribution uses Aliases (alternate domain names or CNAMEs) and the SSL/TLS certificate is * stored in Identity * and Access Management (IAM), provide the ID of the IAM certificate. *

*

* If you specify an IAM certificate ID, you must also specify values for MinimumProtocolVersion and * SSLSupportMethod. *

*/ private String iAMCertificateId; /** *

* If the distribution uses Aliases (alternate domain names or CNAMEs) and the SSL/TLS certificate is * stored in Certificate Manager * (ACM), provide the Amazon Resource Name (ARN) of the ACM certificate. CloudFront only supports ACM * certificates in the US East (N. Virginia) Region (us-east-1). *

*

* If you specify an ACM certificate ARN, you must also specify values for MinimumProtocolVersion and * SSLSupportMethod. *

*/ private String aCMCertificateArn; /** *

* If the distribution uses Aliases (alternate domain names or CNAMEs), specify which viewers the * distribution accepts HTTPS connections from. *

* *

* If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net, don't set * a value for this field. *

*/ private String sSLSupportMethod; /** *

* If the distribution uses Aliases (alternate domain names or CNAMEs), specify the security policy * that you want CloudFront to use for HTTPS connections with viewers. The security policy determines two settings: *

* *

* For more information, see Security Policy and Supported Protocols and Ciphers Between Viewers and CloudFront in the Amazon CloudFront Developer * Guide. *

* *

* On the CloudFront console, this setting is called Security Policy. *

*
*

* When you're using SNI only (you set SSLSupportMethod to sni-only), you must specify * TLSv1 or higher. *

*

* If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net (you set * CloudFrontDefaultCertificate to true), CloudFront automatically sets the security * policy to TLSv1 regardless of the value that you set here. *

*/ private String minimumProtocolVersion; /** *

* This field is deprecated. Use one of the following fields instead: *

* */ @Deprecated private String certificate; /** *

* This field is deprecated. Use one of the following fields instead: *

* */ @Deprecated private String certificateSource; /** *

* If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net, set this * field to true. *

*

* If the distribution uses Aliases (alternate domain names or CNAMEs), set this field to * false and specify values for the following fields: *

* * * @param cloudFrontDefaultCertificate * If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net, * set this field to true.

*

* If the distribution uses Aliases (alternate domain names or CNAMEs), set this field to * false and specify values for the following fields: *

*