{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://ledyi.com/schemas/certifications/2.0.0/schema.json",
  "title": "Certifications catalog",
  "description": "Use the JSON catalog to find certificates and compliance reports by standard, reference or product category. JSON and Markdown contain the complete published catalog. Query parameters do not filter or paginate these representations; filter the returned documents locally.",
  "type": "object",
  "properties": {
    "schema": {
      "type": "string",
      "format": "uri"
    },
    "canonicalUrl": {
      "type": "string",
      "format": "uri"
    },
    "sourceUpdatedAt": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
      "description": "sourceUpdatedAt is the update time of the source catalog record, not the PDF revision, certificate issue date or expiry date. Use ETag and If-None-Match for HTTP freshness checks."
    },
    "total": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991,
      "description": "Derived from documents.length; the complete catalog, not a page count."
    },
    "usageNotes": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      }
    },
    "links": {
      "type": "object",
      "properties": {
        "self": {
          "type": "string",
          "format": "uri"
        },
        "markdown": {
          "type": "string",
          "format": "uri"
        },
        "openapi": {
          "type": "string",
          "format": "uri"
        }
      },
      "required": [
        "self",
        "markdown",
        "openapi"
      ],
      "additionalProperties": false
    },
    "kind": {
      "type": "string",
      "const": "certifications"
    },
    "documents": {
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "minLength": 1
          },
          "standard": {
            "type": "string",
            "enum": [
              "UL",
              "ETL",
              "CE",
              "CB",
              "RoHS",
              "REACH"
            ]
          },
          "title": {
            "type": "string",
            "minLength": 1
          },
          "kind": {
            "type": "string",
            "minLength": 1
          },
          "reference": {
            "type": "string",
            "minLength": 1
          },
          "productTags": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "neon",
                "strip",
                "sheet",
                "wall-washer",
                "linear"
              ]
            },
            "description": "Product tags help you find documents; they do not confirm certification for every product in a category. Read the original PDF to verify the covered models, standards and validity before making a compliance claim."
          },
          "download": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "mode": {
                    "type": "string",
                    "const": "public"
                  },
                  "pdf": {
                    "type": "object",
                    "properties": {
                      "url": {
                        "type": "string",
                        "format": "uri"
                      },
                      "mimeType": {
                        "type": "string",
                        "const": "application/pdf"
                      },
                      "downloadUrl": {
                        "type": "string",
                        "format": "uri"
                      }
                    },
                    "required": [
                      "url",
                      "mimeType",
                      "downloadUrl"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "mode",
                  "pdf"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "mode": {
                    "type": "string",
                    "enum": [
                      "email",
                      "approval"
                    ]
                  },
                  "requestUrl": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "mode",
                  "requestUrl"
                ],
                "additionalProperties": false
              }
            ]
          }
        },
        "required": [
          "key",
          "standard",
          "title",
          "kind",
          "reference",
          "productTags",
          "download"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "schema",
    "canonicalUrl",
    "sourceUpdatedAt",
    "total",
    "usageNotes",
    "links",
    "kind",
    "documents"
  ],
  "additionalProperties": false
}
