{
    "id": "http://standard.open-contracting.org/schema/1__0__3/versioned-release-validation-schema.json",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "Schema for a compiled, versioned Open Contracting Release.",
    "type": "object",
    "properties": {
        "initiationType": {
            "items": {
                "properties": {
                    "releaseTag": {
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "releaseID": {
                        "type": "string"
                    },
                    "releaseDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "value": {
                        "type": "string",
                        "enum": [
                            "tender"
                        ]
                    }
                }
            },
            "type": "array"
        },
        "planning": {
            "$ref": "#/definitions/Planning"
        },
        "tender": {
            "$ref": "#/definitions/Tender"
        },
        "buyer": {
            "$ref": "#/definitions/Organization"
        },
        "awards": {
            "type": "array",
            "items": {
                "$ref": "#/definitions/Award"
            },
            "_uniqueItems": true
        },
        "contracts": {
            "type": "array",
            "items": {
                "$ref": "#/definitions/Contract"
            },
            "_uniqueItems": true
        },
        "language": {
            "$ref": "#/definitions/StringNullVersioned"
        },
        "ocid": {
            "title": "Open Contracting ID",
            "description": "A globally unique identifier for this Open Contracting Process. Composed of a publisher prefix and an identifier for the contracting process. For more information see the [Open Contracting Identifier guidance](http://standard.open-contracting.org/1.0/en/schema/identifiers/)",
            "type": "string",
            "mergeStrategy": "ocdsOmit"
        }
    },
    "required": [
        "ocid",
        "initiationType"
    ],
    "definitions": {
        "Planning": {
            "type": "object",
            "properties": {
                "budget": {
                    "$ref": "#/definitions/Budget"
                },
                "rationale": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "documents": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Document"
                    }
                }
            },
            "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": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "type": [
                                    "string",
                                    "integer"
                                ]
                            }
                        }
                    },
                    "type": "array"
                },
                "title": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "description": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "status": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "enum": [
                                    "planned",
                                    "active",
                                    "cancelled",
                                    "unsuccessful",
                                    "complete",
                                    null
                                ]
                            }
                        }
                    },
                    "type": "array"
                },
                "items": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Item"
                    },
                    "_uniqueItems": true
                },
                "minValue": {
                    "$ref": "#/definitions/Value"
                },
                "value": {
                    "$ref": "#/definitions/Value"
                },
                "procurementMethod": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "enum": [
                                    "open",
                                    "selective",
                                    "limited",
                                    null
                                ]
                            }
                        }
                    },
                    "type": "array"
                },
                "procurementMethodDetails": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "procurementMethodRationale": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "awardCriteria": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "awardCriteriaDetails": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "submissionMethod": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "type": [
                                    "array",
                                    "null"
                                ],
                                "items": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "type": "array"
                },
                "submissionMethodDetails": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "tenderPeriod": {
                    "$ref": "#/definitions/Period"
                },
                "enquiryPeriod": {
                    "$ref": "#/definitions/Period"
                },
                "hasEnquiries": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "type": [
                                    "boolean",
                                    "null"
                                ]
                            }
                        }
                    },
                    "type": "array"
                },
                "eligibilityCriteria": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "awardPeriod": {
                    "$ref": "#/definitions/Period"
                },
                "numberOfTenderers": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "type": [
                                    "integer",
                                    "null"
                                ]
                            }
                        }
                    },
                    "type": "array"
                },
                "tenderers": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "_uniqueItems": true,
                                "items": {
                                    "$ref": "#/definitions/OrganizationUnversioned"
                                },
                                "type": "array"
                            }
                        }
                    },
                    "type": "array"
                },
                "procuringEntity": {
                    "$ref": "#/definitions/Organization"
                },
                "documents": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Document"
                    }
                },
                "milestones": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Milestone"
                    }
                },
                "amendment": {
                    "$ref": "#/definitions/Amendment"
                }
            },
            "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"
                    ]
                },
                "title": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "description": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "status": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "enum": [
                                    "pending",
                                    "active",
                                    "cancelled",
                                    "unsuccessful",
                                    null
                                ]
                            }
                        }
                    },
                    "type": "array"
                },
                "date": {
                    "$ref": "#/definitions/StringNullDateTimeVersioned"
                },
                "value": {
                    "$ref": "#/definitions/Value"
                },
                "suppliers": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "_uniqueItems": true,
                                "items": {
                                    "$ref": "#/definitions/OrganizationUnversioned"
                                },
                                "type": "array"
                            }
                        }
                    },
                    "type": "array"
                },
                "items": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                        "$ref": "#/definitions/Item"
                    },
                    "_uniqueItems": true
                },
                "contractPeriod": {
                    "$ref": "#/definitions/Period"
                },
                "documents": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/Document"
                    },
                    "_uniqueItems": true
                },
                "amendment": {
                    "$ref": "#/definitions/Amendment"
                }
            },
            "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"
                    ]
                },
                "awardID": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "type": [
                                    "string",
                                    "integer"
                                ]
                            }
                        }
                    },
                    "type": "array"
                },
                "title": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "description": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "status": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "enum": [
                                    "pending",
                                    "active",
                                    "cancelled",
                                    "terminated",
                                    null
                                ]
                            }
                        }
                    },
                    "type": "array"
                },
                "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
                },
                "amendment": {
                    "$ref": "#/definitions/Amendment"
                },
                "implementation": {
                    "$ref": "#/definitions/Implementation"
                }
            },
            "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"
                    ]
                },
                "title": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "description": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "dueDate": {
                    "$ref": "#/definitions/StringNullDateTimeVersioned"
                },
                "dateModified": {
                    "$ref": "#/definitions/StringNullDateTimeVersioned"
                },
                "status": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "enum": [
                                    "met",
                                    "notMet",
                                    "partiallyMet",
                                    null
                                ]
                            }
                        }
                    },
                    "type": "array"
                },
                "documents": {
                    "type": "array",
                    "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"
                    ]
                },
                "documentType": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "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": {
                "source": {
                    "$ref": "#/definitions/StringNullUriVersioned"
                },
                "id": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "type": [
                                    "string",
                                    "integer",
                                    "null"
                                ]
                            }
                        }
                    },
                    "type": "array"
                },
                "description": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "amount": {
                    "$ref": "#/definitions/Value"
                },
                "project": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "projectID": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "type": [
                                    "string",
                                    "integer",
                                    "null"
                                ]
                            }
                        }
                    },
                    "type": "array"
                },
                "uri": {
                    "$ref": "#/definitions/StringNullUriVersioned"
                }
            },
            "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"
                    ]
                },
                "source": {
                    "$ref": "#/definitions/StringNullUriVersioned"
                },
                "date": {
                    "$ref": "#/definitions/StringNullDateTimeVersioned"
                },
                "amount": {
                    "$ref": "#/definitions/Value"
                },
                "providerOrganization": {
                    "$ref": "#/definitions/Identifier"
                },
                "receiverOrganization": {
                    "$ref": "#/definitions/Identifier"
                },
                "uri": {
                    "$ref": "#/definitions/StringNullUriVersioned"
                }
            }
        },
        "Organization": {
            "type": "object",
            "properties": {
                "identifier": {
                    "$ref": "#/definitions/Identifier"
                },
                "additionalIdentifiers": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "_uniqueItems": true,
                                "items": {
                                    "$ref": "#/definitions/IdentifierUnversioned"
                                },
                                "type": "array"
                            }
                        }
                    },
                    "type": "array"
                },
                "name": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "address": {
                    "$ref": "#/definitions/Address"
                },
                "contactPoint": {
                    "$ref": "#/definitions/ContactPoint"
                }
            },
            "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"
                    ]
                },
                "description": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "classification": {
                    "$ref": "#/definitions/Classification"
                },
                "additionalClassifications": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "_uniqueItems": true,
                                "items": {
                                    "$ref": "#/definitions/ClassificationUnversioned"
                                },
                                "type": "array"
                            }
                        }
                    },
                    "type": "array"
                },
                "quantity": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "minimum": 0,
                                "type": [
                                    "number",
                                    "null"
                                ]
                            }
                        }
                    },
                    "type": "array"
                },
                "unit": {
                    "type": "object",
                    "properties": {
                        "name": {
                            "$ref": "#/definitions/StringNullVersioned"
                        },
                        "value": {
                            "$ref": "#/definitions/Value"
                        }
                    },
                    "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"
                },
                "changes": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "items": {
                                    "type": "object",
                                    "properties": {
                                        "property": {
                                            "title": "Property",
                                            "description": "The property name that has been changed relative to the place the amendment is. For example if the contract value has changed, then the property under changes within the contract.amendment would be value.amount. ",
                                            "type": "string"
                                        },
                                        "former_value": {
                                            "title": "Former Value",
                                            "description": "The previous value of the changed property, in whatever type the property is.",
                                            "type": [
                                                "string",
                                                "number",
                                                "integer",
                                                "array",
                                                "object",
                                                "null"
                                            ]
                                        }
                                    }
                                },
                                "type": "array"
                            }
                        }
                    },
                    "type": "array"
                },
                "rationale": {
                    "$ref": "#/definitions/StringNullVersioned"
                }
            },
            "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": {
                    "$ref": "#/definitions/StringNullVersioned"
                },
                "id": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "type": [
                                    "string",
                                    "integer",
                                    "null"
                                ]
                            }
                        }
                    },
                    "type": "array"
                },
                "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": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "type": [
                                    "string",
                                    "integer",
                                    "null"
                                ]
                            }
                        }
                    },
                    "type": "array"
                },
                "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": {
                    "items": {
                        "properties": {
                            "releaseTag": {
                                "items": {
                                    "type": "string"
                                },
                                "type": "array"
                            },
                            "releaseID": {
                                "type": "string"
                            },
                            "releaseDate": {
                                "type": "string",
                                "format": "date-time"
                            },
                            "value": {
                                "type": [
                                    "number",
                                    "null"
                                ]
                            }
                        }
                    },
                    "type": "array"
                },
                "currency": {
                    "$ref": "#/definitions/StringNullVersioned"
                }
            }
        },
        "Period": {
            "type": "object",
            "properties": {
                "startDate": {
                    "$ref": "#/definitions/StringNullDateTimeVersioned"
                },
                "endDate": {
                    "$ref": "#/definitions/StringNullDateTimeVersioned"
                }
            }
        },
        "IdentifierUnversioned": {
            "type": "object",
            "properties": {
                "scheme": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "id": {
                    "type": [
                        "string",
                        "integer",
                        "null"
                    ]
                },
                "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"
                    ]
                },
                "id": {
                    "type": [
                        "string",
                        "integer",
                        "null"
                    ]
                },
                "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"
                    ]
                }
            }
        },
        "AddressUnversioned": {
            "type": "object",
            "properties": {
                "streetAddress": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "locality": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "region": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "postalCode": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "countryName": {
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "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"
                    ]
                }
            }
        },
        "ContactPointUnversioned": {
            "type": "object",
            "properties": {
                "name": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "email": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "telephone": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "faxNumber": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "url": {
                    "type": [
                        "string",
                        "null"
                    ],
                    "format": "uri"
                }
            },
            "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"
                    ]
                }
            }
        },
        "OrganizationUnversioned": {
            "type": "object",
            "properties": {
                "identifier": {
                    "$ref": "#/definitions/IdentifierUnversioned"
                },
                "additionalIdentifiers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/IdentifierUnversioned"
                    },
                    "_uniqueItems": true
                },
                "name": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "address": {
                    "$ref": "#/definitions/AddressUnversioned"
                },
                "contactPoint": {
                    "$ref": "#/definitions/ContactPointUnversioned"
                }
            },
            "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"
                    ]
                }
            }
        },
        "StringNullDateTimeVersioned": {
            "items": {
                "properties": {
                    "releaseTag": {
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "releaseID": {
                        "type": "string"
                    },
                    "releaseDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "value": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date-time"
                    }
                }
            },
            "type": "array"
        },
        "StringNullVersioned": {
            "items": {
                "properties": {
                    "releaseTag": {
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "releaseID": {
                        "type": "string"
                    },
                    "releaseDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "value": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                }
            },
            "type": "array"
        },
        "StringNullUriVersioned": {
            "items": {
                "properties": {
                    "releaseTag": {
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    },
                    "releaseID": {
                        "type": "string"
                    },
                    "releaseDate": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "value": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "uri"
                    }
                }
            },
            "type": "array"
        }
    }
}