import { SENSITIVE_STRING } from "@smithy/smithy-client";
import { CloudFrontServiceException as __BaseException } from "./CloudFrontServiceException";
export const ResponseHeadersPolicyAccessControlAllowMethodsValues = {
    ALL: "ALL",
    DELETE: "DELETE",
    GET: "GET",
    HEAD: "HEAD",
    OPTIONS: "OPTIONS",
    PATCH: "PATCH",
    POST: "POST",
    PUT: "PUT",
};
export class AccessDenied extends __BaseException {
    name = "AccessDenied";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "AccessDenied",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, AccessDenied.prototype);
        this.Message = opts.Message;
    }
}
export const ICPRecordalStatus = {
    APPROVED: "APPROVED",
    PENDING: "PENDING",
    SUSPENDED: "SUSPENDED",
};
export const Method = {
    DELETE: "DELETE",
    GET: "GET",
    HEAD: "HEAD",
    OPTIONS: "OPTIONS",
    PATCH: "PATCH",
    POST: "POST",
    PUT: "PUT",
};
export class IllegalUpdate extends __BaseException {
    name = "IllegalUpdate";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "IllegalUpdate",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, IllegalUpdate.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidArgument extends __BaseException {
    name = "InvalidArgument";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidArgument",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidArgument.prototype);
        this.Message = opts.Message;
    }
}
export class NoSuchDistribution extends __BaseException {
    name = "NoSuchDistribution";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "NoSuchDistribution",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, NoSuchDistribution.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyDistributionCNAMEs extends __BaseException {
    name = "TooManyDistributionCNAMEs";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyDistributionCNAMEs",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyDistributionCNAMEs.prototype);
        this.Message = opts.Message;
    }
}
export class EntityNotFound extends __BaseException {
    name = "EntityNotFound";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "EntityNotFound",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, EntityNotFound.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidIfMatchVersion extends __BaseException {
    name = "InvalidIfMatchVersion";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidIfMatchVersion",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidIfMatchVersion.prototype);
        this.Message = opts.Message;
    }
}
export class PreconditionFailed extends __BaseException {
    name = "PreconditionFailed";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "PreconditionFailed",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, PreconditionFailed.prototype);
        this.Message = opts.Message;
    }
}
export class BatchTooLarge extends __BaseException {
    name = "BatchTooLarge";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "BatchTooLarge",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, BatchTooLarge.prototype);
        this.Message = opts.Message;
    }
}
export const ItemSelection = {
    all: "all",
    none: "none",
    whitelist: "whitelist",
};
export const EventType = {
    origin_request: "origin-request",
    origin_response: "origin-response",
    viewer_request: "viewer-request",
    viewer_response: "viewer-response",
};
export const ViewerProtocolPolicy = {
    allow_all: "allow-all",
    https_only: "https-only",
    redirect_to_https: "redirect-to-https",
};
export const CachePolicyCookieBehavior = {
    all: "all",
    allExcept: "allExcept",
    none: "none",
    whitelist: "whitelist",
};
export const CachePolicyHeaderBehavior = {
    none: "none",
    whitelist: "whitelist",
};
export const CachePolicyQueryStringBehavior = {
    all: "all",
    allExcept: "allExcept",
    none: "none",
    whitelist: "whitelist",
};
export class CachePolicyAlreadyExists extends __BaseException {
    name = "CachePolicyAlreadyExists";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "CachePolicyAlreadyExists",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, CachePolicyAlreadyExists.prototype);
        this.Message = opts.Message;
    }
}
export class CachePolicyInUse extends __BaseException {
    name = "CachePolicyInUse";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "CachePolicyInUse",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, CachePolicyInUse.prototype);
        this.Message = opts.Message;
    }
}
export const CachePolicyType = {
    custom: "custom",
    managed: "managed",
};
export class CannotChangeImmutablePublicKeyFields extends __BaseException {
    name = "CannotChangeImmutablePublicKeyFields";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "CannotChangeImmutablePublicKeyFields",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, CannotChangeImmutablePublicKeyFields.prototype);
        this.Message = opts.Message;
    }
}
export class CannotDeleteEntityWhileInUse extends __BaseException {
    name = "CannotDeleteEntityWhileInUse";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "CannotDeleteEntityWhileInUse",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, CannotDeleteEntityWhileInUse.prototype);
        this.Message = opts.Message;
    }
}
export class CannotUpdateEntityWhileInUse extends __BaseException {
    name = "CannotUpdateEntityWhileInUse";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "CannotUpdateEntityWhileInUse",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, CannotUpdateEntityWhileInUse.prototype);
        this.Message = opts.Message;
    }
}
export const CertificateSource = {
    acm: "acm",
    cloudfront: "cloudfront",
    iam: "iam",
};
export const CertificateTransparencyLoggingPreference = {
    Disabled: "disabled",
    Enabled: "enabled",
};
export class CNAMEAlreadyExists extends __BaseException {
    name = "CNAMEAlreadyExists";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "CNAMEAlreadyExists",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, CNAMEAlreadyExists.prototype);
        this.Message = opts.Message;
    }
}
export const ConnectionMode = {
    Direct: "direct",
    TenantOnly: "tenant-only",
};
export const HttpVersion = {
    http1_1: "http1.1",
    http2: "http2",
    http2and3: "http2and3",
    http3: "http3",
};
export const OriginGroupSelectionCriteria = {
    Default: "default",
    MediaQualityBased: "media-quality-based",
};
export const IpAddressType = {
    DualStack: "dualstack",
    Ipv4: "ipv4",
    Ipv6: "ipv6",
};
export const OriginProtocolPolicy = {
    http_only: "http-only",
    https_only: "https-only",
    match_viewer: "match-viewer",
};
export const SslProtocol = {
    SSLv3: "SSLv3",
    TLSv1: "TLSv1",
    TLSv1_1: "TLSv1.1",
    TLSv1_2: "TLSv1.2",
};
export const PriceClass = {
    None: "None",
    PriceClass_100: "PriceClass_100",
    PriceClass_200: "PriceClass_200",
    PriceClass_All: "PriceClass_All",
};
export const GeoRestrictionType = {
    blacklist: "blacklist",
    none: "none",
    whitelist: "whitelist",
};
export const MinimumProtocolVersion = {
    SSLv3: "SSLv3",
    TLSv1: "TLSv1",
    TLSv1_1_2016: "TLSv1.1_2016",
    TLSv1_2016: "TLSv1_2016",
    TLSv1_2_2018: "TLSv1.2_2018",
    TLSv1_2_2019: "TLSv1.2_2019",
    TLSv1_2_2021: "TLSv1.2_2021",
    TLSv1_3_2025: "TLSv1.3_2025",
};
export const SSLSupportMethod = {
    sni_only: "sni-only",
    static_ip: "static-ip",
    vip: "vip",
};
export class DistributionAlreadyExists extends __BaseException {
    name = "DistributionAlreadyExists";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "DistributionAlreadyExists",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, DistributionAlreadyExists.prototype);
        this.Message = opts.Message;
    }
}
export class IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior extends __BaseException {
    name = "IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, IllegalFieldLevelEncryptionConfigAssociationWithCacheBehavior.prototype);
        this.Message = opts.Message;
    }
}
export class InconsistentQuantities extends __BaseException {
    name = "InconsistentQuantities";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InconsistentQuantities",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InconsistentQuantities.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidDefaultRootObject extends __BaseException {
    name = "InvalidDefaultRootObject";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidDefaultRootObject",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidDefaultRootObject.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidErrorCode extends __BaseException {
    name = "InvalidErrorCode";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidErrorCode",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidErrorCode.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidForwardCookies extends __BaseException {
    name = "InvalidForwardCookies";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidForwardCookies",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidForwardCookies.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidFunctionAssociation extends __BaseException {
    name = "InvalidFunctionAssociation";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidFunctionAssociation",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidFunctionAssociation.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidGeoRestrictionParameter extends __BaseException {
    name = "InvalidGeoRestrictionParameter";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidGeoRestrictionParameter",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidGeoRestrictionParameter.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidHeadersForS3Origin extends __BaseException {
    name = "InvalidHeadersForS3Origin";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidHeadersForS3Origin",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidHeadersForS3Origin.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidLambdaFunctionAssociation extends __BaseException {
    name = "InvalidLambdaFunctionAssociation";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidLambdaFunctionAssociation",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidLambdaFunctionAssociation.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidLocationCode extends __BaseException {
    name = "InvalidLocationCode";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidLocationCode",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidLocationCode.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidMinimumProtocolVersion extends __BaseException {
    name = "InvalidMinimumProtocolVersion";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidMinimumProtocolVersion",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidMinimumProtocolVersion.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidOrigin extends __BaseException {
    name = "InvalidOrigin";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidOrigin",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidOrigin.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidOriginAccessControl extends __BaseException {
    name = "InvalidOriginAccessControl";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidOriginAccessControl",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidOriginAccessControl.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidOriginAccessIdentity extends __BaseException {
    name = "InvalidOriginAccessIdentity";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidOriginAccessIdentity",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidOriginAccessIdentity.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidOriginKeepaliveTimeout extends __BaseException {
    name = "InvalidOriginKeepaliveTimeout";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidOriginKeepaliveTimeout",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidOriginKeepaliveTimeout.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidOriginReadTimeout extends __BaseException {
    name = "InvalidOriginReadTimeout";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidOriginReadTimeout",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidOriginReadTimeout.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidProtocolSettings extends __BaseException {
    name = "InvalidProtocolSettings";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidProtocolSettings",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidProtocolSettings.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidQueryStringParameters extends __BaseException {
    name = "InvalidQueryStringParameters";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidQueryStringParameters",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidQueryStringParameters.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidRelativePath extends __BaseException {
    name = "InvalidRelativePath";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidRelativePath",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidRelativePath.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidRequiredProtocol extends __BaseException {
    name = "InvalidRequiredProtocol";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidRequiredProtocol",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidRequiredProtocol.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidResponseCode extends __BaseException {
    name = "InvalidResponseCode";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidResponseCode",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidResponseCode.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidTTLOrder extends __BaseException {
    name = "InvalidTTLOrder";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidTTLOrder",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidTTLOrder.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidViewerCertificate extends __BaseException {
    name = "InvalidViewerCertificate";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidViewerCertificate",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidViewerCertificate.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidWebACLId extends __BaseException {
    name = "InvalidWebACLId";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidWebACLId",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidWebACLId.prototype);
        this.Message = opts.Message;
    }
}
export class MissingBody extends __BaseException {
    name = "MissingBody";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "MissingBody",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, MissingBody.prototype);
        this.Message = opts.Message;
    }
}
export class NoSuchCachePolicy extends __BaseException {
    name = "NoSuchCachePolicy";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "NoSuchCachePolicy",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, NoSuchCachePolicy.prototype);
        this.Message = opts.Message;
    }
}
export class NoSuchFieldLevelEncryptionConfig extends __BaseException {
    name = "NoSuchFieldLevelEncryptionConfig";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "NoSuchFieldLevelEncryptionConfig",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, NoSuchFieldLevelEncryptionConfig.prototype);
        this.Message = opts.Message;
    }
}
export class NoSuchOrigin extends __BaseException {
    name = "NoSuchOrigin";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "NoSuchOrigin",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, NoSuchOrigin.prototype);
        this.Message = opts.Message;
    }
}
export class NoSuchOriginRequestPolicy extends __BaseException {
    name = "NoSuchOriginRequestPolicy";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "NoSuchOriginRequestPolicy",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, NoSuchOriginRequestPolicy.prototype);
        this.Message = opts.Message;
    }
}
export class NoSuchRealtimeLogConfig extends __BaseException {
    name = "NoSuchRealtimeLogConfig";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "NoSuchRealtimeLogConfig",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, NoSuchRealtimeLogConfig.prototype);
        this.Message = opts.Message;
    }
}
export class NoSuchResponseHeadersPolicy extends __BaseException {
    name = "NoSuchResponseHeadersPolicy";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "NoSuchResponseHeadersPolicy",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, NoSuchResponseHeadersPolicy.prototype);
        this.Message = opts.Message;
    }
}
export class RealtimeLogConfigOwnerMismatch extends __BaseException {
    name = "RealtimeLogConfigOwnerMismatch";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "RealtimeLogConfigOwnerMismatch",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, RealtimeLogConfigOwnerMismatch.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyCacheBehaviors extends __BaseException {
    name = "TooManyCacheBehaviors";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyCacheBehaviors",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyCacheBehaviors.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyCertificates extends __BaseException {
    name = "TooManyCertificates";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyCertificates",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyCertificates.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyCookieNamesInWhiteList extends __BaseException {
    name = "TooManyCookieNamesInWhiteList";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyCookieNamesInWhiteList",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyCookieNamesInWhiteList.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyDistributions extends __BaseException {
    name = "TooManyDistributions";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyDistributions",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyDistributions.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyDistributionsAssociatedToCachePolicy extends __BaseException {
    name = "TooManyDistributionsAssociatedToCachePolicy";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyDistributionsAssociatedToCachePolicy",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyDistributionsAssociatedToCachePolicy.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyDistributionsAssociatedToFieldLevelEncryptionConfig extends __BaseException {
    name = "TooManyDistributionsAssociatedToFieldLevelEncryptionConfig";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyDistributionsAssociatedToFieldLevelEncryptionConfig",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyDistributionsAssociatedToFieldLevelEncryptionConfig.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyDistributionsAssociatedToKeyGroup extends __BaseException {
    name = "TooManyDistributionsAssociatedToKeyGroup";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyDistributionsAssociatedToKeyGroup",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyDistributionsAssociatedToKeyGroup.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyDistributionsAssociatedToOriginAccessControl extends __BaseException {
    name = "TooManyDistributionsAssociatedToOriginAccessControl";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyDistributionsAssociatedToOriginAccessControl",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyDistributionsAssociatedToOriginAccessControl.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyDistributionsAssociatedToOriginRequestPolicy extends __BaseException {
    name = "TooManyDistributionsAssociatedToOriginRequestPolicy";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyDistributionsAssociatedToOriginRequestPolicy",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyDistributionsAssociatedToOriginRequestPolicy.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyDistributionsAssociatedToResponseHeadersPolicy extends __BaseException {
    name = "TooManyDistributionsAssociatedToResponseHeadersPolicy";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyDistributionsAssociatedToResponseHeadersPolicy",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyDistributionsAssociatedToResponseHeadersPolicy.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyDistributionsWithFunctionAssociations extends __BaseException {
    name = "TooManyDistributionsWithFunctionAssociations";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyDistributionsWithFunctionAssociations",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyDistributionsWithFunctionAssociations.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyDistributionsWithLambdaAssociations extends __BaseException {
    name = "TooManyDistributionsWithLambdaAssociations";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyDistributionsWithLambdaAssociations",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyDistributionsWithLambdaAssociations.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyDistributionsWithSingleFunctionARN extends __BaseException {
    name = "TooManyDistributionsWithSingleFunctionARN";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyDistributionsWithSingleFunctionARN",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyDistributionsWithSingleFunctionARN.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyFunctionAssociations extends __BaseException {
    name = "TooManyFunctionAssociations";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyFunctionAssociations",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyFunctionAssociations.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyHeadersInForwardedValues extends __BaseException {
    name = "TooManyHeadersInForwardedValues";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyHeadersInForwardedValues",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyHeadersInForwardedValues.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyKeyGroupsAssociatedToDistribution extends __BaseException {
    name = "TooManyKeyGroupsAssociatedToDistribution";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyKeyGroupsAssociatedToDistribution",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyKeyGroupsAssociatedToDistribution.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyLambdaFunctionAssociations extends __BaseException {
    name = "TooManyLambdaFunctionAssociations";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyLambdaFunctionAssociations",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyLambdaFunctionAssociations.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyOriginCustomHeaders extends __BaseException {
    name = "TooManyOriginCustomHeaders";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyOriginCustomHeaders",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyOriginCustomHeaders.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyOriginGroupsPerDistribution extends __BaseException {
    name = "TooManyOriginGroupsPerDistribution";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyOriginGroupsPerDistribution",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyOriginGroupsPerDistribution.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyOrigins extends __BaseException {
    name = "TooManyOrigins";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyOrigins",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyOrigins.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyQueryStringParameters extends __BaseException {
    name = "TooManyQueryStringParameters";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyQueryStringParameters",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyQueryStringParameters.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyTrustedSigners extends __BaseException {
    name = "TooManyTrustedSigners";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyTrustedSigners",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyTrustedSigners.prototype);
        this.Message = opts.Message;
    }
}
export class TrustedKeyGroupDoesNotExist extends __BaseException {
    name = "TrustedKeyGroupDoesNotExist";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TrustedKeyGroupDoesNotExist",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TrustedKeyGroupDoesNotExist.prototype);
        this.Message = opts.Message;
    }
}
export class TrustedSignerDoesNotExist extends __BaseException {
    name = "TrustedSignerDoesNotExist";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TrustedSignerDoesNotExist",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TrustedSignerDoesNotExist.prototype);
        this.Message = opts.Message;
    }
}
export class EntityAlreadyExists extends __BaseException {
    name = "EntityAlreadyExists";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "EntityAlreadyExists",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, EntityAlreadyExists.prototype);
        this.Message = opts.Message;
    }
}
export class EntityLimitExceeded extends __BaseException {
    name = "EntityLimitExceeded";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "EntityLimitExceeded",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, EntityLimitExceeded.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidTagging extends __BaseException {
    name = "InvalidTagging";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidTagging",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidTagging.prototype);
        this.Message = opts.Message;
    }
}
export class UnsupportedOperation extends __BaseException {
    name = "UnsupportedOperation";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "UnsupportedOperation",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, UnsupportedOperation.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyCachePolicies extends __BaseException {
    name = "TooManyCachePolicies";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyCachePolicies",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyCachePolicies.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyCookiesInCachePolicy extends __BaseException {
    name = "TooManyCookiesInCachePolicy";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyCookiesInCachePolicy",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyCookiesInCachePolicy.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyHeadersInCachePolicy extends __BaseException {
    name = "TooManyHeadersInCachePolicy";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyHeadersInCachePolicy",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyHeadersInCachePolicy.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyQueryStringsInCachePolicy extends __BaseException {
    name = "TooManyQueryStringsInCachePolicy";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyQueryStringsInCachePolicy",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyQueryStringsInCachePolicy.prototype);
        this.Message = opts.Message;
    }
}
export class CloudFrontOriginAccessIdentityAlreadyExists extends __BaseException {
    name = "CloudFrontOriginAccessIdentityAlreadyExists";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "CloudFrontOriginAccessIdentityAlreadyExists",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, CloudFrontOriginAccessIdentityAlreadyExists.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyCloudFrontOriginAccessIdentities extends __BaseException {
    name = "TooManyCloudFrontOriginAccessIdentities";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyCloudFrontOriginAccessIdentities",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyCloudFrontOriginAccessIdentities.prototype);
        this.Message = opts.Message;
    }
}
export class ContinuousDeploymentPolicyAlreadyExists extends __BaseException {
    name = "ContinuousDeploymentPolicyAlreadyExists";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "ContinuousDeploymentPolicyAlreadyExists",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, ContinuousDeploymentPolicyAlreadyExists.prototype);
        this.Message = opts.Message;
    }
}
export const ContinuousDeploymentPolicyType = {
    SingleHeader: "SingleHeader",
    SingleWeight: "SingleWeight",
};
export class StagingDistributionInUse extends __BaseException {
    name = "StagingDistributionInUse";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "StagingDistributionInUse",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, StagingDistributionInUse.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyContinuousDeploymentPolicies extends __BaseException {
    name = "TooManyContinuousDeploymentPolicies";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyContinuousDeploymentPolicies",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyContinuousDeploymentPolicies.prototype);
        this.Message = opts.Message;
    }
}
export class ContinuousDeploymentPolicyInUse extends __BaseException {
    name = "ContinuousDeploymentPolicyInUse";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "ContinuousDeploymentPolicyInUse",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, ContinuousDeploymentPolicyInUse.prototype);
        this.Message = opts.Message;
    }
}
export class IllegalOriginAccessConfiguration extends __BaseException {
    name = "IllegalOriginAccessConfiguration";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "IllegalOriginAccessConfiguration",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, IllegalOriginAccessConfiguration.prototype);
        this.Message = opts.Message;
    }
}
export class InvalidDomainNameForOriginAccessControl extends __BaseException {
    name = "InvalidDomainNameForOriginAccessControl";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidDomainNameForOriginAccessControl",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidDomainNameForOriginAccessControl.prototype);
        this.Message = opts.Message;
    }
}
export class NoSuchContinuousDeploymentPolicy extends __BaseException {
    name = "NoSuchContinuousDeploymentPolicy";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "NoSuchContinuousDeploymentPolicy",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, NoSuchContinuousDeploymentPolicy.prototype);
        this.Message = opts.Message;
    }
}
export const CustomizationActionType = {
    disable: "disable",
    override: "override",
};
export const ValidationTokenHost = {
    CloudFront: "cloudfront",
    SelfHosted: "self-hosted",
};
export const DomainStatus = {
    Active: "active",
    Inactive: "inactive",
};
export class InvalidAssociation extends __BaseException {
    name = "InvalidAssociation";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "InvalidAssociation",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, InvalidAssociation.prototype);
        this.Message = opts.Message;
    }
}
export const Format = {
    URLEncoded: "URLEncoded",
};
export class FieldLevelEncryptionConfigAlreadyExists extends __BaseException {
    name = "FieldLevelEncryptionConfigAlreadyExists";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "FieldLevelEncryptionConfigAlreadyExists",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, FieldLevelEncryptionConfigAlreadyExists.prototype);
        this.Message = opts.Message;
    }
}
export class NoSuchFieldLevelEncryptionProfile extends __BaseException {
    name = "NoSuchFieldLevelEncryptionProfile";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "NoSuchFieldLevelEncryptionProfile",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, NoSuchFieldLevelEncryptionProfile.prototype);
        this.Message = opts.Message;
    }
}
export class QueryArgProfileEmpty extends __BaseException {
    name = "QueryArgProfileEmpty";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "QueryArgProfileEmpty",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, QueryArgProfileEmpty.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyFieldLevelEncryptionConfigs extends __BaseException {
    name = "TooManyFieldLevelEncryptionConfigs";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyFieldLevelEncryptionConfigs",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyFieldLevelEncryptionConfigs.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyFieldLevelEncryptionContentTypeProfiles extends __BaseException {
    name = "TooManyFieldLevelEncryptionContentTypeProfiles";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyFieldLevelEncryptionContentTypeProfiles",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyFieldLevelEncryptionContentTypeProfiles.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyFieldLevelEncryptionQueryArgProfiles extends __BaseException {
    name = "TooManyFieldLevelEncryptionQueryArgProfiles";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyFieldLevelEncryptionQueryArgProfiles",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyFieldLevelEncryptionQueryArgProfiles.prototype);
        this.Message = opts.Message;
    }
}
export class FieldLevelEncryptionProfileAlreadyExists extends __BaseException {
    name = "FieldLevelEncryptionProfileAlreadyExists";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "FieldLevelEncryptionProfileAlreadyExists",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, FieldLevelEncryptionProfileAlreadyExists.prototype);
        this.Message = opts.Message;
    }
}
export class FieldLevelEncryptionProfileSizeExceeded extends __BaseException {
    name = "FieldLevelEncryptionProfileSizeExceeded";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "FieldLevelEncryptionProfileSizeExceeded",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, FieldLevelEncryptionProfileSizeExceeded.prototype);
        this.Message = opts.Message;
    }
}
export class NoSuchPublicKey extends __BaseException {
    name = "NoSuchPublicKey";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "NoSuchPublicKey",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, NoSuchPublicKey.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyFieldLevelEncryptionEncryptionEntities extends __BaseException {
    name = "TooManyFieldLevelEncryptionEncryptionEntities";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyFieldLevelEncryptionEncryptionEntities",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyFieldLevelEncryptionEncryptionEntities.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyFieldLevelEncryptionFieldPatterns extends __BaseException {
    name = "TooManyFieldLevelEncryptionFieldPatterns";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyFieldLevelEncryptionFieldPatterns",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyFieldLevelEncryptionFieldPatterns.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyFieldLevelEncryptionProfiles extends __BaseException {
    name = "TooManyFieldLevelEncryptionProfiles";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyFieldLevelEncryptionProfiles",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyFieldLevelEncryptionProfiles.prototype);
        this.Message = opts.Message;
    }
}
export const FunctionRuntime = {
    cloudfront_js_1_0: "cloudfront-js-1.0",
    cloudfront_js_2_0: "cloudfront-js-2.0",
};
export const FunctionStage = {
    DEVELOPMENT: "DEVELOPMENT",
    LIVE: "LIVE",
};
export class FunctionAlreadyExists extends __BaseException {
    name = "FunctionAlreadyExists";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "FunctionAlreadyExists",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, FunctionAlreadyExists.prototype);
        this.Message = opts.Message;
    }
}
export class FunctionSizeLimitExceeded extends __BaseException {
    name = "FunctionSizeLimitExceeded";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "FunctionSizeLimitExceeded",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, FunctionSizeLimitExceeded.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyFunctions extends __BaseException {
    name = "TooManyFunctions";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyFunctions",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyFunctions.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyInvalidationsInProgress extends __BaseException {
    name = "TooManyInvalidationsInProgress";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyInvalidationsInProgress",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyInvalidationsInProgress.prototype);
        this.Message = opts.Message;
    }
}
export class KeyGroupAlreadyExists extends __BaseException {
    name = "KeyGroupAlreadyExists";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "KeyGroupAlreadyExists",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, KeyGroupAlreadyExists.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyKeyGroups extends __BaseException {
    name = "TooManyKeyGroups";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyKeyGroups",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyKeyGroups.prototype);
        this.Message = opts.Message;
    }
}
export class TooManyPublicKeysInKeyGroup extends __BaseException {
    name = "TooManyPublicKeysInKeyGroup";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "TooManyPublicKeysInKeyGroup",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, TooManyPublicKeysInKeyGroup.prototype);
        this.Message = opts.Message;
    }
}
export const ImportSourceType = {
    S3: "S3",
};
export class EntitySizeLimitExceeded extends __BaseException {
    name = "EntitySizeLimitExceeded";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "EntitySizeLimitExceeded",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, EntitySizeLimitExceeded.prototype);
        this.Message = opts.Message;
    }
}
export const RealtimeMetricsSubscriptionStatus = {
    Disabled: "Disabled",
    Enabled: "Enabled",
};
export class MonitoringSubscriptionAlreadyExists extends __BaseException {
    name = "MonitoringSubscriptionAlreadyExists";
    $fault = "client";
    Message;
    constructor(opts) {
        super({
            name: "MonitoringSubscriptionAlreadyExists",
            $fault: "client",
            ...opts,
        });
        Object.setPrototypeOf(this, MonitoringSubscriptionAlreadyExists.prototype);
        this.Message = opts.Message;
    }
}
export const OriginAccessControlOriginTypes = {
    lambda: "lambda",
    mediapackagev2: "mediapackagev2",
    mediastore: "mediastore",
    s3: "s3",
};
export const OriginAccessControlSigningBehaviors = {
    always: "always",
    never: "never",
    no_override: "no-override",
};
export const OriginAccessControlSigningProtocols = {
    sigv4: "sigv4",
};
export const OriginCustomHeaderFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.HeaderValue && { HeaderValue: SENSITIVE_STRING }),
});
export const CustomHeadersFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Items && { Items: obj.Items.map((item) => OriginCustomHeaderFilterSensitiveLog(item)) }),
});
export const OriginFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.CustomHeaders && { CustomHeaders: CustomHeadersFilterSensitiveLog(obj.CustomHeaders) }),
});
export const OriginsFilterSensitiveLog = (obj) => ({
    ...obj,
});
export const StringSchemaConfigFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Comment && { Comment: SENSITIVE_STRING }),
});
export const ParameterDefinitionSchemaFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.StringSchema && { StringSchema: StringSchemaConfigFilterSensitiveLog(obj.StringSchema) }),
});
export const ParameterDefinitionFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Definition && { Definition: ParameterDefinitionSchemaFilterSensitiveLog(obj.Definition) }),
});
export const TenantConfigFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.ParameterDefinitions && {
        ParameterDefinitions: obj.ParameterDefinitions.map((item) => ParameterDefinitionFilterSensitiveLog(item)),
    }),
});
export const DistributionConfigFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Comment && { Comment: SENSITIVE_STRING }),
    ...(obj.TenantConfig && { TenantConfig: TenantConfigFilterSensitiveLog(obj.TenantConfig) }),
});
export const DistributionFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.DistributionConfig && { DistributionConfig: DistributionConfigFilterSensitiveLog(obj.DistributionConfig) }),
});
export const CopyDistributionResultFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Distribution && { Distribution: DistributionFilterSensitiveLog(obj.Distribution) }),
});
export const CreateDistributionRequestFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.DistributionConfig && { DistributionConfig: DistributionConfigFilterSensitiveLog(obj.DistributionConfig) }),
});
export const CreateDistributionResultFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Distribution && { Distribution: DistributionFilterSensitiveLog(obj.Distribution) }),
});
export const DistributionConfigWithTagsFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.DistributionConfig && { DistributionConfig: DistributionConfigFilterSensitiveLog(obj.DistributionConfig) }),
});
export const CreateDistributionWithTagsRequestFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.DistributionConfigWithTags && {
        DistributionConfigWithTags: DistributionConfigWithTagsFilterSensitiveLog(obj.DistributionConfigWithTags),
    }),
});
export const CreateDistributionWithTagsResultFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.Distribution && { Distribution: DistributionFilterSensitiveLog(obj.Distribution) }),
});
export const CreateFunctionRequestFilterSensitiveLog = (obj) => ({
    ...obj,
    ...(obj.FunctionCode && { FunctionCode: SENSITIVE_STRING }),
});
