{
  "id": "https://standard.open-contracting.org/schema/1__1__5/versioned-release-validation-schema.json",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "Schema for a compiled, versioned Open Contracting Release.",
  "description": "Each release provides data about a single contracting process at a particular point in time. Releases can be used to notify users of new tenders, awards, contracts and other updates. Releases may repeat or update information provided previously in this contracting process. One contracting process may have many releases. A 'record' of a contracting process follows the same structure as a release, but combines information from multiple points in time into a single summary.",
  "type": "object",
  "properties": {
    "initiationType": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "releaseDate": {
            "format": "date-time",
            "type": "string"
          },
          "releaseID": {
            "type": "string"
          },
          "value": {
            "type": "string",
            "enum": [
              "tender"
            ],
            "codelist": "initiationType.csv",
            "openCodelist": false
          },
          "releaseTag": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    "parties": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/Organization"
      },
      "uniqueItems": true
    },
    "buyer": {
      "$ref": "#/definitions/OrganizationReferenceVersionedId"
    },
    "planning": {
      "$ref": "#/definitions/Planning"
    },
    "tender": {
      "$ref": "#/definitions/Tender"
    },
    "awards": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/Award"
      },
      "uniqueItems": true
    },
    "contracts": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/Contract"
      },
      "uniqueItems": true
    },
    "language": {
      "$ref": "#/definitions/StringNullVersioned"
    },
    "relatedProcesses": {
      "uniqueItems": true,
      "items": {
        "$ref": "#/definitions/RelatedProcess"
      },
      "type": "array"
    },
    "ocid": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "ocid",
    "initiationType"
  ],
  "definitions": {
    "Planning": {
      "type": "object",
      "properties": {
        "rationale": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "budget": {
          "$ref": "#/definitions/Budget"
        },
        "documents": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Document"
          }
        },
        "milestones": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Milestone"
          }
        }
      },
      "patternProperties": {
        "^(rationale_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "Tender": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "integer"
                ],
                "minLength": 1,
                "versionId": true
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "title": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "description": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "status": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "null"
                ],
                "codelist": "tenderStatus.csv",
                "openCodelist": false,
                "enum": [
                  "planning",
                  "planned",
                  "active",
                  "cancelled",
                  "unsuccessful",
                  "complete",
                  "withdrawn",
                  null
                ]
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "procuringEntity": {
          "$ref": "#/definitions/OrganizationReferenceVersionedId"
        },
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Item"
          },
          "uniqueItems": true
        },
        "value": {
          "$ref": "#/definitions/Value"
        },
        "minValue": {
          "$ref": "#/definitions/Value"
        },
        "procurementMethod": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "null"
                ],
                "codelist": "method.csv",
                "openCodelist": false,
                "enum": [
                  "open",
                  "selective",
                  "limited",
                  "direct",
                  null
                ]
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "procurementMethodDetails": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "procurementMethodRationale": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "mainProcurementCategory": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "null"
                ],
                "codelist": "procurementCategory.csv",
                "openCodelist": false,
                "enum": [
                  "goods",
                  "works",
                  "services",
                  null
                ]
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "additionalProcurementCategories": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string"
                },
                "codelist": "extendedProcurementCategory.csv",
                "openCodelist": true
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "awardCriteria": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "null"
                ],
                "codelist": "awardCriteria.csv",
                "openCodelist": true
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "awardCriteriaDetails": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "submissionMethod": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string"
                },
                "codelist": "submissionMethod.csv",
                "openCodelist": true
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "submissionMethodDetails": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "tenderPeriod": {
          "$ref": "#/definitions/Period"
        },
        "enquiryPeriod": {
          "$ref": "#/definitions/Period"
        },
        "hasEnquiries": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "eligibilityCriteria": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "awardPeriod": {
          "$ref": "#/definitions/Period"
        },
        "contractPeriod": {
          "$ref": "#/definitions/Period"
        },
        "numberOfTenderers": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "tenderers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/OrganizationReference"
          },
          "uniqueItems": true
        },
        "documents": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Document"
          }
        },
        "milestones": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Milestone"
          }
        },
        "amendments": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Amendment"
          }
        },
        "amendment": {
          "$ref": "#/definitions/Amendment",
          "deprecated": {
            "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.",
            "deprecatedVersion": "1.1"
          }
        }
      },
      "patternProperties": {
        "^(title_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        },
        "^(description_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        },
        "^(procurementMethodRationale_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        },
        "^(awardCriteriaDetails_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        },
        "^(submissionMethodDetails_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        },
        "^(eligibilityCriteria_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "Award": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": [
            "string",
            "integer"
          ],
          "minLength": 1
        },
        "title": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "description": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "status": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "null"
                ],
                "enum": [
                  "pending",
                  "active",
                  "cancelled",
                  "unsuccessful",
                  null
                ],
                "codelist": "awardStatus.csv",
                "openCodelist": false
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "date": {
          "$ref": "#/definitions/StringNullDateTimeVersioned"
        },
        "value": {
          "$ref": "#/definitions/Value"
        },
        "suppliers": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/OrganizationReference"
          },
          "uniqueItems": true
        },
        "items": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/definitions/Item"
          },
          "uniqueItems": true
        },
        "contractPeriod": {
          "$ref": "#/definitions/Period"
        },
        "documents": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Document"
          },
          "uniqueItems": true
        },
        "amendments": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Amendment"
          }
        },
        "amendment": {
          "$ref": "#/definitions/Amendment",
          "deprecated": {
            "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.",
            "deprecatedVersion": "1.1"
          }
        }
      },
      "patternProperties": {
        "^(title_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        },
        "^(description_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "Contract": {
      "type": "object",
      "required": [
        "id",
        "awardID"
      ],
      "properties": {
        "id": {
          "type": [
            "string",
            "integer"
          ],
          "minLength": 1
        },
        "awardID": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "integer"
                ],
                "minLength": 1
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "title": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "description": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "status": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "null"
                ],
                "enum": [
                  "pending",
                  "active",
                  "cancelled",
                  "terminated",
                  null
                ],
                "codelist": "contractStatus.csv",
                "openCodelist": false
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "period": {
          "$ref": "#/definitions/Period"
        },
        "value": {
          "$ref": "#/definitions/Value"
        },
        "items": {
          "type": "array",
          "minItems": 1,
          "items": {
            "$ref": "#/definitions/Item"
          },
          "uniqueItems": true
        },
        "dateSigned": {
          "$ref": "#/definitions/StringNullDateTimeVersioned"
        },
        "documents": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Document"
          },
          "uniqueItems": true
        },
        "implementation": {
          "$ref": "#/definitions/Implementation"
        },
        "relatedProcesses": {
          "uniqueItems": true,
          "items": {
            "$ref": "#/definitions/RelatedProcess"
          },
          "type": "array"
        },
        "milestones": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Milestone"
          }
        },
        "amendments": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Amendment"
          }
        },
        "amendment": {
          "$ref": "#/definitions/Amendment",
          "deprecated": {
            "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.",
            "deprecatedVersion": "1.1"
          }
        }
      },
      "patternProperties": {
        "^(title_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        },
        "^(description_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "Implementation": {
      "type": "object",
      "properties": {
        "transactions": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Transaction"
          },
          "uniqueItems": true
        },
        "milestones": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Milestone"
          },
          "uniqueItems": true
        },
        "documents": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/Document"
          },
          "uniqueItems": true
        }
      }
    },
    "Milestone": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": [
            "string",
            "integer"
          ],
          "minLength": 1
        },
        "title": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "type": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "null"
                ],
                "codelist": "milestoneType.csv",
                "openCodelist": true
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "description": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "code": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "dueDate": {
          "$ref": "#/definitions/StringNullDateTimeVersioned"
        },
        "dateMet": {
          "$ref": "#/definitions/StringNullDateTimeVersioned"
        },
        "dateModified": {
          "$ref": "#/definitions/StringNullDateTimeVersioned"
        },
        "status": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "null"
                ],
                "enum": [
                  "scheduled",
                  "met",
                  "notMet",
                  "partiallyMet",
                  null
                ],
                "codelist": "milestoneStatus.csv",
                "openCodelist": false
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "documents": {
          "type": "array",
          "deprecated": {
            "deprecatedVersion": "1.1",
            "description": "Inclusion of documents at the milestone level is now deprecated. Documentation should be attached in the tender, award, contract or implementation sections, and titles and descriptions used to highlight the related milestone. Publishers who wish to continue to provide documents at the milestone level should explicitly declare this by using the milestone documents extension."
          },
          "items": {
            "$ref": "#/definitions/Document"
          },
          "uniqueItems": true
        }
      },
      "patternProperties": {
        "^(title_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        },
        "^(description_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "Document": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": [
            "string",
            "integer"
          ],
          "minLength": 1
        },
        "documentType": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "null"
                ],
                "codelist": "documentType.csv",
                "openCodelist": true
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "title": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "description": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "url": {
          "$ref": "#/definitions/StringNullUriVersioned"
        },
        "datePublished": {
          "$ref": "#/definitions/StringNullDateTimeVersioned"
        },
        "dateModified": {
          "$ref": "#/definitions/StringNullDateTimeVersioned"
        },
        "format": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "language": {
          "$ref": "#/definitions/StringNullVersioned"
        }
      },
      "patternProperties": {
        "^(title_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        },
        "^(description_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "Budget": {
      "type": "object",
      "properties": {
        "id": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "integer",
                  "null"
                ]
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "description": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "amount": {
          "$ref": "#/definitions/Value"
        },
        "project": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "projectID": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "integer",
                  "null"
                ]
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "uri": {
          "$ref": "#/definitions/StringNullUriVersioned"
        },
        "source": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "null"
                ],
                "deprecated": {
                  "deprecatedVersion": "1.1",
                  "description": "The budget data source field was intended to link to machine-readable data about the budget for a contracting process, but has been widely mis-used to provide free-text descriptions of budget providers. As a result, it has been removed from version 1.1. budget/uri can be used to provide a link to machine-readable budget information, and budget/description can be used to provide human-readable information on the budget source."
                },
                "format": "uri"
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "patternProperties": {
        "^(source_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        },
        "^(description_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        },
        "^(project_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "Transaction": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": [
            "string",
            "integer"
          ],
          "minLength": 1
        },
        "source": {
          "$ref": "#/definitions/StringNullUriVersioned"
        },
        "date": {
          "$ref": "#/definitions/StringNullDateTimeVersioned"
        },
        "value": {
          "$ref": "#/definitions/Value"
        },
        "payer": {
          "$ref": "#/definitions/OrganizationReferenceVersionedId"
        },
        "payee": {
          "$ref": "#/definitions/OrganizationReferenceVersionedId"
        },
        "uri": {
          "$ref": "#/definitions/StringNullUriVersioned"
        },
        "amount": {
          "$ref": "#/definitions/Value",
          "deprecated": {
            "description": "This field has been replaced by the `transaction.value` field for consistency with the use of value and amount elsewhere in the standard.",
            "deprecatedVersion": "1.1"
          }
        },
        "providerOrganization": {
          "$ref": "#/definitions/Identifier",
          "deprecated": {
            "description": "This field has been replaced by the `transaction.payer` field to resolve ambiguity arising from 'provider' being interpreted as relating to the goods or services procured rather than the flow of funds between the parties.",
            "deprecatedVersion": "1.1"
          }
        },
        "receiverOrganization": {
          "$ref": "#/definitions/Identifier",
          "deprecated": {
            "description": "This field has been replaced by the `transaction.payee` field to resolve ambiguity arising from 'receiver' being interpreted as relating to the goods or services procured rather than the flow of funds between the parties.",
            "deprecatedVersion": "1.1"
          }
        }
      }
    },
    "OrganizationReference": {
      "properties": {
        "name": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 1
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "id": {
          "type": [
            "string",
            "integer"
          ]
        },
        "identifier": {
          "deprecated": {
            "deprecatedVersion": "1.1",
            "description": "From version 1.1, organizations should be referenced by their identifier and name in a document, and detailed legal identifier information should only be provided in the relevant cross-referenced entry in the parties section at the top level of a release."
          },
          "$ref": "#/definitions/Identifier"
        },
        "address": {
          "deprecated": {
            "deprecatedVersion": "1.1",
            "description": "From version 1.1, organizations should be referenced by their identifier and name in a document, and address information should only be provided in the relevant cross-referenced entry in the parties section at the top level of a release."
          },
          "$ref": "#/definitions/Address"
        },
        "additionalIdentifiers": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": "array",
                "deprecated": {
                  "deprecatedVersion": "1.1",
                  "description": "From version 1.1, organizations should be referenced by their identifier and name in a document, and additional identifiers for an organization should be provided in the relevant cross-referenced entry in the parties section at the top level of a release."
                },
                "items": {
                  "$ref": "#/definitions/IdentifierUnversioned"
                },
                "uniqueItems": true
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "contactPoint": {
          "deprecated": {
            "deprecatedVersion": "1.1",
            "description": "From version 1.1, organizations should be referenced by their identifier and name in a document, and contact point information for an organization should be provided in the relevant cross-referenced entry in the parties section at the top level of a release."
          },
          "$ref": "#/definitions/ContactPoint"
        }
      },
      "type": "object"
    },
    "Organization": {
      "type": "object",
      "properties": {
        "name": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "id": {
          "type": "string"
        },
        "identifier": {
          "$ref": "#/definitions/Identifier"
        },
        "additionalIdentifiers": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/IdentifierUnversioned"
                },
                "uniqueItems": true
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "address": {
          "$ref": "#/definitions/Address"
        },
        "contactPoint": {
          "$ref": "#/definitions/ContactPoint"
        },
        "roles": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "array",
                  "null"
                ],
                "items": {
                  "type": "string"
                },
                "codelist": "partyRole.csv",
                "openCodelist": true
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "details": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "object",
                  "null"
                ]
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "patternProperties": {
        "^(name_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "Item": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": [
            "string",
            "integer"
          ],
          "minLength": 1
        },
        "description": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "classification": {
          "$ref": "#/definitions/Classification"
        },
        "additionalClassifications": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": "array",
                "items": {
                  "$ref": "#/definitions/ClassificationUnversioned"
                },
                "uniqueItems": true
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "quantity": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "unit": {
          "type": "object",
          "properties": {
            "scheme": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "releaseDate": {
                    "format": "date-time",
                    "type": "string"
                  },
                  "releaseID": {
                    "type": "string"
                  },
                  "value": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "codelist": "unitClassificationScheme.csv",
                    "openCodelist": true
                  },
                  "releaseTag": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            },
            "id": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "releaseDate": {
                    "format": "date-time",
                    "type": "string"
                  },
                  "releaseID": {
                    "type": "string"
                  },
                  "value": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "versionId": true
                  },
                  "releaseTag": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            },
            "name": {
              "$ref": "#/definitions/StringNullVersioned"
            },
            "value": {
              "$ref": "#/definitions/Value"
            },
            "uri": {
              "$ref": "#/definitions/StringNullUriVersioned"
            }
          },
          "patternProperties": {
            "^(name_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        }
      },
      "patternProperties": {
        "^(description_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "Amendment": {
      "type": "object",
      "properties": {
        "date": {
          "$ref": "#/definitions/StringNullDateTimeVersioned"
        },
        "rationale": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "id": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "amendsReleaseID": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "releaseID": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "changes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "property": {
                "type": "string"
              },
              "former_value": {
                "type": [
                  "string",
                  "number",
                  "integer",
                  "array",
                  "object",
                  "null"
                ]
              }
            }
          },
          "deprecated": {
            "description": "A free-text or semi-structured string describing the changes made in each amendment can be provided in the amendment.description field. To provide structured information on the fields that have changed, publishers should provide releases indicating the state of the contracting process before and after the amendment.",
            "deprecatedVersion": "1.1"
          }
        }
      },
      "patternProperties": {
        "^(rationale_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "Classification": {
      "type": "object",
      "properties": {
        "scheme": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "null"
                ],
                "codelist": "itemClassificationScheme.csv",
                "openCodelist": true
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "id": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "integer",
                  "null"
                ],
                "versionId": true
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "description": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "uri": {
          "$ref": "#/definitions/StringNullUriVersioned"
        }
      },
      "patternProperties": {
        "^(description_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "Identifier": {
      "type": "object",
      "properties": {
        "scheme": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "id": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "integer",
                  "null"
                ],
                "versionId": true
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "legalName": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "uri": {
          "$ref": "#/definitions/StringNullUriVersioned"
        }
      },
      "patternProperties": {
        "^(legalName_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "Address": {
      "type": "object",
      "properties": {
        "streetAddress": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "locality": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "region": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "postalCode": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "countryName": {
          "$ref": "#/definitions/StringNullVersioned"
        }
      },
      "patternProperties": {
        "^(countryName_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "ContactPoint": {
      "type": "object",
      "properties": {
        "name": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "email": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "telephone": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "faxNumber": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "url": {
          "$ref": "#/definitions/StringNullUriVersioned"
        }
      },
      "patternProperties": {
        "^(name_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "Value": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "currency": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "null"
                ],
                "codelist": "currency.csv",
                "openCodelist": false,
                "enum": [
                  "ADP",
                  "AED",
                  "AFA",
                  "AFN",
                  "ALK",
                  "ALL",
                  "AMD",
                  "ANG",
                  "AOA",
                  "AOK",
                  "AON",
                  "AOR",
                  "ARA",
                  "ARP",
                  "ARS",
                  "ARY",
                  "ATS",
                  "AUD",
                  "AWG",
                  "AYM",
                  "AZM",
                  "AZN",
                  "BAD",
                  "BAM",
                  "BBD",
                  "BDT",
                  "BEC",
                  "BEF",
                  "BEL",
                  "BGJ",
                  "BGK",
                  "BGL",
                  "BGN",
                  "BHD",
                  "BIF",
                  "BMD",
                  "BND",
                  "BOB",
                  "BOP",
                  "BOV",
                  "BRB",
                  "BRC",
                  "BRE",
                  "BRL",
                  "BRN",
                  "BRR",
                  "BSD",
                  "BTN",
                  "BUK",
                  "BWP",
                  "BYB",
                  "BYN",
                  "BYR",
                  "BZD",
                  "CAD",
                  "CDF",
                  "CHC",
                  "CHE",
                  "CHF",
                  "CHW",
                  "CLF",
                  "CLP",
                  "CNY",
                  "COP",
                  "COU",
                  "CRC",
                  "CSD",
                  "CSJ",
                  "CSK",
                  "CUC",
                  "CUP",
                  "CVE",
                  "CYP",
                  "CZK",
                  "DDM",
                  "DEM",
                  "DJF",
                  "DKK",
                  "DOP",
                  "DZD",
                  "ECS",
                  "ECV",
                  "EEK",
                  "EGP",
                  "ERN",
                  "ESA",
                  "ESB",
                  "ESP",
                  "ETB",
                  "EUR",
                  "FIM",
                  "FJD",
                  "FKP",
                  "FRF",
                  "GBP",
                  "GEK",
                  "GEL",
                  "GHC",
                  "GHP",
                  "GHS",
                  "GIP",
                  "GMD",
                  "GNE",
                  "GNF",
                  "GNS",
                  "GQE",
                  "GRD",
                  "GTQ",
                  "GWE",
                  "GWP",
                  "GYD",
                  "HKD",
                  "HNL",
                  "HRD",
                  "HRK",
                  "HTG",
                  "HUF",
                  "IDR",
                  "IEP",
                  "ILP",
                  "ILR",
                  "ILS",
                  "INR",
                  "IQD",
                  "IRR",
                  "ISJ",
                  "ISK",
                  "ITL",
                  "JMD",
                  "JOD",
                  "JPY",
                  "KES",
                  "KGS",
                  "KHR",
                  "KMF",
                  "KPW",
                  "KRW",
                  "KWD",
                  "KYD",
                  "KZT",
                  "LAJ",
                  "LAK",
                  "LBP",
                  "LKR",
                  "LRD",
                  "LSL",
                  "LSM",
                  "LTL",
                  "LTT",
                  "LUC",
                  "LUF",
                  "LUL",
                  "LVL",
                  "LVR",
                  "LYD",
                  "MAD",
                  "MDL",
                  "MGA",
                  "MGF",
                  "MKD",
                  "MLF",
                  "MMK",
                  "MNT",
                  "MOP",
                  "MRO",
                  "MRU",
                  "MTL",
                  "MTP",
                  "MUR",
                  "MVQ",
                  "MVR",
                  "MWK",
                  "MXN",
                  "MXP",
                  "MXV",
                  "MYR",
                  "MZE",
                  "MZM",
                  "MZN",
                  "NAD",
                  "NGN",
                  "NIC",
                  "NIO",
                  "NLG",
                  "NOK",
                  "NPR",
                  "NZD",
                  "OMR",
                  "PAB",
                  "PEH",
                  "PEI",
                  "PEN",
                  "PES",
                  "PGK",
                  "PHP",
                  "PKR",
                  "PLN",
                  "PLZ",
                  "PTE",
                  "PYG",
                  "QAR",
                  "RHD",
                  "ROK",
                  "ROL",
                  "RON",
                  "RSD",
                  "RUB",
                  "RUR",
                  "RWF",
                  "SAR",
                  "SBD",
                  "SCR",
                  "SDD",
                  "SDG",
                  "SDP",
                  "SEK",
                  "SGD",
                  "SHP",
                  "SIT",
                  "SKK",
                  "SLL",
                  "SOS",
                  "SRD",
                  "SRG",
                  "SSP",
                  "STD",
                  "STN",
                  "SUR",
                  "SVC",
                  "SYP",
                  "SZL",
                  "THB",
                  "TJR",
                  "TJS",
                  "TMM",
                  "TMT",
                  "TND",
                  "TOP",
                  "TPE",
                  "TRL",
                  "TRY",
                  "TTD",
                  "TWD",
                  "TZS",
                  "UAH",
                  "UAK",
                  "UGS",
                  "UGW",
                  "UGX",
                  "USD",
                  "USN",
                  "USS",
                  "UYI",
                  "UYN",
                  "UYP",
                  "UYU",
                  "UYW",
                  "UZS",
                  "VEB",
                  "VEF",
                  "VES",
                  "VNC",
                  "VND",
                  "VUV",
                  "WST",
                  "XAF",
                  "XAG",
                  "XAU",
                  "XBA",
                  "XBB",
                  "XBC",
                  "XBD",
                  "XCD",
                  "XDR",
                  "XEU",
                  "XFO",
                  "XFU",
                  "XOF",
                  "XPD",
                  "XPF",
                  "XPT",
                  "XRE",
                  "XSU",
                  "XTS",
                  "XUA",
                  "XXX",
                  "YDD",
                  "YER",
                  "YUD",
                  "YUM",
                  "YUN",
                  "ZAL",
                  "ZAR",
                  "ZMK",
                  "ZMW",
                  "ZRN",
                  "ZRZ",
                  "ZWC",
                  "ZWD",
                  "ZWL",
                  "ZWN",
                  "ZWR",
                  null
                ]
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "Period": {
      "type": "object",
      "properties": {
        "startDate": {
          "$ref": "#/definitions/StringNullDateTimeVersioned"
        },
        "endDate": {
          "$ref": "#/definitions/StringNullDateTimeVersioned"
        },
        "maxExtentDate": {
          "$ref": "#/definitions/StringNullDateTimeVersioned"
        },
        "durationInDays": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "RelatedProcess": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "relationship": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "items": {
                  "type": "string"
                },
                "type": [
                  "array",
                  "null"
                ],
                "codelist": "relatedProcess.csv",
                "openCodelist": true
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "title": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "scheme": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "null"
                ],
                "codelist": "relatedProcessScheme.csv",
                "openCodelist": true
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "identifier": {
          "$ref": "#/definitions/StringNullVersioned"
        },
        "uri": {
          "$ref": "#/definitions/StringNullUriVersioned"
        }
      }
    },
    "StringNullUriVersioned": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "releaseDate": {
            "format": "date-time",
            "type": "string"
          },
          "releaseID": {
            "type": "string"
          },
          "value": {
            "type": [
              "string",
              "null"
            ],
            "format": "uri"
          },
          "releaseTag": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    "StringNullDateTimeVersioned": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "releaseDate": {
            "format": "date-time",
            "type": "string"
          },
          "releaseID": {
            "type": "string"
          },
          "value": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "releaseTag": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    "StringNullVersioned": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "releaseDate": {
            "format": "date-time",
            "type": "string"
          },
          "releaseID": {
            "type": "string"
          },
          "value": {
            "type": [
              "string",
              "null"
            ]
          },
          "releaseTag": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    "OrganizationReferenceVersionedId": {
      "properties": {
        "name": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "null"
                ],
                "minLength": 1
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "id": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": [
                  "string",
                  "integer"
                ]
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "identifier": {
          "deprecated": {
            "deprecatedVersion": "1.1",
            "description": "From version 1.1, organizations should be referenced by their identifier and name in a document, and detailed legal identifier information should only be provided in the relevant cross-referenced entry in the parties section at the top level of a release."
          },
          "$ref": "#/definitions/Identifier"
        },
        "address": {
          "deprecated": {
            "deprecatedVersion": "1.1",
            "description": "From version 1.1, organizations should be referenced by their identifier and name in a document, and address information should only be provided in the relevant cross-referenced entry in the parties section at the top level of a release."
          },
          "$ref": "#/definitions/Address"
        },
        "additionalIdentifiers": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "releaseDate": {
                "format": "date-time",
                "type": "string"
              },
              "releaseID": {
                "type": "string"
              },
              "value": {
                "type": "array",
                "deprecated": {
                  "deprecatedVersion": "1.1",
                  "description": "From version 1.1, organizations should be referenced by their identifier and name in a document, and additional identifiers for an organization should be provided in the relevant cross-referenced entry in the parties section at the top level of a release."
                },
                "items": {
                  "$ref": "#/definitions/IdentifierUnversioned"
                },
                "uniqueItems": true
              },
              "releaseTag": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "contactPoint": {
          "deprecated": {
            "deprecatedVersion": "1.1",
            "description": "From version 1.1, organizations should be referenced by their identifier and name in a document, and contact point information for an organization should be provided in the relevant cross-referenced entry in the parties section at the top level of a release."
          },
          "$ref": "#/definitions/ContactPoint"
        }
      },
      "type": "object"
    },
    "IdentifierUnversioned": {
      "type": "object",
      "properties": {
        "scheme": {
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "type": [
            "string",
            "integer",
            "null"
          ],
          "versionId": true
        },
        "legalName": {
          "type": [
            "string",
            "null"
          ]
        },
        "uri": {
          "type": [
            "string",
            "null"
          ],
          "format": "uri"
        }
      },
      "patternProperties": {
        "^(legalName_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "ClassificationUnversioned": {
      "type": "object",
      "properties": {
        "scheme": {
          "type": [
            "string",
            "null"
          ],
          "codelist": "itemClassificationScheme.csv",
          "openCodelist": true
        },
        "id": {
          "type": [
            "string",
            "integer",
            "null"
          ],
          "versionId": true
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "uri": {
          "type": [
            "string",
            "null"
          ],
          "format": "uri"
        }
      },
      "patternProperties": {
        "^(description_(((([A-Za-z]{2,3}(-([A-Za-z]{3}(-[A-Za-z]{3}){0,2}))?)|[A-Za-z]{4}|[A-Za-z]{5,8})(-([A-Za-z]{4}))?(-([A-Za-z]{2}|[0-9]{3}))?(-([A-Za-z0-9]{5,8}|[0-9][A-Za-z0-9]{3}))*(-([0-9A-WY-Za-wy-z](-[A-Za-z0-9]{2,8})+))*(-(x(-[A-Za-z0-9]{1,8})+))?)|(x(-[A-Za-z0-9]{1,8})+)))$": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    }
  }
}