"use strict";
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
Object.defineProperty(exports, "__esModule", { value: true });
exports.ResponseHeadersPolicy = void 0;
const pulumi = require("@pulumi/pulumi");
const utilities = require("../utilities");
/**
 * A response headers policy.
 *  A response headers policy contains information about a set of HTTP response headers.
 *  After you create a response headers policy, you can use its ID to attach it to one or more cache behaviors in a CloudFront distribution. When it's attached to a cache behavior, the response headers policy affects the HTTP headers that CloudFront includes in HTTP responses to requests that match the cache behavior. CloudFront adds or removes response headers according to the configuration of the response headers policy.
 *  For more information, see [Adding or removing HTTP headers in CloudFront responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/modifying-response-headers.html) in the *Amazon CloudFront Developer Guide*.
 */
class ResponseHeadersPolicy extends pulumi.CustomResource {
    /**
     * Get an existing ResponseHeadersPolicy resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name, id, opts) {
        return new ResponseHeadersPolicy(name, undefined, { ...opts, id: id });
    }
    /**
     * Returns true if the given object is an instance of ResponseHeadersPolicy.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj) {
        if (obj === undefined || obj === null) {
            return false;
        }
        return obj['__pulumiType'] === ResponseHeadersPolicy.__pulumiType;
    }
    /**
     * Create a ResponseHeadersPolicy resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name, args, opts) {
        let resourceInputs = {};
        opts = opts || {};
        if (!opts.id) {
            if (args?.responseHeadersPolicyConfig === undefined && !opts.urn) {
                throw new Error("Missing required property 'responseHeadersPolicyConfig'");
            }
            resourceInputs["responseHeadersPolicyConfig"] = args?.responseHeadersPolicyConfig;
            resourceInputs["awsId"] = undefined /*out*/;
            resourceInputs["lastModifiedTime"] = undefined /*out*/;
        }
        else {
            resourceInputs["awsId"] = undefined /*out*/;
            resourceInputs["lastModifiedTime"] = undefined /*out*/;
            resourceInputs["responseHeadersPolicyConfig"] = undefined /*out*/;
        }
        opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
        super(ResponseHeadersPolicy.__pulumiType, name, resourceInputs, opts);
    }
}
exports.ResponseHeadersPolicy = ResponseHeadersPolicy;
/** @internal */
ResponseHeadersPolicy.__pulumiType = 'aws-native:cloudfront:ResponseHeadersPolicy';
//# sourceMappingURL=responseHeadersPolicy.js.map