Class ViewerCertificate

java.lang.Object
software.amazon.awssdk.services.cloudfront.model.ViewerCertificate
All Implemented Interfaces:
Serializable, SdkPojo, ToCopyableBuilder<ViewerCertificate.Builder,ViewerCertificate>

@Generated("software.amazon.awssdk:codegen") public final class ViewerCertificate extends Object implements SdkPojo, Serializable, ToCopyableBuilder<ViewerCertificate.Builder,ViewerCertificate>

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, Certificate Manager (ACM) (recommended) or Identity and Access Management (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 Also:
  • Method Details

    • cloudFrontDefaultCertificate

      public final Boolean 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

      Returns:
      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

    • iamCertificateId

      public final String iamCertificateId()

      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.

      Returns:
      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.

    • acmCertificateArn

      public final String acmCertificateArn()

      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.

      Returns:
      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.

    • sslSupportMethod

      public final 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 Amazon Web Services Support Center.

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

      If the service returns an enum value that is not available in the current SDK version, sslSupportMethod will return SSLSupportMethod.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from sslSupportMethodAsString().

      Returns:
      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 Amazon Web Services Support Center.

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

      See Also:
    • sslSupportMethodAsString

      public final String sslSupportMethodAsString()

      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 Amazon Web Services Support Center.

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

      If the service returns an enum value that is not available in the current SDK version, sslSupportMethod will return SSLSupportMethod.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from sslSupportMethodAsString().

      Returns:
      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 Amazon Web Services Support Center.

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

      See Also:
    • minimumProtocolVersion

      public final 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.

      If the service returns an enum value that is not available in the current SDK version, minimumProtocolVersion will return MinimumProtocolVersion.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from minimumProtocolVersionAsString().

      Returns:
      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 Also:
    • minimumProtocolVersionAsString

      public final String minimumProtocolVersionAsString()

      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.

      If the service returns an enum value that is not available in the current SDK version, minimumProtocolVersion will return MinimumProtocolVersion.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from minimumProtocolVersionAsString().

      Returns:
      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 Also:
    • certificate

      @Deprecated public final String certificate()
      Deprecated.

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

      • ACMCertificateArn

      • IAMCertificateId

      • CloudFrontDefaultCertificate

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

      • ACMCertificateArn

      • IAMCertificateId

      • CloudFrontDefaultCertificate

    • certificateSource

      @Deprecated public final CertificateSource certificateSource()
      Deprecated.

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

      • ACMCertificateArn

      • IAMCertificateId

      • CloudFrontDefaultCertificate

      If the service returns an enum value that is not available in the current SDK version, certificateSource will return CertificateSource.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from certificateSourceAsString().

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

      • ACMCertificateArn

      • IAMCertificateId

      • CloudFrontDefaultCertificate

      See Also:
    • certificateSourceAsString

      @Deprecated public final String certificateSourceAsString()
      Deprecated.

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

      • ACMCertificateArn

      • IAMCertificateId

      • CloudFrontDefaultCertificate

      If the service returns an enum value that is not available in the current SDK version, certificateSource will return CertificateSource.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available from certificateSourceAsString().

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

      • ACMCertificateArn

      • IAMCertificateId

      • CloudFrontDefaultCertificate

      See Also:
    • toBuilder

      public ViewerCertificate.Builder toBuilder()
      Description copied from interface: ToCopyableBuilder
      Take this object and create a builder that contains all of the current property values of this object.
      Specified by:
      toBuilder in interface ToCopyableBuilder<ViewerCertificate.Builder,ViewerCertificate>
      Returns:
      a builder for type T
    • builder

      public static ViewerCertificate.Builder builder()
    • serializableBuilderClass

      public static Class<? extends ViewerCertificate.Builder> serializableBuilderClass()
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public final boolean equals(Object obj)
      Overrides:
      equals in class Object
    • equalsBySdkFields

      public final boolean equalsBySdkFields(Object obj)
      Description copied from interface: SdkPojo
      Indicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in an SdkPojo class, and is generated based on a service model.

      If an SdkPojo class does not have any inherited fields, equalsBySdkFields and equals are essentially the same.

      Specified by:
      equalsBySdkFields in interface SdkPojo
      Parameters:
      obj - the object to be compared with
      Returns:
      true if the other object equals to this object by sdk fields, false otherwise.
    • toString

      public final String toString()
      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.
      Overrides:
      toString in class Object
    • getValueForField

      public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
    • sdkFields

      public final List<SdkField<?>> sdkFields()
      Specified by:
      sdkFields in interface SdkPojo
      Returns:
      List of SdkField in this POJO. May be empty list but should never be null.