@aws-cdk/aws-cloudfront
Version:
The CDK Construct Library for AWS::CloudFront
942 lines • 1.37 MB
JavaScript
"use strict";
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CfnStreamingDistribution = exports.CfnResponseHeadersPolicy = exports.CfnRealtimeLogConfig = exports.CfnPublicKey = exports.CfnOriginRequestPolicy = exports.CfnOriginAccessControl = exports.CfnMonitoringSubscription = exports.CfnKeyGroup = exports.CfnFunction = exports.CfnDistribution = exports.CfnContinuousDeploymentPolicy = exports.CfnCloudFrontOriginAccessIdentity = exports.CfnCachePolicy = void 0;
const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
// Copyright 2012-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
// Generated from the AWS CloudFormation Resource Specification
// See: docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-resource-specification.html
// @cfn2ts:meta@ {"generated":"2023-06-19T15:19:52.010Z","fingerprint":"gU8RpE74evPDpSLZeFDSGreGEs90n8kMa7VC6Sob4Tc="}
/* eslint-disable max-len */ // This is generated code - line lengths are difficult to control
const cdk = require("@aws-cdk/core");
const cfn_parse = require("@aws-cdk/core/lib/helpers-internal");
/**
* Determine whether the given properties match those of a `CfnCachePolicyProps`
*
* @param properties - the TypeScript properties of a `CfnCachePolicyProps`
*
* @returns the result of the validation.
*/
function CfnCachePolicyPropsValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
errors.collect(new cdk.ValidationResult('Expected an object, but received: ' + JSON.stringify(properties)));
}
errors.collect(cdk.propertyValidator('cachePolicyConfig', cdk.requiredValidator)(properties.cachePolicyConfig));
errors.collect(cdk.propertyValidator('cachePolicyConfig', CfnCachePolicy_CachePolicyConfigPropertyValidator)(properties.cachePolicyConfig));
return errors.wrap('supplied properties not correct for "CfnCachePolicyProps"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFront::CachePolicy` resource
*
* @param properties - the TypeScript properties of a `CfnCachePolicyProps`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFront::CachePolicy` resource.
*/
// @ts-ignore TS6133
function cfnCachePolicyPropsToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnCachePolicyPropsValidator(properties).assertSuccess();
return {
CachePolicyConfig: cfnCachePolicyCachePolicyConfigPropertyToCloudFormation(properties.cachePolicyConfig),
};
}
// @ts-ignore TS6133
function CfnCachePolicyPropsFromCloudFormation(properties) {
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('cachePolicyConfig', 'CachePolicyConfig', CfnCachePolicyCachePolicyConfigPropertyFromCloudFormation(properties.CachePolicyConfig));
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* A CloudFormation `AWS::CloudFront::CachePolicy`
*
* A cache policy.
*
* When it's attached to a cache behavior, the cache policy determines the following:
*
* - The values that CloudFront includes in the cache key. These values can include HTTP headers, cookies, and URL query strings. CloudFront uses the cache key to find an object in its cache that it can return to the viewer.
* - The default, minimum, and maximum time to live (TTL) values that you want objects to stay in the CloudFront cache.
*
* The headers, cookies, and query strings that are included in the cache key are also included in requests that CloudFront sends to the origin. CloudFront sends a request when it can't find a valid object in its cache that matches the request's cache key. If you want to send values to the origin but *not* include them in the cache key, use `OriginRequestPolicy` .
*
* @cloudformationResource AWS::CloudFront::CachePolicy
* @stability external
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-cachepolicy.html
*/
class CfnCachePolicy extends cdk.CfnResource {
/**
* Create a new `AWS::CloudFront::CachePolicy`.
*
* @param scope - scope in which this resource is defined
* @param id - scoped id of the resource
* @param props - resource properties
*/
constructor(scope, id, props) {
super(scope, id, { type: CfnCachePolicy.CFN_RESOURCE_TYPE_NAME, properties: props });
try {
jsiiDeprecationWarnings._aws_cdk_aws_cloudfront_CfnCachePolicyProps(props);
}
catch (error) {
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
Error.captureStackTrace(error, CfnCachePolicy);
}
throw error;
}
cdk.requireProperty(props, 'cachePolicyConfig', this);
this.attrId = cdk.Token.asString(this.getAtt('Id'));
this.attrLastModifiedTime = cdk.Token.asString(this.getAtt('LastModifiedTime'));
this.cachePolicyConfig = props.cachePolicyConfig;
}
/**
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope, id, resourceAttributes, options) {
resourceAttributes = resourceAttributes || {};
const resourceProperties = options.parser.parseValue(resourceAttributes.Properties);
const propsResult = CfnCachePolicyPropsFromCloudFormation(resourceProperties);
const ret = new CfnCachePolicy(scope, id, propsResult.value);
for (const [propKey, propVal] of Object.entries(propsResult.extraProperties)) {
ret.addPropertyOverride(propKey, propVal);
}
options.parser.handleAttributes(ret, resourceAttributes, id);
return ret;
}
/**
* Examines the CloudFormation resource and discloses attributes.
*
* @param inspector - tree inspector to collect and process attributes
*
*/
inspect(inspector) {
inspector.addAttribute("aws:cdk:cloudformation:type", CfnCachePolicy.CFN_RESOURCE_TYPE_NAME);
inspector.addAttribute("aws:cdk:cloudformation:props", this.cfnProperties);
}
get cfnProperties() {
return {
cachePolicyConfig: this.cachePolicyConfig,
};
}
renderProperties(props) {
return cfnCachePolicyPropsToCloudFormation(props);
}
}
exports.CfnCachePolicy = CfnCachePolicy;
_a = JSII_RTTI_SYMBOL_1;
CfnCachePolicy[_a] = { fqn: "@aws-cdk/aws-cloudfront.CfnCachePolicy", version: "1.204.0" };
/**
* The CloudFormation resource type name for this resource class.
*/
CfnCachePolicy.CFN_RESOURCE_TYPE_NAME = "AWS::CloudFront::CachePolicy";
/**
* Determine whether the given properties match those of a `CachePolicyConfigProperty`
*
* @param properties - the TypeScript properties of a `CachePolicyConfigProperty`
*
* @returns the result of the validation.
*/
function CfnCachePolicy_CachePolicyConfigPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
errors.collect(new cdk.ValidationResult('Expected an object, but received: ' + JSON.stringify(properties)));
}
errors.collect(cdk.propertyValidator('comment', cdk.validateString)(properties.comment));
errors.collect(cdk.propertyValidator('defaultTtl', cdk.requiredValidator)(properties.defaultTtl));
errors.collect(cdk.propertyValidator('defaultTtl', cdk.validateNumber)(properties.defaultTtl));
errors.collect(cdk.propertyValidator('maxTtl', cdk.requiredValidator)(properties.maxTtl));
errors.collect(cdk.propertyValidator('maxTtl', cdk.validateNumber)(properties.maxTtl));
errors.collect(cdk.propertyValidator('minTtl', cdk.requiredValidator)(properties.minTtl));
errors.collect(cdk.propertyValidator('minTtl', cdk.validateNumber)(properties.minTtl));
errors.collect(cdk.propertyValidator('name', cdk.requiredValidator)(properties.name));
errors.collect(cdk.propertyValidator('name', cdk.validateString)(properties.name));
errors.collect(cdk.propertyValidator('parametersInCacheKeyAndForwardedToOrigin', cdk.requiredValidator)(properties.parametersInCacheKeyAndForwardedToOrigin));
errors.collect(cdk.propertyValidator('parametersInCacheKeyAndForwardedToOrigin', CfnCachePolicy_ParametersInCacheKeyAndForwardedToOriginPropertyValidator)(properties.parametersInCacheKeyAndForwardedToOrigin));
return errors.wrap('supplied properties not correct for "CachePolicyConfigProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFront::CachePolicy.CachePolicyConfig` resource
*
* @param properties - the TypeScript properties of a `CachePolicyConfigProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFront::CachePolicy.CachePolicyConfig` resource.
*/
// @ts-ignore TS6133
function cfnCachePolicyCachePolicyConfigPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnCachePolicy_CachePolicyConfigPropertyValidator(properties).assertSuccess();
return {
Comment: cdk.stringToCloudFormation(properties.comment),
DefaultTTL: cdk.numberToCloudFormation(properties.defaultTtl),
MaxTTL: cdk.numberToCloudFormation(properties.maxTtl),
MinTTL: cdk.numberToCloudFormation(properties.minTtl),
Name: cdk.stringToCloudFormation(properties.name),
ParametersInCacheKeyAndForwardedToOrigin: cfnCachePolicyParametersInCacheKeyAndForwardedToOriginPropertyToCloudFormation(properties.parametersInCacheKeyAndForwardedToOrigin),
};
}
// @ts-ignore TS6133
function CfnCachePolicyCachePolicyConfigPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return new cfn_parse.FromCloudFormationResult(properties);
}
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('comment', 'Comment', properties.Comment != null ? cfn_parse.FromCloudFormation.getString(properties.Comment) : undefined);
ret.addPropertyResult('defaultTtl', 'DefaultTTL', cfn_parse.FromCloudFormation.getNumber(properties.DefaultTTL));
ret.addPropertyResult('maxTtl', 'MaxTTL', cfn_parse.FromCloudFormation.getNumber(properties.MaxTTL));
ret.addPropertyResult('minTtl', 'MinTTL', cfn_parse.FromCloudFormation.getNumber(properties.MinTTL));
ret.addPropertyResult('name', 'Name', cfn_parse.FromCloudFormation.getString(properties.Name));
ret.addPropertyResult('parametersInCacheKeyAndForwardedToOrigin', 'ParametersInCacheKeyAndForwardedToOrigin', CfnCachePolicyParametersInCacheKeyAndForwardedToOriginPropertyFromCloudFormation(properties.ParametersInCacheKeyAndForwardedToOrigin));
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* Determine whether the given properties match those of a `CookiesConfigProperty`
*
* @param properties - the TypeScript properties of a `CookiesConfigProperty`
*
* @returns the result of the validation.
*/
function CfnCachePolicy_CookiesConfigPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
errors.collect(new cdk.ValidationResult('Expected an object, but received: ' + JSON.stringify(properties)));
}
errors.collect(cdk.propertyValidator('cookieBehavior', cdk.requiredValidator)(properties.cookieBehavior));
errors.collect(cdk.propertyValidator('cookieBehavior', cdk.validateString)(properties.cookieBehavior));
errors.collect(cdk.propertyValidator('cookies', cdk.listValidator(cdk.validateString))(properties.cookies));
return errors.wrap('supplied properties not correct for "CookiesConfigProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFront::CachePolicy.CookiesConfig` resource
*
* @param properties - the TypeScript properties of a `CookiesConfigProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFront::CachePolicy.CookiesConfig` resource.
*/
// @ts-ignore TS6133
function cfnCachePolicyCookiesConfigPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnCachePolicy_CookiesConfigPropertyValidator(properties).assertSuccess();
return {
CookieBehavior: cdk.stringToCloudFormation(properties.cookieBehavior),
Cookies: cdk.listMapper(cdk.stringToCloudFormation)(properties.cookies),
};
}
// @ts-ignore TS6133
function CfnCachePolicyCookiesConfigPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return new cfn_parse.FromCloudFormationResult(properties);
}
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('cookieBehavior', 'CookieBehavior', cfn_parse.FromCloudFormation.getString(properties.CookieBehavior));
ret.addPropertyResult('cookies', 'Cookies', properties.Cookies != null ? cfn_parse.FromCloudFormation.getStringArray(properties.Cookies) : undefined);
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* Determine whether the given properties match those of a `HeadersConfigProperty`
*
* @param properties - the TypeScript properties of a `HeadersConfigProperty`
*
* @returns the result of the validation.
*/
function CfnCachePolicy_HeadersConfigPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
errors.collect(new cdk.ValidationResult('Expected an object, but received: ' + JSON.stringify(properties)));
}
errors.collect(cdk.propertyValidator('headerBehavior', cdk.requiredValidator)(properties.headerBehavior));
errors.collect(cdk.propertyValidator('headerBehavior', cdk.validateString)(properties.headerBehavior));
errors.collect(cdk.propertyValidator('headers', cdk.listValidator(cdk.validateString))(properties.headers));
return errors.wrap('supplied properties not correct for "HeadersConfigProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFront::CachePolicy.HeadersConfig` resource
*
* @param properties - the TypeScript properties of a `HeadersConfigProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFront::CachePolicy.HeadersConfig` resource.
*/
// @ts-ignore TS6133
function cfnCachePolicyHeadersConfigPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnCachePolicy_HeadersConfigPropertyValidator(properties).assertSuccess();
return {
HeaderBehavior: cdk.stringToCloudFormation(properties.headerBehavior),
Headers: cdk.listMapper(cdk.stringToCloudFormation)(properties.headers),
};
}
// @ts-ignore TS6133
function CfnCachePolicyHeadersConfigPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return new cfn_parse.FromCloudFormationResult(properties);
}
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('headerBehavior', 'HeaderBehavior', cfn_parse.FromCloudFormation.getString(properties.HeaderBehavior));
ret.addPropertyResult('headers', 'Headers', properties.Headers != null ? cfn_parse.FromCloudFormation.getStringArray(properties.Headers) : undefined);
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* Determine whether the given properties match those of a `ParametersInCacheKeyAndForwardedToOriginProperty`
*
* @param properties - the TypeScript properties of a `ParametersInCacheKeyAndForwardedToOriginProperty`
*
* @returns the result of the validation.
*/
function CfnCachePolicy_ParametersInCacheKeyAndForwardedToOriginPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
errors.collect(new cdk.ValidationResult('Expected an object, but received: ' + JSON.stringify(properties)));
}
errors.collect(cdk.propertyValidator('cookiesConfig', cdk.requiredValidator)(properties.cookiesConfig));
errors.collect(cdk.propertyValidator('cookiesConfig', CfnCachePolicy_CookiesConfigPropertyValidator)(properties.cookiesConfig));
errors.collect(cdk.propertyValidator('enableAcceptEncodingBrotli', cdk.validateBoolean)(properties.enableAcceptEncodingBrotli));
errors.collect(cdk.propertyValidator('enableAcceptEncodingGzip', cdk.requiredValidator)(properties.enableAcceptEncodingGzip));
errors.collect(cdk.propertyValidator('enableAcceptEncodingGzip', cdk.validateBoolean)(properties.enableAcceptEncodingGzip));
errors.collect(cdk.propertyValidator('headersConfig', cdk.requiredValidator)(properties.headersConfig));
errors.collect(cdk.propertyValidator('headersConfig', CfnCachePolicy_HeadersConfigPropertyValidator)(properties.headersConfig));
errors.collect(cdk.propertyValidator('queryStringsConfig', cdk.requiredValidator)(properties.queryStringsConfig));
errors.collect(cdk.propertyValidator('queryStringsConfig', CfnCachePolicy_QueryStringsConfigPropertyValidator)(properties.queryStringsConfig));
return errors.wrap('supplied properties not correct for "ParametersInCacheKeyAndForwardedToOriginProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFront::CachePolicy.ParametersInCacheKeyAndForwardedToOrigin` resource
*
* @param properties - the TypeScript properties of a `ParametersInCacheKeyAndForwardedToOriginProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFront::CachePolicy.ParametersInCacheKeyAndForwardedToOrigin` resource.
*/
// @ts-ignore TS6133
function cfnCachePolicyParametersInCacheKeyAndForwardedToOriginPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnCachePolicy_ParametersInCacheKeyAndForwardedToOriginPropertyValidator(properties).assertSuccess();
return {
CookiesConfig: cfnCachePolicyCookiesConfigPropertyToCloudFormation(properties.cookiesConfig),
EnableAcceptEncodingBrotli: cdk.booleanToCloudFormation(properties.enableAcceptEncodingBrotli),
EnableAcceptEncodingGzip: cdk.booleanToCloudFormation(properties.enableAcceptEncodingGzip),
HeadersConfig: cfnCachePolicyHeadersConfigPropertyToCloudFormation(properties.headersConfig),
QueryStringsConfig: cfnCachePolicyQueryStringsConfigPropertyToCloudFormation(properties.queryStringsConfig),
};
}
// @ts-ignore TS6133
function CfnCachePolicyParametersInCacheKeyAndForwardedToOriginPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return new cfn_parse.FromCloudFormationResult(properties);
}
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('cookiesConfig', 'CookiesConfig', CfnCachePolicyCookiesConfigPropertyFromCloudFormation(properties.CookiesConfig));
ret.addPropertyResult('enableAcceptEncodingBrotli', 'EnableAcceptEncodingBrotli', properties.EnableAcceptEncodingBrotli != null ? cfn_parse.FromCloudFormation.getBoolean(properties.EnableAcceptEncodingBrotli) : undefined);
ret.addPropertyResult('enableAcceptEncodingGzip', 'EnableAcceptEncodingGzip', cfn_parse.FromCloudFormation.getBoolean(properties.EnableAcceptEncodingGzip));
ret.addPropertyResult('headersConfig', 'HeadersConfig', CfnCachePolicyHeadersConfigPropertyFromCloudFormation(properties.HeadersConfig));
ret.addPropertyResult('queryStringsConfig', 'QueryStringsConfig', CfnCachePolicyQueryStringsConfigPropertyFromCloudFormation(properties.QueryStringsConfig));
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* Determine whether the given properties match those of a `QueryStringsConfigProperty`
*
* @param properties - the TypeScript properties of a `QueryStringsConfigProperty`
*
* @returns the result of the validation.
*/
function CfnCachePolicy_QueryStringsConfigPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
errors.collect(new cdk.ValidationResult('Expected an object, but received: ' + JSON.stringify(properties)));
}
errors.collect(cdk.propertyValidator('queryStringBehavior', cdk.requiredValidator)(properties.queryStringBehavior));
errors.collect(cdk.propertyValidator('queryStringBehavior', cdk.validateString)(properties.queryStringBehavior));
errors.collect(cdk.propertyValidator('queryStrings', cdk.listValidator(cdk.validateString))(properties.queryStrings));
return errors.wrap('supplied properties not correct for "QueryStringsConfigProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFront::CachePolicy.QueryStringsConfig` resource
*
* @param properties - the TypeScript properties of a `QueryStringsConfigProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFront::CachePolicy.QueryStringsConfig` resource.
*/
// @ts-ignore TS6133
function cfnCachePolicyQueryStringsConfigPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnCachePolicy_QueryStringsConfigPropertyValidator(properties).assertSuccess();
return {
QueryStringBehavior: cdk.stringToCloudFormation(properties.queryStringBehavior),
QueryStrings: cdk.listMapper(cdk.stringToCloudFormation)(properties.queryStrings),
};
}
// @ts-ignore TS6133
function CfnCachePolicyQueryStringsConfigPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return new cfn_parse.FromCloudFormationResult(properties);
}
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('queryStringBehavior', 'QueryStringBehavior', cfn_parse.FromCloudFormation.getString(properties.QueryStringBehavior));
ret.addPropertyResult('queryStrings', 'QueryStrings', properties.QueryStrings != null ? cfn_parse.FromCloudFormation.getStringArray(properties.QueryStrings) : undefined);
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* Determine whether the given properties match those of a `CfnCloudFrontOriginAccessIdentityProps`
*
* @param properties - the TypeScript properties of a `CfnCloudFrontOriginAccessIdentityProps`
*
* @returns the result of the validation.
*/
function CfnCloudFrontOriginAccessIdentityPropsValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
errors.collect(new cdk.ValidationResult('Expected an object, but received: ' + JSON.stringify(properties)));
}
errors.collect(cdk.propertyValidator('cloudFrontOriginAccessIdentityConfig', cdk.requiredValidator)(properties.cloudFrontOriginAccessIdentityConfig));
errors.collect(cdk.propertyValidator('cloudFrontOriginAccessIdentityConfig', CfnCloudFrontOriginAccessIdentity_CloudFrontOriginAccessIdentityConfigPropertyValidator)(properties.cloudFrontOriginAccessIdentityConfig));
return errors.wrap('supplied properties not correct for "CfnCloudFrontOriginAccessIdentityProps"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFront::CloudFrontOriginAccessIdentity` resource
*
* @param properties - the TypeScript properties of a `CfnCloudFrontOriginAccessIdentityProps`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFront::CloudFrontOriginAccessIdentity` resource.
*/
// @ts-ignore TS6133
function cfnCloudFrontOriginAccessIdentityPropsToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnCloudFrontOriginAccessIdentityPropsValidator(properties).assertSuccess();
return {
CloudFrontOriginAccessIdentityConfig: cfnCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfigPropertyToCloudFormation(properties.cloudFrontOriginAccessIdentityConfig),
};
}
// @ts-ignore TS6133
function CfnCloudFrontOriginAccessIdentityPropsFromCloudFormation(properties) {
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('cloudFrontOriginAccessIdentityConfig', 'CloudFrontOriginAccessIdentityConfig', CfnCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfigPropertyFromCloudFormation(properties.CloudFrontOriginAccessIdentityConfig));
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* A CloudFormation `AWS::CloudFront::CloudFrontOriginAccessIdentity`
*
* The request to create a new origin access identity (OAI). An origin access identity is a special CloudFront user that you can associate with Amazon S3 origins, so that you can secure all or just some of your Amazon S3 content. For more information, see [Restricting Access to Amazon S3 Content by Using an Origin Access Identity](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) in the *Amazon CloudFront Developer Guide* .
*
* @cloudformationResource AWS::CloudFront::CloudFrontOriginAccessIdentity
* @stability external
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-cloudfrontoriginaccessidentity.html
*/
class CfnCloudFrontOriginAccessIdentity extends cdk.CfnResource {
/**
* Create a new `AWS::CloudFront::CloudFrontOriginAccessIdentity`.
*
* @param scope - scope in which this resource is defined
* @param id - scoped id of the resource
* @param props - resource properties
*/
constructor(scope, id, props) {
super(scope, id, { type: CfnCloudFrontOriginAccessIdentity.CFN_RESOURCE_TYPE_NAME, properties: props });
try {
jsiiDeprecationWarnings._aws_cdk_aws_cloudfront_CfnCloudFrontOriginAccessIdentityProps(props);
}
catch (error) {
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
Error.captureStackTrace(error, CfnCloudFrontOriginAccessIdentity);
}
throw error;
}
cdk.requireProperty(props, 'cloudFrontOriginAccessIdentityConfig', this);
this.attrId = cdk.Token.asString(this.getAtt('Id'));
this.attrS3CanonicalUserId = cdk.Token.asString(this.getAtt('S3CanonicalUserId'));
this.cloudFrontOriginAccessIdentityConfig = props.cloudFrontOriginAccessIdentityConfig;
}
/**
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope, id, resourceAttributes, options) {
resourceAttributes = resourceAttributes || {};
const resourceProperties = options.parser.parseValue(resourceAttributes.Properties);
const propsResult = CfnCloudFrontOriginAccessIdentityPropsFromCloudFormation(resourceProperties);
const ret = new CfnCloudFrontOriginAccessIdentity(scope, id, propsResult.value);
for (const [propKey, propVal] of Object.entries(propsResult.extraProperties)) {
ret.addPropertyOverride(propKey, propVal);
}
options.parser.handleAttributes(ret, resourceAttributes, id);
return ret;
}
/**
* Examines the CloudFormation resource and discloses attributes.
*
* @param inspector - tree inspector to collect and process attributes
*
*/
inspect(inspector) {
inspector.addAttribute("aws:cdk:cloudformation:type", CfnCloudFrontOriginAccessIdentity.CFN_RESOURCE_TYPE_NAME);
inspector.addAttribute("aws:cdk:cloudformation:props", this.cfnProperties);
}
get cfnProperties() {
return {
cloudFrontOriginAccessIdentityConfig: this.cloudFrontOriginAccessIdentityConfig,
};
}
renderProperties(props) {
return cfnCloudFrontOriginAccessIdentityPropsToCloudFormation(props);
}
}
exports.CfnCloudFrontOriginAccessIdentity = CfnCloudFrontOriginAccessIdentity;
_b = JSII_RTTI_SYMBOL_1;
CfnCloudFrontOriginAccessIdentity[_b] = { fqn: "@aws-cdk/aws-cloudfront.CfnCloudFrontOriginAccessIdentity", version: "1.204.0" };
/**
* The CloudFormation resource type name for this resource class.
*/
CfnCloudFrontOriginAccessIdentity.CFN_RESOURCE_TYPE_NAME = "AWS::CloudFront::CloudFrontOriginAccessIdentity";
/**
* Determine whether the given properties match those of a `CloudFrontOriginAccessIdentityConfigProperty`
*
* @param properties - the TypeScript properties of a `CloudFrontOriginAccessIdentityConfigProperty`
*
* @returns the result of the validation.
*/
function CfnCloudFrontOriginAccessIdentity_CloudFrontOriginAccessIdentityConfigPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
errors.collect(new cdk.ValidationResult('Expected an object, but received: ' + JSON.stringify(properties)));
}
errors.collect(cdk.propertyValidator('comment', cdk.requiredValidator)(properties.comment));
errors.collect(cdk.propertyValidator('comment', cdk.validateString)(properties.comment));
return errors.wrap('supplied properties not correct for "CloudFrontOriginAccessIdentityConfigProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig` resource
*
* @param properties - the TypeScript properties of a `CloudFrontOriginAccessIdentityConfigProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFront::CloudFrontOriginAccessIdentity.CloudFrontOriginAccessIdentityConfig` resource.
*/
// @ts-ignore TS6133
function cfnCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfigPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnCloudFrontOriginAccessIdentity_CloudFrontOriginAccessIdentityConfigPropertyValidator(properties).assertSuccess();
return {
Comment: cdk.stringToCloudFormation(properties.comment),
};
}
// @ts-ignore TS6133
function CfnCloudFrontOriginAccessIdentityCloudFrontOriginAccessIdentityConfigPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return new cfn_parse.FromCloudFormationResult(properties);
}
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('comment', 'Comment', cfn_parse.FromCloudFormation.getString(properties.Comment));
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* Determine whether the given properties match those of a `CfnContinuousDeploymentPolicyProps`
*
* @param properties - the TypeScript properties of a `CfnContinuousDeploymentPolicyProps`
*
* @returns the result of the validation.
*/
function CfnContinuousDeploymentPolicyPropsValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
errors.collect(new cdk.ValidationResult('Expected an object, but received: ' + JSON.stringify(properties)));
}
errors.collect(cdk.propertyValidator('continuousDeploymentPolicyConfig', cdk.requiredValidator)(properties.continuousDeploymentPolicyConfig));
errors.collect(cdk.propertyValidator('continuousDeploymentPolicyConfig', CfnContinuousDeploymentPolicy_ContinuousDeploymentPolicyConfigPropertyValidator)(properties.continuousDeploymentPolicyConfig));
return errors.wrap('supplied properties not correct for "CfnContinuousDeploymentPolicyProps"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFront::ContinuousDeploymentPolicy` resource
*
* @param properties - the TypeScript properties of a `CfnContinuousDeploymentPolicyProps`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFront::ContinuousDeploymentPolicy` resource.
*/
// @ts-ignore TS6133
function cfnContinuousDeploymentPolicyPropsToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnContinuousDeploymentPolicyPropsValidator(properties).assertSuccess();
return {
ContinuousDeploymentPolicyConfig: cfnContinuousDeploymentPolicyContinuousDeploymentPolicyConfigPropertyToCloudFormation(properties.continuousDeploymentPolicyConfig),
};
}
// @ts-ignore TS6133
function CfnContinuousDeploymentPolicyPropsFromCloudFormation(properties) {
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('continuousDeploymentPolicyConfig', 'ContinuousDeploymentPolicyConfig', CfnContinuousDeploymentPolicyContinuousDeploymentPolicyConfigPropertyFromCloudFormation(properties.ContinuousDeploymentPolicyConfig));
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* A CloudFormation `AWS::CloudFront::ContinuousDeploymentPolicy`
*
* Creates a continuous deployment policy that routes a subset of production traffic from a primary distribution to a staging distribution.
*
* After you create and update a staging distribution, you can use a continuous deployment policy to incrementally move traffic to the staging distribution. This enables you to test changes to a distribution's configuration before moving all of your production traffic to the new configuration.
*
* For more information, see [Using CloudFront continuous deployment to safely test CDN configuration changes](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/continuous-deployment.html) in the *Amazon CloudFront Developer Guide* .
*
* @cloudformationResource AWS::CloudFront::ContinuousDeploymentPolicy
* @stability external
*
* @link http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudfront-continuousdeploymentpolicy.html
*/
class CfnContinuousDeploymentPolicy extends cdk.CfnResource {
/**
* Create a new `AWS::CloudFront::ContinuousDeploymentPolicy`.
*
* @param scope - scope in which this resource is defined
* @param id - scoped id of the resource
* @param props - resource properties
*/
constructor(scope, id, props) {
super(scope, id, { type: CfnContinuousDeploymentPolicy.CFN_RESOURCE_TYPE_NAME, properties: props });
try {
jsiiDeprecationWarnings._aws_cdk_aws_cloudfront_CfnContinuousDeploymentPolicyProps(props);
}
catch (error) {
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
Error.captureStackTrace(error, CfnContinuousDeploymentPolicy);
}
throw error;
}
cdk.requireProperty(props, 'continuousDeploymentPolicyConfig', this);
this.attrId = cdk.Token.asString(this.getAtt('Id'));
this.attrLastModifiedTime = cdk.Token.asString(this.getAtt('LastModifiedTime'));
this.continuousDeploymentPolicyConfig = props.continuousDeploymentPolicyConfig;
}
/**
* A factory method that creates a new instance of this class from an object
* containing the CloudFormation properties of this resource.
* Used in the @aws-cdk/cloudformation-include module.
*
* @internal
*/
static _fromCloudFormation(scope, id, resourceAttributes, options) {
resourceAttributes = resourceAttributes || {};
const resourceProperties = options.parser.parseValue(resourceAttributes.Properties);
const propsResult = CfnContinuousDeploymentPolicyPropsFromCloudFormation(resourceProperties);
const ret = new CfnContinuousDeploymentPolicy(scope, id, propsResult.value);
for (const [propKey, propVal] of Object.entries(propsResult.extraProperties)) {
ret.addPropertyOverride(propKey, propVal);
}
options.parser.handleAttributes(ret, resourceAttributes, id);
return ret;
}
/**
* Examines the CloudFormation resource and discloses attributes.
*
* @param inspector - tree inspector to collect and process attributes
*
*/
inspect(inspector) {
inspector.addAttribute("aws:cdk:cloudformation:type", CfnContinuousDeploymentPolicy.CFN_RESOURCE_TYPE_NAME);
inspector.addAttribute("aws:cdk:cloudformation:props", this.cfnProperties);
}
get cfnProperties() {
return {
continuousDeploymentPolicyConfig: this.continuousDeploymentPolicyConfig,
};
}
renderProperties(props) {
return cfnContinuousDeploymentPolicyPropsToCloudFormation(props);
}
}
exports.CfnContinuousDeploymentPolicy = CfnContinuousDeploymentPolicy;
_c = JSII_RTTI_SYMBOL_1;
CfnContinuousDeploymentPolicy[_c] = { fqn: "@aws-cdk/aws-cloudfront.CfnContinuousDeploymentPolicy", version: "1.204.0" };
/**
* The CloudFormation resource type name for this resource class.
*/
CfnContinuousDeploymentPolicy.CFN_RESOURCE_TYPE_NAME = "AWS::CloudFront::ContinuousDeploymentPolicy";
/**
* Determine whether the given properties match those of a `ContinuousDeploymentPolicyConfigProperty`
*
* @param properties - the TypeScript properties of a `ContinuousDeploymentPolicyConfigProperty`
*
* @returns the result of the validation.
*/
function CfnContinuousDeploymentPolicy_ContinuousDeploymentPolicyConfigPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
errors.collect(new cdk.ValidationResult('Expected an object, but received: ' + JSON.stringify(properties)));
}
errors.collect(cdk.propertyValidator('enabled', cdk.requiredValidator)(properties.enabled));
errors.collect(cdk.propertyValidator('enabled', cdk.validateBoolean)(properties.enabled));
errors.collect(cdk.propertyValidator('stagingDistributionDnsNames', cdk.requiredValidator)(properties.stagingDistributionDnsNames));
errors.collect(cdk.propertyValidator('stagingDistributionDnsNames', cdk.listValidator(cdk.validateString))(properties.stagingDistributionDnsNames));
errors.collect(cdk.propertyValidator('trafficConfig', CfnContinuousDeploymentPolicy_TrafficConfigPropertyValidator)(properties.trafficConfig));
return errors.wrap('supplied properties not correct for "ContinuousDeploymentPolicyConfigProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFront::ContinuousDeploymentPolicy.ContinuousDeploymentPolicyConfig` resource
*
* @param properties - the TypeScript properties of a `ContinuousDeploymentPolicyConfigProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFront::ContinuousDeploymentPolicy.ContinuousDeploymentPolicyConfig` resource.
*/
// @ts-ignore TS6133
function cfnContinuousDeploymentPolicyContinuousDeploymentPolicyConfigPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnContinuousDeploymentPolicy_ContinuousDeploymentPolicyConfigPropertyValidator(properties).assertSuccess();
return {
Enabled: cdk.booleanToCloudFormation(properties.enabled),
StagingDistributionDnsNames: cdk.listMapper(cdk.stringToCloudFormation)(properties.stagingDistributionDnsNames),
TrafficConfig: cfnContinuousDeploymentPolicyTrafficConfigPropertyToCloudFormation(properties.trafficConfig),
};
}
// @ts-ignore TS6133
function CfnContinuousDeploymentPolicyContinuousDeploymentPolicyConfigPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return new cfn_parse.FromCloudFormationResult(properties);
}
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('enabled', 'Enabled', cfn_parse.FromCloudFormation.getBoolean(properties.Enabled));
ret.addPropertyResult('stagingDistributionDnsNames', 'StagingDistributionDnsNames', cfn_parse.FromCloudFormation.getStringArray(properties.StagingDistributionDnsNames));
ret.addPropertyResult('trafficConfig', 'TrafficConfig', properties.TrafficConfig != null ? CfnContinuousDeploymentPolicyTrafficConfigPropertyFromCloudFormation(properties.TrafficConfig) : undefined);
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* Determine whether the given properties match those of a `SessionStickinessConfigProperty`
*
* @param properties - the TypeScript properties of a `SessionStickinessConfigProperty`
*
* @returns the result of the validation.
*/
function CfnContinuousDeploymentPolicy_SessionStickinessConfigPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
errors.collect(new cdk.ValidationResult('Expected an object, but received: ' + JSON.stringify(properties)));
}
errors.collect(cdk.propertyValidator('idleTtl', cdk.requiredValidator)(properties.idleTtl));
errors.collect(cdk.propertyValidator('idleTtl', cdk.validateNumber)(properties.idleTtl));
errors.collect(cdk.propertyValidator('maximumTtl', cdk.requiredValidator)(properties.maximumTtl));
errors.collect(cdk.propertyValidator('maximumTtl', cdk.validateNumber)(properties.maximumTtl));
return errors.wrap('supplied properties not correct for "SessionStickinessConfigProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFront::ContinuousDeploymentPolicy.SessionStickinessConfig` resource
*
* @param properties - the TypeScript properties of a `SessionStickinessConfigProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFront::ContinuousDeploymentPolicy.SessionStickinessConfig` resource.
*/
// @ts-ignore TS6133
function cfnContinuousDeploymentPolicySessionStickinessConfigPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnContinuousDeploymentPolicy_SessionStickinessConfigPropertyValidator(properties).assertSuccess();
return {
IdleTTL: cdk.numberToCloudFormation(properties.idleTtl),
MaximumTTL: cdk.numberToCloudFormation(properties.maximumTtl),
};
}
// @ts-ignore TS6133
function CfnContinuousDeploymentPolicySessionStickinessConfigPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return new cfn_parse.FromCloudFormationResult(properties);
}
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('idleTtl', 'IdleTTL', cfn_parse.FromCloudFormation.getNumber(properties.IdleTTL));
ret.addPropertyResult('maximumTtl', 'MaximumTTL', cfn_parse.FromCloudFormation.getNumber(properties.MaximumTTL));
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* Determine whether the given properties match those of a `SingleHeaderConfigProperty`
*
* @param properties - the TypeScript properties of a `SingleHeaderConfigProperty`
*
* @returns the result of the validation.
*/
function CfnContinuousDeploymentPolicy_SingleHeaderConfigPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
errors.collect(new cdk.ValidationResult('Expected an object, but received: ' + JSON.stringify(properties)));
}
errors.collect(cdk.propertyValidator('header', cdk.requiredValidator)(properties.header));
errors.collect(cdk.propertyValidator('header', cdk.validateString)(properties.header));
errors.collect(cdk.propertyValidator('value', cdk.requiredValidator)(properties.value));
errors.collect(cdk.propertyValidator('value', cdk.validateString)(properties.value));
return errors.wrap('supplied properties not correct for "SingleHeaderConfigProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFront::ContinuousDeploymentPolicy.SingleHeaderConfig` resource
*
* @param properties - the TypeScript properties of a `SingleHeaderConfigProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFront::ContinuousDeploymentPolicy.SingleHeaderConfig` resource.
*/
// @ts-ignore TS6133
function cfnContinuousDeploymentPolicySingleHeaderConfigPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnContinuousDeploymentPolicy_SingleHeaderConfigPropertyValidator(properties).assertSuccess();
return {
Header: cdk.stringToCloudFormation(properties.header),
Value: cdk.stringToCloudFormation(properties.value),
};
}
// @ts-ignore TS6133
function CfnContinuousDeploymentPolicySingleHeaderConfigPropertyFromCloudFormation(properties) {
if (cdk.isResolvableObject(properties)) {
return new cfn_parse.FromCloudFormationResult(properties);
}
properties = properties == null ? {} : properties;
if (typeof properties !== 'object') {
return new cfn_parse.FromCloudFormationResult(properties);
}
const ret = new cfn_parse.FromCloudFormationPropertyObject();
ret.addPropertyResult('header', 'Header', cfn_parse.FromCloudFormation.getString(properties.Header));
ret.addPropertyResult('value', 'Value', cfn_parse.FromCloudFormation.getString(properties.Value));
ret.addUnrecognizedPropertiesAsExtra(properties);
return ret;
}
/**
* Determine whether the given properties match those of a `SingleWeightConfigProperty`
*
* @param properties - the TypeScript properties of a `SingleWeightConfigProperty`
*
* @returns the result of the validation.
*/
function CfnContinuousDeploymentPolicy_SingleWeightConfigPropertyValidator(properties) {
if (!cdk.canInspect(properties)) {
return cdk.VALIDATION_SUCCESS;
}
const errors = new cdk.ValidationResults();
if (typeof properties !== 'object') {
errors.collect(new cdk.ValidationResult('Expected an object, but received: ' + JSON.stringify(properties)));
}
errors.collect(cdk.propertyValidator('sessionStickinessConfig', CfnContinuousDeploymentPolicy_SessionStickinessConfigPropertyValidator)(properties.sessionStickinessConfig));
errors.collect(cdk.propertyValidator('weight', cdk.requiredValidator)(properties.weight));
errors.collect(cdk.propertyValidator('weight', cdk.validateNumber)(properties.weight));
return errors.wrap('supplied properties not correct for "SingleWeightConfigProperty"');
}
/**
* Renders the AWS CloudFormation properties of an `AWS::CloudFront::ContinuousDeploymentPolicy.SingleWeightConfig` resource
*
* @param properties - the TypeScript properties of a `SingleWeightConfigProperty`
*
* @returns the AWS CloudFormation properties of an `AWS::CloudFront::ContinuousDeploymentPolicy.SingleWeightConfig` resource.
*/
// @ts-ignore TS6133
function cfnContinuousDeploymentPolicySingleWeightConfigPropertyToCloudFormation(properties) {
if (!cdk.canInspect(properties)) {
return properties;
}
CfnContinuousDeploymentPolicy_SingleWeightConfigPropertyValidator(properties).assertSuccess();
return {
SessionStickiness