{
  "$ref": "#/definitions/Component",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "Component": {
      "additionalProperties": false,
      "properties": {
        "allowdecline": {
          "enum": [
            "yes",
            "no"
          ],
          "type": "string"
        },
        "capabilities": {
          "$ref": "#/definitions/ICapabilities"
        },
        "cookielawuri4more": {
          "type": "string"
        },
        "i18nlang": {
          "type": "string"
        },
        "id": {
          "type": "string"
        },
        "style": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "ICapabilities": {
      "additionalProperties": false,
      "properties": {
        "groups": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "_id": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "_id",
              "label",
              "type"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "items": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "_id": {
                "type": "string"
              },
              "cookieExpirationInSeconds": {
                "type": "number"
              },
              "cookieName": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "descriptionUrl": {
                "type": "string"
              },
              "groupId": {
                "type": "string"
              },
              "isMandatory": {
                "type": "boolean"
              },
              "isMarketing": {
                "type": "boolean"
              },
              "isSessionCookie": {
                "type": "boolean"
              },
              "isTechnical": {
                "type": "boolean"
              },
              "isThirdPartyOwned": {
                "type": "boolean"
              },
              "scope": {
                "type": "string"
              },
              "thirdCompanyName": {
                "type": "string"
              },
              "title": {
                "type": "string"
              }
            },
            "required": [
              "groupId",
              "title",
              "scope",
              "_id",
              "cookieName"
            ],
            "type": "object"
          },
          "type": "array"
        }
      },
      "required": [
        "groups",
        "items"
      ],
      "type": "object"
    }
  }
}
