{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type":"object",
  "title": "synchronize_claim_definitions_start_command",
  "description": "Synchronize claim definitions start command schema.",
  "additionalProperties": false,
  "required": ["claim_definition_groups"],
  "properties": {
    "claim_definition_groups": {
      "type": "array",
      "description": "An array of claim definition groups to be registered.",
      "items": {
        "$ref": "#/definitions/claim_definition_group",
        "description": "Defines a group of related claim definitions"
      },
      "minItems": 1
    }
  },
  "definitions": {
    "claim_definition_group": {
      "type": "object",
      "title": "claim_definition_group",
      "additionalProperties": false,
      "required": [
        "title",
        "selection_mode",
        "claim_definitions"
      ],
      "properties": {
        "title": {
          "$ref": "../common.json#/definitions/non_empty_string",
          "description": "Unique claim definition group title."
        },
        "selection_mode": {
          "type": "string",
          "title": "claim_selection_mode",
          "description": "Selection options for a claim definition group.",
          "enum": [
            "SINGLE",
            "MULTIPLE"
          ]
        },
        "claim_definitions": {
          "type": "array",
          "description": "An array of claim definitions.",
          "items": {
            "$ref": "#/definitions/claim_definition",
            "description": "Definition of a claim to be included in a claim set."
          },
          "minItems": 1
        }
      }
    },
    "claim_definition": {
      "type": "object",
      "title": "claim_definition",
      "additionalProperties": false,
      "required": [
        "claim",
        "title"
      ],
      "properties": {
        "claim": {
          "$ref": "../common.json#/definitions/non_empty_string",
          "description": "The claim."
        },
        "title": {
          "$ref": "../common.json#/definitions/non_empty_string",
          "description": "Display name for the claim."
        }
      }
    }
  }
}
