{
 "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": {
      "enum": [
       "ALL",
       "DELETE",
       "GET",
       "HEAD",
       "OPTIONS",
       "PATCH",
       "POST",
       "PUT"
      ],
      "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": 0.0001,
     "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"
  }
 },
 "primaryIdentifier": [
  "/properties/Id"
 ],
 "properties": {
  "Id": {
   "type": "string"
  },
  "LastModifiedTime": {
   "type": "string"
  },
  "ResponseHeadersPolicyConfig": {
   "$ref": "#/definitions/ResponseHeadersPolicyConfig"
  }
 },
 "readOnlyProperties": [
  "/properties/Id",
  "/properties/LastModifiedTime"
 ],
 "required": [
  "ResponseHeadersPolicyConfig"
 ],
 "tagging": {
  "cloudFormationSystemTags": false,
  "tagOnCreate": false,
  "tagUpdatable": false,
  "taggable": false
 },
 "typeName": "AWS::CloudFront::ResponseHeadersPolicy"
}
