{
  "additionalProperties" : false,
  "definitions" : {
    "AccessControlAllowHeaders" : {
      "additionalProperties" : false,
      "properties" : {
        "Items" : {
          "insertionOrder" : false,
          "items" : {
            "type" : "string"
          },
          "type" : "array"
        }
      },
      "required" : [ "Items" ],
      "type" : "object"
    },
    "AccessControlAllowMethods" : {
      "additionalProperties" : false,
      "properties" : {
        "Items" : {
          "insertionOrder" : false,
          "items" : {
            "type" : "string"
          },
          "type" : "array"
        }
      },
      "required" : [ "Items" ],
      "type" : "object"
    },
    "AccessControlAllowOrigins" : {
      "additionalProperties" : false,
      "properties" : {
        "Items" : {
          "insertionOrder" : false,
          "items" : {
            "type" : "string"
          },
          "type" : "array"
        }
      },
      "required" : [ "Items" ],
      "type" : "object"
    },
    "AccessControlExposeHeaders" : {
      "additionalProperties" : false,
      "properties" : {
        "Items" : {
          "insertionOrder" : false,
          "items" : {
            "type" : "string"
          },
          "type" : "array"
        }
      },
      "required" : [ "Items" ],
      "type" : "object"
    },
    "ContentSecurityPolicy" : {
      "additionalProperties" : false,
      "properties" : {
        "ContentSecurityPolicy" : {
          "type" : "string"
        },
        "Override" : {
          "type" : "boolean"
        }
      },
      "required" : [ "Override", "ContentSecurityPolicy" ],
      "type" : "object"
    },
    "ContentTypeOptions" : {
      "additionalProperties" : false,
      "properties" : {
        "Override" : {
          "type" : "boolean"
        }
      },
      "required" : [ "Override" ],
      "type" : "object"
    },
    "CorsConfig" : {
      "additionalProperties" : false,
      "properties" : {
        "AccessControlAllowCredentials" : {
          "type" : "boolean"
        },
        "AccessControlAllowHeaders" : {
          "$ref" : "#/definitions/AccessControlAllowHeaders"
        },
        "AccessControlAllowMethods" : {
          "$ref" : "#/definitions/AccessControlAllowMethods"
        },
        "AccessControlAllowOrigins" : {
          "$ref" : "#/definitions/AccessControlAllowOrigins"
        },
        "AccessControlExposeHeaders" : {
          "$ref" : "#/definitions/AccessControlExposeHeaders"
        },
        "AccessControlMaxAgeSec" : {
          "type" : "integer"
        },
        "OriginOverride" : {
          "type" : "boolean"
        }
      },
      "required" : [ "AccessControlAllowOrigins", "AccessControlAllowHeaders", "AccessControlAllowMethods", "AccessControlAllowCredentials", "OriginOverride" ],
      "type" : "object"
    },
    "CustomHeader" : {
      "additionalProperties" : false,
      "properties" : {
        "Header" : {
          "type" : "string"
        },
        "Override" : {
          "type" : "boolean"
        },
        "Value" : {
          "type" : "string"
        }
      },
      "required" : [ "Header", "Value", "Override" ],
      "type" : "object"
    },
    "CustomHeadersConfig" : {
      "additionalProperties" : false,
      "properties" : {
        "Items" : {
          "insertionOrder" : false,
          "items" : {
            "$ref" : "#/definitions/CustomHeader"
          },
          "type" : "array",
          "uniqueItems" : false
        }
      },
      "required" : [ "Items" ],
      "type" : "object"
    },
    "FrameOptions" : {
      "additionalProperties" : false,
      "properties" : {
        "FrameOption" : {
          "pattern" : "^(DENY|SAMEORIGIN)$",
          "type" : "string"
        },
        "Override" : {
          "type" : "boolean"
        }
      },
      "required" : [ "Override", "FrameOption" ],
      "type" : "object"
    },
    "ReferrerPolicy" : {
      "additionalProperties" : false,
      "properties" : {
        "Override" : {
          "type" : "boolean"
        },
        "ReferrerPolicy" : {
          "pattern" : "^(no-referrer|no-referrer-when-downgrade|origin|origin-when-cross-origin|same-origin|strict-origin|strict-origin-when-cross-origin|unsafe-url)$",
          "type" : "string"
        }
      },
      "required" : [ "Override", "ReferrerPolicy" ],
      "type" : "object"
    },
    "RemoveHeader" : {
      "additionalProperties" : false,
      "properties" : {
        "Header" : {
          "type" : "string"
        }
      },
      "required" : [ "Header" ],
      "type" : "object"
    },
    "RemoveHeadersConfig" : {
      "additionalProperties" : false,
      "properties" : {
        "Items" : {
          "insertionOrder" : false,
          "items" : {
            "$ref" : "#/definitions/RemoveHeader"
          },
          "type" : "array",
          "uniqueItems" : true
        }
      },
      "required" : [ "Items" ],
      "type" : "object"
    },
    "ResponseHeadersPolicyConfig" : {
      "additionalProperties" : false,
      "properties" : {
        "Comment" : {
          "type" : "string"
        },
        "CorsConfig" : {
          "$ref" : "#/definitions/CorsConfig"
        },
        "CustomHeadersConfig" : {
          "$ref" : "#/definitions/CustomHeadersConfig"
        },
        "Name" : {
          "type" : "string"
        },
        "RemoveHeadersConfig" : {
          "$ref" : "#/definitions/RemoveHeadersConfig"
        },
        "SecurityHeadersConfig" : {
          "$ref" : "#/definitions/SecurityHeadersConfig"
        },
        "ServerTimingHeadersConfig" : {
          "$ref" : "#/definitions/ServerTimingHeadersConfig"
        }
      },
      "required" : [ "Name" ],
      "type" : "object"
    },
    "SecurityHeadersConfig" : {
      "additionalProperties" : false,
      "properties" : {
        "ContentSecurityPolicy" : {
          "$ref" : "#/definitions/ContentSecurityPolicy"
        },
        "ContentTypeOptions" : {
          "$ref" : "#/definitions/ContentTypeOptions"
        },
        "FrameOptions" : {
          "$ref" : "#/definitions/FrameOptions"
        },
        "ReferrerPolicy" : {
          "$ref" : "#/definitions/ReferrerPolicy"
        },
        "StrictTransportSecurity" : {
          "$ref" : "#/definitions/StrictTransportSecurity"
        },
        "XSSProtection" : {
          "$ref" : "#/definitions/XSSProtection"
        }
      },
      "required" : [ ],
      "type" : "object"
    },
    "ServerTimingHeadersConfig" : {
      "additionalProperties" : false,
      "properties" : {
        "Enabled" : {
          "type" : "boolean"
        },
        "SamplingRate" : {
          "maximum" : 100,
          "minimum" : 0,
          "multipleOf" : 1.0E-4,
          "type" : "number"
        }
      },
      "required" : [ "Enabled" ],
      "type" : "object"
    },
    "StrictTransportSecurity" : {
      "additionalProperties" : false,
      "properties" : {
        "AccessControlMaxAgeSec" : {
          "type" : "integer"
        },
        "IncludeSubdomains" : {
          "type" : "boolean"
        },
        "Override" : {
          "type" : "boolean"
        },
        "Preload" : {
          "type" : "boolean"
        }
      },
      "required" : [ "Override", "AccessControlMaxAgeSec" ],
      "type" : "object"
    },
    "XSSProtection" : {
      "additionalProperties" : false,
      "properties" : {
        "ModeBlock" : {
          "type" : "boolean"
        },
        "Override" : {
          "type" : "boolean"
        },
        "Protection" : {
          "type" : "boolean"
        },
        "ReportUri" : {
          "type" : "string"
        }
      },
      "required" : [ "Override", "Protection" ],
      "type" : "object"
    }
  },
  "description" : "Resource Type definition for AWS::CloudFront::ResponseHeadersPolicy",
  "handlers" : {
    "create" : {
      "permissions" : [ "cloudfront:CreateResponseHeadersPolicy" ]
    },
    "delete" : {
      "permissions" : [ "cloudfront:DeleteResponseHeadersPolicy" ]
    },
    "list" : {
      "permissions" : [ "cloudfront:ListResponseHeadersPolicies" ]
    },
    "read" : {
      "permissions" : [ "cloudfront:GetResponseHeadersPolicy" ]
    },
    "update" : {
      "permissions" : [ "cloudfront:UpdateResponseHeadersPolicy" ]
    }
  },
  "primaryIdentifier" : [ "/properties/Id" ],
  "properties" : {
    "Id" : {
      "type" : "string"
    },
    "LastModifiedTime" : {
      "type" : "string"
    },
    "ResponseHeadersPolicyConfig" : {
      "$ref" : "#/definitions/ResponseHeadersPolicyConfig"
    }
  },
  "readOnlyProperties" : [ "/properties/Id", "/properties/LastModifiedTime" ],
  "required" : [ "ResponseHeadersPolicyConfig" ],
  "taggable" : false,
  "typeName" : "AWS::CloudFront::ResponseHeadersPolicy"
}