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

Associates an alias (also known as a CNAME or an alternate domain name) with a CloudFront distribution.

With this operation you can move an alias that's already in use on a CloudFront distribution to a different distribution in one step. This prevents the downtime that could occur if you first remove the alias from one distribution and then separately add the alias to another distribution.

To use this operation to associate an alias with a distribution, you provide the alias and the ID of the target distribution for the alias. For more information, including how to set up the target distribution, prerequisites that you must complete, and other restrictions, see Moving an alternate domain name to a different distribution in the Amazon CloudFront Developer Guide.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { CloudFrontClient, AssociateAliasCommand } from "@aws-sdk/client-cloudfront"; // ES Modules import * // const { CloudFrontClient, AssociateAliasCommand } = require("@aws-sdk/client-cloudfront"); // CommonJS import * const client = new CloudFrontClient(config); * const input = { // AssociateAliasRequest * TargetDistributionId: "STRING_VALUE", // required * Alias: "STRING_VALUE", // required * }; * const command = new AssociateAliasCommand(input); * const response = await client.send(command); * // {}; * * ``` * * @param AssociateAliasCommandInput - {@link AssociateAliasCommandInput} * @returns {@link AssociateAliasCommandOutput} * @see {@link AssociateAliasCommandInput} for command's `input` shape. * @see {@link AssociateAliasCommandOutput} for command's `response` shape. * @see {@link CloudFrontClientResolvedConfig | config} for CloudFrontClient's `config` shape. * * @throws {@link AccessDenied} (client fault) *

Access denied.

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

The update contains modifications that are not allowed.

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

An argument is invalid.

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

The specified distribution does not exist.

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

Your request contains more CNAMEs than are allowed per distribution.

* * @throws {@link CloudFrontServiceException} *

Base exception class for all service exceptions from CloudFront service.

* * * @public */ export declare class AssociateAliasCommand extends AssociateAliasCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: AssociateAliasRequest; output: {}; }; sdk: { input: AssociateAliasCommandInput; output: AssociateAliasCommandOutput; }; }; }