import { Command as $Command } from "@smithy/smithy-client"; import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { CloudFrontClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CloudFrontClient"; import { UpdateResponseHeadersPolicyRequest, UpdateResponseHeadersPolicyResult } from "../models/models_2"; /** * @public */ export type { __MetadataBearer }; export { $Command }; /** * @public * * The input for {@link UpdateResponseHeadersPolicyCommand}. */ export interface UpdateResponseHeadersPolicyCommandInput extends UpdateResponseHeadersPolicyRequest { } /** * @public * * The output of {@link UpdateResponseHeadersPolicyCommand}. */ export interface UpdateResponseHeadersPolicyCommandOutput extends UpdateResponseHeadersPolicyResult, __MetadataBearer { } declare const UpdateResponseHeadersPolicyCommand_base: { new (input: UpdateResponseHeadersPolicyCommandInput): import("@smithy/smithy-client").CommandImpl; new (input: UpdateResponseHeadersPolicyCommandInput): import("@smithy/smithy-client").CommandImpl; getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions; }; /** *

Updates a response headers policy.

When you update a response headers policy, the entire policy is replaced. You cannot update some policy fields independent of others. To update a response headers policy configuration:

  1. Use GetResponseHeadersPolicyConfig to get the current policy's configuration.

  2. Modify the fields in the response headers policy configuration that you want to update.

  3. Call UpdateResponseHeadersPolicy, providing the entire response headers policy configuration, including the fields that you modified and those that you didn't.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { CloudFrontClient, UpdateResponseHeadersPolicyCommand } from "@aws-sdk/client-cloudfront"; // ES Modules import * // const { CloudFrontClient, UpdateResponseHeadersPolicyCommand } = require("@aws-sdk/client-cloudfront"); // CommonJS import * const client = new CloudFrontClient(config); * const input = { // UpdateResponseHeadersPolicyRequest * ResponseHeadersPolicyConfig: { // ResponseHeadersPolicyConfig * Comment: "STRING_VALUE", * Name: "STRING_VALUE", // required * CorsConfig: { // ResponseHeadersPolicyCorsConfig * AccessControlAllowOrigins: { // ResponseHeadersPolicyAccessControlAllowOrigins * Quantity: Number("int"), // required * Items: [ // AccessControlAllowOriginsList // required * "STRING_VALUE", * ], * }, * AccessControlAllowHeaders: { // ResponseHeadersPolicyAccessControlAllowHeaders * Quantity: Number("int"), // required * Items: [ // AccessControlAllowHeadersList // required * "STRING_VALUE", * ], * }, * AccessControlAllowMethods: { // ResponseHeadersPolicyAccessControlAllowMethods * Quantity: Number("int"), // required * Items: [ // AccessControlAllowMethodsList // required * "GET" || "POST" || "OPTIONS" || "PUT" || "DELETE" || "PATCH" || "HEAD" || "ALL", * ], * }, * AccessControlAllowCredentials: true || false, // required * AccessControlExposeHeaders: { // ResponseHeadersPolicyAccessControlExposeHeaders * Quantity: Number("int"), // required * Items: [ // AccessControlExposeHeadersList * "STRING_VALUE", * ], * }, * AccessControlMaxAgeSec: Number("int"), * OriginOverride: true || false, // required * }, * SecurityHeadersConfig: { // ResponseHeadersPolicySecurityHeadersConfig * XSSProtection: { // ResponseHeadersPolicyXSSProtection * Override: true || false, // required * Protection: true || false, // required * ModeBlock: true || false, * ReportUri: "STRING_VALUE", * }, * FrameOptions: { // ResponseHeadersPolicyFrameOptions * Override: true || false, // required * FrameOption: "DENY" || "SAMEORIGIN", // required * }, * ReferrerPolicy: { // ResponseHeadersPolicyReferrerPolicy * Override: true || false, // required * ReferrerPolicy: "no-referrer" || "no-referrer-when-downgrade" || "origin" || "origin-when-cross-origin" || "same-origin" || "strict-origin" || "strict-origin-when-cross-origin" || "unsafe-url", // required * }, * ContentSecurityPolicy: { // ResponseHeadersPolicyContentSecurityPolicy * Override: true || false, // required * ContentSecurityPolicy: "STRING_VALUE", // required * }, * ContentTypeOptions: { // ResponseHeadersPolicyContentTypeOptions * Override: true || false, // required * }, * StrictTransportSecurity: { // ResponseHeadersPolicyStrictTransportSecurity * Override: true || false, // required * IncludeSubdomains: true || false, * Preload: true || false, * AccessControlMaxAgeSec: Number("int"), // required * }, * }, * ServerTimingHeadersConfig: { // ResponseHeadersPolicyServerTimingHeadersConfig * Enabled: true || false, // required * SamplingRate: Number("double"), * }, * CustomHeadersConfig: { // ResponseHeadersPolicyCustomHeadersConfig * Quantity: Number("int"), // required * Items: [ // ResponseHeadersPolicyCustomHeaderList * { // ResponseHeadersPolicyCustomHeader * Header: "STRING_VALUE", // required * Value: "STRING_VALUE", // required * Override: true || false, // required * }, * ], * }, * RemoveHeadersConfig: { // ResponseHeadersPolicyRemoveHeadersConfig * Quantity: Number("int"), // required * Items: [ // ResponseHeadersPolicyRemoveHeaderList * { // ResponseHeadersPolicyRemoveHeader * Header: "STRING_VALUE", // required * }, * ], * }, * }, * Id: "STRING_VALUE", // required * IfMatch: "STRING_VALUE", * }; * const command = new UpdateResponseHeadersPolicyCommand(input); * const response = await client.send(command); * // { // UpdateResponseHeadersPolicyResult * // ResponseHeadersPolicy: { // ResponseHeadersPolicy * // Id: "STRING_VALUE", // required * // LastModifiedTime: new Date("TIMESTAMP"), // required * // ResponseHeadersPolicyConfig: { // ResponseHeadersPolicyConfig * // Comment: "STRING_VALUE", * // Name: "STRING_VALUE", // required * // CorsConfig: { // ResponseHeadersPolicyCorsConfig * // AccessControlAllowOrigins: { // ResponseHeadersPolicyAccessControlAllowOrigins * // Quantity: Number("int"), // required * // Items: [ // AccessControlAllowOriginsList // required * // "STRING_VALUE", * // ], * // }, * // AccessControlAllowHeaders: { // ResponseHeadersPolicyAccessControlAllowHeaders * // Quantity: Number("int"), // required * // Items: [ // AccessControlAllowHeadersList // required * // "STRING_VALUE", * // ], * // }, * // AccessControlAllowMethods: { // ResponseHeadersPolicyAccessControlAllowMethods * // Quantity: Number("int"), // required * // Items: [ // AccessControlAllowMethodsList // required * // "GET" || "POST" || "OPTIONS" || "PUT" || "DELETE" || "PATCH" || "HEAD" || "ALL", * // ], * // }, * // AccessControlAllowCredentials: true || false, // required * // AccessControlExposeHeaders: { // ResponseHeadersPolicyAccessControlExposeHeaders * // Quantity: Number("int"), // required * // Items: [ // AccessControlExposeHeadersList * // "STRING_VALUE", * // ], * // }, * // AccessControlMaxAgeSec: Number("int"), * // OriginOverride: true || false, // required * // }, * // SecurityHeadersConfig: { // ResponseHeadersPolicySecurityHeadersConfig * // XSSProtection: { // ResponseHeadersPolicyXSSProtection * // Override: true || false, // required * // Protection: true || false, // required * // ModeBlock: true || false, * // ReportUri: "STRING_VALUE", * // }, * // FrameOptions: { // ResponseHeadersPolicyFrameOptions * // Override: true || false, // required * // FrameOption: "DENY" || "SAMEORIGIN", // required * // }, * // ReferrerPolicy: { // ResponseHeadersPolicyReferrerPolicy * // Override: true || false, // required * // ReferrerPolicy: "no-referrer" || "no-referrer-when-downgrade" || "origin" || "origin-when-cross-origin" || "same-origin" || "strict-origin" || "strict-origin-when-cross-origin" || "unsafe-url", // required * // }, * // ContentSecurityPolicy: { // ResponseHeadersPolicyContentSecurityPolicy * // Override: true || false, // required * // ContentSecurityPolicy: "STRING_VALUE", // required * // }, * // ContentTypeOptions: { // ResponseHeadersPolicyContentTypeOptions * // Override: true || false, // required * // }, * // StrictTransportSecurity: { // ResponseHeadersPolicyStrictTransportSecurity * // Override: true || false, // required * // IncludeSubdomains: true || false, * // Preload: true || false, * // AccessControlMaxAgeSec: Number("int"), // required * // }, * // }, * // ServerTimingHeadersConfig: { // ResponseHeadersPolicyServerTimingHeadersConfig * // Enabled: true || false, // required * // SamplingRate: Number("double"), * // }, * // CustomHeadersConfig: { // ResponseHeadersPolicyCustomHeadersConfig * // Quantity: Number("int"), // required * // Items: [ // ResponseHeadersPolicyCustomHeaderList * // { // ResponseHeadersPolicyCustomHeader * // Header: "STRING_VALUE", // required * // Value: "STRING_VALUE", // required * // Override: true || false, // required * // }, * // ], * // }, * // RemoveHeadersConfig: { // ResponseHeadersPolicyRemoveHeadersConfig * // Quantity: Number("int"), // required * // Items: [ // ResponseHeadersPolicyRemoveHeaderList * // { // ResponseHeadersPolicyRemoveHeader * // Header: "STRING_VALUE", // required * // }, * // ], * // }, * // }, * // }, * // ETag: "STRING_VALUE", * // }; * * ``` * * @param UpdateResponseHeadersPolicyCommandInput - {@link UpdateResponseHeadersPolicyCommandInput} * @returns {@link UpdateResponseHeadersPolicyCommandOutput} * @see {@link UpdateResponseHeadersPolicyCommandInput} for command's `input` shape. * @see {@link UpdateResponseHeadersPolicyCommandOutput} 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 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 InvalidIfMatchVersion} (client fault) *

The If-Match version is missing or not valid.

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

The response headers policy does not exist.

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

The precondition in one or more of the request fields evaluated to false.

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

A response headers policy with this name already exists. You must provide a unique name. To modify an existing response headers policy, use UpdateResponseHeadersPolicy.

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

The length of the Content-Security-Policy header value in the response headers policy exceeds the maximum.

For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

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

The number of custom headers in the response headers policy exceeds the maximum.

For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

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

The number of headers in RemoveHeadersConfig in the response headers policy exceeds the maximum.

For more information, see Quotas (formerly known as limits) in the Amazon CloudFront Developer Guide.

* * @throws {@link CloudFrontServiceException} *

Base exception class for all service exceptions from CloudFront service.

* * * @public */ export declare class UpdateResponseHeadersPolicyCommand extends UpdateResponseHeadersPolicyCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: UpdateResponseHeadersPolicyRequest; output: UpdateResponseHeadersPolicyResult; }; sdk: { input: UpdateResponseHeadersPolicyCommandInput; output: UpdateResponseHeadersPolicyCommandOutput; }; }; }