import { Value } from '../../../cloudformation/Value';
import { SecurityHeadersConfigProps } from './SecurityHeadersConfigProps';
import { RemoveHeadersConfigProps } from './RemoveHeadersConfigProps';
import { CorsConfigProps } from './CorsConfigProps';
import { ServerTimingHeadersConfigProps } from './ServerTimingHeadersConfigProps';
import { CustomHeadersConfigProps } from './CustomHeadersConfigProps';
/**
  A response headers policy configuration.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-responseheaderspolicy-responseheaderspolicyconfig.html">the AWS Docs</a>
*/
export interface ResponseHeadersPolicyConfigProps {
    /** <code>Comment</code>  <a name="cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-comment"></a>
  A comment to describe the response headers policy.<br />
  The comment cannot be longer than 128 characters.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    comment?: Value<string>;
    /** <code>SecurityHeadersConfig</code>  <a name="cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-securityheadersconfig"></a>
  A configuration for a set of security-related HTTP response headers.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    securityHeadersConfig?: SecurityHeadersConfigProps;
    /** <code>RemoveHeadersConfig</code>  <a name="cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-removeheadersconfig"></a>
  A configuration for a set of HTTP headers to remove from the HTTP response.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    removeHeadersConfig?: RemoveHeadersConfigProps;
    /** <code>CorsConfig</code>  <a name="cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-corsconfig"></a>
  A configuration for a set of HTTP response headers that are used for cross-origin resource sharing (CORS).<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    corsConfig?: CorsConfigProps;
    /** <code>ServerTimingHeadersConfig</code>  <a name="cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-servertimingheadersconfig"></a>
  A configuration for enabling the <code>Server-Timing</code> header in HTTP responses sent from CloudFront.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    serverTimingHeadersConfig?: ServerTimingHeadersConfigProps;
    /** <code>CustomHeadersConfig</code>  <a name="cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-customheadersconfig"></a>
  A configuration for a set of custom HTTP response headers.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    customHeadersConfig?: CustomHeadersConfigProps;
    /** <code>Name</code>  <a name="cfn-cloudfront-responseheaderspolicy-responseheaderspolicyconfig-name"></a>
  A name to identify the response headers policy.<br />
  The name must be unique for response headers policies in this AWS account.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    name: Value<string>;
}
