
com.amazonaws.services.cloudfront.model.Origin Maven / Gradle / Ivy
Show all versions of aws-java-sdk-cloudfront Show documentation
/*
* Copyright 2012-2017 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;
/**
*
* A complex type that describes the Amazon S3 bucket or the HTTP server (for example, a web server) from which
* CloudFront gets your files. You must create at least one origin.
*
*
* For the current limit on the number of origins that you can create for a distribution, see Amazon CloudFront
* Limits in the AWS General Reference.
*
*
* @see AWS API
* Documentation
*/
public class Origin implements Serializable, Cloneable {
/**
*
* A unique identifier for the origin. The value of Id
must be unique within the distribution.
*
*
* When you specify the value of TargetOriginId
for the default cache behavior or for another cache
* behavior, you indicate the origin to which you want the cache behavior to route requests by specifying the value
* of the Id
element for that origin. When a request matches the path pattern for that cache behavior,
* CloudFront routes the request to the specified origin. For more information, see Cache Behavior Settings in the Amazon CloudFront Developer Guide.
*
*/
private String id;
/**
*
* Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want CloudFront to get objects for
* this origin, for example, myawsbucket.s3.amazonaws.com
.
*
*
* Constraints for Amazon S3 origins:
*
*
* -
*
* If you configured Amazon S3 Transfer Acceleration for your bucket, do not specify the s3-accelerate
* endpoint for DomainName
.
*
*
* -
*
* The bucket name must be between 3 and 63 characters long (inclusive).
*
*
* -
*
* The bucket name must contain only lowercase characters, numbers, periods, underscores, and dashes.
*
*
* -
*
* The bucket name must not contain adjacent periods.
*
*
*
*
* Custom Origins: The DNS domain name for the HTTP server from which you want CloudFront to get objects for
* this origin, for example, www.example.com
.
*
*
* Constraints for custom origins:
*
*
* -
*
* DomainName
must be a valid DNS name that contains only a-z, A-Z, 0-9, dot (.), hyphen (-), or
* underscore (_) characters.
*
*
* -
*
* The name cannot exceed 128 characters.
*
*
*
*/
private String domainName;
/**
*
* An optional element that causes CloudFront to request your content from a directory in your Amazon S3 bucket or
* your custom origin. When you include the OriginPath
element, specify the directory name, beginning
* with a /
. CloudFront appends the directory name to the value of DomainName
, for
* example, example.com/production
. Do not include a /
at the end of the directory name.
*
*
* For example, suppose you've specified the following values for your distribution:
*
*
* -
*
* DomainName
: An Amazon S3 bucket named myawsbucket
.
*
*
* -
*
* OriginPath
: /production
*
*
* -
*
* CNAME
: example.com
*
*
*
*
* When a user enters example.com/index.html
in a browser, CloudFront sends a request to Amazon S3 for
* myawsbucket/production/index.html
.
*
*
* When a user enters example.com/acme/index.html
in a browser, CloudFront sends a request to Amazon S3
* for myawsbucket/production/acme/index.html
.
*
*/
private String originPath;
/**
*
* A complex type that contains names and values for the custom headers that you want.
*
*/
private CustomHeaders customHeaders;
/**
*
* A complex type that contains information about the Amazon S3 origin. If the origin is a custom origin, use the
* CustomOriginConfig
element instead.
*
*/
private S3OriginConfig s3OriginConfig;
/**
*
* A complex type that contains information about a custom origin. If the origin is an Amazon S3 bucket, use the
* S3OriginConfig
element instead.
*
*/
private CustomOriginConfig customOriginConfig;
/**
*
* A unique identifier for the origin. The value of Id
must be unique within the distribution.
*
*
* When you specify the value of TargetOriginId
for the default cache behavior or for another cache
* behavior, you indicate the origin to which you want the cache behavior to route requests by specifying the value
* of the Id
element for that origin. When a request matches the path pattern for that cache behavior,
* CloudFront routes the request to the specified origin. For more information, see Cache Behavior Settings in the Amazon CloudFront Developer Guide.
*
*
* @param id
* A unique identifier for the origin. The value of Id
must be unique within the
* distribution.
*
* When you specify the value of TargetOriginId
for the default cache behavior or for another
* cache behavior, you indicate the origin to which you want the cache behavior to route requests by
* specifying the value of the Id
element for that origin. When a request matches the path
* pattern for that cache behavior, CloudFront routes the request to the specified origin. For more
* information, see Cache Behavior Settings in the Amazon CloudFront Developer Guide.
*/
public void setId(String id) {
this.id = id;
}
/**
*
* A unique identifier for the origin. The value of Id
must be unique within the distribution.
*
*
* When you specify the value of TargetOriginId
for the default cache behavior or for another cache
* behavior, you indicate the origin to which you want the cache behavior to route requests by specifying the value
* of the Id
element for that origin. When a request matches the path pattern for that cache behavior,
* CloudFront routes the request to the specified origin. For more information, see Cache Behavior Settings in the Amazon CloudFront Developer Guide.
*
*
* @return A unique identifier for the origin. The value of Id
must be unique within the
* distribution.
*
* When you specify the value of TargetOriginId
for the default cache behavior or for another
* cache behavior, you indicate the origin to which you want the cache behavior to route requests by
* specifying the value of the Id
element for that origin. When a request matches the path
* pattern for that cache behavior, CloudFront routes the request to the specified origin. For more
* information, see Cache Behavior Settings in the Amazon CloudFront Developer Guide.
*/
public String getId() {
return this.id;
}
/**
*
* A unique identifier for the origin. The value of Id
must be unique within the distribution.
*
*
* When you specify the value of TargetOriginId
for the default cache behavior or for another cache
* behavior, you indicate the origin to which you want the cache behavior to route requests by specifying the value
* of the Id
element for that origin. When a request matches the path pattern for that cache behavior,
* CloudFront routes the request to the specified origin. For more information, see Cache Behavior Settings in the Amazon CloudFront Developer Guide.
*
*
* @param id
* A unique identifier for the origin. The value of Id
must be unique within the
* distribution.
*
* When you specify the value of TargetOriginId
for the default cache behavior or for another
* cache behavior, you indicate the origin to which you want the cache behavior to route requests by
* specifying the value of the Id
element for that origin. When a request matches the path
* pattern for that cache behavior, CloudFront routes the request to the specified origin. For more
* information, see Cache Behavior Settings in the Amazon CloudFront Developer Guide.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Origin withId(String id) {
setId(id);
return this;
}
/**
*
* Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want CloudFront to get objects for
* this origin, for example, myawsbucket.s3.amazonaws.com
.
*
*
* Constraints for Amazon S3 origins:
*
*
* -
*
* If you configured Amazon S3 Transfer Acceleration for your bucket, do not specify the s3-accelerate
* endpoint for DomainName
.
*
*
* -
*
* The bucket name must be between 3 and 63 characters long (inclusive).
*
*
* -
*
* The bucket name must contain only lowercase characters, numbers, periods, underscores, and dashes.
*
*
* -
*
* The bucket name must not contain adjacent periods.
*
*
*
*
* Custom Origins: The DNS domain name for the HTTP server from which you want CloudFront to get objects for
* this origin, for example, www.example.com
.
*
*
* Constraints for custom origins:
*
*
* -
*
* DomainName
must be a valid DNS name that contains only a-z, A-Z, 0-9, dot (.), hyphen (-), or
* underscore (_) characters.
*
*
* -
*
* The name cannot exceed 128 characters.
*
*
*
*
* @param domainName
* Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want CloudFront to get
* objects for this origin, for example, myawsbucket.s3.amazonaws.com
.
*
* Constraints for Amazon S3 origins:
*
*
* -
*
* If you configured Amazon S3 Transfer Acceleration for your bucket, do not specify the
* s3-accelerate
endpoint for DomainName
.
*
*
* -
*
* The bucket name must be between 3 and 63 characters long (inclusive).
*
*
* -
*
* The bucket name must contain only lowercase characters, numbers, periods, underscores, and dashes.
*
*
* -
*
* The bucket name must not contain adjacent periods.
*
*
*
*
* Custom Origins: The DNS domain name for the HTTP server from which you want CloudFront to get
* objects for this origin, for example, www.example.com
.
*
*
* Constraints for custom origins:
*
*
* -
*
* DomainName
must be a valid DNS name that contains only a-z, A-Z, 0-9, dot (.), hyphen (-), or
* underscore (_) characters.
*
*
* -
*
* The name cannot exceed 128 characters.
*
*
*/
public void setDomainName(String domainName) {
this.domainName = domainName;
}
/**
*
* Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want CloudFront to get objects for
* this origin, for example, myawsbucket.s3.amazonaws.com
.
*
*
* Constraints for Amazon S3 origins:
*
*
* -
*
* If you configured Amazon S3 Transfer Acceleration for your bucket, do not specify the s3-accelerate
* endpoint for DomainName
.
*
*
* -
*
* The bucket name must be between 3 and 63 characters long (inclusive).
*
*
* -
*
* The bucket name must contain only lowercase characters, numbers, periods, underscores, and dashes.
*
*
* -
*
* The bucket name must not contain adjacent periods.
*
*
*
*
* Custom Origins: The DNS domain name for the HTTP server from which you want CloudFront to get objects for
* this origin, for example, www.example.com
.
*
*
* Constraints for custom origins:
*
*
* -
*
* DomainName
must be a valid DNS name that contains only a-z, A-Z, 0-9, dot (.), hyphen (-), or
* underscore (_) characters.
*
*
* -
*
* The name cannot exceed 128 characters.
*
*
*
*
* @return Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want CloudFront to get
* objects for this origin, for example, myawsbucket.s3.amazonaws.com
.
*
* Constraints for Amazon S3 origins:
*
*
* -
*
* If you configured Amazon S3 Transfer Acceleration for your bucket, do not specify the
* s3-accelerate
endpoint for DomainName
.
*
*
* -
*
* The bucket name must be between 3 and 63 characters long (inclusive).
*
*
* -
*
* The bucket name must contain only lowercase characters, numbers, periods, underscores, and dashes.
*
*
* -
*
* The bucket name must not contain adjacent periods.
*
*
*
*
* Custom Origins: The DNS domain name for the HTTP server from which you want CloudFront to get
* objects for this origin, for example, www.example.com
.
*
*
* Constraints for custom origins:
*
*
* -
*
* DomainName
must be a valid DNS name that contains only a-z, A-Z, 0-9, dot (.), hyphen (-),
* or underscore (_) characters.
*
*
* -
*
* The name cannot exceed 128 characters.
*
*
*/
public String getDomainName() {
return this.domainName;
}
/**
*
* Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want CloudFront to get objects for
* this origin, for example, myawsbucket.s3.amazonaws.com
.
*
*
* Constraints for Amazon S3 origins:
*
*
* -
*
* If you configured Amazon S3 Transfer Acceleration for your bucket, do not specify the s3-accelerate
* endpoint for DomainName
.
*
*
* -
*
* The bucket name must be between 3 and 63 characters long (inclusive).
*
*
* -
*
* The bucket name must contain only lowercase characters, numbers, periods, underscores, and dashes.
*
*
* -
*
* The bucket name must not contain adjacent periods.
*
*
*
*
* Custom Origins: The DNS domain name for the HTTP server from which you want CloudFront to get objects for
* this origin, for example, www.example.com
.
*
*
* Constraints for custom origins:
*
*
* -
*
* DomainName
must be a valid DNS name that contains only a-z, A-Z, 0-9, dot (.), hyphen (-), or
* underscore (_) characters.
*
*
* -
*
* The name cannot exceed 128 characters.
*
*
*
*
* @param domainName
* Amazon S3 origins: The DNS name of the Amazon S3 bucket from which you want CloudFront to get
* objects for this origin, for example, myawsbucket.s3.amazonaws.com
.
*
* Constraints for Amazon S3 origins:
*
*
* -
*
* If you configured Amazon S3 Transfer Acceleration for your bucket, do not specify the
* s3-accelerate
endpoint for DomainName
.
*
*
* -
*
* The bucket name must be between 3 and 63 characters long (inclusive).
*
*
* -
*
* The bucket name must contain only lowercase characters, numbers, periods, underscores, and dashes.
*
*
* -
*
* The bucket name must not contain adjacent periods.
*
*
*
*
* Custom Origins: The DNS domain name for the HTTP server from which you want CloudFront to get
* objects for this origin, for example, www.example.com
.
*
*
* Constraints for custom origins:
*
*
* -
*
* DomainName
must be a valid DNS name that contains only a-z, A-Z, 0-9, dot (.), hyphen (-), or
* underscore (_) characters.
*
*
* -
*
* The name cannot exceed 128 characters.
*
*
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Origin withDomainName(String domainName) {
setDomainName(domainName);
return this;
}
/**
*
* An optional element that causes CloudFront to request your content from a directory in your Amazon S3 bucket or
* your custom origin. When you include the OriginPath
element, specify the directory name, beginning
* with a /
. CloudFront appends the directory name to the value of DomainName
, for
* example, example.com/production
. Do not include a /
at the end of the directory name.
*
*
* For example, suppose you've specified the following values for your distribution:
*
*
* -
*
* DomainName
: An Amazon S3 bucket named myawsbucket
.
*
*
* -
*
* OriginPath
: /production
*
*
* -
*
* CNAME
: example.com
*
*
*
*
* When a user enters example.com/index.html
in a browser, CloudFront sends a request to Amazon S3 for
* myawsbucket/production/index.html
.
*
*
* When a user enters example.com/acme/index.html
in a browser, CloudFront sends a request to Amazon S3
* for myawsbucket/production/acme/index.html
.
*
*
* @param originPath
* An optional element that causes CloudFront to request your content from a directory in your Amazon S3
* bucket or your custom origin. When you include the OriginPath
element, specify the directory
* name, beginning with a /
. CloudFront appends the directory name to the value of
* DomainName
, for example, example.com/production
. Do not include a /
* at the end of the directory name.
*
* For example, suppose you've specified the following values for your distribution:
*
*
* -
*
* DomainName
: An Amazon S3 bucket named myawsbucket
.
*
*
* -
*
* OriginPath
: /production
*
*
* -
*
* CNAME
: example.com
*
*
*
*
* When a user enters example.com/index.html
in a browser, CloudFront sends a request to Amazon
* S3 for myawsbucket/production/index.html
.
*
*
* When a user enters example.com/acme/index.html
in a browser, CloudFront sends a request to
* Amazon S3 for myawsbucket/production/acme/index.html
.
*/
public void setOriginPath(String originPath) {
this.originPath = originPath;
}
/**
*
* An optional element that causes CloudFront to request your content from a directory in your Amazon S3 bucket or
* your custom origin. When you include the OriginPath
element, specify the directory name, beginning
* with a /
. CloudFront appends the directory name to the value of DomainName
, for
* example, example.com/production
. Do not include a /
at the end of the directory name.
*
*
* For example, suppose you've specified the following values for your distribution:
*
*
* -
*
* DomainName
: An Amazon S3 bucket named myawsbucket
.
*
*
* -
*
* OriginPath
: /production
*
*
* -
*
* CNAME
: example.com
*
*
*
*
* When a user enters example.com/index.html
in a browser, CloudFront sends a request to Amazon S3 for
* myawsbucket/production/index.html
.
*
*
* When a user enters example.com/acme/index.html
in a browser, CloudFront sends a request to Amazon S3
* for myawsbucket/production/acme/index.html
.
*
*
* @return An optional element that causes CloudFront to request your content from a directory in your Amazon S3
* bucket or your custom origin. When you include the OriginPath
element, specify the directory
* name, beginning with a /
. CloudFront appends the directory name to the value of
* DomainName
, for example, example.com/production
. Do not include a
* /
at the end of the directory name.
*
* For example, suppose you've specified the following values for your distribution:
*
*
* -
*
* DomainName
: An Amazon S3 bucket named myawsbucket
.
*
*
* -
*
* OriginPath
: /production
*
*
* -
*
* CNAME
: example.com
*
*
*
*
* When a user enters example.com/index.html
in a browser, CloudFront sends a request to Amazon
* S3 for myawsbucket/production/index.html
.
*
*
* When a user enters example.com/acme/index.html
in a browser, CloudFront sends a request to
* Amazon S3 for myawsbucket/production/acme/index.html
.
*/
public String getOriginPath() {
return this.originPath;
}
/**
*
* An optional element that causes CloudFront to request your content from a directory in your Amazon S3 bucket or
* your custom origin. When you include the OriginPath
element, specify the directory name, beginning
* with a /
. CloudFront appends the directory name to the value of DomainName
, for
* example, example.com/production
. Do not include a /
at the end of the directory name.
*
*
* For example, suppose you've specified the following values for your distribution:
*
*
* -
*
* DomainName
: An Amazon S3 bucket named myawsbucket
.
*
*
* -
*
* OriginPath
: /production
*
*
* -
*
* CNAME
: example.com
*
*
*
*
* When a user enters example.com/index.html
in a browser, CloudFront sends a request to Amazon S3 for
* myawsbucket/production/index.html
.
*
*
* When a user enters example.com/acme/index.html
in a browser, CloudFront sends a request to Amazon S3
* for myawsbucket/production/acme/index.html
.
*
*
* @param originPath
* An optional element that causes CloudFront to request your content from a directory in your Amazon S3
* bucket or your custom origin. When you include the OriginPath
element, specify the directory
* name, beginning with a /
. CloudFront appends the directory name to the value of
* DomainName
, for example, example.com/production
. Do not include a /
* at the end of the directory name.
*
* For example, suppose you've specified the following values for your distribution:
*
*
* -
*
* DomainName
: An Amazon S3 bucket named myawsbucket
.
*
*
* -
*
* OriginPath
: /production
*
*
* -
*
* CNAME
: example.com
*
*
*
*
* When a user enters example.com/index.html
in a browser, CloudFront sends a request to Amazon
* S3 for myawsbucket/production/index.html
.
*
*
* When a user enters example.com/acme/index.html
in a browser, CloudFront sends a request to
* Amazon S3 for myawsbucket/production/acme/index.html
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Origin withOriginPath(String originPath) {
setOriginPath(originPath);
return this;
}
/**
*
* A complex type that contains names and values for the custom headers that you want.
*
*
* @param customHeaders
* A complex type that contains names and values for the custom headers that you want.
*/
public void setCustomHeaders(CustomHeaders customHeaders) {
this.customHeaders = customHeaders;
}
/**
*
* A complex type that contains names and values for the custom headers that you want.
*
*
* @return A complex type that contains names and values for the custom headers that you want.
*/
public CustomHeaders getCustomHeaders() {
return this.customHeaders;
}
/**
*
* A complex type that contains names and values for the custom headers that you want.
*
*
* @param customHeaders
* A complex type that contains names and values for the custom headers that you want.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Origin withCustomHeaders(CustomHeaders customHeaders) {
setCustomHeaders(customHeaders);
return this;
}
/**
*
* A complex type that contains information about the Amazon S3 origin. If the origin is a custom origin, use the
* CustomOriginConfig
element instead.
*
*
* @param s3OriginConfig
* A complex type that contains information about the Amazon S3 origin. If the origin is a custom origin, use
* the CustomOriginConfig
element instead.
*/
public void setS3OriginConfig(S3OriginConfig s3OriginConfig) {
this.s3OriginConfig = s3OriginConfig;
}
/**
*
* A complex type that contains information about the Amazon S3 origin. If the origin is a custom origin, use the
* CustomOriginConfig
element instead.
*
*
* @return A complex type that contains information about the Amazon S3 origin. If the origin is a custom origin,
* use the CustomOriginConfig
element instead.
*/
public S3OriginConfig getS3OriginConfig() {
return this.s3OriginConfig;
}
/**
*
* A complex type that contains information about the Amazon S3 origin. If the origin is a custom origin, use the
* CustomOriginConfig
element instead.
*
*
* @param s3OriginConfig
* A complex type that contains information about the Amazon S3 origin. If the origin is a custom origin, use
* the CustomOriginConfig
element instead.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Origin withS3OriginConfig(S3OriginConfig s3OriginConfig) {
setS3OriginConfig(s3OriginConfig);
return this;
}
/**
*
* A complex type that contains information about a custom origin. If the origin is an Amazon S3 bucket, use the
* S3OriginConfig
element instead.
*
*
* @param customOriginConfig
* A complex type that contains information about a custom origin. If the origin is an Amazon S3 bucket, use
* the S3OriginConfig
element instead.
*/
public void setCustomOriginConfig(CustomOriginConfig customOriginConfig) {
this.customOriginConfig = customOriginConfig;
}
/**
*
* A complex type that contains information about a custom origin. If the origin is an Amazon S3 bucket, use the
* S3OriginConfig
element instead.
*
*
* @return A complex type that contains information about a custom origin. If the origin is an Amazon S3 bucket, use
* the S3OriginConfig
element instead.
*/
public CustomOriginConfig getCustomOriginConfig() {
return this.customOriginConfig;
}
/**
*
* A complex type that contains information about a custom origin. If the origin is an Amazon S3 bucket, use the
* S3OriginConfig
element instead.
*
*
* @param customOriginConfig
* A complex type that contains information about a custom origin. If the origin is an Amazon S3 bucket, use
* the S3OriginConfig
element instead.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public Origin withCustomOriginConfig(CustomOriginConfig customOriginConfig) {
setCustomOriginConfig(customOriginConfig);
return this;
}
/**
* Returns a string representation of this object; useful for testing and debugging.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getId() != null)
sb.append("Id: ").append(getId()).append(",");
if (getDomainName() != null)
sb.append("DomainName: ").append(getDomainName()).append(",");
if (getOriginPath() != null)
sb.append("OriginPath: ").append(getOriginPath()).append(",");
if (getCustomHeaders() != null)
sb.append("CustomHeaders: ").append(getCustomHeaders()).append(",");
if (getS3OriginConfig() != null)
sb.append("S3OriginConfig: ").append(getS3OriginConfig()).append(",");
if (getCustomOriginConfig() != null)
sb.append("CustomOriginConfig: ").append(getCustomOriginConfig());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof Origin == false)
return false;
Origin other = (Origin) obj;
if (other.getId() == null ^ this.getId() == null)
return false;
if (other.getId() != null && other.getId().equals(this.getId()) == false)
return false;
if (other.getDomainName() == null ^ this.getDomainName() == null)
return false;
if (other.getDomainName() != null && other.getDomainName().equals(this.getDomainName()) == false)
return false;
if (other.getOriginPath() == null ^ this.getOriginPath() == null)
return false;
if (other.getOriginPath() != null && other.getOriginPath().equals(this.getOriginPath()) == false)
return false;
if (other.getCustomHeaders() == null ^ this.getCustomHeaders() == null)
return false;
if (other.getCustomHeaders() != null && other.getCustomHeaders().equals(this.getCustomHeaders()) == false)
return false;
if (other.getS3OriginConfig() == null ^ this.getS3OriginConfig() == null)
return false;
if (other.getS3OriginConfig() != null && other.getS3OriginConfig().equals(this.getS3OriginConfig()) == false)
return false;
if (other.getCustomOriginConfig() == null ^ this.getCustomOriginConfig() == null)
return false;
if (other.getCustomOriginConfig() != null && other.getCustomOriginConfig().equals(this.getCustomOriginConfig()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getId() == null) ? 0 : getId().hashCode());
hashCode = prime * hashCode + ((getDomainName() == null) ? 0 : getDomainName().hashCode());
hashCode = prime * hashCode + ((getOriginPath() == null) ? 0 : getOriginPath().hashCode());
hashCode = prime * hashCode + ((getCustomHeaders() == null) ? 0 : getCustomHeaders().hashCode());
hashCode = prime * hashCode + ((getS3OriginConfig() == null) ? 0 : getS3OriginConfig().hashCode());
hashCode = prime * hashCode + ((getCustomOriginConfig() == null) ? 0 : getCustomOriginConfig().hashCode());
return hashCode;
}
@Override
public Origin clone() {
try {
return (Origin) super.clone();
} catch (CloneNotSupportedException e) {
throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
}
}
}