import { Command as $Command } from "@smithy/smithy-client"; import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { CloudFrontClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CloudFrontClient"; import { CreateContinuousDeploymentPolicyRequest, CreateContinuousDeploymentPolicyResult } from "../models/models_0"; /** * @public */ export type { __MetadataBearer }; export { $Command }; /** * @public * * The input for {@link CreateContinuousDeploymentPolicyCommand}. */ export interface CreateContinuousDeploymentPolicyCommandInput extends CreateContinuousDeploymentPolicyRequest { } /** * @public * * The output of {@link CreateContinuousDeploymentPolicyCommand}. */ export interface CreateContinuousDeploymentPolicyCommandOutput extends CreateContinuousDeploymentPolicyResult, __MetadataBearer { } declare const CreateContinuousDeploymentPolicyCommand_base: { new (input: CreateContinuousDeploymentPolicyCommandInput): import("@smithy/smithy-client").CommandImpl; new (input: CreateContinuousDeploymentPolicyCommandInput): import("@smithy/smithy-client").CommandImpl; getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions; }; /** *

Creates a continuous deployment policy that distributes traffic for a custom domain name to two different CloudFront distributions.

To use a continuous deployment policy, first use CopyDistribution to create a staging distribution, then use UpdateDistribution to modify the staging distribution's configuration.

After you create and update a staging distribution, you can use a continuous deployment policy to incrementally move traffic to the staging distribution. This workflow enables you to test changes to a distribution's configuration before moving all of your domain's production traffic to the new configuration.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { CloudFrontClient, CreateContinuousDeploymentPolicyCommand } from "@aws-sdk/client-cloudfront"; // ES Modules import * // const { CloudFrontClient, CreateContinuousDeploymentPolicyCommand } = require("@aws-sdk/client-cloudfront"); // CommonJS import * const client = new CloudFrontClient(config); * const input = { // CreateContinuousDeploymentPolicyRequest * ContinuousDeploymentPolicyConfig: { // ContinuousDeploymentPolicyConfig * StagingDistributionDnsNames: { // StagingDistributionDnsNames * Quantity: Number("int"), // required * Items: [ // StagingDistributionDnsNameList * "STRING_VALUE", * ], * }, * Enabled: true || false, // required * TrafficConfig: { // TrafficConfig * SingleWeightConfig: { // ContinuousDeploymentSingleWeightConfig * Weight: Number("float"), // required * SessionStickinessConfig: { // SessionStickinessConfig * IdleTTL: Number("int"), // required * MaximumTTL: Number("int"), // required * }, * }, * SingleHeaderConfig: { // ContinuousDeploymentSingleHeaderConfig * Header: "STRING_VALUE", // required * Value: "STRING_VALUE", // required * }, * Type: "SingleWeight" || "SingleHeader", // required * }, * }, * }; * const command = new CreateContinuousDeploymentPolicyCommand(input); * const response = await client.send(command); * // { // CreateContinuousDeploymentPolicyResult * // ContinuousDeploymentPolicy: { // ContinuousDeploymentPolicy * // Id: "STRING_VALUE", // required * // LastModifiedTime: new Date("TIMESTAMP"), // required * // ContinuousDeploymentPolicyConfig: { // ContinuousDeploymentPolicyConfig * // StagingDistributionDnsNames: { // StagingDistributionDnsNames * // Quantity: Number("int"), // required * // Items: [ // StagingDistributionDnsNameList * // "STRING_VALUE", * // ], * // }, * // Enabled: true || false, // required * // TrafficConfig: { // TrafficConfig * // SingleWeightConfig: { // ContinuousDeploymentSingleWeightConfig * // Weight: Number("float"), // required * // SessionStickinessConfig: { // SessionStickinessConfig * // IdleTTL: Number("int"), // required * // MaximumTTL: Number("int"), // required * // }, * // }, * // SingleHeaderConfig: { // ContinuousDeploymentSingleHeaderConfig * // Header: "STRING_VALUE", // required * // Value: "STRING_VALUE", // required * // }, * // Type: "SingleWeight" || "SingleHeader", // required * // }, * // }, * // }, * // Location: "STRING_VALUE", * // ETag: "STRING_VALUE", * // }; * * ``` * * @param CreateContinuousDeploymentPolicyCommandInput - {@link CreateContinuousDeploymentPolicyCommandInput} * @returns {@link CreateContinuousDeploymentPolicyCommandOutput} * @see {@link CreateContinuousDeploymentPolicyCommandInput} for command's `input` shape. * @see {@link CreateContinuousDeploymentPolicyCommandOutput} for command's `response` shape. * @see {@link CloudFrontClientResolvedConfig | config} for CloudFrontClient's `config` shape. * * @throws {@link AccessDenied} (client fault) *

Access denied.

* * @throws {@link ContinuousDeploymentPolicyAlreadyExists} (client fault) *

A continuous deployment policy with this configuration already exists.

* * @throws {@link InconsistentQuantities} (client fault) *

The value of Quantity and the size of Items don't match.

* * @throws {@link InvalidArgument} (client fault) *

An argument is invalid.

* * @throws {@link StagingDistributionInUse} (client fault) *

A continuous deployment policy for this staging distribution already exists.

* * @throws {@link TooManyContinuousDeploymentPolicies} (client fault) *

You have reached the maximum number of continuous deployment policies for this Amazon Web Services account.

* * @throws {@link CloudFrontServiceException} *

Base exception class for all service exceptions from CloudFront service.

* * * @public */ export declare class CreateContinuousDeploymentPolicyCommand extends CreateContinuousDeploymentPolicyCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: CreateContinuousDeploymentPolicyRequest; output: CreateContinuousDeploymentPolicyResult; }; sdk: { input: CreateContinuousDeploymentPolicyCommandInput; output: CreateContinuousDeploymentPolicyCommandOutput; }; }; }