{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--aws-cloudfront-responseheaderspolicy.json",
  "title": "AWSCloudFrontResponseHeadersPolicyProperties",
  "description": "Resource Type definition for AWS::CloudFront::ResponseHeadersPolicy. Source:- No source definition found, add manually please",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/lalcebo/json-schema/master/serverless/resources/cloudformation-modified/aws-cloudfront-responseheaderspolicy.json",
    "sourceSha256": "9b663b6fc73bf47ccd8f79b5cbcf27e448cf4f0eebea678d777d313d3c4d7c34"
  },
  "type": "object",
  "properties": {
    "ResponseHeadersPolicyConfig": {
      "$ref": "#/$defs/ResponseHeadersPolicyConfig"
    }
  },
  "$defs": {
    "AccessControlAllowHeaders": {
      "title": "AWSCloudFrontResponseHeadersPolicyAccessControlAllowHeadersDefinition",
      "properties": {
        "Items": {
          "insertionOrder": false,
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "Items"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "AccessControlAllowMethods": {
      "title": "AWSCloudFrontResponseHeadersPolicyAccessControlAllowMethodsDefinition",
      "properties": {
        "Items": {
          "insertionOrder": false,
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "Items"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "AccessControlAllowOrigins": {
      "title": "AWSCloudFrontResponseHeadersPolicyAccessControlAllowOriginsDefinition",
      "properties": {
        "Items": {
          "insertionOrder": false,
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "Items"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "AccessControlExposeHeaders": {
      "title": "AWSCloudFrontResponseHeadersPolicyAccessControlExposeHeadersDefinition",
      "properties": {
        "Items": {
          "insertionOrder": false,
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "Items"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "ContentSecurityPolicy": {
      "title": "AWSCloudFrontResponseHeadersPolicyContentSecurityPolicyDefinition",
      "properties": {
        "ContentSecurityPolicy": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Override": {
          "type": "boolean"
        }
      },
      "required": [
        "Override",
        "ContentSecurityPolicy"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "ContentTypeOptions": {
      "title": "AWSCloudFrontResponseHeadersPolicyContentTypeOptionsDefinition",
      "properties": {
        "Override": {
          "type": "boolean"
        }
      },
      "required": [
        "Override"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "CorsConfig": {
      "title": "AWSCloudFrontResponseHeadersPolicyCorsConfigDefinition",
      "properties": {
        "AccessControlAllowCredentials": {
          "type": "boolean"
        },
        "AccessControlAllowHeaders": {
          "$ref": "#/$defs/AccessControlAllowHeaders"
        },
        "AccessControlAllowMethods": {
          "$ref": "#/$defs/AccessControlAllowMethods"
        },
        "AccessControlAllowOrigins": {
          "$ref": "#/$defs/AccessControlAllowOrigins"
        },
        "AccessControlExposeHeaders": {
          "$ref": "#/$defs/AccessControlExposeHeaders"
        },
        "AccessControlMaxAgeSec": {
          "type": "integer"
        },
        "OriginOverride": {
          "type": "boolean"
        }
      },
      "required": [
        "AccessControlAllowOrigins",
        "AccessControlAllowHeaders",
        "AccessControlAllowMethods",
        "AccessControlAllowCredentials",
        "OriginOverride"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "CustomHeader": {
      "title": "AWSCloudFrontResponseHeadersPolicyCustomHeaderDefinition",
      "properties": {
        "Header": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Override": {
          "type": "boolean"
        },
        "Value": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "Header",
        "Value",
        "Override"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "CustomHeadersConfig": {
      "title": "AWSCloudFrontResponseHeadersPolicyCustomHeadersConfigDefinition",
      "properties": {
        "Items": {
          "insertionOrder": false,
          "items": {
            "$ref": "#/$defs/CustomHeader"
          },
          "type": "array",
          "uniqueItems": false
        }
      },
      "required": [
        "Items"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "FrameOptions": {
      "title": "AWSCloudFrontResponseHeadersPolicyFrameOptionsDefinition",
      "properties": {
        "FrameOption": {
          "oneOf": [
            {
              "pattern": "^(DENY|SAMEORIGIN)$",
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "Override": {
          "type": "boolean"
        }
      },
      "required": [
        "Override",
        "FrameOption"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "ReferrerPolicy": {
      "title": "AWSCloudFrontResponseHeadersPolicyReferrerPolicyDefinition",
      "properties": {
        "Override": {
          "type": "boolean"
        },
        "ReferrerPolicy": {
          "oneOf": [
            {
              "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"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "Override",
        "ReferrerPolicy"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "RemoveHeader": {
      "title": "AWSCloudFrontResponseHeadersPolicyRemoveHeaderDefinition",
      "properties": {
        "Header": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "Header"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "RemoveHeadersConfig": {
      "title": "AWSCloudFrontResponseHeadersPolicyRemoveHeadersConfigDefinition",
      "properties": {
        "Items": {
          "insertionOrder": false,
          "items": {
            "$ref": "#/$defs/RemoveHeader"
          },
          "type": "array",
          "uniqueItems": true
        }
      },
      "required": [
        "Items"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "ResponseHeadersPolicyConfig": {
      "title": "AWSCloudFrontResponseHeadersPolicyResponseHeadersPolicyConfigDefinition",
      "properties": {
        "Comment": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "CorsConfig": {
          "$ref": "#/$defs/CorsConfig"
        },
        "CustomHeadersConfig": {
          "$ref": "#/$defs/CustomHeadersConfig"
        },
        "Name": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        },
        "RemoveHeadersConfig": {
          "$ref": "#/$defs/RemoveHeadersConfig"
        },
        "SecurityHeadersConfig": {
          "$ref": "#/$defs/SecurityHeadersConfig"
        },
        "ServerTimingHeadersConfig": {
          "$ref": "#/$defs/ServerTimingHeadersConfig"
        }
      },
      "required": [
        "Name"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "SecurityHeadersConfig": {
      "title": "AWSCloudFrontResponseHeadersPolicySecurityHeadersConfigDefinition",
      "properties": {
        "ContentSecurityPolicy": {
          "$ref": "#/$defs/ContentSecurityPolicy"
        },
        "ContentTypeOptions": {
          "$ref": "#/$defs/ContentTypeOptions"
        },
        "FrameOptions": {
          "$ref": "#/$defs/FrameOptions"
        },
        "ReferrerPolicy": {
          "$ref": "#/$defs/ReferrerPolicy"
        },
        "StrictTransportSecurity": {
          "$ref": "#/$defs/StrictTransportSecurity"
        },
        "XSSProtection": {
          "$ref": "#/$defs/XSSProtection"
        }
      },
      "required": [],
      "type": "object",
      "additionalProperties": false
    },
    "ServerTimingHeadersConfig": {
      "title": "AWSCloudFrontResponseHeadersPolicyServerTimingHeadersConfigDefinition",
      "properties": {
        "Enabled": {
          "type": "boolean"
        },
        "SamplingRate": {
          "maximum": 100,
          "minimum": 0,
          "multipleOf": 0.0001,
          "type": "number"
        }
      },
      "required": [
        "Enabled"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "StrictTransportSecurity": {
      "title": "AWSCloudFrontResponseHeadersPolicyStrictTransportSecurityDefinition",
      "properties": {
        "AccessControlMaxAgeSec": {
          "type": "integer"
        },
        "IncludeSubdomains": {
          "type": "boolean"
        },
        "Override": {
          "type": "boolean"
        },
        "Preload": {
          "type": "boolean"
        }
      },
      "required": [
        "Override",
        "AccessControlMaxAgeSec"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "XSSProtection": {
      "title": "AWSCloudFrontResponseHeadersPolicyXSSProtectionDefinition",
      "properties": {
        "ModeBlock": {
          "type": "boolean"
        },
        "Override": {
          "type": "boolean"
        },
        "Protection": {
          "type": "boolean"
        },
        "ReportUri": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "$ref": "https://catalog.lintel.tools/schemas/schemastore/serverless-framework-configuration/_shared/latest--cf.functions.json#/Aws_CF_FunctionString"
            }
          ]
        }
      },
      "required": [
        "Override",
        "Protection"
      ],
      "type": "object",
      "additionalProperties": false
    }
  },
  "additionalProperties": false,
  "typeName": "AWS::CloudFront::ResponseHeadersPolicy",
  "primaryIdentifier": [
    "/properties/Id"
  ],
  "taggable": false,
  "readOnlyProperties": [
    "/properties/Id",
    "/properties/LastModifiedTime"
  ],
  "required": [
    "ResponseHeadersPolicyConfig"
  ]
}
