com.amazonaws.services.cloudfront.model.ViewerCertificate Maven / Gradle / Ivy
/*
* Copyright 2016-2021 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:
*
*
* -
*
* Which viewers the distribution accepts HTTPS connections from: only viewers that support server name indication (SNI) (recommended), or all
* viewers including those that don’t support SNI.
*
*
* -
*
* To accept HTTPS connections from only viewers that support SNI, set SSLSupportMethod
to
* sni-only
. This is recommended. Most browsers and clients support SNI.
*
*
* -
*
* To accept HTTPS connections from all viewers, including those that don’t support SNI, set
* SSLSupportMethod
to vip
. This is not recommended, and results in additional monthly charges
* from CloudFront.
*
*
*
*
* -
*
* The minimum SSL/TLS protocol version that the distribution can use to communicate with viewers. To specify a minimum
* version, choose a value for MinimumProtocolVersion
. For more information, see Security Policy in the Amazon CloudFront Developer Guide.
*
*
* -
*
* The location of the SSL/TLS certificate, AWS Certificate Manager (ACM)
* (recommended) or AWS
* Identity and Access Management (AWS IAM). You specify the location by setting a value in one of the following
* fields (not both):
*
*
* -
*
* ACMCertificateArn
*
*
* -
*
* IAMCertificateId
*
*
*
*
*
*
* 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:
*
*
* -
*
* ACMCertificateArn
or IAMCertificateId
(specify a value for one, not both)
*
*
* -
*
* MinimumProtocolVersion
*
*
* -
*
* SSLSupportMethod
*
*
*
*/
private Boolean cloudFrontDefaultCertificate;
/**
*
* If the distribution uses Aliases
(alternate domain names or CNAMEs) and the SSL/TLS certificate is
* stored in AWS
* Identity and Access Management (AWS 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 AWS 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.
*
*
* -
*
* sni-only
– The distribution accepts HTTPS connections from only viewers that support server name indication (SNI). This is
* recommended. Most browsers and clients support SNI.
*
*
* -
*
* vip
– The distribution accepts HTTPS connections from all viewers including those that don’t support
* SNI. This is not recommended, and results in additional monthly charges from CloudFront.
*
*
* -
*
* static-ip
- Do not specify this value unless your distribution has been enabled for this feature by
* the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact
* CloudFront through the AWS Support Center.
*
*
*
*
* 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:
*
*
* -
*
* The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.
*
*
* -
*
* The ciphers that CloudFront can use to encrypt the content that it returns to viewers.
*
*
*
*
* 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:
*
*
* -
*
* ACMCertificateArn
*
*
* -
*
* IAMCertificateId
*
*
* -
*
* CloudFrontDefaultCertificate
*
*
*
*/
@Deprecated
private String certificate;
/**
*
* This field is deprecated. Use one of the following fields instead:
*
*
* -
*
* ACMCertificateArn
*
*
* -
*
* IAMCertificateId
*
*
* -
*
* CloudFrontDefaultCertificate
*
*
*
*/
@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:
*
*
* -
*
* ACMCertificateArn
or IAMCertificateId
(specify a value for one, not both)
*
*
* -
*
* MinimumProtocolVersion
*
*
* -
*
* SSLSupportMethod
*
*
*
*
* @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:
*
*
* -
*
* ACMCertificateArn
or IAMCertificateId
(specify a value for one, not both)
*
*
* -
*
* MinimumProtocolVersion
*
*
* -
*
* SSLSupportMethod
*
*
*/
public void setCloudFrontDefaultCertificate(Boolean cloudFrontDefaultCertificate) {
this.cloudFrontDefaultCertificate = 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:
*
*
* -
*
* ACMCertificateArn
or IAMCertificateId
(specify a value for one, not both)
*
*
* -
*
* MinimumProtocolVersion
*
*
* -
*
* SSLSupportMethod
*
*
*
*
* @return 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:
*
*
* -
*
* ACMCertificateArn
or IAMCertificateId
(specify a value for one, not both)
*
*
* -
*
* MinimumProtocolVersion
*
*
* -
*
* SSLSupportMethod
*
*
*/
public Boolean getCloudFrontDefaultCertificate() {
return this.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:
*
*
* -
*
* ACMCertificateArn
or IAMCertificateId
(specify a value for one, not both)
*
*
* -
*
* MinimumProtocolVersion
*
*
* -
*
* SSLSupportMethod
*
*
*
*
* @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:
*
*
* -
*
* ACMCertificateArn
or IAMCertificateId
(specify a value for one, not both)
*
*
* -
*
* MinimumProtocolVersion
*
*
* -
*
* SSLSupportMethod
*
*
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ViewerCertificate withCloudFrontDefaultCertificate(Boolean cloudFrontDefaultCertificate) {
setCloudFrontDefaultCertificate(cloudFrontDefaultCertificate);
return this;
}
/**
*
* 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:
*
*
* -
*
* ACMCertificateArn
or IAMCertificateId
(specify a value for one, not both)
*
*
* -
*
* MinimumProtocolVersion
*
*
* -
*
* SSLSupportMethod
*
*
*
*
* @return 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:
*
*
* -
*
* ACMCertificateArn
or IAMCertificateId
(specify a value for one, not both)
*
*
* -
*
* MinimumProtocolVersion
*
*
* -
*
* SSLSupportMethod
*
*
*/
public Boolean isCloudFrontDefaultCertificate() {
return this.cloudFrontDefaultCertificate;
}
/**
*
* If the distribution uses Aliases
(alternate domain names or CNAMEs) and the SSL/TLS certificate is
* stored in AWS
* Identity and Access Management (AWS IAM), provide the ID of the IAM certificate.
*
*
* If you specify an IAM certificate ID, you must also specify values for MinimumProtocolVersion
and
* SSLSupportMethod
.
*
*
* @param iAMCertificateId
* If the distribution uses Aliases
(alternate domain names or CNAMEs) and the SSL/TLS
* certificate is stored in AWS Identity and
* Access Management (AWS IAM), provide the ID of the IAM certificate.
*
* If you specify an IAM certificate ID, you must also specify values for MinimumProtocolVersion
* and SSLSupportMethod
.
*/
public void setIAMCertificateId(String iAMCertificateId) {
this.iAMCertificateId = iAMCertificateId;
}
/**
*
* If the distribution uses Aliases
(alternate domain names or CNAMEs) and the SSL/TLS certificate is
* stored in AWS
* Identity and Access Management (AWS IAM), provide the ID of the IAM certificate.
*
*
* If you specify an IAM certificate ID, you must also specify values for MinimumProtocolVersion
and
* SSLSupportMethod
.
*
*
* @return If the distribution uses Aliases
(alternate domain names or CNAMEs) and the SSL/TLS
* certificate is stored in AWS Identity and
* Access Management (AWS IAM), provide the ID of the IAM certificate.
*
* If you specify an IAM certificate ID, you must also specify values for
* MinimumProtocolVersion
and SSLSupportMethod
.
*/
public String getIAMCertificateId() {
return this.iAMCertificateId;
}
/**
*
* If the distribution uses Aliases
(alternate domain names or CNAMEs) and the SSL/TLS certificate is
* stored in AWS
* Identity and Access Management (AWS IAM), provide the ID of the IAM certificate.
*
*
* If you specify an IAM certificate ID, you must also specify values for MinimumProtocolVersion
and
* SSLSupportMethod
.
*
*
* @param iAMCertificateId
* If the distribution uses Aliases
(alternate domain names or CNAMEs) and the SSL/TLS
* certificate is stored in AWS Identity and
* Access Management (AWS IAM), provide the ID of the IAM certificate.
*
* If you specify an IAM certificate ID, you must also specify values for MinimumProtocolVersion
* and SSLSupportMethod
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ViewerCertificate withIAMCertificateId(String iAMCertificateId) {
setIAMCertificateId(iAMCertificateId);
return this;
}
/**
*
* If the distribution uses Aliases
(alternate domain names or CNAMEs) and the SSL/TLS certificate is
* stored in AWS 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
.
*
*
* @param aCMCertificateArn
* If the distribution uses Aliases
(alternate domain names or CNAMEs) and the SSL/TLS
* certificate is stored in AWS
* 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
.
*/
public void setACMCertificateArn(String aCMCertificateArn) {
this.aCMCertificateArn = aCMCertificateArn;
}
/**
*
* If the distribution uses Aliases
(alternate domain names or CNAMEs) and the SSL/TLS certificate is
* stored in AWS 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
.
*
*
* @return If the distribution uses Aliases
(alternate domain names or CNAMEs) and the SSL/TLS
* certificate is stored in AWS
* 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
.
*/
public String getACMCertificateArn() {
return this.aCMCertificateArn;
}
/**
*
* If the distribution uses Aliases
(alternate domain names or CNAMEs) and the SSL/TLS certificate is
* stored in AWS 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
.
*
*
* @param aCMCertificateArn
* If the distribution uses Aliases
(alternate domain names or CNAMEs) and the SSL/TLS
* certificate is stored in AWS
* 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
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public ViewerCertificate withACMCertificateArn(String aCMCertificateArn) {
setACMCertificateArn(aCMCertificateArn);
return this;
}
/**
*
* If the distribution uses Aliases
(alternate domain names or CNAMEs), specify which viewers the
* distribution accepts HTTPS connections from.
*
*
* -
*
* sni-only
– The distribution accepts HTTPS connections from only viewers that support server name indication (SNI). This is
* recommended. Most browsers and clients support SNI.
*
*
* -
*
* vip
– The distribution accepts HTTPS connections from all viewers including those that don’t support
* SNI. This is not recommended, and results in additional monthly charges from CloudFront.
*
*
* -
*
* static-ip
- Do not specify this value unless your distribution has been enabled for this feature by
* the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact
* CloudFront through the AWS Support Center.
*
*
*
*
* If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net
, don’t set
* a value for this field.
*
*
* @param sSLSupportMethod
* If the distribution uses Aliases
(alternate domain names or CNAMEs), specify which viewers
* the distribution accepts HTTPS connections from.
*
* -
*
* sni-only
– The distribution accepts HTTPS connections from only viewers that support server name indication (SNI). This is
* recommended. Most browsers and clients support SNI.
*
*
* -
*
* vip
– The distribution accepts HTTPS connections from all viewers including those that don’t
* support SNI. This is not recommended, and results in additional monthly charges from CloudFront.
*
*
* -
*
* static-ip
- Do not specify this value unless your distribution has been enabled for this
* feature by the CloudFront team. If you have a use case that requires static IP addresses for a
* distribution, contact CloudFront through the AWS
* Support Center.
*
*
*
*
* If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net
,
* don’t set a value for this field.
* @see SSLSupportMethod
*/
public void setSSLSupportMethod(String sSLSupportMethod) {
this.sSLSupportMethod = sSLSupportMethod;
}
/**
*
* If the distribution uses Aliases
(alternate domain names or CNAMEs), specify which viewers the
* distribution accepts HTTPS connections from.
*
*
* -
*
* sni-only
– The distribution accepts HTTPS connections from only viewers that support server name indication (SNI). This is
* recommended. Most browsers and clients support SNI.
*
*
* -
*
* vip
– The distribution accepts HTTPS connections from all viewers including those that don’t support
* SNI. This is not recommended, and results in additional monthly charges from CloudFront.
*
*
* -
*
* static-ip
- Do not specify this value unless your distribution has been enabled for this feature by
* the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact
* CloudFront through the AWS Support Center.
*
*
*
*
* If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net
, don’t set
* a value for this field.
*
*
* @return If the distribution uses Aliases
(alternate domain names or CNAMEs), specify which viewers
* the distribution accepts HTTPS connections from.
*
* -
*
* sni-only
– The distribution accepts HTTPS connections from only viewers that support server name indication (SNI). This is
* recommended. Most browsers and clients support SNI.
*
*
* -
*
* vip
– The distribution accepts HTTPS connections from all viewers including those that don’t
* support SNI. This is not recommended, and results in additional monthly charges from CloudFront.
*
*
* -
*
* static-ip
- Do not specify this value unless your distribution has been enabled for this
* feature by the CloudFront team. If you have a use case that requires static IP addresses for a
* distribution, contact CloudFront through the AWS
* Support Center.
*
*
*
*
* If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net
,
* don’t set a value for this field.
* @see SSLSupportMethod
*/
public String getSSLSupportMethod() {
return this.sSLSupportMethod;
}
/**
*
* If the distribution uses Aliases
(alternate domain names or CNAMEs), specify which viewers the
* distribution accepts HTTPS connections from.
*
*
* -
*
* sni-only
– The distribution accepts HTTPS connections from only viewers that support server name indication (SNI). This is
* recommended. Most browsers and clients support SNI.
*
*
* -
*
* vip
– The distribution accepts HTTPS connections from all viewers including those that don’t support
* SNI. This is not recommended, and results in additional monthly charges from CloudFront.
*
*
* -
*
* static-ip
- Do not specify this value unless your distribution has been enabled for this feature by
* the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact
* CloudFront through the AWS Support Center.
*
*
*
*
* If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net
, don’t set
* a value for this field.
*
*
* @param sSLSupportMethod
* If the distribution uses Aliases
(alternate domain names or CNAMEs), specify which viewers
* the distribution accepts HTTPS connections from.
*
* -
*
* sni-only
– The distribution accepts HTTPS connections from only viewers that support server name indication (SNI). This is
* recommended. Most browsers and clients support SNI.
*
*
* -
*
* vip
– The distribution accepts HTTPS connections from all viewers including those that don’t
* support SNI. This is not recommended, and results in additional monthly charges from CloudFront.
*
*
* -
*
* static-ip
- Do not specify this value unless your distribution has been enabled for this
* feature by the CloudFront team. If you have a use case that requires static IP addresses for a
* distribution, contact CloudFront through the AWS
* Support Center.
*
*
*
*
* If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net
,
* don’t set a value for this field.
* @return Returns a reference to this object so that method calls can be chained together.
* @see SSLSupportMethod
*/
public ViewerCertificate withSSLSupportMethod(String sSLSupportMethod) {
setSSLSupportMethod(sSLSupportMethod);
return this;
}
/**
*
* If the distribution uses Aliases
(alternate domain names or CNAMEs), specify which viewers the
* distribution accepts HTTPS connections from.
*
*
* -
*
* sni-only
– The distribution accepts HTTPS connections from only viewers that support server name indication (SNI). This is
* recommended. Most browsers and clients support SNI.
*
*
* -
*
* vip
– The distribution accepts HTTPS connections from all viewers including those that don’t support
* SNI. This is not recommended, and results in additional monthly charges from CloudFront.
*
*
* -
*
* static-ip
- Do not specify this value unless your distribution has been enabled for this feature by
* the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact
* CloudFront through the AWS Support Center.
*
*
*
*
* If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net
, don’t set
* a value for this field.
*
*
* @param sSLSupportMethod
* If the distribution uses Aliases
(alternate domain names or CNAMEs), specify which viewers
* the distribution accepts HTTPS connections from.
*
* -
*
* sni-only
– The distribution accepts HTTPS connections from only viewers that support server name indication (SNI). This is
* recommended. Most browsers and clients support SNI.
*
*
* -
*
* vip
– The distribution accepts HTTPS connections from all viewers including those that don’t
* support SNI. This is not recommended, and results in additional monthly charges from CloudFront.
*
*
* -
*
* static-ip
- Do not specify this value unless your distribution has been enabled for this
* feature by the CloudFront team. If you have a use case that requires static IP addresses for a
* distribution, contact CloudFront through the AWS
* Support Center.
*
*
*
*
* If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net
,
* don’t set a value for this field.
* @see SSLSupportMethod
*/
public void setSSLSupportMethod(SSLSupportMethod sSLSupportMethod) {
withSSLSupportMethod(sSLSupportMethod);
}
/**
*
* If the distribution uses Aliases
(alternate domain names or CNAMEs), specify which viewers the
* distribution accepts HTTPS connections from.
*
*
* -
*
* sni-only
– The distribution accepts HTTPS connections from only viewers that support server name indication (SNI). This is
* recommended. Most browsers and clients support SNI.
*
*
* -
*
* vip
– The distribution accepts HTTPS connections from all viewers including those that don’t support
* SNI. This is not recommended, and results in additional monthly charges from CloudFront.
*
*
* -
*
* static-ip
- Do not specify this value unless your distribution has been enabled for this feature by
* the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact
* CloudFront through the AWS Support Center.
*
*
*
*
* If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net
, don’t set
* a value for this field.
*
*
* @param sSLSupportMethod
* If the distribution uses Aliases
(alternate domain names or CNAMEs), specify which viewers
* the distribution accepts HTTPS connections from.
*
* -
*
* sni-only
– The distribution accepts HTTPS connections from only viewers that support server name indication (SNI). This is
* recommended. Most browsers and clients support SNI.
*
*
* -
*
* vip
– The distribution accepts HTTPS connections from all viewers including those that don’t
* support SNI. This is not recommended, and results in additional monthly charges from CloudFront.
*
*
* -
*
* static-ip
- Do not specify this value unless your distribution has been enabled for this
* feature by the CloudFront team. If you have a use case that requires static IP addresses for a
* distribution, contact CloudFront through the AWS
* Support Center.
*
*
*
*
* If the distribution uses the CloudFront domain name such as d111111abcdef8.cloudfront.net
,
* don’t set a value for this field.
* @return Returns a reference to this object so that method calls can be chained together.
* @see SSLSupportMethod
*/
public ViewerCertificate withSSLSupportMethod(SSLSupportMethod sSLSupportMethod) {
this.sSLSupportMethod = sSLSupportMethod.toString();
return this;
}
/**
*
* 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:
*
*
* -
*
* The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.
*
*
* -
*
* The ciphers that CloudFront can use to encrypt the content that it returns to viewers.
*
*
*
*
* 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.
*
*
* @param minimumProtocolVersion
* 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:
*
* -
*
* The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.
*
*
* -
*
* The ciphers that CloudFront can use to encrypt the content that it returns to viewers.
*
*
*
*
* 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.
* @see MinimumProtocolVersion
*/
public void setMinimumProtocolVersion(String minimumProtocolVersion) {
this.minimumProtocolVersion = minimumProtocolVersion;
}
/**
*
* 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:
*
*
* -
*
* The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.
*
*
* -
*
* The ciphers that CloudFront can use to encrypt the content that it returns to viewers.
*
*
*
*
* 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.
*
*
* @return 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:
*
* -
*
* The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.
*
*
* -
*
* The ciphers that CloudFront can use to encrypt the content that it returns to viewers.
*
*
*
*
* 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.
* @see MinimumProtocolVersion
*/
public String getMinimumProtocolVersion() {
return this.minimumProtocolVersion;
}
/**
*
* 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:
*
*
* -
*
* The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.
*
*
* -
*
* The ciphers that CloudFront can use to encrypt the content that it returns to viewers.
*
*
*
*
* 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.
*
*
* @param minimumProtocolVersion
* 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:
*
* -
*
* The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.
*
*
* -
*
* The ciphers that CloudFront can use to encrypt the content that it returns to viewers.
*
*
*
*
* 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.
* @return Returns a reference to this object so that method calls can be chained together.
* @see MinimumProtocolVersion
*/
public ViewerCertificate withMinimumProtocolVersion(String minimumProtocolVersion) {
setMinimumProtocolVersion(minimumProtocolVersion);
return this;
}
/**
*
* 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:
*
*
* -
*
* The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.
*
*
* -
*
* The ciphers that CloudFront can use to encrypt the content that it returns to viewers.
*
*
*
*
* 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.
*
*
* @param minimumProtocolVersion
* 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:
*
* -
*
* The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.
*
*
* -
*
* The ciphers that CloudFront can use to encrypt the content that it returns to viewers.
*
*
*
*
* 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.
* @see MinimumProtocolVersion
*/
public void setMinimumProtocolVersion(MinimumProtocolVersion minimumProtocolVersion) {
withMinimumProtocolVersion(minimumProtocolVersion);
}
/**
*
* 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:
*
*
* -
*
* The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.
*
*
* -
*
* The ciphers that CloudFront can use to encrypt the content that it returns to viewers.
*
*
*
*
* 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.
*
*
* @param minimumProtocolVersion
* 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:
*
* -
*
* The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers.
*
*
* -
*
* The ciphers that CloudFront can use to encrypt the content that it returns to viewers.
*
*
*
*
* 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.
* @return Returns a reference to this object so that method calls can be chained together.
* @see MinimumProtocolVersion
*/
public ViewerCertificate withMinimumProtocolVersion(MinimumProtocolVersion minimumProtocolVersion) {
this.minimumProtocolVersion = minimumProtocolVersion.toString();
return this;
}
/**
*
* This field is deprecated. Use one of the following fields instead:
*
*
* -
*
* ACMCertificateArn
*
*
* -
*
* IAMCertificateId
*
*
* -
*
* CloudFrontDefaultCertificate
*
*
*
*
* @param certificate
* This field is deprecated. Use one of the following fields instead:
*
* -
*
* ACMCertificateArn
*
*
* -
*
* IAMCertificateId
*
*
* -
*
* CloudFrontDefaultCertificate
*
*
*/
@Deprecated
public void setCertificate(String certificate) {
this.certificate = certificate;
}
/**
*
* This field is deprecated. Use one of the following fields instead:
*
*
* -
*
* ACMCertificateArn
*
*
* -
*
* IAMCertificateId
*
*
* -
*
* CloudFrontDefaultCertificate
*
*
*
*
* @return This field is deprecated. Use one of the following fields instead:
*
* -
*
* ACMCertificateArn
*
*
* -
*
* IAMCertificateId
*
*
* -
*
* CloudFrontDefaultCertificate
*
*
*/
@Deprecated
public String getCertificate() {
return this.certificate;
}
/**
*
* This field is deprecated. Use one of the following fields instead:
*
*
* -
*
* ACMCertificateArn
*
*
* -
*
* IAMCertificateId
*
*
* -
*
* CloudFrontDefaultCertificate
*
*
*
*
* @param certificate
* This field is deprecated. Use one of the following fields instead:
*
* -
*
* ACMCertificateArn
*
*
* -
*
* IAMCertificateId
*
*
* -
*
* CloudFrontDefaultCertificate
*
*
* @return Returns a reference to this object so that method calls can be chained together.
*/
@Deprecated
public ViewerCertificate withCertificate(String certificate) {
setCertificate(certificate);
return this;
}
/**
*
* This field is deprecated. Use one of the following fields instead:
*
*
* -
*
* ACMCertificateArn
*
*
* -
*
* IAMCertificateId
*
*
* -
*
* CloudFrontDefaultCertificate
*
*
*
*
* @param certificateSource
* This field is deprecated. Use one of the following fields instead:
*
* -
*
* ACMCertificateArn
*
*
* -
*
* IAMCertificateId
*
*
* -
*
* CloudFrontDefaultCertificate
*
*
* @see CertificateSource
*/
@Deprecated
public void setCertificateSource(String certificateSource) {
this.certificateSource = certificateSource;
}
/**
*
* This field is deprecated. Use one of the following fields instead:
*
*
* -
*
* ACMCertificateArn
*
*
* -
*
* IAMCertificateId
*
*
* -
*
* CloudFrontDefaultCertificate
*
*
*
*
* @return This field is deprecated. Use one of the following fields instead:
*
* -
*
* ACMCertificateArn
*
*
* -
*
* IAMCertificateId
*
*
* -
*
* CloudFrontDefaultCertificate
*
*
* @see CertificateSource
*/
@Deprecated
public String getCertificateSource() {
return this.certificateSource;
}
/**
*
* This field is deprecated. Use one of the following fields instead:
*
*
* -
*
* ACMCertificateArn
*
*
* -
*
* IAMCertificateId
*
*
* -
*
* CloudFrontDefaultCertificate
*
*
*
*
* @param certificateSource
* This field is deprecated. Use one of the following fields instead:
*
* -
*
* ACMCertificateArn
*
*
* -
*
* IAMCertificateId
*
*
* -
*
* CloudFrontDefaultCertificate
*
*
* @return Returns a reference to this object so that method calls can be chained together.
* @see CertificateSource
*/
@Deprecated
public ViewerCertificate withCertificateSource(String certificateSource) {
setCertificateSource(certificateSource);
return this;
}
/**
*
* This field is deprecated. Use one of the following fields instead:
*
*
* -
*
* ACMCertificateArn
*
*
* -
*
* IAMCertificateId
*
*
* -
*
* CloudFrontDefaultCertificate
*
*
*
*
* @param certificateSource
* This field is deprecated. Use one of the following fields instead:
*
* -
*
* ACMCertificateArn
*
*
* -
*
* IAMCertificateId
*
*
* -
*
* CloudFrontDefaultCertificate
*
*
* @see CertificateSource
*/
@Deprecated
public void setCertificateSource(CertificateSource certificateSource) {
withCertificateSource(certificateSource);
}
/**
*
* This field is deprecated. Use one of the following fields instead:
*
*
* -
*
* ACMCertificateArn
*
*
* -
*
* IAMCertificateId
*
*
* -
*
* CloudFrontDefaultCertificate
*
*
*
*
* @param certificateSource
* This field is deprecated. Use one of the following fields instead:
*
* -
*
* ACMCertificateArn
*
*
* -
*
* IAMCertificateId
*
*
* -
*
* CloudFrontDefaultCertificate
*
*
* @return Returns a reference to this object so that method calls can be chained together.
* @see CertificateSource
*/
@Deprecated
public ViewerCertificate withCertificateSource(CertificateSource certificateSource) {
this.certificateSource = certificateSource.toString();
return this;
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getCloudFrontDefaultCertificate() != null)
sb.append("CloudFrontDefaultCertificate: ").append(getCloudFrontDefaultCertificate()).append(",");
if (getIAMCertificateId() != null)
sb.append("IAMCertificateId: ").append(getIAMCertificateId()).append(",");
if (getACMCertificateArn() != null)
sb.append("ACMCertificateArn: ").append(getACMCertificateArn()).append(",");
if (getSSLSupportMethod() != null)
sb.append("SSLSupportMethod: ").append(getSSLSupportMethod()).append(",");
if (getMinimumProtocolVersion() != null)
sb.append("MinimumProtocolVersion: ").append(getMinimumProtocolVersion()).append(",");
if (getCertificate() != null)
sb.append("Certificate: ").append(getCertificate()).append(",");
if (getCertificateSource() != null)
sb.append("CertificateSource: ").append(getCertificateSource());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof ViewerCertificate == false)
return false;
ViewerCertificate other = (ViewerCertificate) obj;
if (other.getCloudFrontDefaultCertificate() == null ^ this.getCloudFrontDefaultCertificate() == null)
return false;
if (other.getCloudFrontDefaultCertificate() != null && other.getCloudFrontDefaultCertificate().equals(this.getCloudFrontDefaultCertificate()) == false)
return false;
if (other.getIAMCertificateId() == null ^ this.getIAMCertificateId() == null)
return false;
if (other.getIAMCertificateId() != null && other.getIAMCertificateId().equals(this.getIAMCertificateId()) == false)
return false;
if (other.getACMCertificateArn() == null ^ this.getACMCertificateArn() == null)
return false;
if (other.getACMCertificateArn() != null && other.getACMCertificateArn().equals(this.getACMCertificateArn()) == false)
return false;
if (other.getSSLSupportMethod() == null ^ this.getSSLSupportMethod() == null)
return false;
if (other.getSSLSupportMethod() != null && other.getSSLSupportMethod().equals(this.getSSLSupportMethod()) == false)
return false;
if (other.getMinimumProtocolVersion() == null ^ this.getMinimumProtocolVersion() == null)
return false;
if (other.getMinimumProtocolVersion() != null && other.getMinimumProtocolVersion().equals(this.getMinimumProtocolVersion()) == false)
return false;
if (other.getCertificate() == null ^ this.getCertificate() == null)
return false;
if (other.getCertificate() != null && other.getCertificate().equals(this.getCertificate()) == false)
return false;
if (other.getCertificateSource() == null ^ this.getCertificateSource() == null)
return false;
if (other.getCertificateSource() != null && other.getCertificateSource().equals(this.getCertificateSource()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getCloudFrontDefaultCertificate() == null) ? 0 : getCloudFrontDefaultCertificate().hashCode());
hashCode = prime * hashCode + ((getIAMCertificateId() == null) ? 0 : getIAMCertificateId().hashCode());
hashCode = prime * hashCode + ((getACMCertificateArn() == null) ? 0 : getACMCertificateArn().hashCode());
hashCode = prime * hashCode + ((getSSLSupportMethod() == null) ? 0 : getSSLSupportMethod().hashCode());
hashCode = prime * hashCode + ((getMinimumProtocolVersion() == null) ? 0 : getMinimumProtocolVersion().hashCode());
hashCode = prime * hashCode + ((getCertificate() == null) ? 0 : getCertificate().hashCode());
hashCode = prime * hashCode + ((getCertificateSource() == null) ? 0 : getCertificateSource().hashCode());
return hashCode;
}
@Override
public ViewerCertificate clone() {
try {
return (ViewerCertificate) super.clone();
} catch (CloneNotSupportedException e) {
throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
}
}
}