Full Competition draws schema

Competition Draws:

{
  "$id": "TennisDraw$",
  "type": "object",
  "patternProperties": {
    "^(?:OMS|MD|QXD|LD|QLS|XD|LS|QLD|QMD|MS)$": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "competitionId": {
          "type": "string"
        },
        "competitionType": {
          "type": "string",
          "enum": [
            "OMS",
            "XD",
            "",
            "LS",
            "MD",
            "QMD",
            "QLD",
            "QLS",
            "QXD",
            "LD"
          ]
        },
        "drawSize": {
          "type": "integer"
        },
        "entrySize": {
          "type": "integer"
        },
        "numberOfPools": {
          "type": "integer"
        },
        "matches": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "eventId": {
                "type": "string"
              },
              "round": {
                "type": "integer"
              },
              "stageType": {
                "oneOf": [
                  {
                    "type": "object",
                    "description": "Calculate an estimate of when the match will be played based\non the teams and date supplied. Only if at least one of the\nteams is known then a date can be calculated.",
                    "additionalProperties": false,
                    "properties": {
                      "groupId": {
                        "type": "integer"
                      }
                    },
                    "required": [
                      "groupId"
                    ]
                  },
                  {
                    "type": "string",
                    "enum": [
                      "KnockoutStageType"
                    ]
                  }
                ]
              },
              "groupId": {
                "type": "integer"
              },
              "teamA": {
                "properties": {
                  "status": {
                    "type": "string"
                  },
                  "team": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "player1": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "firstName": {
                            "type": "string"
                          },
                          "lastName": {
                            "type": "string"
                          },
                          "country": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "firstName",
                          "lastName",
                          "country"
                        ]
                      },
                      "player2": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "firstName": {
                            "type": "string"
                          },
                          "lastName": {
                            "type": "string"
                          },
                          "country": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "firstName",
                          "lastName",
                          "country"
                        ]
                      },
                      "seed": {
                        "type": "integer"
                      },
                      "entryType": {
                        "type": "string",
                        "enum": [
                          "QualifierEntry",
                          "Wildcard",
                          "SpecialExempt",
                          "LuckyLoser",
                          "Standard",
                          "Alternate",
                          "ProtectedRank"
                        ]
                      }
                    },
                    "required": [
                      "player1",
                      "entryType"
                    ]
                  }
                }
              },
              "teamB": {
                "properties": {
                  "status": {
                    "type": "string"
                  },
                  "team": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "player1": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "firstName": {
                            "type": "string"
                          },
                          "lastName": {
                            "type": "string"
                          },
                          "country": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "firstName",
                          "lastName",
                          "country"
                        ]
                      },
                      "player2": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "firstName": {
                            "type": "string"
                          },
                          "lastName": {
                            "type": "string"
                          },
                          "country": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "firstName",
                          "lastName",
                          "country"
                        ]
                      },
                      "seed": {
                        "type": "integer"
                      },
                      "entryType": {
                        "type": "string",
                        "enum": [
                          "QualifierEntry",
                          "Wildcard",
                          "SpecialExempt",
                          "LuckyLoser",
                          "Standard",
                          "Alternate",
                          "ProtectedRank"
                        ]
                      }
                    },
                    "required": [
                      "player1",
                      "entryType"
                    ]
                  }
                }
              },
              "estimatedDate": {
                "type": "string",
                "format": "date"
              },
              "estimatedTime": {
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "eventId",
              "round",
              "stageType",
              "groupId",
              "teamA",
              "teamB",
              "estimatedDate",
              "estimatedTime"
            ]
          }
        }
      },
      "required": [
        "competitionId",
        "competitionType",
        "drawSize",
        "entrySize",
        "numberOfPools",
        "matches"
      ]
    }
  }
}

Last updated