From 4009180662756947c9b2ffbabe1eed7d81402087 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Tue, 30 Nov 2021 14:41:58 +1300 Subject: [PATCH 01/29] Run ocdskit schema-strict --- schema/record-package-schema.json | 40 ++- schema/release-package-schema.json | 22 +- schema/release-schema.json | 503 +++++++++++++++++++---------- 3 files changed, 383 insertions(+), 182 deletions(-) diff --git a/schema/record-package-schema.json b/schema/record-package-schema.json index ace4d1954..738ac76c6 100644 --- a/schema/record-package-schema.json +++ b/schema/record-package-schema.json @@ -24,7 +24,9 @@ "items": { "type": "string", "format": "uri" - } + }, + "minItems": 1, + "uniqueItems": true }, "publisher": { "title": "Publisher", @@ -34,7 +36,8 @@ "name": { "title": "Name", "description": "The name of the organization or department responsible for publishing this OCDS data.", - "type": "string" + "type": "string", + "minLength": 1 }, "scheme": { "title": "Scheme", @@ -42,7 +45,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uid": { "title": "uid", @@ -50,7 +54,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -64,7 +69,8 @@ }, "required": [ "name" - ] + ], + "minProperties": 1 }, "license": { "title": "License", @@ -112,7 +118,8 @@ "items": { "$ref": "#/definitions/Record" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 } }, "required": [ @@ -131,7 +138,8 @@ "ocid": { "title": "Open contracting process identifier", "description": "A globally unique identifier for the contracting process that the record describes. Alternatively, this identifier can refer to a planning process or a single stage of a multiple stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", - "type": "string" + "type": "string", + "minLength": 1 }, "releases": { "title": "Releases", @@ -144,7 +152,8 @@ "items": { "$ref": "#/definitions/LinkedRelease" }, - "minItems": 1 + "minItems": 1, + "uniqueItems": true }, { "title": "Embedded releases", @@ -153,7 +162,8 @@ "items": { "$ref": "https://standard.open-contracting.org/schema/1__1__5/release-schema.json" }, - "minItems": 1 + "minItems": 1, + "uniqueItems": true } ] }, @@ -170,7 +180,8 @@ }, "required": [ "ocid" - ] + ], + "minProperties": 1 }, "LinkedRelease": { "title": "Linked release", @@ -219,13 +230,16 @@ }, "codelist": "releaseTag.csv", "openCodelist": false, - "minItems": 1 + "minItems": 1, + "uniqueItems": true } }, "required": [ "url", "date" - ] + ], + "minProperties": 1 } - } + }, + "minProperties": 1 } diff --git a/schema/release-package-schema.json b/schema/release-package-schema.json index e4491c289..92b2f1f19 100644 --- a/schema/release-package-schema.json +++ b/schema/release-package-schema.json @@ -31,7 +31,9 @@ "items": { "type": "string", "format": "uri" - } + }, + "minItems": 1, + "uniqueItems": true }, "publishedDate": { "title": "Published date", @@ -46,7 +48,8 @@ "items": { "$ref": "https://standard.open-contracting.org/schema/1__1__5/release-schema.json" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "publisher": { "title": "Publisher", @@ -56,7 +59,8 @@ "name": { "title": "Name", "description": "The name of the organization or department responsible for publishing this OCDS data.", - "type": "string" + "type": "string", + "minLength": 1 }, "scheme": { "title": "Scheme", @@ -64,7 +68,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uid": { "title": "uid", @@ -72,7 +77,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -86,7 +92,8 @@ }, "required": [ "name" - ] + ], + "minProperties": 1 }, "license": { "title": "License", @@ -106,5 +113,6 @@ ], "format": "uri" } - } + }, + "minProperties": 1 } diff --git a/schema/release-schema.json b/schema/release-schema.json index c1026b13a..3b6510a99 100644 --- a/schema/release-schema.json +++ b/schema/release-schema.json @@ -35,12 +35,14 @@ "description": "A tag labeling the release (for example, as corresponding to a stage of the contracting process), using the the open [releaseTag](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#release-tag) codelist. Codes outside the releaseTag codelist might indicate, for example, the notice or form to which the release corresponds, or the event that triggered the publication of the release. Planning processes must not use the 'tender' code, even if they use `tender` fields.", "type": "array", "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "releaseTag.csv", "openCodelist": true, "minItems": 1, - "omitWhenMerged": true + "omitWhenMerged": true, + "uniqueItems": true }, "initiationType": { "title": "Initiation type", @@ -63,7 +65,8 @@ "items": { "$ref": "#/definitions/Organization" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "buyer": { "title": "Buyer", @@ -87,7 +90,8 @@ "items": { "$ref": "#/definitions/Award" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "contracts": { "title": "Contracts", @@ -96,7 +100,8 @@ "items": { "$ref": "#/definitions/Contract" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "language": { "title": "Release language", @@ -106,7 +111,8 @@ "null" ], "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "relatedProcesses": { "uniqueItems": true, @@ -115,7 +121,8 @@ }, "description": "The details of related processes: for example, if this process follows on from one or more other processes, represented under a separate ocid. This is commonly used to relate mini-competitions to their parent frameworks or individual tenders to a broader planning process.", "title": "Related processes", - "type": "array" + "type": "array", + "minItems": 1 }, "links": { "title": "Links", @@ -125,7 +132,8 @@ "$ref": "#/definitions/Link" }, "uniqueItems": true, - "omitWhenMerged": true + "omitWhenMerged": true, + "minItems": 1 } }, "required": [ @@ -147,7 +155,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "rationale": { "title": "Rationale", @@ -155,7 +164,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "budget": { "title": "Budget", @@ -168,7 +178,9 @@ "type": "array", "items": { "$ref": "#/definitions/Document" - } + }, + "minItems": 1, + "uniqueItems": true }, "milestones": { "title": "Planning milestones", @@ -176,7 +188,9 @@ "type": "array", "items": { "$ref": "#/definitions/Milestone" - } + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -184,9 +198,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Tender": { "title": "Tender", @@ -211,7 +227,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Tender description", @@ -219,7 +236,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "status": { "title": "Tender status", @@ -247,7 +265,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "procuringEntity": { "title": "Procuring entity", @@ -261,7 +280,8 @@ "items": { "$ref": "#/definitions/Item" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "value": { "title": "Value", @@ -301,7 +321,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "procurementMethodRationale": { "title": "Procurement method rationale", @@ -309,7 +330,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "mainProcurementCategory": { "title": "Main procurement category", @@ -335,10 +357,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "extendedProcurementCategory.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "awardCriteria": { "title": "Award criteria", @@ -348,7 +373,8 @@ "null" ], "codelist": "awardCriteria.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "awardCriteriaDetails": { "title": "Award criteria details", @@ -356,7 +382,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "submissionMethod": { "title": "Submission method", @@ -366,14 +393,17 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "submissionMethod.csv", "openCodelist": true, "deprecated": { "description": "This field is deprecated, because all codes from the submissionMethod codelist are deprecated. Refer to the Deprecation note of individual codes.", "deprecatedVersion": "1.2" - } + }, + "minItems": 1, + "uniqueItems": true }, "submissionMethodDetails": { "title": "Submission method details", @@ -381,7 +411,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "datePublished": { "description": "The date on which the tender was published.", @@ -420,7 +451,8 @@ "deprecated": { "description": "This field had unclear semantics and used ambiguous terms, and is deprecated in favor of exclusionGrounds.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 }, "exclusionGrounds": { "title": "Exclusion grounds", @@ -428,7 +460,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "selectionCriteria": { "title": "Selection criteria", @@ -436,7 +469,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "awardPeriod": { "title": "Evaluation and award period", @@ -463,7 +497,8 @@ "items": { "$ref": "#/definitions/OrganizationReference" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "documents": { "title": "Documents", @@ -471,7 +506,9 @@ "type": "array", "items": { "$ref": "#/definitions/Document" - } + }, + "minItems": 1, + "uniqueItems": true }, "milestones": { "title": "Milestones", @@ -479,7 +516,9 @@ "type": "array", "items": { "$ref": "#/definitions/Milestone" - } + }, + "minItems": 1, + "uniqueItems": true }, "amendments": { "description": "A tender amendment is a formal change to the tender, and generally involves the publication of a new tender notice/release. The rationale and a description of the changes made can be provided here.", @@ -487,7 +526,9 @@ "title": "Amendments", "items": { "$ref": "#/definitions/Amendment" - } + }, + "minItems": 1, + "uniqueItems": true }, "amendment": { "title": "Amendment", @@ -504,45 +545,53 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(selectionCriteria_(((([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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Award": { "title": "Award", @@ -567,7 +616,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -575,7 +625,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "status": { "title": "Award status", @@ -600,7 +651,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "date": { "title": "Award date", @@ -633,7 +685,8 @@ "items": { "$ref": "#/definitions/OrganizationReference" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "items": { "title": "Items awarded", @@ -657,7 +710,8 @@ "items": { "$ref": "#/definitions/Document" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "amendments": { "description": "An award amendment is a formal change to the details of the award, and generally involves the publication of a new award notice/release. The rationale and a description of the changes made can be provided here.", @@ -665,7 +719,9 @@ "title": "Amendments", "items": { "$ref": "#/definitions/Amendment" - } + }, + "minItems": 1, + "uniqueItems": true }, "amendment": { "title": "Amendment", @@ -682,15 +738,18 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Contract": { "type": "object", @@ -725,7 +784,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Contract description", @@ -733,7 +793,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "status": { "title": "Contract status", @@ -760,7 +821,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "dateSigned": { "title": "Date concluded", @@ -808,7 +870,8 @@ "items": { "$ref": "#/definitions/Document" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "implementation": { "title": "Implementation", @@ -822,7 +885,8 @@ }, "description": "The details of related processes: for example, if this process is followed by one or more contracting processes, represented under a separate ocid. This is commonly used to refer to subcontracts and to renewal or replacement processes for this contract.", "title": "Related processes", - "type": "array" + "type": "array", + "minItems": 1 }, "milestones": { "title": "Contract milestones", @@ -830,7 +894,9 @@ "type": "array", "items": { "$ref": "#/definitions/Milestone" - } + }, + "minItems": 1, + "uniqueItems": true }, "amendments": { "description": "A contract amendment is a formal change to, or extension of, a contract, and generally involves the publication of a new contract signature notice/release, or some other documents detailing the change. The rationale and a description of the changes made can be provided here.", @@ -838,7 +904,9 @@ "title": "Amendments", "items": { "$ref": "#/definitions/Amendment" - } + }, + "minItems": 1, + "uniqueItems": true }, "amendment": { "title": "Amendment", @@ -855,15 +923,18 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Implementation": { "type": "object", @@ -877,7 +948,8 @@ "items": { "$ref": "#/definitions/Transaction" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "milestones": { "title": "Milestones", @@ -886,7 +958,8 @@ "items": { "$ref": "#/definitions/Milestone" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "documents": { "title": "Documents", @@ -895,9 +968,11 @@ "items": { "$ref": "#/definitions/Document" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 } - } + }, + "minProperties": 1 }, "Milestone": { "title": "Milestone", @@ -922,7 +997,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "type": { "title": "Milestone type", @@ -932,7 +1008,8 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "description": { "title": "Description", @@ -940,7 +1017,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "code": { "title": "Milestone code", @@ -948,7 +1026,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "dueDate": { "title": "Due date", @@ -1005,7 +1084,8 @@ "items": { "$ref": "#/definitions/Document" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 } }, "patternProperties": { @@ -1013,15 +1093,18 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Document": { "type": "object", @@ -1048,7 +1131,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -1056,7 +1140,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -1064,7 +1149,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -1101,7 +1187,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -1111,10 +1198,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -1128,7 +1218,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -1136,15 +1227,18 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Budget": { "type": "object", @@ -1158,7 +1252,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Budget Source", @@ -1166,7 +1261,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "amount": { "title": "Amount", @@ -1179,7 +1275,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "projectID": { "title": "Project identifier", @@ -1188,7 +1285,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "Linked budget information", @@ -1218,21 +1316,25 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Transaction": { "type": "object", @@ -1320,7 +1422,8 @@ "deprecatedVersion": "1.1" } } - } + }, + "minProperties": 1 }, "OrganizationReference": { "properties": { @@ -1339,7 +1442,8 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID" + "title": "ID", + "minLength": 1 }, "identifier": { "title": "Primary identifier", @@ -1371,7 +1475,8 @@ "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 }, "contactPoint": { "deprecated": { @@ -1385,7 +1490,8 @@ }, "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", - "title": "Organization reference" + "title": "Organization reference", + "minProperties": 1 }, "Organization": { "title": "Organization", @@ -1398,12 +1504,14 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "type": "string", "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the contracting process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", - "title": "ID" + "title": "ID", + "minLength": 1 }, "identifier": { "title": "Primary identifier", @@ -1418,7 +1526,8 @@ "$ref": "#/definitions/Identifier" }, "uniqueItems": true, - "wholeListMerge": true + "wholeListMerge": true, + "minItems": 1 }, "address": { "title": "Address", @@ -1438,10 +1547,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "partyRole.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "details": { "type": [ @@ -1449,7 +1561,8 @@ "null" ], "description": "Additional classification information about organizations can be provided using organization details extensions that define particular fields and classification schemes.", - "title": "Details" + "title": "Details", + "minProperties": 1 } }, "patternProperties": { @@ -1457,9 +1570,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Item": { "title": "Item", @@ -1484,7 +1599,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "classification": { "title": "Classification", @@ -1499,7 +1615,8 @@ "$ref": "#/definitions/Classification" }, "uniqueItems": true, - "wholeListMerge": true + "wholeListMerge": true, + "minItems": 1 }, "quantity": { "title": "Quantity", @@ -1520,9 +1637,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Amendment": { "title": "Amendment", @@ -1544,7 +1663,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -1552,7 +1672,8 @@ "string", "null" ], - "title": "ID" + "title": "ID", + "minLength": 1 }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -1560,7 +1681,8 @@ "string", "null" ], - "title": "Description" + "title": "Description", + "minLength": 1 }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -1568,7 +1690,8 @@ "string", "null" ], - "title": "Amended release (identifier)" + "title": "Amended release (identifier)", + "minLength": 1 }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -1576,7 +1699,8 @@ "string", "null" ], - "title": "Amending release (identifier)" + "title": "Amending release (identifier)", + "minLength": 1 }, "changes": { "title": "Amended fields", @@ -1588,7 +1712,8 @@ "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. (Deprecated in 1.1)", - "type": "string" + "type": "string", + "minLength": 1 }, "former_value": { "title": "Former Value", @@ -1600,14 +1725,21 @@ "array", "object", "null" - ] + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 } - } + }, + "minProperties": 1 }, "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" - } + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -1615,9 +1747,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Classification": { "title": "Classification", @@ -1632,7 +1766,8 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -1641,7 +1776,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -1649,7 +1785,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -1666,9 +1803,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Identifier": { "title": "Identifier", @@ -1681,7 +1820,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -1690,7 +1830,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -1698,7 +1839,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -1715,9 +1857,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Address": { "title": "Address", @@ -1730,7 +1874,8 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy." + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 }, "locality": { "title": "Locality", @@ -1738,7 +1883,8 @@ "string", "null" ], - "description": "The locality. For example, Mountain View." + "description": "The locality. For example, Mountain View.", + "minLength": 1 }, "region": { "title": "Region", @@ -1746,7 +1892,8 @@ "string", "null" ], - "description": "The region. For example, CA." + "description": "The region. For example, CA.", + "minLength": 1 }, "postalCode": { "title": "Postal code", @@ -1754,7 +1901,8 @@ "string", "null" ], - "description": "The postal code. For example, 94043." + "description": "The postal code. For example, 94043.", + "minLength": 1 }, "country": { "title": "Country code", @@ -2029,7 +2177,8 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -2041,9 +2190,11 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } - } + }, + "minProperties": 1 }, "ContactPoint": { "title": "Contact point", @@ -2056,7 +2207,8 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 }, "email": { "title": "Email", @@ -2064,7 +2216,8 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person." + "description": "The e-mail address of the contact point/person.", + "minLength": 1 }, "telephone": { "title": "Telephone", @@ -2072,7 +2225,8 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code." + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "faxNumber": { "title": "Fax number", @@ -2080,7 +2234,8 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code." + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "url": { "title": "URL", @@ -2097,9 +2252,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Value": { "title": "Value", @@ -2429,7 +2586,8 @@ null ] } - } + }, + "minProperties": 1 }, "Period": { "title": "Period", @@ -2471,7 +2629,8 @@ "null" ] } - } + }, + "minProperties": 1 }, "SimpleUnit": { "title": "Simple Unit", @@ -2486,7 +2645,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -2494,9 +2654,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "RelatedProcess": { "description": "A reference to a related contracting process: generally one preceding or following on from the current process.", @@ -2506,11 +2668,13 @@ "id": { "title": "Relationship ID", "description": "A local identifier for this relationship, unique within this array.", - "type": "string" + "type": "string", + "minLength": 1 }, "relationship": { "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "description": "The type of relationship, using the open [relatedProcess](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process) codelist.", "title": "Relationship", @@ -2519,7 +2683,9 @@ "null" ], "codelist": "relatedProcess.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "title": { "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", @@ -2527,7 +2693,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "scheme": { "title": "Scheme", @@ -2537,7 +2704,8 @@ "null" ], "codelist": "relatedProcessScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "identifier": { "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", @@ -2545,7 +2713,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "format": "uri", @@ -2556,7 +2725,8 @@ "null" ] } - } + }, + "minProperties": 1 }, "Unit": { "title": "Unit", @@ -2571,7 +2741,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -2579,7 +2750,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "name": { "title": "Name", @@ -2587,7 +2759,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "value": { "title": "Value", @@ -2621,7 +2794,8 @@ "null" ] } - } + }, + "minProperties": 1 } }, "patternProperties": { @@ -2629,9 +2803,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Link": { "title": "Link", @@ -2643,7 +2819,8 @@ "description": "The relationship with the related resource, using the open [link relation type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#link-relation-type) codelist.", "type": "string", "codelist": "linkRelationType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "href": { "title": "Link target", @@ -2651,7 +2828,9 @@ "type": "string", "format": "uri" } - } + }, + "minProperties": 1 } - } + }, + "minProperties": 1 } From 046a99f988061f86d88355aef2f659fbeb6f9e1d Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Tue, 30 Nov 2021 14:46:22 +1300 Subject: [PATCH 02/29] Add additional schema validation (#881) --- schema/release-schema.json | 341 ++++++++++++++++++++++++++++++++++++- 1 file changed, 338 insertions(+), 3 deletions(-) diff --git a/schema/release-schema.json b/schema/release-schema.json index 3b6510a99..d380d1f56 100644 --- a/schema/release-schema.json +++ b/schema/release-schema.json @@ -488,7 +488,8 @@ "type": [ "integer", "null" - ] + ], + "minimum": 0 }, "tenderers": { "title": "Tenderers", @@ -2217,7 +2218,8 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1 + "minLength": 1, + "format": "email" }, "telephone": { "title": "Telephone", @@ -2589,6 +2591,338 @@ }, "minProperties": 1 }, + "UnitValue": { + "title": "Unit value", + "description": "The monetary value of a single unit.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ], + "minimum": 0 + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, "Period": { "title": "Period", "description": "Key events during a contracting process may have a known start date, end date, duration, or maximum extent (the latest date the period can extend to). In some cases, not all of these fields will have known or relevant values.", @@ -2627,7 +2961,8 @@ "type": [ "integer", "null" - ] + ], + "minimum": 0 } }, "minProperties": 1 From bd449d3fc463e33f9efbfbba504623cf697066f1 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Tue, 30 Nov 2021 14:50:06 +1300 Subject: [PATCH 03/29] Make id, name required on Organization[Reference] (#679) --- schema/release-schema.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/schema/release-schema.json b/schema/release-schema.json index d380d1f56..9b80b042e 100644 --- a/schema/release-schema.json +++ b/schema/release-schema.json @@ -1427,6 +1427,10 @@ "minProperties": 1 }, "OrganizationReference": { + "required": [ + "id", + "name" + ], "properties": { "name": { "type": [ @@ -1498,6 +1502,10 @@ "title": "Organization", "description": "An organization", "type": "object", + "required": [ + "id", + "name" + ], "properties": { "name": { "title": "Common name", From 5339a6ea8a66cfeb18e0277a770bf5514c84b0af Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 10 Feb 2022 15:46:33 +1300 Subject: [PATCH 04/29] Make id required on Amendment and RelatedProcess (650) --- schema/release-schema.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/schema/release-schema.json b/schema/release-schema.json index 9b80b042e..a915ec53c 100644 --- a/schema/release-schema.json +++ b/schema/release-schema.json @@ -1760,7 +1760,10 @@ "minLength": 1 } }, - "minProperties": 1 + "minProperties": 1, + "required": [ + "id" + ] }, "Classification": { "title": "Classification", @@ -3069,7 +3072,10 @@ ] } }, - "minProperties": 1 + "minProperties": 1, + "required": [ + "id" + ] }, "Unit": { "title": "Unit", From 86fed0be9e8d47dd91a7a233d2762d76251bf8ea Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 10 Feb 2022 16:02:36 +1300 Subject: [PATCH 05/29] Run manage.py pre-commit --- schema/dereferenced-release-schema.json | 4687 ++++++++++++----- .../versioned-release-validation-schema.json | 2440 +++++++-- 2 files changed, 5399 insertions(+), 1728 deletions(-) diff --git a/schema/dereferenced-release-schema.json b/schema/dereferenced-release-schema.json index cc7e185b2..7e3f31f2e 100644 --- a/schema/dereferenced-release-schema.json +++ b/schema/dereferenced-release-schema.json @@ -36,7 +36,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -45,7 +46,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -53,7 +55,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -70,21 +73,25 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "tag": { "title": "Release Tag", "description": "A tag labeling the release (for example, as corresponding to a stage of the contracting process), using the the open [releaseTag](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#release-tag) codelist. Codes outside the releaseTag codelist might indicate, for example, the notice or form to which the release corresponds, or the event that triggered the publication of the release. Planning processes must not use the 'tender' code, even if they use `tender` fields.", "type": "array", "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "releaseTag.csv", "openCodelist": true, "minItems": 1, - "omitWhenMerged": true + "omitWhenMerged": true, + "uniqueItems": true }, "initiationType": { "title": "Initiation type", @@ -108,6 +115,10 @@ "title": "Organization", "description": "An organization", "type": "object", + "required": [ + "id", + "name" + ], "properties": { "name": { "title": "Common name", @@ -115,12 +126,14 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "type": "string", "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the contracting process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", - "title": "ID" + "title": "ID", + "minLength": 1 }, "identifier": { "title": "Primary identifier", @@ -133,7 +146,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -142,7 +156,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -150,7 +165,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -167,9 +183,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "additionalIdentifiers": { "title": "Additional identifiers", @@ -186,7 +204,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -195,7 +214,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -203,7 +223,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -220,12 +241,15 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "uniqueItems": true, - "wholeListMerge": true + "wholeListMerge": true, + "minItems": 1 }, "address": { "title": "Address", @@ -238,7 +262,8 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy." + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 }, "locality": { "title": "Locality", @@ -246,7 +271,8 @@ "string", "null" ], - "description": "The locality. For example, Mountain View." + "description": "The locality. For example, Mountain View.", + "minLength": 1 }, "region": { "title": "Region", @@ -254,7 +280,8 @@ "string", "null" ], - "description": "The region. For example, CA." + "description": "The region. For example, CA.", + "minLength": 1 }, "postalCode": { "title": "Postal code", @@ -262,7 +289,8 @@ "string", "null" ], - "description": "The postal code. For example, 94043." + "description": "The postal code. For example, 94043.", + "minLength": 1 }, "country": { "title": "Country code", @@ -537,7 +565,8 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -549,9 +578,11 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } - } + }, + "minProperties": 1 }, "contactPoint": { "title": "Contact point", @@ -564,7 +595,8 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 }, "email": { "title": "Email", @@ -572,7 +604,9 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person." + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" }, "telephone": { "title": "Telephone", @@ -580,7 +614,8 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code." + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "faxNumber": { "title": "Fax number", @@ -588,7 +623,8 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code." + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "url": { "title": "URL", @@ -605,9 +641,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "roles": { "title": "Roles", @@ -617,10 +655,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "partyRole.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "details": { "type": [ @@ -628,7 +669,8 @@ "null" ], "description": "Additional classification information about organizations can be provided using organization details extensions that define particular fields and classification schemes.", - "title": "Details" + "title": "Details", + "minProperties": 1 } }, "patternProperties": { @@ -636,13 +678,20 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "buyer": { + "required": [ + "id", + "name" + ], "properties": { "name": { "type": [ @@ -659,7 +708,8 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID" + "title": "ID", + "minLength": 1 }, "identifier": { "title": "Primary identifier", @@ -672,7 +722,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -681,7 +732,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -689,7 +741,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -706,9 +759,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -725,7 +780,8 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy." + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 }, "locality": { "title": "Locality", @@ -733,7 +789,8 @@ "string", "null" ], - "description": "The locality. For example, Mountain View." + "description": "The locality. For example, Mountain View.", + "minLength": 1 }, "region": { "title": "Region", @@ -741,7 +798,8 @@ "string", "null" ], - "description": "The region. For example, CA." + "description": "The region. For example, CA.", + "minLength": 1 }, "postalCode": { "title": "Postal code", @@ -749,7 +807,8 @@ "string", "null" ], - "description": "The postal code. For example, 94043." + "description": "The postal code. For example, 94043.", + "minLength": 1 }, "country": { "title": "Country code", @@ -1024,7 +1083,8 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -1036,9 +1096,11 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, + "minProperties": 1, "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." @@ -1061,7 +1123,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -1070,7 +1133,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -1078,7 +1142,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -1095,14 +1160,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 }, "contactPoint": { "title": "Contact point", @@ -1115,7 +1183,8 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 }, "email": { "title": "Email", @@ -1123,7 +1192,9 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person." + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" }, "telephone": { "title": "Telephone", @@ -1131,7 +1202,8 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code." + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "faxNumber": { "title": "Fax number", @@ -1139,7 +1211,8 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code." + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "url": { "title": "URL", @@ -1156,9 +1229,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -1167,7 +1242,8 @@ }, "type": "object", "description": "The organization aiming to conclude a contract with a supplier or to use the goods, works or services resulting from the contract.", - "title": "Buyer" + "title": "Buyer", + "minProperties": 1 }, "planning": { "title": "Planning", @@ -1180,7 +1256,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "rationale": { "title": "Rationale", @@ -1188,7 +1265,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "budget": { "type": "object", @@ -1202,7 +1280,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Budget Source", @@ -1210,7 +1289,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "amount": { "title": "Amount", @@ -1540,7 +1620,8 @@ null ] } - } + }, + "minProperties": 1 }, "project": { "title": "Project title", @@ -1548,7 +1629,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "projectID": { "title": "Project identifier", @@ -1557,7 +1639,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "Linked budget information", @@ -1587,21 +1670,25 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "documents": { "title": "Documents", @@ -1632,7 +1719,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -1640,7 +1728,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -1648,7 +1737,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -1685,7 +1775,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -1695,10 +1786,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -1712,7 +1806,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -1720,16 +1815,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } - } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true }, "milestones": { "title": "Planning milestones", @@ -1758,7 +1858,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "type": { "title": "Milestone type", @@ -1768,7 +1869,8 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "description": { "title": "Description", @@ -1776,7 +1878,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "code": { "title": "Milestone code", @@ -1784,7 +1887,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "dueDate": { "title": "Due date", @@ -1863,7 +1967,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -1871,7 +1976,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -1879,7 +1985,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -1916,7 +2023,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -1926,10 +2034,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -1943,7 +2054,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -1951,17 +2063,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 } }, "patternProperties": { @@ -1969,16 +2085,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } - } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -1986,9 +2107,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "tender": { "title": "Tender", @@ -2013,7 +2136,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Tender description", @@ -2021,7 +2145,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "status": { "title": "Tender status", @@ -2049,9 +2174,14 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "procuringEntity": { + "required": [ + "id", + "name" + ], "properties": { "name": { "type": [ @@ -2068,7 +2198,8 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID" + "title": "ID", + "minLength": 1 }, "identifier": { "title": "Primary identifier", @@ -2081,7 +2212,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -2090,7 +2222,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -2098,7 +2231,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -2115,9 +2249,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -2134,7 +2270,8 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy." + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 }, "locality": { "title": "Locality", @@ -2142,7 +2279,8 @@ "string", "null" ], - "description": "The locality. For example, Mountain View." + "description": "The locality. For example, Mountain View.", + "minLength": 1 }, "region": { "title": "Region", @@ -2150,7 +2288,8 @@ "string", "null" ], - "description": "The region. For example, CA." + "description": "The region. For example, CA.", + "minLength": 1 }, "postalCode": { "title": "Postal code", @@ -2158,7 +2297,8 @@ "string", "null" ], - "description": "The postal code. For example, 94043." + "description": "The postal code. For example, 94043.", + "minLength": 1 }, "country": { "title": "Country code", @@ -2433,7 +2573,8 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -2445,9 +2586,11 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, + "minProperties": 1, "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." @@ -2470,7 +2613,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -2479,7 +2623,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -2487,7 +2632,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -2504,14 +2650,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 }, "contactPoint": { "title": "Contact point", @@ -2524,7 +2673,8 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 }, "email": { "title": "Email", @@ -2532,7 +2682,9 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person." + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" }, "telephone": { "title": "Telephone", @@ -2540,7 +2692,8 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code." + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "faxNumber": { "title": "Fax number", @@ -2548,7 +2701,8 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code." + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "url": { "title": "URL", @@ -2565,9 +2719,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -2576,7 +2732,8 @@ }, "type": "object", "description": "The organization managing the contracting process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", - "title": "Procuring entity" + "title": "Procuring entity", + "minProperties": 1 }, "items": { "title": "Items to be procured", @@ -2605,7 +2762,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "classification": { "title": "Classification", @@ -2620,7 +2778,8 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -2629,7 +2788,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -2637,7 +2797,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -2654,9 +2815,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "additionalClassifications": { "title": "Additional classifications", @@ -2675,7 +2838,8 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -2684,7 +2848,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -2692,7 +2857,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -2709,12 +2875,15 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "uniqueItems": true, - "wholeListMerge": true + "wholeListMerge": true, + "minItems": 1 }, "quantity": { "title": "Quantity", @@ -2737,7 +2906,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -2745,7 +2915,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "name": { "title": "Name", @@ -2753,7 +2924,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "value": { "title": "Value", @@ -3083,7 +3255,8 @@ null ] } - } + }, + "minProperties": 1 }, "uri": { "title": "URI", @@ -3112,7 +3285,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -3120,9 +3294,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "quantity": { "title": "Quantity", @@ -3132,7 +3308,8 @@ "null" ] } - } + }, + "minProperties": 1 } }, "patternProperties": { @@ -3140,9 +3317,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 } }, "patternProperties": { @@ -3150,11 +3329,14 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "value": { "title": "Value", @@ -3484,7 +3666,8 @@ null ] } - } + }, + "minProperties": 1 }, "minValue": { "title": "Minimum value", @@ -3814,7 +3997,8 @@ null ] } - } + }, + "minProperties": 1 }, "maximumValue": { "title": "Maximum value", @@ -4144,7 +4328,8 @@ null ] } - } + }, + "minProperties": 1 }, "procurementMethod": { "title": "Procurement method", @@ -4169,7 +4354,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "procurementMethodRationale": { "title": "Procurement method rationale", @@ -4177,7 +4363,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "mainProcurementCategory": { "title": "Main procurement category", @@ -4203,10 +4390,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "extendedProcurementCategory.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "awardCriteria": { "title": "Award criteria", @@ -4216,7 +4406,8 @@ "null" ], "codelist": "awardCriteria.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "awardCriteriaDetails": { "title": "Award criteria details", @@ -4224,7 +4415,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "submissionMethod": { "title": "Submission method", @@ -4234,14 +4426,17 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "submissionMethod.csv", "openCodelist": true, "deprecated": { "description": "This field is deprecated, because all codes from the submissionMethod codelist are deprecated. Refer to the Deprecation note of individual codes.", "deprecatedVersion": "1.2" - } + }, + "minItems": 1, + "uniqueItems": true }, "submissionMethodDetails": { "title": "Submission method details", @@ -4249,7 +4444,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "datePublished": { "description": "The date on which the tender was published.", @@ -4298,9 +4494,11 @@ "type": [ "integer", "null" - ] + ], + "minimum": 0 } - } + }, + "minProperties": 1 }, "enquiryPeriod": { "title": "Enquiry period", @@ -4340,9 +4538,11 @@ "type": [ "integer", "null" - ] + ], + "minimum": 0 } - } + }, + "minProperties": 1 }, "hasEnquiries": { "title": "Has enquiries?", @@ -4362,7 +4562,8 @@ "deprecated": { "description": "This field had unclear semantics and used ambiguous terms, and is deprecated in favor of exclusionGrounds.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 }, "exclusionGrounds": { "title": "Exclusion grounds", @@ -4370,7 +4571,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "selectionCriteria": { "title": "Selection criteria", @@ -4378,7 +4580,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "awardPeriod": { "title": "Evaluation and award period", @@ -4418,9 +4621,11 @@ "type": [ "integer", "null" - ] + ], + "minimum": 0 } - } + }, + "minProperties": 1 }, "contractPeriod": { "title": "Contract period", @@ -4460,9 +4665,11 @@ "type": [ "integer", "null" - ] + ], + "minimum": 0 } - } + }, + "minProperties": 1 }, "numberOfTenderers": { "title": "Number of tenderers", @@ -4470,13 +4677,18 @@ "type": [ "integer", "null" - ] + ], + "minimum": 0 }, "tenderers": { "title": "Tenderers", "description": "All organizations that submit a bid. More detailed information on bids and the bidding organization can be provided using the bid extension.", "type": "array", "items": { + "required": [ + "id", + "name" + ], "properties": { "name": { "type": [ @@ -4493,7 +4705,8 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID" + "title": "ID", + "minLength": 1 }, "identifier": { "title": "Primary identifier", @@ -4506,7 +4719,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -4515,7 +4729,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -4523,7 +4738,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -4540,9 +4756,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -4559,7 +4777,8 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy." + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 }, "locality": { "title": "Locality", @@ -4567,7 +4786,8 @@ "string", "null" ], - "description": "The locality. For example, Mountain View." + "description": "The locality. For example, Mountain View.", + "minLength": 1 }, "region": { "title": "Region", @@ -4575,7 +4795,8 @@ "string", "null" ], - "description": "The region. For example, CA." + "description": "The region. For example, CA.", + "minLength": 1 }, "postalCode": { "title": "Postal code", @@ -4583,7 +4804,8 @@ "string", "null" ], - "description": "The postal code. For example, 94043." + "description": "The postal code. For example, 94043.", + "minLength": 1 }, "country": { "title": "Country code", @@ -4858,7 +5080,8 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -4870,9 +5093,11 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, + "minProperties": 1, "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." @@ -4895,7 +5120,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -4904,7 +5130,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -4912,7 +5139,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -4929,14 +5157,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 }, "contactPoint": { "title": "Contact point", @@ -4949,7 +5180,8 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 }, "email": { "title": "Email", @@ -4957,7 +5189,9 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person." + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" }, "telephone": { "title": "Telephone", @@ -4965,7 +5199,8 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code." + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "faxNumber": { "title": "Fax number", @@ -4973,7 +5208,8 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code." + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "url": { "title": "URL", @@ -4990,9 +5226,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -5001,9 +5239,11 @@ }, "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", - "title": "Organization reference" + "title": "Organization reference", + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "documents": { "title": "Documents", @@ -5034,7 +5274,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -5042,7 +5283,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -5050,7 +5292,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -5087,7 +5330,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -5097,10 +5341,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -5114,7 +5361,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -5122,16 +5370,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } - } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true }, "milestones": { "title": "Milestones", @@ -5160,7 +5413,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "type": { "title": "Milestone type", @@ -5170,7 +5424,8 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "description": { "title": "Description", @@ -5178,7 +5433,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "code": { "title": "Milestone code", @@ -5186,7 +5442,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "dueDate": { "title": "Due date", @@ -5265,7 +5522,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -5273,7 +5531,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -5281,7 +5540,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -5318,7 +5578,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -5328,10 +5589,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -5345,7 +5609,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -5353,17 +5618,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 } }, "patternProperties": { @@ -5371,16 +5640,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } - } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true }, "amendments": { "description": "A tender amendment is a formal change to the tender, and generally involves the publication of a new tender notice/release. The rationale and a description of the changes made can be provided here.", @@ -5406,7 +5680,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -5414,7 +5689,8 @@ "string", "null" ], - "title": "ID" + "title": "ID", + "minLength": 1 }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -5422,7 +5698,8 @@ "string", "null" ], - "title": "Description" + "title": "Description", + "minLength": 1 }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -5430,7 +5707,8 @@ "string", "null" ], - "title": "Amended release (identifier)" + "title": "Amended release (identifier)", + "minLength": 1 }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -5438,7 +5716,8 @@ "string", "null" ], - "title": "Amending release (identifier)" + "title": "Amending release (identifier)", + "minLength": 1 }, "changes": { "title": "Amended fields", @@ -5450,7 +5729,8 @@ "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. (Deprecated in 1.1)", - "type": "string" + "type": "string", + "minLength": 1 }, "former_value": { "title": "Former Value", @@ -5462,14 +5742,21 @@ "array", "object", "null" - ] + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 } - } + }, + "minProperties": 1 }, "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" - } + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -5477,10 +5764,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } - } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "minItems": 1, + "uniqueItems": true }, "amendment": { "title": "Amendment", @@ -5502,7 +5796,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -5510,7 +5805,8 @@ "string", "null" ], - "title": "ID" + "title": "ID", + "minLength": 1 }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -5518,7 +5814,8 @@ "string", "null" ], - "title": "Description" + "title": "Description", + "minLength": 1 }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -5526,7 +5823,8 @@ "string", "null" ], - "title": "Amended release (identifier)" + "title": "Amended release (identifier)", + "minLength": 1 }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -5534,7 +5832,8 @@ "string", "null" ], - "title": "Amending release (identifier)" + "title": "Amending release (identifier)", + "minLength": 1 }, "changes": { "title": "Amended fields", @@ -5546,7 +5845,8 @@ "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. (Deprecated in 1.1)", - "type": "string" + "type": "string", + "minLength": 1 }, "former_value": { "title": "Former Value", @@ -5558,14 +5858,21 @@ "array", "object", "null" - ] + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 } - } + }, + "minProperties": 1 }, "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" - } + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -5573,9 +5880,14 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, + "required": [ + "id" + ], "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -5587,45 +5899,53 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(selectionCriteria_(((([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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "awards": { "title": "Awards", @@ -5654,7 +5974,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -5662,7 +5983,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "status": { "title": "Award status", @@ -5687,7 +6009,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "date": { "title": "Award date", @@ -6026,7 +6349,8 @@ null ] } - } + }, + "minProperties": 1 }, "maximumValue": { "title": "Maximum value", @@ -6356,7 +6680,8 @@ null ] } - } + }, + "minProperties": 1 }, "estimatedValue": { "title": "Estimated value", @@ -6686,13 +7011,18 @@ null ] } - } + }, + "minProperties": 1 }, "suppliers": { "title": "Suppliers", "description": "Organizations with which a buyer or a procuring entity decided to conclude a contract.", "type": "array", "items": { + "required": [ + "id", + "name" + ], "properties": { "name": { "type": [ @@ -6709,7 +7039,8 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID" + "title": "ID", + "minLength": 1 }, "identifier": { "title": "Primary identifier", @@ -6722,7 +7053,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -6731,7 +7063,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -6739,7 +7072,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -6756,9 +7090,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -6775,7 +7111,8 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy." + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 }, "locality": { "title": "Locality", @@ -6783,7 +7120,8 @@ "string", "null" ], - "description": "The locality. For example, Mountain View." + "description": "The locality. For example, Mountain View.", + "minLength": 1 }, "region": { "title": "Region", @@ -6791,7 +7129,8 @@ "string", "null" ], - "description": "The region. For example, CA." + "description": "The region. For example, CA.", + "minLength": 1 }, "postalCode": { "title": "Postal code", @@ -6799,7 +7138,8 @@ "string", "null" ], - "description": "The postal code. For example, 94043." + "description": "The postal code. For example, 94043.", + "minLength": 1 }, "country": { "title": "Country code", @@ -7074,7 +7414,8 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -7086,9 +7427,11 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, + "minProperties": 1, "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." @@ -7111,7 +7454,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -7120,7 +7464,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -7128,7 +7473,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -7145,14 +7491,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 }, "contactPoint": { "title": "Contact point", @@ -7165,7 +7514,8 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 }, "email": { "title": "Email", @@ -7173,7 +7523,9 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person." + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" }, "telephone": { "title": "Telephone", @@ -7181,7 +7533,8 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code." + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "faxNumber": { "title": "Fax number", @@ -7189,7 +7542,8 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code." + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "url": { "title": "URL", @@ -7206,9 +7560,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -7217,9 +7573,11 @@ }, "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", - "title": "Organization reference" + "title": "Organization reference", + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "items": { "title": "Items awarded", @@ -7249,7 +7607,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "classification": { "title": "Classification", @@ -7264,7 +7623,8 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -7273,7 +7633,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -7281,7 +7642,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -7298,9 +7660,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "additionalClassifications": { "title": "Additional classifications", @@ -7319,7 +7683,8 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -7328,7 +7693,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -7336,7 +7702,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -7353,12 +7720,15 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "uniqueItems": true, - "wholeListMerge": true + "wholeListMerge": true, + "minItems": 1 }, "quantity": { "title": "Quantity", @@ -7381,7 +7751,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -7389,7 +7760,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "name": { "title": "Name", @@ -7397,7 +7769,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "value": { "title": "Value", @@ -7727,7 +8100,8 @@ null ] } - } + }, + "minProperties": 1 }, "uri": { "title": "URI", @@ -7756,7 +8130,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -7764,9 +8139,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "quantity": { "title": "Quantity", @@ -7776,7 +8153,8 @@ "null" ] } - } + }, + "minProperties": 1 } }, "patternProperties": { @@ -7784,9 +8162,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 } }, "patternProperties": { @@ -7794,9 +8174,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "uniqueItems": true }, @@ -7838,9 +8220,11 @@ "type": [ "integer", "null" - ] + ], + "minimum": 0 } - } + }, + "minProperties": 1 }, "documents": { "title": "Documents", @@ -7871,7 +8255,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -7879,7 +8264,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -7887,7 +8273,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -7924,7 +8311,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -7934,10 +8322,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -7951,7 +8342,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -7959,17 +8351,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "amendments": { "description": "An award amendment is a formal change to the details of the award, and generally involves the publication of a new award notice/release. The rationale and a description of the changes made can be provided here.", @@ -7995,7 +8391,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -8003,7 +8400,8 @@ "string", "null" ], - "title": "ID" + "title": "ID", + "minLength": 1 }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -8011,7 +8409,8 @@ "string", "null" ], - "title": "Description" + "title": "Description", + "minLength": 1 }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -8019,7 +8418,8 @@ "string", "null" ], - "title": "Amended release (identifier)" + "title": "Amended release (identifier)", + "minLength": 1 }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -8027,7 +8427,8 @@ "string", "null" ], - "title": "Amending release (identifier)" + "title": "Amending release (identifier)", + "minLength": 1 }, "changes": { "title": "Amended fields", @@ -8039,7 +8440,8 @@ "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. (Deprecated in 1.1)", - "type": "string" + "type": "string", + "minLength": 1 }, "former_value": { "title": "Former Value", @@ -8051,14 +8453,21 @@ "array", "object", "null" - ] + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 } - } + }, + "minProperties": 1 }, "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" - } + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -8066,10 +8475,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } - } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "minItems": 1, + "uniqueItems": true }, "amendment": { "title": "Amendment", @@ -8091,7 +8507,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -8099,7 +8516,8 @@ "string", "null" ], - "title": "ID" + "title": "ID", + "minLength": 1 }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -8107,7 +8525,8 @@ "string", "null" ], - "title": "Description" + "title": "Description", + "minLength": 1 }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -8115,7 +8534,8 @@ "string", "null" ], - "title": "Amended release (identifier)" + "title": "Amended release (identifier)", + "minLength": 1 }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -8123,7 +8543,8 @@ "string", "null" ], - "title": "Amending release (identifier)" + "title": "Amending release (identifier)", + "minLength": 1 }, "changes": { "title": "Amended fields", @@ -8135,7 +8556,8 @@ "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. (Deprecated in 1.1)", - "type": "string" + "type": "string", + "minLength": 1 }, "former_value": { "title": "Former Value", @@ -8147,14 +8569,21 @@ "array", "object", "null" - ] + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 } - } + }, + "minProperties": 1 }, "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" - } + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -8162,9 +8591,14 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, + "required": [ + "id" + ], "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -8176,17 +8610,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "contracts": { "title": "Contracts", @@ -8225,7 +8663,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Contract description", @@ -8233,7 +8672,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "status": { "title": "Contract status", @@ -8260,7 +8700,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "dateSigned": { "title": "Date concluded", @@ -8599,7 +9040,8 @@ null ] } - } + }, + "minProperties": 1 }, "maximumValue": { "title": "Maximum value", @@ -8929,7 +9371,8 @@ null ] } - } + }, + "minProperties": 1 }, "estimatedValue": { "title": "Estimated value", @@ -9259,7 +9702,8 @@ null ] } - } + }, + "minProperties": 1 }, "items": { "title": "Items contracted", @@ -9289,7 +9733,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "classification": { "title": "Classification", @@ -9304,7 +9749,8 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -9313,7 +9759,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -9321,7 +9768,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -9338,9 +9786,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "additionalClassifications": { "title": "Additional classifications", @@ -9359,7 +9809,8 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -9368,7 +9819,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -9376,7 +9828,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -9393,12 +9846,15 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "uniqueItems": true, - "wholeListMerge": true + "wholeListMerge": true, + "minItems": 1 }, "quantity": { "title": "Quantity", @@ -9421,7 +9877,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -9429,7 +9886,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "name": { "title": "Name", @@ -9437,7 +9895,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "value": { "title": "Value", @@ -9767,7 +10226,8 @@ null ] } - } + }, + "minProperties": 1 }, "uri": { "title": "URI", @@ -9796,7 +10256,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -9804,9 +10265,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "quantity": { "title": "Quantity", @@ -9816,7 +10279,8 @@ "null" ] } - } + }, + "minProperties": 1 } }, "patternProperties": { @@ -9824,9 +10288,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 } }, "patternProperties": { @@ -9834,9 +10300,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "uniqueItems": true }, @@ -9878,9 +10346,11 @@ "type": [ "integer", "null" - ] + ], + "minimum": 0 } - } + }, + "minProperties": 1 }, "documents": { "title": "Documents", @@ -9911,7 +10381,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -9919,7 +10390,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -9927,7 +10399,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -9964,7 +10437,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -9974,10 +10448,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -9991,7 +10468,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -9999,17 +10477,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "implementation": { "type": "object", @@ -10383,9 +10865,14 @@ null ] } - } + }, + "minProperties": 1 }, "payer": { + "required": [ + "id", + "name" + ], "properties": { "name": { "type": [ @@ -10402,7 +10889,8 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID" + "title": "ID", + "minLength": 1 }, "identifier": { "title": "Primary identifier", @@ -10415,7 +10903,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -10424,7 +10913,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -10432,7 +10922,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -10449,9 +10940,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -10468,7 +10961,8 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy." + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 }, "locality": { "title": "Locality", @@ -10476,7 +10970,8 @@ "string", "null" ], - "description": "The locality. For example, Mountain View." + "description": "The locality. For example, Mountain View.", + "minLength": 1 }, "region": { "title": "Region", @@ -10484,7 +10979,8 @@ "string", "null" ], - "description": "The region. For example, CA." + "description": "The region. For example, CA.", + "minLength": 1 }, "postalCode": { "title": "Postal code", @@ -10492,7 +10988,8 @@ "string", "null" ], - "description": "The postal code. For example, 94043." + "description": "The postal code. For example, 94043.", + "minLength": 1 }, "country": { "title": "Country code", @@ -10767,7 +11264,8 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -10779,9 +11277,11 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, + "minProperties": 1, "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." @@ -10804,7 +11304,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -10813,7 +11314,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -10821,7 +11323,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -10838,14 +11341,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 }, "contactPoint": { "title": "Contact point", @@ -10858,7 +11364,8 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 }, "email": { "title": "Email", @@ -10866,7 +11373,9 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person." + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" }, "telephone": { "title": "Telephone", @@ -10874,7 +11383,8 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code." + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "faxNumber": { "title": "Fax number", @@ -10882,7 +11392,8 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code." + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "url": { "title": "URL", @@ -10899,9 +11410,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -10910,9 +11423,14 @@ }, "type": "object", "description": "An organization reference for the organization from which the funds in this transaction originate.", - "title": "Payer" + "title": "Payer", + "minProperties": 1 }, "payee": { + "required": [ + "id", + "name" + ], "properties": { "name": { "type": [ @@ -10929,7 +11447,8 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID" + "title": "ID", + "minLength": 1 }, "identifier": { "title": "Primary identifier", @@ -10942,7 +11461,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -10951,7 +11471,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -10959,7 +11480,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -10976,9 +11498,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -10995,7 +11519,8 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy." + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 }, "locality": { "title": "Locality", @@ -11003,7 +11528,8 @@ "string", "null" ], - "description": "The locality. For example, Mountain View." + "description": "The locality. For example, Mountain View.", + "minLength": 1 }, "region": { "title": "Region", @@ -11011,7 +11537,8 @@ "string", "null" ], - "description": "The region. For example, CA." + "description": "The region. For example, CA.", + "minLength": 1 }, "postalCode": { "title": "Postal code", @@ -11019,7 +11546,8 @@ "string", "null" ], - "description": "The postal code. For example, 94043." + "description": "The postal code. For example, 94043.", + "minLength": 1 }, "country": { "title": "Country code", @@ -11294,7 +11822,8 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -11306,9 +11835,11 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, + "minProperties": 1, "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." @@ -11331,7 +11862,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -11340,7 +11872,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -11348,7 +11881,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -11365,14 +11899,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 }, "contactPoint": { "title": "Contact point", @@ -11385,7 +11922,8 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 }, "email": { "title": "Email", @@ -11393,7 +11931,9 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person." + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" }, "telephone": { "title": "Telephone", @@ -11401,7 +11941,8 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code." + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "faxNumber": { "title": "Fax number", @@ -11409,7 +11950,8 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code." + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "url": { "title": "URL", @@ -11426,9 +11968,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -11437,7 +11981,8 @@ }, "type": "object", "description": "An organization reference for the organization which receives the funds in this transaction.", - "title": "Payee" + "title": "Payee", + "minProperties": 1 }, "uri": { "title": "Linked spending information", @@ -11777,6 +12322,7 @@ ] } }, + "minProperties": 1, "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" @@ -11793,7 +12339,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -11802,7 +12349,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -11810,7 +12358,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -11827,9 +12376,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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" @@ -11846,7 +12397,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -11855,7 +12407,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -11863,7 +12416,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -11880,17 +12434,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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" } } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "milestones": { "title": "Milestones", @@ -11919,7 +12477,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "type": { "title": "Milestone type", @@ -11929,7 +12488,8 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "description": { "title": "Description", @@ -11937,7 +12497,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "code": { "title": "Milestone code", @@ -11945,7 +12506,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "dueDate": { "title": "Due date", @@ -12024,7 +12586,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -12032,7 +12595,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -12040,7 +12604,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -12077,7 +12642,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -12087,10 +12653,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -12104,7 +12673,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -12112,17 +12682,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 } }, "patternProperties": { @@ -12130,17 +12704,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "documents": { "title": "Documents", @@ -12171,7 +12749,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -12179,7 +12758,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -12187,7 +12767,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -12224,7 +12805,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -12234,10 +12816,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -12251,7 +12836,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -12259,19 +12845,24 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 } - } + }, + "minProperties": 1 }, "relatedProcesses": { "uniqueItems": true, @@ -12283,11 +12874,13 @@ "id": { "title": "Relationship ID", "description": "A local identifier for this relationship, unique within this array.", - "type": "string" + "type": "string", + "minLength": 1 }, "relationship": { "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "description": "The type of relationship, using the open [relatedProcess](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process) codelist.", "title": "Relationship", @@ -12296,7 +12889,9 @@ "null" ], "codelist": "relatedProcess.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "title": { "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", @@ -12304,7 +12899,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "scheme": { "title": "Scheme", @@ -12314,7 +12910,8 @@ "null" ], "codelist": "relatedProcessScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "identifier": { "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", @@ -12322,7 +12919,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "format": "uri", @@ -12333,11 +12931,16 @@ "null" ] } - } + }, + "minProperties": 1, + "required": [ + "id" + ] }, "description": "The details of related processes: for example, if this process is followed by one or more contracting processes, represented under a separate ocid. This is commonly used to refer to subcontracts and to renewal or replacement processes for this contract.", "title": "Related processes", - "type": "array" + "type": "array", + "minItems": 1 }, "milestones": { "title": "Contract milestones", @@ -12366,7 +12969,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "type": { "title": "Milestone type", @@ -12376,7 +12980,8 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "description": { "title": "Description", @@ -12384,7 +12989,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "code": { "title": "Milestone code", @@ -12392,7 +12998,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "dueDate": { "title": "Due date", @@ -12471,7 +13078,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -12479,7 +13087,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -12487,7 +13096,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -12524,7 +13134,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -12534,10 +13145,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -12551,7 +13165,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -12559,17 +13174,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 } }, "patternProperties": { @@ -12577,16 +13196,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } - } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true }, "amendments": { "description": "A contract amendment is a formal change to, or extension of, a contract, and generally involves the publication of a new contract signature notice/release, or some other documents detailing the change. The rationale and a description of the changes made can be provided here.", @@ -12612,7 +13236,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -12620,7 +13245,8 @@ "string", "null" ], - "title": "ID" + "title": "ID", + "minLength": 1 }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -12628,7 +13254,8 @@ "string", "null" ], - "title": "Description" + "title": "Description", + "minLength": 1 }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -12636,7 +13263,8 @@ "string", "null" ], - "title": "Amended release (identifier)" + "title": "Amended release (identifier)", + "minLength": 1 }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -12644,7 +13272,8 @@ "string", "null" ], - "title": "Amending release (identifier)" + "title": "Amending release (identifier)", + "minLength": 1 }, "changes": { "title": "Amended fields", @@ -12656,7 +13285,8 @@ "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. (Deprecated in 1.1)", - "type": "string" + "type": "string", + "minLength": 1 }, "former_value": { "title": "Former Value", @@ -12668,14 +13298,21 @@ "array", "object", "null" - ] + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 } - } + }, + "minProperties": 1 }, "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" - } + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -12683,10 +13320,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } - } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "minItems": 1, + "uniqueItems": true }, "amendment": { "title": "Amendment", @@ -12708,7 +13352,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -12716,7 +13361,8 @@ "string", "null" ], - "title": "ID" + "title": "ID", + "minLength": 1 }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -12724,7 +13370,8 @@ "string", "null" ], - "title": "Description" + "title": "Description", + "minLength": 1 }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -12732,7 +13379,8 @@ "string", "null" ], - "title": "Amended release (identifier)" + "title": "Amended release (identifier)", + "minLength": 1 }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -12740,7 +13388,8 @@ "string", "null" ], - "title": "Amending release (identifier)" + "title": "Amending release (identifier)", + "minLength": 1 }, "changes": { "title": "Amended fields", @@ -12752,7 +13401,8 @@ "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. (Deprecated in 1.1)", - "type": "string" + "type": "string", + "minLength": 1 }, "former_value": { "title": "Former Value", @@ -12764,14 +13414,21 @@ "array", "object", "null" - ] + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 } - } + }, + "minProperties": 1 }, "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" - } + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -12779,9 +13436,14 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, + "required": [ + "id" + ], "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -12793,17 +13455,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "language": { "title": "Release language", @@ -12813,7 +13479,8 @@ "null" ], "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "relatedProcesses": { "uniqueItems": true, @@ -12825,11 +13492,13 @@ "id": { "title": "Relationship ID", "description": "A local identifier for this relationship, unique within this array.", - "type": "string" + "type": "string", + "minLength": 1 }, "relationship": { "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "description": "The type of relationship, using the open [relatedProcess](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process) codelist.", "title": "Relationship", @@ -12838,7 +13507,9 @@ "null" ], "codelist": "relatedProcess.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "title": { "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", @@ -12846,7 +13517,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "scheme": { "title": "Scheme", @@ -12856,7 +13528,8 @@ "null" ], "codelist": "relatedProcessScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "identifier": { "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", @@ -12864,7 +13537,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "format": "uri", @@ -12875,11 +13549,16 @@ "null" ] } - } + }, + "minProperties": 1, + "required": [ + "id" + ] }, "description": "The details of related processes: for example, if this process follows on from one or more other processes, represented under a separate ocid. This is commonly used to relate mini-competitions to their parent frameworks or individual tenders to a broader planning process.", "title": "Related processes", - "type": "array" + "type": "array", + "minItems": 1 }, "links": { "title": "Links", @@ -12895,7 +13574,8 @@ "description": "The relationship with the related resource, using the open [link relation type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#link-relation-type) codelist.", "type": "string", "codelist": "linkRelationType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "href": { "title": "Link target", @@ -12903,10 +13583,12 @@ "type": "string", "format": "uri" } - } + }, + "minProperties": 1 }, "uniqueItems": true, - "omitWhenMerged": true + "omitWhenMerged": true, + "minItems": 1 } }, "required": [ @@ -12928,7 +13610,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "rationale": { "title": "Rationale", @@ -12936,7 +13619,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "budget": { "type": "object", @@ -12950,7 +13634,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Budget Source", @@ -12958,7 +13643,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "amount": { "title": "Amount", @@ -13288,7 +13974,8 @@ null ] } - } + }, + "minProperties": 1 }, "project": { "title": "Project title", @@ -13296,7 +13983,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "projectID": { "title": "Project identifier", @@ -13305,7 +13993,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "Linked budget information", @@ -13335,21 +14024,25 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "documents": { "title": "Documents", @@ -13380,7 +14073,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -13388,7 +14082,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -13396,7 +14091,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -13433,7 +14129,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -13443,10 +14140,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -13460,7 +14160,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -13468,16 +14169,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } - } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true }, "milestones": { "title": "Planning milestones", @@ -13506,7 +14212,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "type": { "title": "Milestone type", @@ -13516,7 +14223,8 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "description": { "title": "Description", @@ -13524,7 +14232,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "code": { "title": "Milestone code", @@ -13532,7 +14241,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "dueDate": { "title": "Due date", @@ -13611,7 +14321,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -13619,7 +14330,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -13627,7 +14339,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -13664,7 +14377,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -13674,10 +14388,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -13691,7 +14408,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -13699,17 +14417,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 } }, "patternProperties": { @@ -13717,16 +14439,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } - } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -13734,9 +14461,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Tender": { "title": "Tender", @@ -13761,7 +14490,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Tender description", @@ -13769,7 +14499,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "status": { "title": "Tender status", @@ -13797,9 +14528,14 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "procuringEntity": { + "required": [ + "id", + "name" + ], "properties": { "name": { "type": [ @@ -13816,7 +14552,8 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID" + "title": "ID", + "minLength": 1 }, "identifier": { "title": "Primary identifier", @@ -13829,7 +14566,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -13838,7 +14576,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -13846,7 +14585,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -13863,9 +14603,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -13882,7 +14624,8 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy." + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 }, "locality": { "title": "Locality", @@ -13890,7 +14633,8 @@ "string", "null" ], - "description": "The locality. For example, Mountain View." + "description": "The locality. For example, Mountain View.", + "minLength": 1 }, "region": { "title": "Region", @@ -13898,7 +14642,8 @@ "string", "null" ], - "description": "The region. For example, CA." + "description": "The region. For example, CA.", + "minLength": 1 }, "postalCode": { "title": "Postal code", @@ -13906,7 +14651,8 @@ "string", "null" ], - "description": "The postal code. For example, 94043." + "description": "The postal code. For example, 94043.", + "minLength": 1 }, "country": { "title": "Country code", @@ -14181,7 +14927,8 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -14193,9 +14940,11 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, + "minProperties": 1, "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." @@ -14218,7 +14967,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -14227,7 +14977,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -14235,7 +14986,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -14252,14 +15004,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 }, "contactPoint": { "title": "Contact point", @@ -14272,7 +15027,8 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 }, "email": { "title": "Email", @@ -14280,7 +15036,9 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person." + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" }, "telephone": { "title": "Telephone", @@ -14288,7 +15046,8 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code." + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "faxNumber": { "title": "Fax number", @@ -14296,7 +15055,8 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code." + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "url": { "title": "URL", @@ -14313,9 +15073,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -14324,7 +15086,8 @@ }, "type": "object", "description": "The organization managing the contracting process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", - "title": "Procuring entity" + "title": "Procuring entity", + "minProperties": 1 }, "items": { "title": "Items to be procured", @@ -14353,7 +15116,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "classification": { "title": "Classification", @@ -14368,7 +15132,8 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -14377,7 +15142,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -14385,7 +15151,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -14402,9 +15169,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "additionalClassifications": { "title": "Additional classifications", @@ -14423,7 +15192,8 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -14432,7 +15202,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -14440,7 +15211,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -14457,12 +15229,15 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "uniqueItems": true, - "wholeListMerge": true + "wholeListMerge": true, + "minItems": 1 }, "quantity": { "title": "Quantity", @@ -14485,7 +15260,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -14493,7 +15269,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "name": { "title": "Name", @@ -14501,7 +15278,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "value": { "title": "Value", @@ -14831,7 +15609,8 @@ null ] } - } + }, + "minProperties": 1 }, "uri": { "title": "URI", @@ -14860,7 +15639,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -14868,9 +15648,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "quantity": { "title": "Quantity", @@ -14880,7 +15662,8 @@ "null" ] } - } + }, + "minProperties": 1 } }, "patternProperties": { @@ -14888,9 +15671,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 } }, "patternProperties": { @@ -14898,11 +15683,14 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "value": { "title": "Value", @@ -15232,7 +16020,8 @@ null ] } - } + }, + "minProperties": 1 }, "minValue": { "title": "Minimum value", @@ -15562,7 +16351,8 @@ null ] } - } + }, + "minProperties": 1 }, "maximumValue": { "title": "Maximum value", @@ -15892,7 +16682,8 @@ null ] } - } + }, + "minProperties": 1 }, "procurementMethod": { "title": "Procurement method", @@ -15917,7 +16708,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "procurementMethodRationale": { "title": "Procurement method rationale", @@ -15925,7 +16717,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "mainProcurementCategory": { "title": "Main procurement category", @@ -15951,10 +16744,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "extendedProcurementCategory.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "awardCriteria": { "title": "Award criteria", @@ -15964,7 +16760,8 @@ "null" ], "codelist": "awardCriteria.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "awardCriteriaDetails": { "title": "Award criteria details", @@ -15972,7 +16769,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "submissionMethod": { "title": "Submission method", @@ -15982,14 +16780,17 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "submissionMethod.csv", "openCodelist": true, "deprecated": { "description": "This field is deprecated, because all codes from the submissionMethod codelist are deprecated. Refer to the Deprecation note of individual codes.", "deprecatedVersion": "1.2" - } + }, + "minItems": 1, + "uniqueItems": true }, "submissionMethodDetails": { "title": "Submission method details", @@ -15997,7 +16798,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "datePublished": { "description": "The date on which the tender was published.", @@ -16046,9 +16848,11 @@ "type": [ "integer", "null" - ] + ], + "minimum": 0 } - } + }, + "minProperties": 1 }, "enquiryPeriod": { "title": "Enquiry period", @@ -16088,9 +16892,11 @@ "type": [ "integer", "null" - ] + ], + "minimum": 0 } - } + }, + "minProperties": 1 }, "hasEnquiries": { "title": "Has enquiries?", @@ -16110,7 +16916,8 @@ "deprecated": { "description": "This field had unclear semantics and used ambiguous terms, and is deprecated in favor of exclusionGrounds.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 }, "exclusionGrounds": { "title": "Exclusion grounds", @@ -16118,7 +16925,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "selectionCriteria": { "title": "Selection criteria", @@ -16126,7 +16934,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "awardPeriod": { "title": "Evaluation and award period", @@ -16166,9 +16975,11 @@ "type": [ "integer", "null" - ] + ], + "minimum": 0 } - } + }, + "minProperties": 1 }, "contractPeriod": { "title": "Contract period", @@ -16208,9 +17019,11 @@ "type": [ "integer", "null" - ] + ], + "minimum": 0 } - } + }, + "minProperties": 1 }, "numberOfTenderers": { "title": "Number of tenderers", @@ -16218,13 +17031,18 @@ "type": [ "integer", "null" - ] + ], + "minimum": 0 }, "tenderers": { "title": "Tenderers", "description": "All organizations that submit a bid. More detailed information on bids and the bidding organization can be provided using the bid extension.", "type": "array", "items": { + "required": [ + "id", + "name" + ], "properties": { "name": { "type": [ @@ -16241,7 +17059,8 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID" + "title": "ID", + "minLength": 1 }, "identifier": { "title": "Primary identifier", @@ -16254,7 +17073,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -16263,7 +17083,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -16271,7 +17092,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -16288,9 +17110,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -16307,7 +17131,8 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy." + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 }, "locality": { "title": "Locality", @@ -16315,7 +17140,8 @@ "string", "null" ], - "description": "The locality. For example, Mountain View." + "description": "The locality. For example, Mountain View.", + "minLength": 1 }, "region": { "title": "Region", @@ -16323,7 +17149,8 @@ "string", "null" ], - "description": "The region. For example, CA." + "description": "The region. For example, CA.", + "minLength": 1 }, "postalCode": { "title": "Postal code", @@ -16331,7 +17158,8 @@ "string", "null" ], - "description": "The postal code. For example, 94043." + "description": "The postal code. For example, 94043.", + "minLength": 1 }, "country": { "title": "Country code", @@ -16606,7 +17434,8 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -16618,9 +17447,11 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, + "minProperties": 1, "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." @@ -16643,7 +17474,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -16652,7 +17484,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -16660,7 +17493,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -16677,14 +17511,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 }, "contactPoint": { "title": "Contact point", @@ -16697,7 +17534,8 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 }, "email": { "title": "Email", @@ -16705,7 +17543,9 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person." + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" }, "telephone": { "title": "Telephone", @@ -16713,7 +17553,8 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code." + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "faxNumber": { "title": "Fax number", @@ -16721,7 +17562,8 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code." + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "url": { "title": "URL", @@ -16738,9 +17580,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -16749,9 +17593,11 @@ }, "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", - "title": "Organization reference" + "title": "Organization reference", + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "documents": { "title": "Documents", @@ -16782,7 +17628,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -16790,7 +17637,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -16798,7 +17646,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -16835,7 +17684,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -16845,10 +17695,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -16862,7 +17715,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -16870,16 +17724,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } - } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true }, "milestones": { "title": "Milestones", @@ -16908,7 +17767,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "type": { "title": "Milestone type", @@ -16918,7 +17778,8 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "description": { "title": "Description", @@ -16926,7 +17787,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "code": { "title": "Milestone code", @@ -16934,7 +17796,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "dueDate": { "title": "Due date", @@ -17013,7 +17876,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -17021,7 +17885,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -17029,7 +17894,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -17066,7 +17932,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -17076,10 +17943,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -17093,7 +17963,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -17101,17 +17972,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 } }, "patternProperties": { @@ -17119,16 +17994,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } - } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true }, "amendments": { "description": "A tender amendment is a formal change to the tender, and generally involves the publication of a new tender notice/release. The rationale and a description of the changes made can be provided here.", @@ -17154,7 +18034,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -17162,7 +18043,8 @@ "string", "null" ], - "title": "ID" + "title": "ID", + "minLength": 1 }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -17170,7 +18052,8 @@ "string", "null" ], - "title": "Description" + "title": "Description", + "minLength": 1 }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -17178,7 +18061,8 @@ "string", "null" ], - "title": "Amended release (identifier)" + "title": "Amended release (identifier)", + "minLength": 1 }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -17186,7 +18070,8 @@ "string", "null" ], - "title": "Amending release (identifier)" + "title": "Amending release (identifier)", + "minLength": 1 }, "changes": { "title": "Amended fields", @@ -17198,7 +18083,8 @@ "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. (Deprecated in 1.1)", - "type": "string" + "type": "string", + "minLength": 1 }, "former_value": { "title": "Former Value", @@ -17210,14 +18096,21 @@ "array", "object", "null" - ] + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 } - } + }, + "minProperties": 1 }, "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" - } + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -17225,10 +18118,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } - } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "minItems": 1, + "uniqueItems": true }, "amendment": { "title": "Amendment", @@ -17250,7 +18150,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -17258,7 +18159,8 @@ "string", "null" ], - "title": "ID" + "title": "ID", + "minLength": 1 }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -17266,7 +18168,8 @@ "string", "null" ], - "title": "Description" + "title": "Description", + "minLength": 1 }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -17274,7 +18177,8 @@ "string", "null" ], - "title": "Amended release (identifier)" + "title": "Amended release (identifier)", + "minLength": 1 }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -17282,7 +18186,8 @@ "string", "null" ], - "title": "Amending release (identifier)" + "title": "Amending release (identifier)", + "minLength": 1 }, "changes": { "title": "Amended fields", @@ -17294,7 +18199,8 @@ "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. (Deprecated in 1.1)", - "type": "string" + "type": "string", + "minLength": 1 }, "former_value": { "title": "Former Value", @@ -17306,14 +18212,21 @@ "array", "object", "null" - ] + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 } - } + }, + "minProperties": 1 }, "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" - } + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -17321,9 +18234,14 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, + "required": [ + "id" + ], "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -17335,45 +18253,53 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(selectionCriteria_(((([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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Award": { "title": "Award", @@ -17398,7 +18324,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -17406,7 +18333,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "status": { "title": "Award status", @@ -17431,7 +18359,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "date": { "title": "Award date", @@ -17770,7 +18699,8 @@ null ] } - } + }, + "minProperties": 1 }, "maximumValue": { "title": "Maximum value", @@ -18100,7 +19030,8 @@ null ] } - } + }, + "minProperties": 1 }, "estimatedValue": { "title": "Estimated value", @@ -18430,13 +19361,18 @@ null ] } - } + }, + "minProperties": 1 }, "suppliers": { "title": "Suppliers", "description": "Organizations with which a buyer or a procuring entity decided to conclude a contract.", "type": "array", "items": { + "required": [ + "id", + "name" + ], "properties": { "name": { "type": [ @@ -18453,7 +19389,8 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID" + "title": "ID", + "minLength": 1 }, "identifier": { "title": "Primary identifier", @@ -18466,7 +19403,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -18475,7 +19413,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -18483,7 +19422,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -18500,9 +19440,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -18519,7 +19461,8 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy." + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 }, "locality": { "title": "Locality", @@ -18527,7 +19470,8 @@ "string", "null" ], - "description": "The locality. For example, Mountain View." + "description": "The locality. For example, Mountain View.", + "minLength": 1 }, "region": { "title": "Region", @@ -18535,7 +19479,8 @@ "string", "null" ], - "description": "The region. For example, CA." + "description": "The region. For example, CA.", + "minLength": 1 }, "postalCode": { "title": "Postal code", @@ -18543,7 +19488,8 @@ "string", "null" ], - "description": "The postal code. For example, 94043." + "description": "The postal code. For example, 94043.", + "minLength": 1 }, "country": { "title": "Country code", @@ -18818,7 +19764,8 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -18830,9 +19777,11 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, + "minProperties": 1, "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." @@ -18855,7 +19804,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -18864,7 +19814,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -18872,7 +19823,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -18889,14 +19841,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 }, "contactPoint": { "title": "Contact point", @@ -18909,7 +19864,8 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 }, "email": { "title": "Email", @@ -18917,7 +19873,9 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person." + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" }, "telephone": { "title": "Telephone", @@ -18925,7 +19883,8 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code." + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "faxNumber": { "title": "Fax number", @@ -18933,7 +19892,8 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code." + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "url": { "title": "URL", @@ -18950,9 +19910,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -18961,9 +19923,11 @@ }, "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", - "title": "Organization reference" + "title": "Organization reference", + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "items": { "title": "Items awarded", @@ -18993,7 +19957,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "classification": { "title": "Classification", @@ -19008,7 +19973,8 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -19017,7 +19983,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -19025,7 +19992,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -19042,9 +20010,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "additionalClassifications": { "title": "Additional classifications", @@ -19063,7 +20033,8 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -19072,7 +20043,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -19080,7 +20052,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -19097,12 +20070,15 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "uniqueItems": true, - "wholeListMerge": true + "wholeListMerge": true, + "minItems": 1 }, "quantity": { "title": "Quantity", @@ -19125,7 +20101,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -19133,7 +20110,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "name": { "title": "Name", @@ -19141,7 +20119,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "value": { "title": "Value", @@ -19471,7 +20450,8 @@ null ] } - } + }, + "minProperties": 1 }, "uri": { "title": "URI", @@ -19500,7 +20480,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -19508,9 +20489,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "quantity": { "title": "Quantity", @@ -19520,7 +20503,8 @@ "null" ] } - } + }, + "minProperties": 1 } }, "patternProperties": { @@ -19528,9 +20512,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 } }, "patternProperties": { @@ -19538,9 +20524,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "uniqueItems": true }, @@ -19582,9 +20570,11 @@ "type": [ "integer", "null" - ] + ], + "minimum": 0 } - } + }, + "minProperties": 1 }, "documents": { "title": "Documents", @@ -19615,7 +20605,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -19623,7 +20614,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -19631,7 +20623,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -19668,7 +20661,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -19678,10 +20672,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -19695,7 +20692,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -19703,17 +20701,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "amendments": { "description": "An award amendment is a formal change to the details of the award, and generally involves the publication of a new award notice/release. The rationale and a description of the changes made can be provided here.", @@ -19739,7 +20741,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -19747,7 +20750,8 @@ "string", "null" ], - "title": "ID" + "title": "ID", + "minLength": 1 }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -19755,7 +20759,8 @@ "string", "null" ], - "title": "Description" + "title": "Description", + "minLength": 1 }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -19763,7 +20768,8 @@ "string", "null" ], - "title": "Amended release (identifier)" + "title": "Amended release (identifier)", + "minLength": 1 }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -19771,7 +20777,8 @@ "string", "null" ], - "title": "Amending release (identifier)" + "title": "Amending release (identifier)", + "minLength": 1 }, "changes": { "title": "Amended fields", @@ -19783,7 +20790,8 @@ "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. (Deprecated in 1.1)", - "type": "string" + "type": "string", + "minLength": 1 }, "former_value": { "title": "Former Value", @@ -19795,14 +20803,21 @@ "array", "object", "null" - ] + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 } - } + }, + "minProperties": 1 }, "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" - } + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -19810,10 +20825,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } - } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "minItems": 1, + "uniqueItems": true }, "amendment": { "title": "Amendment", @@ -19835,7 +20857,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -19843,7 +20866,8 @@ "string", "null" ], - "title": "ID" + "title": "ID", + "minLength": 1 }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -19851,7 +20875,8 @@ "string", "null" ], - "title": "Description" + "title": "Description", + "minLength": 1 }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -19859,7 +20884,8 @@ "string", "null" ], - "title": "Amended release (identifier)" + "title": "Amended release (identifier)", + "minLength": 1 }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -19867,7 +20893,8 @@ "string", "null" ], - "title": "Amending release (identifier)" + "title": "Amending release (identifier)", + "minLength": 1 }, "changes": { "title": "Amended fields", @@ -19879,7 +20906,8 @@ "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. (Deprecated in 1.1)", - "type": "string" + "type": "string", + "minLength": 1 }, "former_value": { "title": "Former Value", @@ -19891,14 +20919,21 @@ "array", "object", "null" - ] + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 } - } + }, + "minProperties": 1 }, "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" - } + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -19906,9 +20941,14 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, + "required": [ + "id" + ], "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -19920,15 +20960,18 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Contract": { "type": "object", @@ -19963,7 +21006,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Contract description", @@ -19971,7 +21015,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "status": { "title": "Contract status", @@ -19998,7 +21043,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "dateSigned": { "title": "Date concluded", @@ -20337,7 +21383,8 @@ null ] } - } + }, + "minProperties": 1 }, "maximumValue": { "title": "Maximum value", @@ -20667,7 +21714,8 @@ null ] } - } + }, + "minProperties": 1 }, "estimatedValue": { "title": "Estimated value", @@ -20997,7 +22045,8 @@ null ] } - } + }, + "minProperties": 1 }, "items": { "title": "Items contracted", @@ -21027,7 +22076,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "classification": { "title": "Classification", @@ -21042,7 +22092,8 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -21051,7 +22102,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -21059,7 +22111,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -21076,9 +22129,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "additionalClassifications": { "title": "Additional classifications", @@ -21097,7 +22152,8 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -21106,7 +22162,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -21114,7 +22171,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -21131,12 +22189,15 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "uniqueItems": true, - "wholeListMerge": true + "wholeListMerge": true, + "minItems": 1 }, "quantity": { "title": "Quantity", @@ -21159,7 +22220,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -21167,7 +22229,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "name": { "title": "Name", @@ -21175,7 +22238,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "value": { "title": "Value", @@ -21505,7 +22569,8 @@ null ] } - } + }, + "minProperties": 1 }, "uri": { "title": "URI", @@ -21534,7 +22599,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -21542,9 +22608,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "quantity": { "title": "Quantity", @@ -21554,7 +22622,8 @@ "null" ] } - } + }, + "minProperties": 1 } }, "patternProperties": { @@ -21562,9 +22631,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 } }, "patternProperties": { @@ -21572,9 +22643,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "uniqueItems": true }, @@ -21616,9 +22689,11 @@ "type": [ "integer", "null" - ] + ], + "minimum": 0 } - } + }, + "minProperties": 1 }, "documents": { "title": "Documents", @@ -21649,7 +22724,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -21657,7 +22733,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -21665,7 +22742,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -21702,7 +22780,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -21712,10 +22791,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -21729,7 +22811,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -21737,17 +22820,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "implementation": { "type": "object", @@ -22121,9 +23208,14 @@ null ] } - } + }, + "minProperties": 1 }, "payer": { + "required": [ + "id", + "name" + ], "properties": { "name": { "type": [ @@ -22140,7 +23232,8 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID" + "title": "ID", + "minLength": 1 }, "identifier": { "title": "Primary identifier", @@ -22153,7 +23246,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -22162,7 +23256,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -22170,7 +23265,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -22187,9 +23283,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -22206,7 +23304,8 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy." + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 }, "locality": { "title": "Locality", @@ -22214,7 +23313,8 @@ "string", "null" ], - "description": "The locality. For example, Mountain View." + "description": "The locality. For example, Mountain View.", + "minLength": 1 }, "region": { "title": "Region", @@ -22222,7 +23322,8 @@ "string", "null" ], - "description": "The region. For example, CA." + "description": "The region. For example, CA.", + "minLength": 1 }, "postalCode": { "title": "Postal code", @@ -22230,7 +23331,8 @@ "string", "null" ], - "description": "The postal code. For example, 94043." + "description": "The postal code. For example, 94043.", + "minLength": 1 }, "country": { "title": "Country code", @@ -22505,7 +23607,8 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -22517,9 +23620,11 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, + "minProperties": 1, "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." @@ -22542,7 +23647,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -22551,7 +23657,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -22559,7 +23666,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -22576,14 +23684,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 }, "contactPoint": { "title": "Contact point", @@ -22596,7 +23707,8 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 }, "email": { "title": "Email", @@ -22604,7 +23716,9 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person." + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" }, "telephone": { "title": "Telephone", @@ -22612,7 +23726,8 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code." + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "faxNumber": { "title": "Fax number", @@ -22620,7 +23735,8 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code." + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "url": { "title": "URL", @@ -22637,9 +23753,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -22648,9 +23766,14 @@ }, "type": "object", "description": "An organization reference for the organization from which the funds in this transaction originate.", - "title": "Payer" + "title": "Payer", + "minProperties": 1 }, "payee": { + "required": [ + "id", + "name" + ], "properties": { "name": { "type": [ @@ -22667,7 +23790,8 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID" + "title": "ID", + "minLength": 1 }, "identifier": { "title": "Primary identifier", @@ -22680,7 +23804,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -22689,7 +23814,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -22697,7 +23823,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -22714,9 +23841,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -22733,7 +23862,8 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy." + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 }, "locality": { "title": "Locality", @@ -22741,7 +23871,8 @@ "string", "null" ], - "description": "The locality. For example, Mountain View." + "description": "The locality. For example, Mountain View.", + "minLength": 1 }, "region": { "title": "Region", @@ -22749,7 +23880,8 @@ "string", "null" ], - "description": "The region. For example, CA." + "description": "The region. For example, CA.", + "minLength": 1 }, "postalCode": { "title": "Postal code", @@ -22757,7 +23889,8 @@ "string", "null" ], - "description": "The postal code. For example, 94043." + "description": "The postal code. For example, 94043.", + "minLength": 1 }, "country": { "title": "Country code", @@ -23032,7 +24165,8 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -23044,9 +24178,11 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, + "minProperties": 1, "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." @@ -23069,7 +24205,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -23078,7 +24215,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -23086,7 +24224,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -23103,14 +24242,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 }, "contactPoint": { "title": "Contact point", @@ -23123,7 +24265,8 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 }, "email": { "title": "Email", @@ -23131,7 +24274,9 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person." + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" }, "telephone": { "title": "Telephone", @@ -23139,7 +24284,8 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code." + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "faxNumber": { "title": "Fax number", @@ -23147,7 +24293,8 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code." + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "url": { "title": "URL", @@ -23164,9 +24311,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -23175,7 +24324,8 @@ }, "type": "object", "description": "An organization reference for the organization which receives the funds in this transaction.", - "title": "Payee" + "title": "Payee", + "minProperties": 1 }, "uri": { "title": "Linked spending information", @@ -23515,6 +24665,7 @@ ] } }, + "minProperties": 1, "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" @@ -23531,7 +24682,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -23540,7 +24692,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -23548,7 +24701,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -23565,9 +24719,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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" @@ -23584,7 +24740,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -23593,7 +24750,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -23601,7 +24759,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -23618,17 +24777,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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" } } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "milestones": { "title": "Milestones", @@ -23657,7 +24820,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "type": { "title": "Milestone type", @@ -23667,7 +24831,8 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "description": { "title": "Description", @@ -23675,7 +24840,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "code": { "title": "Milestone code", @@ -23683,7 +24849,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "dueDate": { "title": "Due date", @@ -23762,7 +24929,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -23770,7 +24938,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -23778,7 +24947,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -23815,7 +24985,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -23825,10 +24996,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -23842,7 +25016,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -23850,17 +25025,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 } }, "patternProperties": { @@ -23868,17 +25047,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "documents": { "title": "Documents", @@ -23909,7 +25092,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -23917,7 +25101,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -23925,7 +25110,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -23962,7 +25148,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -23972,10 +25159,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -23989,7 +25179,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -23997,19 +25188,24 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 } - } + }, + "minProperties": 1 }, "relatedProcesses": { "uniqueItems": true, @@ -24021,11 +25217,13 @@ "id": { "title": "Relationship ID", "description": "A local identifier for this relationship, unique within this array.", - "type": "string" + "type": "string", + "minLength": 1 }, "relationship": { "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "description": "The type of relationship, using the open [relatedProcess](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process) codelist.", "title": "Relationship", @@ -24034,7 +25232,9 @@ "null" ], "codelist": "relatedProcess.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "title": { "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", @@ -24042,7 +25242,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "scheme": { "title": "Scheme", @@ -24052,7 +25253,8 @@ "null" ], "codelist": "relatedProcessScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "identifier": { "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", @@ -24060,7 +25262,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "format": "uri", @@ -24071,11 +25274,16 @@ "null" ] } - } + }, + "minProperties": 1, + "required": [ + "id" + ] }, "description": "The details of related processes: for example, if this process is followed by one or more contracting processes, represented under a separate ocid. This is commonly used to refer to subcontracts and to renewal or replacement processes for this contract.", "title": "Related processes", - "type": "array" + "type": "array", + "minItems": 1 }, "milestones": { "title": "Contract milestones", @@ -24104,7 +25312,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "type": { "title": "Milestone type", @@ -24114,7 +25323,8 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "description": { "title": "Description", @@ -24122,7 +25332,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "code": { "title": "Milestone code", @@ -24130,7 +25341,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "dueDate": { "title": "Due date", @@ -24209,7 +25421,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -24217,7 +25430,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -24225,7 +25439,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -24262,7 +25477,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -24272,10 +25488,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -24289,7 +25508,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -24297,17 +25517,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 } }, "patternProperties": { @@ -24315,16 +25539,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } - } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true }, "amendments": { "description": "A contract amendment is a formal change to, or extension of, a contract, and generally involves the publication of a new contract signature notice/release, or some other documents detailing the change. The rationale and a description of the changes made can be provided here.", @@ -24350,7 +25579,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -24358,7 +25588,8 @@ "string", "null" ], - "title": "ID" + "title": "ID", + "minLength": 1 }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -24366,7 +25597,8 @@ "string", "null" ], - "title": "Description" + "title": "Description", + "minLength": 1 }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -24374,7 +25606,8 @@ "string", "null" ], - "title": "Amended release (identifier)" + "title": "Amended release (identifier)", + "minLength": 1 }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -24382,7 +25615,8 @@ "string", "null" ], - "title": "Amending release (identifier)" + "title": "Amending release (identifier)", + "minLength": 1 }, "changes": { "title": "Amended fields", @@ -24394,7 +25628,8 @@ "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. (Deprecated in 1.1)", - "type": "string" + "type": "string", + "minLength": 1 }, "former_value": { "title": "Former Value", @@ -24406,14 +25641,21 @@ "array", "object", "null" - ] + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 } - } + }, + "minProperties": 1 }, "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" - } + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -24421,10 +25663,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } - } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "minItems": 1, + "uniqueItems": true }, "amendment": { "title": "Amendment", @@ -24446,7 +25695,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -24454,7 +25704,8 @@ "string", "null" ], - "title": "ID" + "title": "ID", + "minLength": 1 }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -24462,7 +25713,8 @@ "string", "null" ], - "title": "Description" + "title": "Description", + "minLength": 1 }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -24470,7 +25722,8 @@ "string", "null" ], - "title": "Amended release (identifier)" + "title": "Amended release (identifier)", + "minLength": 1 }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -24478,7 +25731,8 @@ "string", "null" ], - "title": "Amending release (identifier)" + "title": "Amending release (identifier)", + "minLength": 1 }, "changes": { "title": "Amended fields", @@ -24490,7 +25744,8 @@ "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. (Deprecated in 1.1)", - "type": "string" + "type": "string", + "minLength": 1 }, "former_value": { "title": "Former Value", @@ -24502,14 +25757,21 @@ "array", "object", "null" - ] + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 } - } + }, + "minProperties": 1 }, "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" - } + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -24517,9 +25779,14 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, + "required": [ + "id" + ], "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -24531,15 +25798,18 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Implementation": { "type": "object", @@ -24913,9 +26183,14 @@ null ] } - } + }, + "minProperties": 1 }, "payer": { + "required": [ + "id", + "name" + ], "properties": { "name": { "type": [ @@ -24932,7 +26207,8 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID" + "title": "ID", + "minLength": 1 }, "identifier": { "title": "Primary identifier", @@ -24945,7 +26221,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -24954,7 +26231,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -24962,7 +26240,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -24979,9 +26258,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -24998,7 +26279,8 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy." + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 }, "locality": { "title": "Locality", @@ -25006,7 +26288,8 @@ "string", "null" ], - "description": "The locality. For example, Mountain View." + "description": "The locality. For example, Mountain View.", + "minLength": 1 }, "region": { "title": "Region", @@ -25014,7 +26297,8 @@ "string", "null" ], - "description": "The region. For example, CA." + "description": "The region. For example, CA.", + "minLength": 1 }, "postalCode": { "title": "Postal code", @@ -25022,7 +26306,8 @@ "string", "null" ], - "description": "The postal code. For example, 94043." + "description": "The postal code. For example, 94043.", + "minLength": 1 }, "country": { "title": "Country code", @@ -25297,7 +26582,8 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -25309,9 +26595,11 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, + "minProperties": 1, "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." @@ -25334,7 +26622,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -25343,7 +26632,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -25351,7 +26641,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -25368,14 +26659,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 }, "contactPoint": { "title": "Contact point", @@ -25388,7 +26682,8 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 }, "email": { "title": "Email", @@ -25396,7 +26691,9 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person." + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" }, "telephone": { "title": "Telephone", @@ -25404,7 +26701,8 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code." + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "faxNumber": { "title": "Fax number", @@ -25412,7 +26710,8 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code." + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "url": { "title": "URL", @@ -25429,9 +26728,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -25440,9 +26741,14 @@ }, "type": "object", "description": "An organization reference for the organization from which the funds in this transaction originate.", - "title": "Payer" + "title": "Payer", + "minProperties": 1 }, "payee": { + "required": [ + "id", + "name" + ], "properties": { "name": { "type": [ @@ -25459,7 +26765,8 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID" + "title": "ID", + "minLength": 1 }, "identifier": { "title": "Primary identifier", @@ -25472,7 +26779,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -25481,7 +26789,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -25489,7 +26798,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -25506,9 +26816,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -25525,7 +26837,8 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy." + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 }, "locality": { "title": "Locality", @@ -25533,7 +26846,8 @@ "string", "null" ], - "description": "The locality. For example, Mountain View." + "description": "The locality. For example, Mountain View.", + "minLength": 1 }, "region": { "title": "Region", @@ -25541,7 +26855,8 @@ "string", "null" ], - "description": "The region. For example, CA." + "description": "The region. For example, CA.", + "minLength": 1 }, "postalCode": { "title": "Postal code", @@ -25549,7 +26864,8 @@ "string", "null" ], - "description": "The postal code. For example, 94043." + "description": "The postal code. For example, 94043.", + "minLength": 1 }, "country": { "title": "Country code", @@ -25824,7 +27140,8 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -25836,9 +27153,11 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, + "minProperties": 1, "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." @@ -25861,7 +27180,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -25870,7 +27190,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -25878,7 +27199,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -25895,14 +27217,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 }, "contactPoint": { "title": "Contact point", @@ -25915,7 +27240,8 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 }, "email": { "title": "Email", @@ -25923,7 +27249,9 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person." + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" }, "telephone": { "title": "Telephone", @@ -25931,7 +27259,8 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code." + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "faxNumber": { "title": "Fax number", @@ -25939,7 +27268,8 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code." + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "url": { "title": "URL", @@ -25956,9 +27286,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -25967,7 +27299,8 @@ }, "type": "object", "description": "An organization reference for the organization which receives the funds in this transaction.", - "title": "Payee" + "title": "Payee", + "minProperties": 1 }, "uri": { "title": "Linked spending information", @@ -26307,6 +27640,7 @@ ] } }, + "minProperties": 1, "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" @@ -26323,7 +27657,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -26332,7 +27667,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -26340,7 +27676,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -26357,9 +27694,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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" @@ -26376,7 +27715,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -26385,7 +27725,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -26393,7 +27734,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -26410,17 +27752,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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" } } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "milestones": { "title": "Milestones", @@ -26449,7 +27795,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "type": { "title": "Milestone type", @@ -26459,7 +27806,8 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "description": { "title": "Description", @@ -26467,7 +27815,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "code": { "title": "Milestone code", @@ -26475,7 +27824,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "dueDate": { "title": "Due date", @@ -26554,7 +27904,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -26562,7 +27913,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -26570,7 +27922,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -26607,7 +27960,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -26617,10 +27971,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -26634,7 +27991,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -26642,17 +28000,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 } }, "patternProperties": { @@ -26660,17 +28022,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "documents": { "title": "Documents", @@ -26701,7 +28067,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -26709,7 +28076,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -26717,7 +28085,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -26754,7 +28123,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -26764,10 +28134,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -26781,7 +28154,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -26789,19 +28163,24 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 } - } + }, + "minProperties": 1 }, "Milestone": { "title": "Milestone", @@ -26826,7 +28205,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "type": { "title": "Milestone type", @@ -26836,7 +28216,8 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "description": { "title": "Description", @@ -26844,7 +28225,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "code": { "title": "Milestone code", @@ -26852,7 +28234,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "dueDate": { "title": "Due date", @@ -26931,7 +28314,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -26939,7 +28323,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -26947,7 +28332,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -26984,7 +28370,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -26994,10 +28381,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -27011,7 +28401,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -27019,17 +28410,21 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 } }, "patternProperties": { @@ -27037,15 +28432,18 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Document": { "type": "object", @@ -27072,7 +28470,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "title": { "title": "Title", @@ -27080,7 +28479,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -27088,7 +28488,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "url": { "title": "URL", @@ -27125,7 +28526,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "languages": { "title": "Languages", @@ -27135,10 +28537,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "language": { "title": "Language", @@ -27152,7 +28557,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -27160,15 +28566,18 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Budget": { "type": "object", @@ -27182,7 +28591,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Budget Source", @@ -27190,7 +28600,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "amount": { "title": "Amount", @@ -27520,7 +28931,8 @@ null ] } - } + }, + "minProperties": 1 }, "project": { "title": "Project title", @@ -27528,7 +28940,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "projectID": { "title": "Project identifier", @@ -27537,7 +28950,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "Linked budget information", @@ -27567,21 +28981,25 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Transaction": { "type": "object", @@ -27946,9 +29364,14 @@ null ] } - } + }, + "minProperties": 1 }, "payer": { + "required": [ + "id", + "name" + ], "properties": { "name": { "type": [ @@ -27965,7 +29388,8 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID" + "title": "ID", + "minLength": 1 }, "identifier": { "title": "Primary identifier", @@ -27978,7 +29402,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -27987,7 +29412,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -27995,7 +29421,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -28012,9 +29439,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -28031,7 +29460,8 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy." + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 }, "locality": { "title": "Locality", @@ -28039,7 +29469,8 @@ "string", "null" ], - "description": "The locality. For example, Mountain View." + "description": "The locality. For example, Mountain View.", + "minLength": 1 }, "region": { "title": "Region", @@ -28047,7 +29478,8 @@ "string", "null" ], - "description": "The region. For example, CA." + "description": "The region. For example, CA.", + "minLength": 1 }, "postalCode": { "title": "Postal code", @@ -28055,7 +29487,8 @@ "string", "null" ], - "description": "The postal code. For example, 94043." + "description": "The postal code. For example, 94043.", + "minLength": 1 }, "country": { "title": "Country code", @@ -28330,7 +29763,8 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -28342,9 +29776,11 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, + "minProperties": 1, "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." @@ -28367,7 +29803,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -28376,7 +29813,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -28384,7 +29822,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -28401,14 +29840,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 }, "contactPoint": { "title": "Contact point", @@ -28421,7 +29863,8 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 }, "email": { "title": "Email", @@ -28429,7 +29872,9 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person." + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" }, "telephone": { "title": "Telephone", @@ -28437,7 +29882,8 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code." + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "faxNumber": { "title": "Fax number", @@ -28445,7 +29891,8 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code." + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "url": { "title": "URL", @@ -28462,9 +29909,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -28473,9 +29922,14 @@ }, "type": "object", "description": "An organization reference for the organization from which the funds in this transaction originate.", - "title": "Payer" + "title": "Payer", + "minProperties": 1 }, "payee": { + "required": [ + "id", + "name" + ], "properties": { "name": { "type": [ @@ -28492,7 +29946,8 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID" + "title": "ID", + "minLength": 1 }, "identifier": { "title": "Primary identifier", @@ -28505,7 +29960,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -28514,7 +29970,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -28522,7 +29979,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -28539,9 +29997,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -28558,7 +30018,8 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy." + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 }, "locality": { "title": "Locality", @@ -28566,7 +30027,8 @@ "string", "null" ], - "description": "The locality. For example, Mountain View." + "description": "The locality. For example, Mountain View.", + "minLength": 1 }, "region": { "title": "Region", @@ -28574,7 +30036,8 @@ "string", "null" ], - "description": "The region. For example, CA." + "description": "The region. For example, CA.", + "minLength": 1 }, "postalCode": { "title": "Postal code", @@ -28582,7 +30045,8 @@ "string", "null" ], - "description": "The postal code. For example, 94043." + "description": "The postal code. For example, 94043.", + "minLength": 1 }, "country": { "title": "Country code", @@ -28857,7 +30321,8 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -28869,9 +30334,11 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, + "minProperties": 1, "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." @@ -28894,7 +30361,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -28903,7 +30371,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -28911,7 +30380,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -28928,14 +30398,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 }, "contactPoint": { "title": "Contact point", @@ -28948,7 +30421,8 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 }, "email": { "title": "Email", @@ -28956,7 +30430,9 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person." + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" }, "telephone": { "title": "Telephone", @@ -28964,7 +30440,8 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code." + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "faxNumber": { "title": "Fax number", @@ -28972,7 +30449,8 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code." + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "url": { "title": "URL", @@ -28989,9 +30467,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -29000,7 +30480,8 @@ }, "type": "object", "description": "An organization reference for the organization which receives the funds in this transaction.", - "title": "Payee" + "title": "Payee", + "minProperties": 1 }, "uri": { "title": "Linked spending information", @@ -29340,6 +30821,7 @@ ] } }, + "minProperties": 1, "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" @@ -29356,7 +30838,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -29365,7 +30848,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -29373,7 +30857,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -29390,9 +30875,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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" @@ -29409,7 +30896,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -29418,7 +30906,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -29426,7 +30915,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -29443,17 +30933,24 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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" } } - } + }, + "minProperties": 1 }, "OrganizationReference": { + "required": [ + "id", + "name" + ], "properties": { "name": { "type": [ @@ -29470,7 +30967,8 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID" + "title": "ID", + "minLength": 1 }, "identifier": { "title": "Primary identifier", @@ -29483,7 +30981,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -29492,7 +30991,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -29500,7 +31000,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -29517,9 +31018,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -29536,7 +31039,8 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy." + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 }, "locality": { "title": "Locality", @@ -29544,7 +31048,8 @@ "string", "null" ], - "description": "The locality. For example, Mountain View." + "description": "The locality. For example, Mountain View.", + "minLength": 1 }, "region": { "title": "Region", @@ -29552,7 +31057,8 @@ "string", "null" ], - "description": "The region. For example, CA." + "description": "The region. For example, CA.", + "minLength": 1 }, "postalCode": { "title": "Postal code", @@ -29560,7 +31066,8 @@ "string", "null" ], - "description": "The postal code. For example, 94043." + "description": "The postal code. For example, 94043.", + "minLength": 1 }, "country": { "title": "Country code", @@ -29835,7 +31342,8 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -29847,9 +31355,11 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, + "minProperties": 1, "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." @@ -29872,7 +31382,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -29881,7 +31392,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -29889,7 +31401,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -29906,14 +31419,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 }, "contactPoint": { "title": "Contact point", @@ -29926,7 +31442,8 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 }, "email": { "title": "Email", @@ -29934,7 +31451,9 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person." + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" }, "telephone": { "title": "Telephone", @@ -29942,7 +31461,8 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code." + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "faxNumber": { "title": "Fax number", @@ -29950,7 +31470,8 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code." + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "url": { "title": "URL", @@ -29967,9 +31488,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } }, + "minProperties": 1, "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." @@ -29978,12 +31501,17 @@ }, "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", - "title": "Organization reference" + "title": "Organization reference", + "minProperties": 1 }, "Organization": { "title": "Organization", "description": "An organization", "type": "object", + "required": [ + "id", + "name" + ], "properties": { "name": { "title": "Common name", @@ -29991,12 +31519,14 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "type": "string", "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the contracting process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", - "title": "ID" + "title": "ID", + "minLength": 1 }, "identifier": { "title": "Primary identifier", @@ -30009,7 +31539,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -30018,7 +31549,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -30026,7 +31558,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -30043,9 +31576,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "additionalIdentifiers": { "title": "Additional identifiers", @@ -30062,7 +31597,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -30071,7 +31607,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -30079,7 +31616,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -30096,12 +31634,15 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "uniqueItems": true, - "wholeListMerge": true + "wholeListMerge": true, + "minItems": 1 }, "address": { "title": "Address", @@ -30114,7 +31655,8 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy." + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 }, "locality": { "title": "Locality", @@ -30122,7 +31664,8 @@ "string", "null" ], - "description": "The locality. For example, Mountain View." + "description": "The locality. For example, Mountain View.", + "minLength": 1 }, "region": { "title": "Region", @@ -30130,7 +31673,8 @@ "string", "null" ], - "description": "The region. For example, CA." + "description": "The region. For example, CA.", + "minLength": 1 }, "postalCode": { "title": "Postal code", @@ -30138,7 +31682,8 @@ "string", "null" ], - "description": "The postal code. For example, 94043." + "description": "The postal code. For example, 94043.", + "minLength": 1 }, "country": { "title": "Country code", @@ -30413,7 +31958,8 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -30425,9 +31971,11 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } - } + }, + "minProperties": 1 }, "contactPoint": { "title": "Contact point", @@ -30440,7 +31988,8 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 }, "email": { "title": "Email", @@ -30448,7 +31997,9 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person." + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" }, "telephone": { "title": "Telephone", @@ -30456,7 +32007,8 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code." + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "faxNumber": { "title": "Fax number", @@ -30464,7 +32016,8 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code." + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "url": { "title": "URL", @@ -30481,9 +32034,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "roles": { "title": "Roles", @@ -30493,10 +32048,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "partyRole.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "details": { "type": [ @@ -30504,7 +32062,8 @@ "null" ], "description": "Additional classification information about organizations can be provided using organization details extensions that define particular fields and classification schemes.", - "title": "Details" + "title": "Details", + "minProperties": 1 } }, "patternProperties": { @@ -30512,9 +32071,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Item": { "title": "Item", @@ -30539,7 +32100,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "classification": { "title": "Classification", @@ -30554,7 +32116,8 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -30563,7 +32126,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -30571,7 +32135,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -30588,9 +32153,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "additionalClassifications": { "title": "Additional classifications", @@ -30609,7 +32176,8 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -30618,7 +32186,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -30626,7 +32195,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -30643,12 +32213,15 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "uniqueItems": true, - "wholeListMerge": true + "wholeListMerge": true, + "minItems": 1 }, "quantity": { "title": "Quantity", @@ -30671,7 +32244,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -30679,7 +32253,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "name": { "title": "Name", @@ -30687,7 +32262,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "value": { "title": "Value", @@ -31017,7 +32593,8 @@ null ] } - } + }, + "minProperties": 1 }, "uri": { "title": "URI", @@ -31046,7 +32623,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -31054,9 +32632,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "quantity": { "title": "Quantity", @@ -31066,7 +32646,8 @@ "null" ] } - } + }, + "minProperties": 1 } }, "patternProperties": { @@ -31074,9 +32655,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 } }, "patternProperties": { @@ -31084,9 +32667,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Amendment": { "title": "Amendment", @@ -31108,7 +32693,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -31116,7 +32702,8 @@ "string", "null" ], - "title": "ID" + "title": "ID", + "minLength": 1 }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -31124,7 +32711,8 @@ "string", "null" ], - "title": "Description" + "title": "Description", + "minLength": 1 }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -31132,7 +32720,8 @@ "string", "null" ], - "title": "Amended release (identifier)" + "title": "Amended release (identifier)", + "minLength": 1 }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -31140,7 +32729,8 @@ "string", "null" ], - "title": "Amending release (identifier)" + "title": "Amending release (identifier)", + "minLength": 1 }, "changes": { "title": "Amended fields", @@ -31152,7 +32742,8 @@ "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. (Deprecated in 1.1)", - "type": "string" + "type": "string", + "minLength": 1 }, "former_value": { "title": "Former Value", @@ -31164,14 +32755,21 @@ "array", "object", "null" - ] + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 } - } + }, + "minProperties": 1 }, "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" - } + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -31179,9 +32777,14 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1, + "required": [ + "id" + ] }, "Classification": { "title": "Classification", @@ -31196,7 +32799,8 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -31205,7 +32809,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "title": "Description", @@ -31213,7 +32818,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -31230,9 +32836,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Identifier": { "title": "Identifier", @@ -31245,7 +32853,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "title": "ID", @@ -31254,7 +32863,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "title": "Legal Name", @@ -31262,7 +32872,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "title": "URI", @@ -31279,9 +32890,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Address": { "title": "Address", @@ -31294,7 +32907,8 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy." + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 }, "locality": { "title": "Locality", @@ -31302,7 +32916,8 @@ "string", "null" ], - "description": "The locality. For example, Mountain View." + "description": "The locality. For example, Mountain View.", + "minLength": 1 }, "region": { "title": "Region", @@ -31310,7 +32925,8 @@ "string", "null" ], - "description": "The region. For example, CA." + "description": "The region. For example, CA.", + "minLength": 1 }, "postalCode": { "title": "Postal code", @@ -31318,7 +32934,8 @@ "string", "null" ], - "description": "The postal code. For example, 94043." + "description": "The postal code. For example, 94043.", + "minLength": 1 }, "country": { "title": "Country code", @@ -31593,7 +33210,8 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } }, "patternProperties": { @@ -31605,9 +33223,11 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 } - } + }, + "minProperties": 1 }, "ContactPoint": { "title": "Contact point", @@ -31620,7 +33240,8 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 }, "email": { "title": "Email", @@ -31628,7 +33249,9 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person." + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" }, "telephone": { "title": "Telephone", @@ -31636,7 +33259,8 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code." + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "faxNumber": { "title": "Fax number", @@ -31644,7 +33268,8 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code." + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 }, "url": { "title": "URL", @@ -31661,9 +33286,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Value": { "title": "Value", @@ -31993,7 +33620,340 @@ null ] } - } + }, + "minProperties": 1 + }, + "UnitValue": { + "title": "Unit value", + "description": "The monetary value of a single unit.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ], + "minimum": 0 + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 }, "Period": { "title": "Period", @@ -32033,9 +33993,11 @@ "type": [ "integer", "null" - ] + ], + "minimum": 0 } - } + }, + "minProperties": 1 }, "SimpleUnit": { "title": "Simple Unit", @@ -32050,7 +34012,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -32058,9 +34021,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "RelatedProcess": { "description": "A reference to a related contracting process: generally one preceding or following on from the current process.", @@ -32070,11 +34035,13 @@ "id": { "title": "Relationship ID", "description": "A local identifier for this relationship, unique within this array.", - "type": "string" + "type": "string", + "minLength": 1 }, "relationship": { "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "description": "The type of relationship, using the open [relatedProcess](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process) codelist.", "title": "Relationship", @@ -32083,7 +34050,9 @@ "null" ], "codelist": "relatedProcess.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "title": { "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", @@ -32091,7 +34060,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "scheme": { "title": "Scheme", @@ -32101,7 +34071,8 @@ "null" ], "codelist": "relatedProcessScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "identifier": { "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", @@ -32109,7 +34080,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "format": "uri", @@ -32120,7 +34092,11 @@ "null" ] } - } + }, + "minProperties": 1, + "required": [ + "id" + ] }, "Unit": { "title": "Unit", @@ -32135,7 +34111,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -32143,7 +34120,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "name": { "title": "Name", @@ -32151,7 +34129,8 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "value": { "title": "Value", @@ -32481,7 +34460,8 @@ null ] } - } + }, + "minProperties": 1 }, "uri": { "title": "URI", @@ -32510,7 +34490,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "title": "ID", @@ -32518,9 +34499,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "quantity": { "title": "Quantity", @@ -32530,7 +34513,8 @@ "null" ] } - } + }, + "minProperties": 1 } }, "patternProperties": { @@ -32538,9 +34522,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Link": { "title": "Link", @@ -32552,7 +34538,8 @@ "description": "The relationship with the related resource, using the open [link relation type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#link-relation-type) codelist.", "type": "string", "codelist": "linkRelationType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "href": { "title": "Link target", @@ -32560,7 +34547,9 @@ "type": "string", "format": "uri" } - } + }, + "minProperties": 1 } - } + }, + "minProperties": 1 } diff --git a/schema/versioned-release-validation-schema.json b/schema/versioned-release-validation-schema.json index 991c744a3..3639853ef 100644 --- a/schema/versioned-release-validation-schema.json +++ b/schema/versioned-release-validation-schema.json @@ -46,7 +46,8 @@ "items": { "$ref": "#/definitions/Organization" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "buyer": { "$ref": "#/definitions/OrganizationReferenceVersionedId" @@ -62,14 +63,16 @@ "items": { "$ref": "#/definitions/Award" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "contracts": { "type": "array", "items": { "$ref": "#/definitions/Contract" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "language": { "type": "array", @@ -89,7 +92,8 @@ "null" ], "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "releaseTag": { "type": "array", @@ -105,7 +109,8 @@ "items": { "$ref": "#/definitions/RelatedProcess" }, - "type": "array" + "type": "array", + "minItems": 1 }, "ocid": { "type": "string", @@ -121,10 +126,60 @@ "type": "object", "properties": { "id": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } }, "rationale": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } }, "budget": { "$ref": "#/definitions/Budget" @@ -133,13 +188,17 @@ "type": "array", "items": { "$ref": "#/definitions/Document" - } + }, + "minItems": 1, + "uniqueItems": true }, "milestones": { "type": "array", "items": { "$ref": "#/definitions/Milestone" - } + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -147,9 +206,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Tender": { "type": "object", @@ -186,10 +247,60 @@ } }, "title": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } }, "description": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } }, "status": { "type": "array", @@ -231,7 +342,32 @@ } }, "statusDetails": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } }, "procuringEntity": { "$ref": "#/definitions/OrganizationReferenceVersionedId" @@ -241,7 +377,8 @@ "items": { "$ref": "#/definitions/Item" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "value": { "$ref": "#/definitions/Value" @@ -289,12 +426,6 @@ } }, "procurementMethodDetails": { - "$ref": "#/definitions/StringNullVersioned" - }, - "procurementMethodRationale": { - "$ref": "#/definitions/StringNullVersioned" - }, - "mainProcurementCategory": { "type": "array", "items": { "type": "object", @@ -311,14 +442,7 @@ "string", "null" ], - "codelist": "procurementCategory.csv", - "openCodelist": false, - "enum": [ - "goods", - "works", - "services", - null - ] + "minLength": 1 }, "releaseTag": { "type": "array", @@ -329,7 +453,7 @@ } } }, - "additionalProcurementCategories": { + "procurementMethodRationale": { "type": "array", "items": { "type": "object", @@ -343,14 +467,10 @@ }, "value": { "type": [ - "array", + "string", "null" ], - "items": { - "type": "string" - }, - "codelist": "extendedProcurementCategory.csv", - "openCodelist": true + "minLength": 1 }, "releaseTag": { "type": "array", @@ -361,7 +481,7 @@ } } }, - "awardCriteria": { + "mainProcurementCategory": { "type": "array", "items": { "type": "object", @@ -378,8 +498,14 @@ "string", "null" ], - "codelist": "awardCriteria.csv", - "openCodelist": true + "codelist": "procurementCategory.csv", + "openCodelist": false, + "enum": [ + "goods", + "works", + "services", + null + ] }, "releaseTag": { "type": "array", @@ -390,10 +516,7 @@ } } }, - "awardCriteriaDetails": { - "$ref": "#/definitions/StringNullVersioned" - }, - "submissionMethod": { + "additionalProcurementCategories": { "type": "array", "items": { "type": "object", @@ -411,14 +534,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, - "codelist": "submissionMethod.csv", + "codelist": "extendedProcurementCategory.csv", "openCodelist": true, - "deprecated": { - "description": "This field is deprecated, because all codes from the submissionMethod codelist are deprecated. Refer to the Deprecation note of individual codes.", - "deprecatedVersion": "1.2" - } + "minItems": 1, + "uniqueItems": true }, "releaseTag": { "type": "array", @@ -429,19 +551,7 @@ } } }, - "submissionMethodDetails": { - "$ref": "#/definitions/StringNullVersioned" - }, - "datePublished": { - "$ref": "#/definitions/StringNullDateTimeVersioned" - }, - "tenderPeriod": { - "$ref": "#/definitions/Period" - }, - "enquiryPeriod": { - "$ref": "#/definitions/Period" - }, - "hasEnquiries": { + "awardCriteria": { "type": "array", "items": { "type": "object", @@ -455,9 +565,12 @@ }, "value": { "type": [ - "boolean", + "string", "null" - ] + ], + "codelist": "awardCriteria.csv", + "openCodelist": true, + "minLength": 1 }, "releaseTag": { "type": "array", @@ -468,7 +581,7 @@ } } }, - "eligibilityCriteria": { + "awardCriteriaDetails": { "type": "array", "items": { "type": "object", @@ -485,10 +598,7 @@ "string", "null" ], - "deprecated": { - "description": "This field had unclear semantics and used ambiguous terms, and is deprecated in favor of exclusionGrounds.", - "deprecatedVersion": "1.2" - } + "minLength": 1 }, "releaseTag": { "type": "array", @@ -499,19 +609,7 @@ } } }, - "exclusionGrounds": { - "$ref": "#/definitions/StringNullVersioned" - }, - "selectionCriteria": { - "$ref": "#/definitions/StringNullVersioned" - }, - "awardPeriod": { - "$ref": "#/definitions/Period" - }, - "contractPeriod": { - "$ref": "#/definitions/Period" - }, - "numberOfTenderers": { + "submissionMethod": { "type": "array", "items": { "type": "object", @@ -525,9 +623,21 @@ }, "value": { "type": [ - "integer", + "array", "null" - ] + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "submissionMethod.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated, because all codes from the submissionMethod codelist are deprecated. Refer to the Deprecation note of individual codes.", + "deprecatedVersion": "1.2" + }, + "minItems": 1, + "uniqueItems": true }, "releaseTag": { "type": "array", @@ -538,30 +648,223 @@ } } }, - "tenderers": { - "type": "array", - "items": { - "$ref": "#/definitions/OrganizationReference" - }, - "uniqueItems": true - }, - "documents": { + "submissionMethodDetails": { "type": "array", "items": { - "$ref": "#/definitions/Document" - } + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "datePublished": { + "$ref": "#/definitions/StringNullDateTimeVersioned" + }, + "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": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "string", + "null" + ], + "deprecated": { + "description": "This field had unclear semantics and used ambiguous terms, and is deprecated in favor of exclusionGrounds.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "exclusionGrounds": { + "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" + } + } + } + } + }, + "selectionCriteria": { + "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" + } + } + } + } + }, + "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" + ], + "minimum": 0 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "tenderers": { + "type": "array", + "items": { + "$ref": "#/definitions/OrganizationReference" + }, + "uniqueItems": true, + "minItems": 1 + }, + "documents": { + "type": "array", + "items": { + "$ref": "#/definitions/Document" + }, + "minItems": 1, + "uniqueItems": true }, "milestones": { "type": "array", "items": { "$ref": "#/definitions/Milestone" - } + }, + "minItems": 1, + "uniqueItems": true }, "amendments": { "type": "array", "items": { "$ref": "#/definitions/Amendment" - } + }, + "minItems": 1, + "uniqueItems": true }, "amendment": { "$ref": "#/definitions/Amendment", @@ -576,45 +879,53 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(selectionCriteria_(((([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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Award": { "type": "object", @@ -630,12 +941,6 @@ "minLength": 1 }, "title": { - "$ref": "#/definitions/StringNullVersioned" - }, - "description": { - "$ref": "#/definitions/StringNullVersioned" - }, - "status": { "type": "array", "items": { "type": "object", @@ -652,15 +957,7 @@ "string", "null" ], - "enum": [ - "pending", - "active", - "cancelled", - "unsuccessful", - null - ], - "codelist": "awardStatus.csv", - "openCodelist": false + "minLength": 1 }, "releaseTag": { "type": "array", @@ -671,30 +968,120 @@ } } }, - "statusDetails": { - "$ref": "#/definitions/StringNullVersioned" - }, - "date": { - "$ref": "#/definitions/StringNullDateTimeVersioned" - }, - "value": { - "$ref": "#/definitions/Value" - }, - "maximumValue": { - "$ref": "#/definitions/Value" - }, - "estimatedValue": { - "$ref": "#/definitions/Value" - }, - "suppliers": { + "description": { "type": "array", "items": { - "$ref": "#/definitions/OrganizationReference" - }, - "uniqueItems": true - }, - "items": { - "type": "array", + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "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" + } + } + } + } + }, + "statusDetails": { + "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" + } + } + } + } + }, + "date": { + "$ref": "#/definitions/StringNullDateTimeVersioned" + }, + "value": { + "$ref": "#/definitions/Value" + }, + "maximumValue": { + "$ref": "#/definitions/Value" + }, + "estimatedValue": { + "$ref": "#/definitions/Value" + }, + "suppliers": { + "type": "array", + "items": { + "$ref": "#/definitions/OrganizationReference" + }, + "uniqueItems": true, + "minItems": 1 + }, + "items": { + "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/Item" @@ -709,13 +1096,16 @@ "items": { "$ref": "#/definitions/Document" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "amendments": { "type": "array", "items": { "$ref": "#/definitions/Amendment" - } + }, + "minItems": 1, + "uniqueItems": true }, "amendment": { "$ref": "#/definitions/Amendment", @@ -730,15 +1120,18 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Contract": { "type": "object", @@ -783,10 +1176,60 @@ } }, "title": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } }, "description": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } }, "status": { "type": "array", @@ -827,7 +1270,32 @@ } }, "statusDetails": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } }, "dateSigned": { "$ref": "#/definitions/StringNullDateTimeVersioned" @@ -857,7 +1325,8 @@ "items": { "$ref": "#/definitions/Document" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "implementation": { "$ref": "#/definitions/Implementation" @@ -867,19 +1336,24 @@ "items": { "$ref": "#/definitions/RelatedProcess" }, - "type": "array" + "type": "array", + "minItems": 1 }, "milestones": { "type": "array", "items": { "$ref": "#/definitions/Milestone" - } + }, + "minItems": 1, + "uniqueItems": true }, "amendments": { "type": "array", "items": { "$ref": "#/definitions/Amendment" - } + }, + "minItems": 1, + "uniqueItems": true }, "amendment": { "$ref": "#/definitions/Amendment", @@ -894,15 +1368,18 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Implementation": { "type": "object", @@ -912,23 +1389,27 @@ "items": { "$ref": "#/definitions/Transaction" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "milestones": { "type": "array", "items": { "$ref": "#/definitions/Milestone" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "documents": { "type": "array", "items": { "$ref": "#/definitions/Document" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 } - } + }, + "minProperties": 1 }, "Milestone": { "type": "object", @@ -944,9 +1425,6 @@ "minLength": 1 }, "title": { - "$ref": "#/definitions/StringNullVersioned" - }, - "type": { "type": "array", "items": { "type": "object", @@ -963,8 +1441,7 @@ "string", "null" ], - "codelist": "milestoneType.csv", - "openCodelist": true + "minLength": 1 }, "releaseTag": { "type": "array", @@ -975,22 +1452,7 @@ } } }, - "description": { - "$ref": "#/definitions/StringNullVersioned" - }, - "code": { - "$ref": "#/definitions/StringNullVersioned" - }, - "dueDate": { - "$ref": "#/definitions/StringNullDateTimeVersioned" - }, - "dateMet": { - "$ref": "#/definitions/StringNullDateTimeVersioned" - }, - "dateModified": { - "$ref": "#/definitions/StringNullDateTimeVersioned" - }, - "status": { + "type": { "type": "array", "items": { "type": "object", @@ -1007,15 +1469,110 @@ "string", "null" ], - "enum": [ - "scheduled", - "met", - "notMet", - "partiallyMet", - null - ], - "codelist": "milestoneStatus.csv", - "openCodelist": false + "codelist": "milestoneType.csv", + "openCodelist": true, + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "description": { + "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" + } + } + } + } + }, + "code": { + "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" + } + } + } + } + }, + "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", @@ -1035,7 +1592,8 @@ "items": { "$ref": "#/definitions/Document" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 } }, "patternProperties": { @@ -1043,15 +1601,18 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Document": { "type": "object", @@ -1084,7 +1645,8 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "releaseTag": { "type": "array", @@ -1096,10 +1658,60 @@ } }, "title": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } }, "description": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } }, "url": { "$ref": "#/definitions/StringNullUriVersioned" @@ -1128,7 +1740,8 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "releaseTag": { "type": "array", @@ -1157,10 +1770,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "language.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "releaseTag": { "type": "array", @@ -1193,7 +1809,8 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - } + }, + "minLength": 1 }, "releaseTag": { "type": "array", @@ -1210,15 +1827,18 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Budget": { "type": "object", @@ -1240,7 +1860,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "releaseTag": { "type": "array", @@ -1252,13 +1873,63 @@ } }, "description": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } }, "amount": { "$ref": "#/definitions/Value" }, "project": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } }, "projectID": { "type": "array", @@ -1277,7 +1948,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "releaseTag": { "type": "array", @@ -1329,21 +2001,25 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 }, "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Transaction": { "type": "object", @@ -1397,9 +2073,14 @@ "deprecatedVersion": "1.1" } } - } + }, + "minProperties": 1 }, "OrganizationReference": { + "required": [ + "id", + "name" + ], "properties": { "name": { "type": "array", @@ -1433,7 +2114,8 @@ "type": [ "string", "integer" - ] + ], + "minLength": 1 }, "identifier": { "deprecated": { @@ -1470,7 +2152,8 @@ "items": { "$ref": "#/definitions/IdentifierUnversioned" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "releaseTag": { "type": "array", @@ -1489,16 +2172,47 @@ "$ref": "#/definitions/ContactPoint" } }, - "type": "object" + "type": "object", + "minProperties": 1 }, "Organization": { "type": "object", + "required": [ + "id", + "name" + ], "properties": { "name": { - "$ref": "#/definitions/StringNullVersioned" - }, + "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" + "type": "string", + "minLength": 1 }, "identifier": { "$ref": "#/definitions/Identifier" @@ -1520,7 +2234,8 @@ "items": { "$ref": "#/definitions/IdentifierUnversioned" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "releaseTag": { "type": "array", @@ -1555,10 +2270,13 @@ "null" ], "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "codelist": "partyRole.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "releaseTag": { "type": "array", @@ -1585,7 +2303,8 @@ "type": [ "object", "null" - ] + ], + "minProperties": 1 }, "releaseTag": { "type": "array", @@ -1602,9 +2321,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Item": { "type": "object", @@ -1620,7 +2341,32 @@ "minLength": 1 }, "description": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } }, "classification": { "$ref": "#/definitions/Classification" @@ -1642,7 +2388,8 @@ "items": { "$ref": "#/definitions/ClassificationUnversioned" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "releaseTag": { "type": "array", @@ -1689,9 +2436,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Amendment": { "type": "object", @@ -1700,22 +2449,123 @@ "$ref": "#/definitions/StringNullDateTimeVersioned" }, "rationale": { - "$ref": "#/definitions/StringNullVersioned" + "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", "null" - ] + ], + "minLength": 1 }, "description": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } }, "amendsReleaseID": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } }, "releaseID": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } }, "changes": { "type": "array", @@ -1723,7 +2573,8 @@ "type": "object", "properties": { "property": { - "type": "string" + "type": "string", + "minLength": 1 }, "former_value": { "type": [ @@ -1733,14 +2584,21 @@ "array", "object", "null" - ] + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 } - } + }, + "minProperties": 1 }, "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" - } + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -1748,9 +2606,14 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1, + "required": [ + "id" + ] }, "Classification": { "type": "object", @@ -1773,7 +2636,8 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "releaseTag": { "type": "array", @@ -1801,7 +2665,8 @@ "string", "integer", "null" - ] + ], + "minLength": 1 }, "releaseTag": { "type": "array", @@ -1813,28 +2678,6 @@ } }, "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", @@ -1849,9 +2692,9 @@ "value": { "type": [ "string", - "integer", "null" - ] + ], + "minLength": 1 }, "releaseTag": { "type": "array", @@ -1862,38 +2705,25 @@ } } }, - "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})+)))$": { + "^(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" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "Address": { + "Identifier": { "type": "object", "properties": { - "streetAddress": { - "$ref": "#/definitions/StringNullVersioned" - }, - "locality": { - "$ref": "#/definitions/StringNullVersioned" - }, - "region": { - "$ref": "#/definitions/StringNullVersioned" - }, - "postalCode": { - "$ref": "#/definitions/StringNullVersioned" - }, - "country": { + "scheme": { "type": "array", "items": { "type": "object", @@ -1910,22 +2740,237 @@ "string", "null" ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", + "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", + "null" + ], + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "legalName": { + "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" + } + } + } + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Address": { + "type": "object", + "properties": { + "streetAddress": { + "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" + } + } + } + } + }, + "locality": { + "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" + } + } + } + } + }, + "region": { + "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" + } + } + } + } + }, + "postalCode": { + "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" + } + } + } + } + }, + "country": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", "AW", "AX", "AZ", @@ -2195,7 +3240,519 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" + }, + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" } + } + } + } + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1 + }, + "ContactPoint": { + "type": "object", + "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" + } + } + } + } + }, + "email": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "string", + "null" + ], + "minLength": 1, + "format": "email" + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "telephone": { + "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" + } + } + } + } + }, + "faxNumber": { + "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" + } + } + } + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "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", @@ -2207,48 +3764,9 @@ } } }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - } - } - } - }, - "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" - ] - } - } + "minProperties": 1 }, - "Value": { + "UnitValue": { "type": "object", "properties": { "amount": { @@ -2267,7 +3785,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 }, "releaseTag": { "type": "array", @@ -2612,7 +4131,8 @@ } } } - } + }, + "minProperties": 1 }, "Period": { "type": "object", @@ -2642,7 +4162,8 @@ "type": [ "integer", "null" - ] + ], + "minimum": 0 }, "releaseTag": { "type": "array", @@ -2653,7 +4174,8 @@ } } } - } + }, + "minProperties": 1 }, "SimpleUnit": { "type": "object", @@ -2676,7 +4198,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "releaseTag": { "type": "array", @@ -2688,15 +4211,42 @@ } }, "id": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } } - } + }, + "minProperties": 1 }, "RelatedProcess": { "type": "object", "properties": { "id": { - "type": "string" + "type": "string", + "minLength": 1 }, "relationship": { "type": "array", @@ -2712,14 +4262,17 @@ }, "value": { "items": { - "type": "string" + "type": "string", + "minLength": 1 }, "type": [ "array", "null" ], "codelist": "relatedProcess.csv", - "openCodelist": true + "openCodelist": true, + "minItems": 1, + "uniqueItems": true }, "releaseTag": { "type": "array", @@ -2731,7 +4284,32 @@ } }, "title": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } }, "scheme": { "type": "array", @@ -2751,7 +4329,8 @@ "null" ], "codelist": "relatedProcessScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "releaseTag": { "type": "array", @@ -2763,12 +4342,41 @@ } }, "identifier": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } }, "uri": { "$ref": "#/definitions/StringNullUriVersioned" } - } + }, + "minProperties": 1, + "required": [ + "id" + ] }, "Unit": { "type": "object", @@ -2791,7 +4399,8 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "releaseTag": { "type": "array", @@ -2803,10 +4412,60 @@ } }, "id": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } }, "name": { - "$ref": "#/definitions/StringNullVersioned" + "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" + } + } + } + } }, "value": { "$ref": "#/definitions/Value" @@ -2847,7 +4506,8 @@ } } } - } + }, + "minProperties": 1 } }, "patternProperties": { @@ -2855,9 +4515,11 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "Link": { "type": "object", @@ -2877,7 +4539,8 @@ "value": { "type": "string", "codelist": "linkRelationType.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "releaseTag": { "type": "array", @@ -2913,7 +4576,8 @@ } } } - } + }, + "minProperties": 1 }, "StringNullUriVersioned": { "type": "array", @@ -3005,20 +4669,23 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 }, "id": { "type": [ "string", "integer", "null" - ] + ], + "minLength": 1 }, "legalName": { "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "type": [ @@ -3033,11 +4700,17 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, "OrganizationReferenceVersionedId": { + "required": [ + "id", + "name" + ], "properties": { "name": { "type": "array", @@ -3083,7 +4756,8 @@ "type": [ "string", "integer" - ] + ], + "minLength": 1 }, "releaseTag": { "type": "array", @@ -3129,7 +4803,8 @@ "items": { "$ref": "#/definitions/IdentifierUnversioned" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "releaseTag": { "type": "array", @@ -3148,7 +4823,8 @@ "$ref": "#/definitions/ContactPoint" } }, - "type": "object" + "type": "object", + "minProperties": 1 }, "ClassificationUnversioned": { "type": "object", @@ -3159,20 +4835,23 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true + "openCodelist": true, + "minLength": 1 }, "id": { "type": [ "string", "integer", "null" - ] + ], + "minLength": 1 }, "description": { "type": [ "string", "null" - ] + ], + "minLength": 1 }, "uri": { "type": [ @@ -3187,9 +4866,12 @@ "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 } - } + }, + "minProperties": 1 } From d1ae51ce331ffaaca8f289977381bf9013978fc3 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 10 Feb 2022 16:04:24 +1300 Subject: [PATCH 06/29] Move strict schema files to subfolder --- .../strict/dereferenced-release-schema.json | 34555 ++++++++++++++++ schema/strict/record-package-schema.json | 245 + schema/strict/release-package-schema.json | 118 + schema/strict/release-schema.json | 3185 ++ .../versioned-release-validation-schema.json | 4877 +++ 5 files changed, 42980 insertions(+) create mode 100644 schema/strict/dereferenced-release-schema.json create mode 100644 schema/strict/record-package-schema.json create mode 100644 schema/strict/release-package-schema.json create mode 100644 schema/strict/release-schema.json create mode 100644 schema/strict/versioned-release-validation-schema.json diff --git a/schema/strict/dereferenced-release-schema.json b/schema/strict/dereferenced-release-schema.json new file mode 100644 index 000000000..7e3f31f2e --- /dev/null +++ b/schema/strict/dereferenced-release-schema.json @@ -0,0 +1,34555 @@ +{ + "id": "https://standard.open-contracting.org/schema/1__1__5/release-schema.json", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Schema for an Open Contracting Release", + "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multiple stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\"", + "type": "object", + "properties": { + "ocid": { + "title": "Open contracting process identifier", + "description": "A globally unique identifier for the contracting process that the release describes. Alternatively, this identifier can refer to a planning process or a single stage of a multiple stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", + "type": "string", + "minLength": 1 + }, + "id": { + "title": "Release ID", + "description": "The identifier of the release. The release ID must be unique within the scope of the contracting process (identified by the ocid), for a given version of OCDS. In other words, a publisher may publish datasets for different versions of OCDS, and repeat releases within each dataset. The release ID must not contain the number sign (#). For a compiled release, the `ocid` and the maximum `date` among the individual releases used to create the compiled release, separated by a hyphen: {ocid}-{date}.", + "type": "string", + "minLength": 1, + "omitWhenMerged": true + }, + "date": { + "title": "Release Date", + "description": "The date on which the information contained in the release was first recorded in, or published by, any system. For a compiled release, the maximum `date` among the individual releases used to create the compiled release. The release date should be unique within the scope of the contracting process identified by the Open Contracting ID (ocid), for a given version of OCDS.", + "type": "string", + "format": "date-time", + "omitWhenMerged": true + }, + "publisher": { + "title": "Publisher", + "description": "The original publisher of this release.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "tag": { + "title": "Release Tag", + "description": "A tag labeling the release (for example, as corresponding to a stage of the contracting process), using the the open [releaseTag](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#release-tag) codelist. Codes outside the releaseTag codelist might indicate, for example, the notice or form to which the release corresponds, or the event that triggered the publication of the release. Planning processes must not use the 'tender' code, even if they use `tender` fields.", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "releaseTag.csv", + "openCodelist": true, + "minItems": 1, + "omitWhenMerged": true, + "uniqueItems": true + }, + "initiationType": { + "title": "Initiation type", + "description": "The type of initiation process used for this contract, from the closed [initiationType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#initiation-type) codelist.", + "type": "string", + "enum": [ + "tender" + ], + "codelist": "initiationType.csv", + "openCodelist": false, + "deprecated": { + "description": "This field is deprecated, because the approach to data modelling that it supports was not pursued.", + "deprecatedVersion": "1.2" + } + }, + "parties": { + "title": "Parties", + "description": "Information on the organizations who are involved in the contracting process and their roles, e.g. buyer, procuring entity, supplier etc. Organization references elsewhere in the schema are used to refer back to this entries in this list.", + "type": "array", + "items": { + "title": "Organization", + "description": "An organization", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "title": "Common name", + "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting process.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "type": "string", + "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the contracting process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", + "title": "ID", + "minLength": 1 + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "additionalIdentifiers": { + "title": "Additional identifiers", + "description": "A list of additional / supplemental identifiers for the organization or participant, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "type": "array", + "items": { + "title": "Identifier", + "description": "A unique identifier for an organization.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "wholeListMerge": true, + "minItems": 1 + }, + "address": { + "title": "Address", + "description": "An address. This may be the legally registered address of the organization, or may be a correspondence address for this particular contracting process.", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View.", + "minLength": 1 + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA.", + "minLength": 1 + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043.", + "minLength": 1 + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "countryName": { + "title": "Country name", + "type": [ + "string", + "null" + ], + "description": "The country name. For example, United States.", + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1 + }, + "contactPoint": { + "title": "Contact point", + "type": "object", + "description": "Contact details that can be used for this organization.", + "properties": { + "name": { + "title": "Name", + "type": [ + "string", + "null" + ], + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 + }, + "email": { + "title": "Email", + "type": [ + "string", + "null" + ], + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" + }, + "telephone": { + "title": "Telephone", + "type": [ + "string", + "null" + ], + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "faxNumber": { + "title": "Fax number", + "type": [ + "string", + "null" + ], + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "url": { + "title": "URL", + "type": [ + "string", + "null" + ], + "description": "A web address for the contact point/person.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "roles": { + "title": "Roles", + "description": "The organization's role(s) in the contracting process, using the open [partyRole](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#party-role) codelist.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "partyRole.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "details": { + "type": [ + "object", + "null" + ], + "description": "Additional classification information about organizations can be provided using organization details extensions that define particular fields and classification schemes.", + "title": "Details", + "minProperties": 1 + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + "buyer": { + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "type": [ + "string", + "null" + ], + "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", + "title": "Organization name", + "minLength": 1 + }, + "id": { + "type": [ + "string", + "integer" + ], + "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", + "title": "ID", + "minLength": 1 + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "address": { + "title": "Address", + "description": "(Deprecated outside the parties section)", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View.", + "minLength": 1 + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA.", + "minLength": 1 + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043.", + "minLength": 1 + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "countryName": { + "title": "Country name", + "type": [ + "string", + "null" + ], + "description": "The country name. For example, United States.", + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "additionalIdentifiers": { + "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": { + "title": "Identifier", + "description": "A unique identifier for an organization.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "title": "Additional identifiers", + "uniqueItems": true, + "wholeListMerge": true, + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 + }, + "contactPoint": { + "title": "Contact point", + "type": "object", + "description": "(Deprecated outside the parties section)", + "properties": { + "name": { + "title": "Name", + "type": [ + "string", + "null" + ], + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 + }, + "email": { + "title": "Email", + "type": [ + "string", + "null" + ], + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" + }, + "telephone": { + "title": "Telephone", + "type": [ + "string", + "null" + ], + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "faxNumber": { + "title": "Fax number", + "type": [ + "string", + "null" + ], + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "url": { + "title": "URL", + "type": [ + "string", + "null" + ], + "description": "A web address for the contact point/person.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + } + }, + "type": "object", + "description": "The organization aiming to conclude a contract with a supplier or to use the goods, works or services resulting from the contract.", + "title": "Buyer", + "minProperties": 1 + }, + "planning": { + "title": "Planning", + "description": "Information about, for example, needs identification, budget planning and market research. This information concerns the planning process. This information typically concerns the period before the publication of procurement documents.", + "type": "object", + "properties": { + "id": { + "title": "Planning ID", + "description": "An identifier for this planning process.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "rationale": { + "title": "Rationale", + "description": "The rationale for the planned procurement provided in free text. More detail can be provided in an attached document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "budget": { + "type": "object", + "title": "Budget", + "description": "Details of the budget that funds the planned contracting process.", + "properties": { + "id": { + "title": "ID", + "description": "An identifier for the budget line item which provides funds for this contracting process. This identifier should be possible to cross-reference against formal budget documents.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Budget Source", + "description": "A short free-text description of the budget allocation for this contracting process. This may be used to provide human-readable information on the budget category allocated to this contracting process, and/or, information about the nature and source of the allocation (e.g. conditional, confirmed; any official authorizations given to the budget allocation).", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "amount": { + "title": "Amount", + "description": "The value reserved in the budget for this contracting process. A negative value indicates anticipated income to the budget as a result of this contracting process, rather than expenditure. Where the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line funding this contracting process.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "project": { + "title": "Project title", + "description": "The name of the project through which this contracting process is funded (if applicable). Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry. No translation option is offered for this string, as translated values can be provided in third-party data, linked from the data source above.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "projectID": { + "title": "Project identifier", + "description": "An external identifier for the project that this contracting process forms part of, or is funded via (if applicable). Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "Linked budget information", + "description": "A URI pointing directly to a machine-readable record about the budget line-item or line-items that fund this contracting process. Information can be provided in a range of formats, including using IATI, the Open Fiscal Data Standard or any other standard which provides structured data on budget sources. Human readable documents can be included using the planning.documents block.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "source": { + "title": "Data Source", + "description": "(Deprecated in 1.1) Used to point either to a corresponding Budget Data Package, or to a machine or human-readable source where users can find further information on the budget line item identifiers, or project identifiers, provided here.", + "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" + } + }, + "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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "documents": { + "title": "Documents", + "description": "Documents related to the planning process (for example, notices, needs assessments and market studies).", + "type": "array", + "items": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true + }, + "milestones": { + "title": "Planning milestones", + "description": "A list of milestones associated with the planning process.", + "type": "array", + "items": { + "title": "Milestone", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "Milestone title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "type": { + "title": "Milestone type", + "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "milestoneType.csv", + "openCodelist": true, + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A description of the milestone.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "code": { + "title": "Milestone code", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "dueDate": { + "title": "Due date", + "description": "The date the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateMet": { + "format": "date-time", + "title": "Date met", + "description": "The date on which the milestone was met.", + "type": [ + "string", + "null" + ] + }, + "dateModified": { + "title": "Date modified", + "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "status": { + "title": "Status", + "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", + "type": [ + "string", + "null" + ], + "enum": [ + "scheduled", + "met", + "notMet", + "partiallyMet", + null + ], + "codelist": "milestoneStatus.csv", + "openCodelist": false + }, + "documents": { + "title": "Documents", + "description": "List of documents associated with this milestone (Deprecated in 1.1).", + "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": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "tender": { + "title": "Tender", + "description": "Information about, for example, the needed items and their estimated value, procurement method, award criteria, and various deadlines. This information concerns either the contracting process or the planning process. For a contracting process, this information typically concerns the period starting with the publication of procurement documents and ending with the bid submission deadline. For a planning process, this information typically concerns the period before the publication of procurement documents.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "Tender ID", + "description": "An identifier for this tender process. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Tender title", + "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Tender description", + "description": "A summary description of the tender. This complements any structured information provided using the items array. Descriptions should be short and easy to read. Avoid using ALL CAPS.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "status": { + "title": "Tender status", + "description": "The current status of the tender, from the closed [tenderStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#tender-status) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "tenderStatus.csv", + "openCodelist": false, + "enum": [ + "planning", + "planned", + "active", + "cancelled", + "unsuccessful", + "complete", + "withdrawn", + null + ] + }, + "statusDetails": { + "title": "Status details", + "description": "Additional details on the status of the tender. This field can be used to provide the local name of the status.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "procuringEntity": { + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "type": [ + "string", + "null" + ], + "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", + "title": "Organization name", + "minLength": 1 + }, + "id": { + "type": [ + "string", + "integer" + ], + "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", + "title": "ID", + "minLength": 1 + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "address": { + "title": "Address", + "description": "(Deprecated outside the parties section)", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View.", + "minLength": 1 + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA.", + "minLength": 1 + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043.", + "minLength": 1 + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "countryName": { + "title": "Country name", + "type": [ + "string", + "null" + ], + "description": "The country name. For example, United States.", + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "additionalIdentifiers": { + "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": { + "title": "Identifier", + "description": "A unique identifier for an organization.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "title": "Additional identifiers", + "uniqueItems": true, + "wholeListMerge": true, + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 + }, + "contactPoint": { + "title": "Contact point", + "type": "object", + "description": "(Deprecated outside the parties section)", + "properties": { + "name": { + "title": "Name", + "type": [ + "string", + "null" + ], + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 + }, + "email": { + "title": "Email", + "type": [ + "string", + "null" + ], + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" + }, + "telephone": { + "title": "Telephone", + "type": [ + "string", + "null" + ], + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "faxNumber": { + "title": "Fax number", + "type": [ + "string", + "null" + ], + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "url": { + "title": "URL", + "type": [ + "string", + "null" + ], + "description": "A web address for the contact point/person.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + } + }, + "type": "object", + "description": "The organization managing the contracting process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", + "title": "Procuring entity", + "minProperties": 1 + }, + "items": { + "title": "Items to be procured", + "description": "The goods and services to be purchased, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", + "type": "array", + "items": { + "title": "Item", + "type": "object", + "description": "A good, service, or work to be contracted.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A description of the goods, services to be provided.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "classification": { + "title": "Classification", + "description": "The primary classification for the item.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "classificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "additionalClassifications": { + "title": "Additional classifications", + "description": "An array of additional classifications for the item.", + "type": "array", + "items": { + "title": "Classification", + "description": "A classification consists of at least two parts: an identifier for the list (scheme) from which the classification is taken, and an identifier for the category from that list being applied. It is useful to also publish a text label and/or URI that users can draw on to interpret the classification.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "classificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "wholeListMerge": true, + "minItems": 1 + }, + "quantity": { + "title": "Quantity", + "description": "The number of units to be provided.", + "type": [ + "number", + "null" + ] + }, + "unit": { + "title": "Unit", + "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "Name of the unit.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "value": { + "title": "Value", + "description": "The monetary value of a single unit.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "uri": { + "title": "URI", + "description": "The machine-readable URI for the unit of measure, provided by the scheme.", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "weight": { + "title": "Weight", + "description": "The weight of one item unit.", + "type": "object", + "properties": { + "unit": { + "title": "Unit", + "description": "The code and scheme for the unit in which the weight is specified.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", + "type": [ + "string", + "null" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "quantity": { + "title": "Quantity", + "description": "The number of units.", + "type": [ + "number", + "null" + ] + } + }, + "minProperties": 1 + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + "value": { + "title": "Value", + "description": "The estimated value of the procurement, as estimated when publishing the tender information. A negative value indicates that the contracting process may involve payments from the supplier to the buyer (commonly used in concession contracts).", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "minValue": { + "title": "Minimum value", + "description": "The estimated minimum value of the procurement. A negative value indicates that the contracting process may involve payments from the supplier to the buyer (commonly used in concession contracts).", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "maximumValue": { + "title": "Maximum value", + "description": "The estimated maximum value of the framework agreement, as estimated when publishing the tender information.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "procurementMethod": { + "title": "Procurement method", + "description": "The method describing which organizations can submit a bid, using the closed [method](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#method) codelist. In releases concerning second stages (e.g. in framework agreements) or other subsequent stages, the procurement method always refers to the first stage of the contracting process.", + "type": [ + "string", + "null" + ], + "codelist": "method.csv", + "openCodelist": false, + "enum": [ + "open", + "selective", + "limited", + "direct", + null + ] + }, + "procurementMethodDetails": { + "title": "Procurement method details", + "description": "Additional detail on the procurement method used. This field can be used to provide the local name of the particular procurement method used.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "procurementMethodRationale": { + "title": "Procurement method rationale", + "description": "Rationale for the chosen procurement method. This is especially important to provide a justification in the case of limited tenders or direct awards.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "mainProcurementCategory": { + "title": "Main procurement category", + "description": "The primary category describing the main object of this contracting process, from the closed [procurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#procurement-category) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "procurementCategory.csv", + "openCodelist": false, + "enum": [ + "goods", + "works", + "services", + null + ] + }, + "additionalProcurementCategories": { + "title": "Additional procurement categories", + "description": "Any additional categories describing the objects of this contracting process, using the open [extendedProcurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#extended-procurement-category) codelist.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "extendedProcurementCategory.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "awardCriteria": { + "title": "Award criteria", + "description": "The award criteria for the procurement, using the open [awardCriteria](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#award-criteria) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "awardCriteria.csv", + "openCodelist": true, + "minLength": 1 + }, + "awardCriteriaDetails": { + "title": "Award criteria details", + "description": "Any detailed or further information on the award criteria.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "submissionMethod": { + "title": "Submission method", + "description": "The methods by which bids are submitted, using the open [submissionMethod](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#submission-method) codelist.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "submissionMethod.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated, because all codes from the submissionMethod codelist are deprecated. Refer to the Deprecation note of individual codes.", + "deprecatedVersion": "1.2" + }, + "minItems": 1, + "uniqueItems": true + }, + "submissionMethodDetails": { + "title": "Submission method details", + "description": "Any detailed or further information on the submission method. This can include the address, e-mail address or online service to which bids are submitted, and any special requirements to be followed for submissions.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "datePublished": { + "description": "The date on which the tender was published.", + "format": "date-time", + "title": "Date published", + "type": [ + "string", + "null" + ] + }, + "tenderPeriod": { + "title": "Tender period", + "description": "The period when the tender is open for submissions. The end date is the closing date for bid submissions.", + "type": "object", + "properties": { + "startDate": { + "title": "Start date", + "description": "The start date for the period. When known, a precise start date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "endDate": { + "title": "End date", + "description": "The end date for the period. When known, a precise end date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "maxExtentDate": { + "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", + "format": "date-time", + "title": "Maximum extent", + "type": [ + "string", + "null" + ] + }, + "durationInDays": { + "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", + "title": "Duration (days)", + "type": [ + "integer", + "null" + ], + "minimum": 0 + } + }, + "minProperties": 1 + }, + "enquiryPeriod": { + "title": "Enquiry period", + "description": "The period during which potential bidders may submit questions and requests for clarification to the buyer or the procuring entity. Details of how to submit enquiries should be provided in attached notices, or in submissionMethodDetails. Structured dates for when responses to questions will be made can be provided using tender milestones.", + "type": "object", + "properties": { + "startDate": { + "title": "Start date", + "description": "The start date for the period. When known, a precise start date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "endDate": { + "title": "End date", + "description": "The end date for the period. When known, a precise end date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "maxExtentDate": { + "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", + "format": "date-time", + "title": "Maximum extent", + "type": [ + "string", + "null" + ] + }, + "durationInDays": { + "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", + "title": "Duration (days)", + "type": [ + "integer", + "null" + ], + "minimum": 0 + } + }, + "minProperties": 1 + }, + "hasEnquiries": { + "title": "Has enquiries?", + "description": "A true/false field to indicate whether any enquiries were received during the tender process. Structured information on enquiries that were received, and responses to them, can be provided using the enquiries extension.", + "type": [ + "boolean", + "null" + ] + }, + "eligibilityCriteria": { + "title": "Eligibility criteria", + "description": "A description of any eligibility criteria for potential suppliers.", + "type": [ + "string", + "null" + ], + "deprecated": { + "description": "This field had unclear semantics and used ambiguous terms, and is deprecated in favor of exclusionGrounds.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + }, + "exclusionGrounds": { + "title": "Exclusion grounds", + "description": "The criteria regarding the situation of a tenderer that can lead to its exclusion from the contracting process. For example: criminal convictions, bankruptcy, presence on a blacklist or failure to pay taxes.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "selectionCriteria": { + "title": "Selection criteria", + "description": "The minimum requirements for tenderers to participate in the contracting process. Selection criteria ensure that a tenderer has the legal and financial capacities and the technical and professional abilities to perform the contract to be awarded. More structured information can be provided using the selection criteria extension.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "awardPeriod": { + "title": "Evaluation and award period", + "description": "The period for decision making regarding the contract award. The end date should be the date on which an award decision is due to be finalized. The start date may be used to indicate the start of an evaluation period.", + "type": "object", + "properties": { + "startDate": { + "title": "Start date", + "description": "The start date for the period. When known, a precise start date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "endDate": { + "title": "End date", + "description": "The end date for the period. When known, a precise end date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "maxExtentDate": { + "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", + "format": "date-time", + "title": "Maximum extent", + "type": [ + "string", + "null" + ] + }, + "durationInDays": { + "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", + "title": "Duration (days)", + "type": [ + "integer", + "null" + ], + "minimum": 0 + } + }, + "minProperties": 1 + }, + "contractPeriod": { + "title": "Contract period", + "description": "The period over which the contract is estimated or required to be active. If the tender does not specify explicit dates, the duration field may be used.", + "type": "object", + "properties": { + "startDate": { + "title": "Start date", + "description": "The start date for the period. When known, a precise start date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "endDate": { + "title": "End date", + "description": "The end date for the period. When known, a precise end date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "maxExtentDate": { + "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", + "format": "date-time", + "title": "Maximum extent", + "type": [ + "string", + "null" + ] + }, + "durationInDays": { + "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", + "title": "Duration (days)", + "type": [ + "integer", + "null" + ], + "minimum": 0 + } + }, + "minProperties": 1 + }, + "numberOfTenderers": { + "title": "Number of tenderers", + "description": "The number of tenderers that submit a bid.", + "type": [ + "integer", + "null" + ], + "minimum": 0 + }, + "tenderers": { + "title": "Tenderers", + "description": "All organizations that submit a bid. More detailed information on bids and the bidding organization can be provided using the bid extension.", + "type": "array", + "items": { + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "type": [ + "string", + "null" + ], + "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", + "title": "Organization name", + "minLength": 1 + }, + "id": { + "type": [ + "string", + "integer" + ], + "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", + "title": "ID", + "minLength": 1 + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "address": { + "title": "Address", + "description": "(Deprecated outside the parties section)", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View.", + "minLength": 1 + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA.", + "minLength": 1 + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043.", + "minLength": 1 + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "countryName": { + "title": "Country name", + "type": [ + "string", + "null" + ], + "description": "The country name. For example, United States.", + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "additionalIdentifiers": { + "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": { + "title": "Identifier", + "description": "A unique identifier for an organization.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "title": "Additional identifiers", + "uniqueItems": true, + "wholeListMerge": true, + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 + }, + "contactPoint": { + "title": "Contact point", + "type": "object", + "description": "(Deprecated outside the parties section)", + "properties": { + "name": { + "title": "Name", + "type": [ + "string", + "null" + ], + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 + }, + "email": { + "title": "Email", + "type": [ + "string", + "null" + ], + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" + }, + "telephone": { + "title": "Telephone", + "type": [ + "string", + "null" + ], + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "faxNumber": { + "title": "Fax number", + "type": [ + "string", + "null" + ], + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "url": { + "title": "URL", + "type": [ + "string", + "null" + ], + "description": "A web address for the contact point/person.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + } + }, + "type": "object", + "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", + "title": "Organization reference", + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + "documents": { + "title": "Documents", + "description": "Documents related to the tender stage (for example, notices, technical specifications, evaluation criteria, questions and clarifications).", + "type": "array", + "items": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true + }, + "milestones": { + "title": "Milestones", + "description": "A list of milestones associated with the tender.", + "type": "array", + "items": { + "title": "Milestone", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "Milestone title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "type": { + "title": "Milestone type", + "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "milestoneType.csv", + "openCodelist": true, + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A description of the milestone.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "code": { + "title": "Milestone code", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "dueDate": { + "title": "Due date", + "description": "The date the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateMet": { + "format": "date-time", + "title": "Date met", + "description": "The date on which the milestone was met.", + "type": [ + "string", + "null" + ] + }, + "dateModified": { + "title": "Date modified", + "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "status": { + "title": "Status", + "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", + "type": [ + "string", + "null" + ], + "enum": [ + "scheduled", + "met", + "notMet", + "partiallyMet", + null + ], + "codelist": "milestoneStatus.csv", + "openCodelist": false + }, + "documents": { + "title": "Documents", + "description": "List of documents associated with this milestone (Deprecated in 1.1).", + "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": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true + }, + "amendments": { + "description": "A tender amendment is a formal change to the tender, and generally involves the publication of a new tender notice/release. The rationale and a description of the changes made can be provided here.", + "type": "array", + "title": "Amendments", + "items": { + "title": "Amendment", + "type": "object", + "description": "Amendment information", + "properties": { + "date": { + "title": "Amendment date", + "description": "The date of this amendment.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "rationale": { + "title": "Rationale", + "description": "An explanation for the amendment.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "description": "An identifier for this amendment: often the amendment number", + "type": [ + "string", + "null" + ], + "title": "ID", + "minLength": 1 + }, + "description": { + "description": "A free text, or semi-structured, description of the changes made in this amendment.", + "type": [ + "string", + "null" + ], + "title": "Description", + "minLength": 1 + }, + "amendsReleaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amended release (identifier)", + "minLength": 1 + }, + "releaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amending release (identifier)", + "minLength": 1 + }, + "changes": { + "title": "Amended fields", + "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", + "type": "array", + "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. (Deprecated in 1.1)", + "type": "string", + "minLength": 1 + }, + "former_value": { + "title": "Former Value", + "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", + "type": [ + "string", + "number", + "integer", + "array", + "object", + "null" + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "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" + }, + "minItems": 1, + "uniqueItems": true + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "minItems": 1, + "uniqueItems": true + }, + "amendment": { + "title": "Amendment", + "type": "object", + "description": "The use of individual amendment objects has been deprecated. From OCDS 1.1 information should be provided in the amendments array.", + "properties": { + "date": { + "title": "Amendment date", + "description": "The date of this amendment.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "rationale": { + "title": "Rationale", + "description": "An explanation for the amendment.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "description": "An identifier for this amendment: often the amendment number", + "type": [ + "string", + "null" + ], + "title": "ID", + "minLength": 1 + }, + "description": { + "description": "A free text, or semi-structured, description of the changes made in this amendment.", + "type": [ + "string", + "null" + ], + "title": "Description", + "minLength": 1 + }, + "amendsReleaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amended release (identifier)", + "minLength": 1 + }, + "releaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amending release (identifier)", + "minLength": 1 + }, + "changes": { + "title": "Amended fields", + "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", + "type": "array", + "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. (Deprecated in 1.1)", + "type": "string", + "minLength": 1 + }, + "former_value": { + "title": "Former Value", + "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", + "type": [ + "string", + "number", + "integer", + "array", + "object", + "null" + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "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" + }, + "minItems": 1, + "uniqueItems": true + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "required": [ + "id" + ], + "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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(selectionCriteria_(((([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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "awards": { + "title": "Awards", + "description": "Information about the awards. This information concerns the contracting process. This information typically concerns the period after the bid submission deadline and ending with the award or, if there is a standstill period, the end of the standstill period.", + "type": "array", + "items": { + "title": "Award", + "description": "Decision by the buyer or the procuring entity on the supplier with whom it intends to conclude a contract, including the items to be supplied and their value. Typically, this decision leads to one or more contracts, but not always (for example, the award is appealed at court or the supplier refuses to sign the contract). Depending on the jurisdiction, a single decision may concern a single supplier, item and value; or batches of suppliers and/or items and/or values. Similarly, sometimes the award is published as soon as it is made and sometimes only together with a contract.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "Award ID", + "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "Award title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "Award description", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "status": { + "title": "Award status", + "description": "The current status of the award, from the closed [awardStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#award-status) codelist.", + "type": [ + "string", + "null" + ], + "enum": [ + "pending", + "active", + "cancelled", + "unsuccessful", + null + ], + "codelist": "awardStatus.csv", + "openCodelist": false + }, + "statusDetails": { + "title": "Status details", + "description": "Additional details on the status of the award. This field can be used to provide the local name of the status.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "date": { + "title": "Award date", + "description": "The date of the contract award. This is usually the date on which a decision to award was made.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "value": { + "title": "Value", + "description": "The value of this award. There may be more than one award per procurement. A negative value indicates that the award may involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "maximumValue": { + "title": "Maximum value", + "description": "The estimated maximum value of the framework agreement, as a whole, as estimated when making the award.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "estimatedValue": { + "title": "Estimated value", + "description": "The estimated value of the framework agreement, as a whole, as estimated when making the award.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "suppliers": { + "title": "Suppliers", + "description": "Organizations with which a buyer or a procuring entity decided to conclude a contract.", + "type": "array", + "items": { + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "type": [ + "string", + "null" + ], + "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", + "title": "Organization name", + "minLength": 1 + }, + "id": { + "type": [ + "string", + "integer" + ], + "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", + "title": "ID", + "minLength": 1 + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "address": { + "title": "Address", + "description": "(Deprecated outside the parties section)", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View.", + "minLength": 1 + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA.", + "minLength": 1 + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043.", + "minLength": 1 + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "countryName": { + "title": "Country name", + "type": [ + "string", + "null" + ], + "description": "The country name. For example, United States.", + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "additionalIdentifiers": { + "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": { + "title": "Identifier", + "description": "A unique identifier for an organization.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "title": "Additional identifiers", + "uniqueItems": true, + "wholeListMerge": true, + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 + }, + "contactPoint": { + "title": "Contact point", + "type": "object", + "description": "(Deprecated outside the parties section)", + "properties": { + "name": { + "title": "Name", + "type": [ + "string", + "null" + ], + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 + }, + "email": { + "title": "Email", + "type": [ + "string", + "null" + ], + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" + }, + "telephone": { + "title": "Telephone", + "type": [ + "string", + "null" + ], + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "faxNumber": { + "title": "Fax number", + "type": [ + "string", + "null" + ], + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "url": { + "title": "URL", + "type": [ + "string", + "null" + ], + "description": "A web address for the contact point/person.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + } + }, + "type": "object", + "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", + "title": "Organization reference", + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + "items": { + "title": "Items awarded", + "description": "The goods and services awarded in this award, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", + "type": "array", + "minItems": 1, + "items": { + "title": "Item", + "type": "object", + "description": "A good, service, or work to be contracted.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A description of the goods, services to be provided.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "classification": { + "title": "Classification", + "description": "The primary classification for the item.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "classificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "additionalClassifications": { + "title": "Additional classifications", + "description": "An array of additional classifications for the item.", + "type": "array", + "items": { + "title": "Classification", + "description": "A classification consists of at least two parts: an identifier for the list (scheme) from which the classification is taken, and an identifier for the category from that list being applied. It is useful to also publish a text label and/or URI that users can draw on to interpret the classification.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "classificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "wholeListMerge": true, + "minItems": 1 + }, + "quantity": { + "title": "Quantity", + "description": "The number of units to be provided.", + "type": [ + "number", + "null" + ] + }, + "unit": { + "title": "Unit", + "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "Name of the unit.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "value": { + "title": "Value", + "description": "The monetary value of a single unit.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "uri": { + "title": "URI", + "description": "The machine-readable URI for the unit of measure, provided by the scheme.", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "weight": { + "title": "Weight", + "description": "The weight of one item unit.", + "type": "object", + "properties": { + "unit": { + "title": "Unit", + "description": "The code and scheme for the unit in which the weight is specified.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", + "type": [ + "string", + "null" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "quantity": { + "title": "Quantity", + "description": "The number of units.", + "type": [ + "number", + "null" + ] + } + }, + "minProperties": 1 + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true + }, + "contractPeriod": { + "title": "Contract period", + "description": "The period for which the contract has been awarded.", + "type": "object", + "properties": { + "startDate": { + "title": "Start date", + "description": "The start date for the period. When known, a precise start date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "endDate": { + "title": "End date", + "description": "The end date for the period. When known, a precise end date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "maxExtentDate": { + "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", + "format": "date-time", + "title": "Maximum extent", + "type": [ + "string", + "null" + ] + }, + "durationInDays": { + "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", + "title": "Duration (days)", + "type": [ + "integer", + "null" + ], + "minimum": 0 + } + }, + "minProperties": 1 + }, + "documents": { + "title": "Documents", + "description": "Documents related to the award (for example, notices, bids, evaluation reports).", + "type": "array", + "items": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + "amendments": { + "description": "An award amendment is a formal change to the details of the award, and generally involves the publication of a new award notice/release. The rationale and a description of the changes made can be provided here.", + "type": "array", + "title": "Amendments", + "items": { + "title": "Amendment", + "type": "object", + "description": "Amendment information", + "properties": { + "date": { + "title": "Amendment date", + "description": "The date of this amendment.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "rationale": { + "title": "Rationale", + "description": "An explanation for the amendment.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "description": "An identifier for this amendment: often the amendment number", + "type": [ + "string", + "null" + ], + "title": "ID", + "minLength": 1 + }, + "description": { + "description": "A free text, or semi-structured, description of the changes made in this amendment.", + "type": [ + "string", + "null" + ], + "title": "Description", + "minLength": 1 + }, + "amendsReleaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amended release (identifier)", + "minLength": 1 + }, + "releaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amending release (identifier)", + "minLength": 1 + }, + "changes": { + "title": "Amended fields", + "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", + "type": "array", + "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. (Deprecated in 1.1)", + "type": "string", + "minLength": 1 + }, + "former_value": { + "title": "Former Value", + "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", + "type": [ + "string", + "number", + "integer", + "array", + "object", + "null" + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "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" + }, + "minItems": 1, + "uniqueItems": true + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "minItems": 1, + "uniqueItems": true + }, + "amendment": { + "title": "Amendment", + "type": "object", + "description": "The use of individual amendment objects has been deprecated. From OCDS 1.1 information should be provided in the amendments array.", + "properties": { + "date": { + "title": "Amendment date", + "description": "The date of this amendment.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "rationale": { + "title": "Rationale", + "description": "An explanation for the amendment.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "description": "An identifier for this amendment: often the amendment number", + "type": [ + "string", + "null" + ], + "title": "ID", + "minLength": 1 + }, + "description": { + "description": "A free text, or semi-structured, description of the changes made in this amendment.", + "type": [ + "string", + "null" + ], + "title": "Description", + "minLength": 1 + }, + "amendsReleaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amended release (identifier)", + "minLength": 1 + }, + "releaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amending release (identifier)", + "minLength": 1 + }, + "changes": { + "title": "Amended fields", + "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", + "type": "array", + "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. (Deprecated in 1.1)", + "type": "string", + "minLength": 1 + }, + "former_value": { + "title": "Former Value", + "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", + "type": [ + "string", + "number", + "integer", + "array", + "object", + "null" + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "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" + }, + "minItems": 1, + "uniqueItems": true + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "required": [ + "id" + ], + "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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + "contracts": { + "title": "Contracts", + "description": "Information about the contracts and their implementation. This information concerns the contracting process. This information typically concerns the period after the award or, if there was a standstill period, after the end of the standstill period.", + "type": "array", + "items": { + "type": "object", + "title": "Contract", + "description": "Information regarding the contract, typically between the buyer and supplier. This includes contracts describing all the contractual conditions (e.g. item, quantity, price, payment terms, time and place of delivery), as well as contracts only describing the general contractual conditions (such as a framework agreement) and those only describing the specific contractual conditions (such as a contract within a framework agreement). Communication between contractual parties that consists of minor specifications of conditions agreed previously (e.g. specifying the time or place of delivery) is not considered a contract. Amendments are considered as part of the contract that is being amended. Contracts are also used when giving prizes or other rewards (e.g. a follow-up contract) resulting from a design contest.", + "required": [ + "id", + "awardID" + ], + "properties": { + "id": { + "title": "Contract ID", + "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "awardID": { + "title": "Award ID", + "description": "The award.id against which this contract is being issued.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Contract title", + "description": "Contract title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Contract description", + "description": "Contract description", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "status": { + "title": "Contract status", + "description": "The current status of the contract, from the closed [contractStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#contract-status) codelist.", + "type": [ + "string", + "null" + ], + "enum": [ + "pending", + "active", + "cancelled", + "terminated", + "terminatedEarly", + "terminatedSuccessfully", + null + ], + "codelist": "contractStatus.csv", + "openCodelist": false + }, + "statusDetails": { + "title": "Status details", + "description": "Additional details on the status of the contract. This field can be used to provide the local name of the status.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "dateSigned": { + "title": "Date concluded", + "description": "The date the contract was concluded. Typically, this is the date when the last buyer or supplier signed the contract. However, if no contract is signed, then the date of contract conclusion may correspond to other dates (e.g. the date when the buyer notified the supplier, which had the legal effect of concluding the contract).", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "value": { + "title": "Value", + "description": "The value of this contract. A negative value indicates that the contract will involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "maximumValue": { + "title": "Maximum value", + "description": "The maximum value of the framework agreement, as a whole.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "estimatedValue": { + "title": "Estimated value", + "description": "The estimated value of the framework agreement, as a whole, as estimated when the framework agreement is concluded (e.g. signed).", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "items": { + "title": "Items contracted", + "description": "The goods, services, and any intangible outcomes in this contract. If the items contracted are identical to the items awarded, this field should be omitted.", + "type": "array", + "minItems": 1, + "items": { + "title": "Item", + "type": "object", + "description": "A good, service, or work to be contracted.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A description of the goods, services to be provided.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "classification": { + "title": "Classification", + "description": "The primary classification for the item.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "classificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "additionalClassifications": { + "title": "Additional classifications", + "description": "An array of additional classifications for the item.", + "type": "array", + "items": { + "title": "Classification", + "description": "A classification consists of at least two parts: an identifier for the list (scheme) from which the classification is taken, and an identifier for the category from that list being applied. It is useful to also publish a text label and/or URI that users can draw on to interpret the classification.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "classificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "wholeListMerge": true, + "minItems": 1 + }, + "quantity": { + "title": "Quantity", + "description": "The number of units to be provided.", + "type": [ + "number", + "null" + ] + }, + "unit": { + "title": "Unit", + "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "Name of the unit.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "value": { + "title": "Value", + "description": "The monetary value of a single unit.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "uri": { + "title": "URI", + "description": "The machine-readable URI for the unit of measure, provided by the scheme.", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "weight": { + "title": "Weight", + "description": "The weight of one item unit.", + "type": "object", + "properties": { + "unit": { + "title": "Unit", + "description": "The code and scheme for the unit in which the weight is specified.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", + "type": [ + "string", + "null" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "quantity": { + "title": "Quantity", + "description": "The number of units.", + "type": [ + "number", + "null" + ] + } + }, + "minProperties": 1 + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true + }, + "period": { + "title": "Period", + "description": "The start and end date for the contract.", + "type": "object", + "properties": { + "startDate": { + "title": "Start date", + "description": "The start date for the period. When known, a precise start date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "endDate": { + "title": "End date", + "description": "The end date for the period. When known, a precise end date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "maxExtentDate": { + "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", + "format": "date-time", + "title": "Maximum extent", + "type": [ + "string", + "null" + ] + }, + "durationInDays": { + "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", + "title": "Duration (days)", + "type": [ + "integer", + "null" + ], + "minimum": 0 + } + }, + "minProperties": 1 + }, + "documents": { + "title": "Documents", + "description": "Documents related to the contract (for example, notices, signed contracts).", + "type": "array", + "items": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + "implementation": { + "type": "object", + "title": "Implementation", + "description": "Information related to the implementation of the contract in accordance with the obligations laid out therein.", + "properties": { + "transactions": { + "title": "Transactions", + "description": "A list of the spending transactions made against this contract", + "type": "array", + "items": { + "type": "object", + "title": "Transaction information", + "description": "A spending transaction related to the contracting process. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A unique identifier for this transaction. This identifier should be possible to cross-reference against the provided data source. For IATI this is the transaction reference. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "source": { + "title": "Data source", + "description": "Used to point either to a corresponding Fiscal Data Package, IATI file, or machine or human-readable source where users can find further information on the budget line item identifiers, or project identifiers, provided here.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "date": { + "title": "Date", + "description": "The date of the transaction", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "value": { + "title": "Value", + "description": "The value of the transaction.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "payer": { + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "type": [ + "string", + "null" + ], + "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", + "title": "Organization name", + "minLength": 1 + }, + "id": { + "type": [ + "string", + "integer" + ], + "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", + "title": "ID", + "minLength": 1 + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "address": { + "title": "Address", + "description": "(Deprecated outside the parties section)", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View.", + "minLength": 1 + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA.", + "minLength": 1 + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043.", + "minLength": 1 + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "countryName": { + "title": "Country name", + "type": [ + "string", + "null" + ], + "description": "The country name. For example, United States.", + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "additionalIdentifiers": { + "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": { + "title": "Identifier", + "description": "A unique identifier for an organization.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "title": "Additional identifiers", + "uniqueItems": true, + "wholeListMerge": true, + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 + }, + "contactPoint": { + "title": "Contact point", + "type": "object", + "description": "(Deprecated outside the parties section)", + "properties": { + "name": { + "title": "Name", + "type": [ + "string", + "null" + ], + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 + }, + "email": { + "title": "Email", + "type": [ + "string", + "null" + ], + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" + }, + "telephone": { + "title": "Telephone", + "type": [ + "string", + "null" + ], + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "faxNumber": { + "title": "Fax number", + "type": [ + "string", + "null" + ], + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "url": { + "title": "URL", + "type": [ + "string", + "null" + ], + "description": "A web address for the contact point/person.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + } + }, + "type": "object", + "description": "An organization reference for the organization from which the funds in this transaction originate.", + "title": "Payer", + "minProperties": 1 + }, + "payee": { + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "type": [ + "string", + "null" + ], + "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", + "title": "Organization name", + "minLength": 1 + }, + "id": { + "type": [ + "string", + "integer" + ], + "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", + "title": "ID", + "minLength": 1 + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "address": { + "title": "Address", + "description": "(Deprecated outside the parties section)", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View.", + "minLength": 1 + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA.", + "minLength": 1 + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043.", + "minLength": 1 + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "countryName": { + "title": "Country name", + "type": [ + "string", + "null" + ], + "description": "The country name. For example, United States.", + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "additionalIdentifiers": { + "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": { + "title": "Identifier", + "description": "A unique identifier for an organization.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "title": "Additional identifiers", + "uniqueItems": true, + "wholeListMerge": true, + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 + }, + "contactPoint": { + "title": "Contact point", + "type": "object", + "description": "(Deprecated outside the parties section)", + "properties": { + "name": { + "title": "Name", + "type": [ + "string", + "null" + ], + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 + }, + "email": { + "title": "Email", + "type": [ + "string", + "null" + ], + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" + }, + "telephone": { + "title": "Telephone", + "type": [ + "string", + "null" + ], + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "faxNumber": { + "title": "Fax number", + "type": [ + "string", + "null" + ], + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "url": { + "title": "URL", + "type": [ + "string", + "null" + ], + "description": "A web address for the contact point/person.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + } + }, + "type": "object", + "description": "An organization reference for the organization which receives the funds in this transaction.", + "title": "Payee", + "minProperties": 1 + }, + "uri": { + "title": "Linked spending information", + "description": "A URI pointing directly to a machine-readable record about this spending transaction.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "amount": { + "title": "Amount", + "description": "(Deprecated in 1.1. Use transaction.value instead) The value of the transaction. A negative value indicates a refund or correction.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1, + "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": { + "title": "Provider organization", + "description": "(Deprecated in 1.1. Use transaction.payer instead.) The Organization Identifier for the organization from which the funds in this transaction originate. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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": { + "title": "Receiver organization", + "description": "(Deprecated in 1.1. Use transaction.payee instead). The Organization Identifier for the organization which receives the funds in this transaction. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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" + } + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + "milestones": { + "title": "Milestones", + "description": "As milestones are completed, the milestone's status and dates should be updated.", + "type": "array", + "items": { + "title": "Milestone", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "Milestone title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "type": { + "title": "Milestone type", + "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "milestoneType.csv", + "openCodelist": true, + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A description of the milestone.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "code": { + "title": "Milestone code", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "dueDate": { + "title": "Due date", + "description": "The date the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateMet": { + "format": "date-time", + "title": "Date met", + "description": "The date on which the milestone was met.", + "type": [ + "string", + "null" + ] + }, + "dateModified": { + "title": "Date modified", + "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "status": { + "title": "Status", + "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", + "type": [ + "string", + "null" + ], + "enum": [ + "scheduled", + "met", + "notMet", + "partiallyMet", + null + ], + "codelist": "milestoneStatus.csv", + "openCodelist": false + }, + "documents": { + "title": "Documents", + "description": "List of documents associated with this milestone (Deprecated in 1.1).", + "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": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + "documents": { + "title": "Documents", + "description": "Documents related to the implementation of the contract (for example, completion certificates, audits).", + "type": "array", + "items": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + } + }, + "minProperties": 1 + }, + "relatedProcesses": { + "uniqueItems": true, + "items": { + "description": "A reference to a related contracting process: generally one preceding or following on from the current process.", + "type": "object", + "title": "Related Process", + "properties": { + "id": { + "title": "Relationship ID", + "description": "A local identifier for this relationship, unique within this array.", + "type": "string", + "minLength": 1 + }, + "relationship": { + "items": { + "type": "string", + "minLength": 1 + }, + "description": "The type of relationship, using the open [relatedProcess](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process) codelist.", + "title": "Relationship", + "type": [ + "array", + "null" + ], + "codelist": "relatedProcess.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "title": { + "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", + "title": "Related process title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "scheme": { + "title": "Scheme", + "description": "The identification scheme used by this cross-reference, using the open [relatedProcessScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "relatedProcessScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "identifier": { + "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", + "title": "Identifier", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "format": "uri", + "description": "A URI pointing to a machine-readable document, release or record package containing the identified related process.", + "title": "Related process URI", + "type": [ + "string", + "null" + ] + } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "description": "The details of related processes: for example, if this process is followed by one or more contracting processes, represented under a separate ocid. This is commonly used to refer to subcontracts and to renewal or replacement processes for this contract.", + "title": "Related processes", + "type": "array", + "minItems": 1 + }, + "milestones": { + "title": "Contract milestones", + "description": "A list of milestones associated with the finalization of this contract.", + "type": "array", + "items": { + "title": "Milestone", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "Milestone title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "type": { + "title": "Milestone type", + "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "milestoneType.csv", + "openCodelist": true, + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A description of the milestone.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "code": { + "title": "Milestone code", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "dueDate": { + "title": "Due date", + "description": "The date the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateMet": { + "format": "date-time", + "title": "Date met", + "description": "The date on which the milestone was met.", + "type": [ + "string", + "null" + ] + }, + "dateModified": { + "title": "Date modified", + "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "status": { + "title": "Status", + "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", + "type": [ + "string", + "null" + ], + "enum": [ + "scheduled", + "met", + "notMet", + "partiallyMet", + null + ], + "codelist": "milestoneStatus.csv", + "openCodelist": false + }, + "documents": { + "title": "Documents", + "description": "List of documents associated with this milestone (Deprecated in 1.1).", + "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": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true + }, + "amendments": { + "description": "A contract amendment is a formal change to, or extension of, a contract, and generally involves the publication of a new contract signature notice/release, or some other documents detailing the change. The rationale and a description of the changes made can be provided here.", + "type": "array", + "title": "Amendments", + "items": { + "title": "Amendment", + "type": "object", + "description": "Amendment information", + "properties": { + "date": { + "title": "Amendment date", + "description": "The date of this amendment.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "rationale": { + "title": "Rationale", + "description": "An explanation for the amendment.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "description": "An identifier for this amendment: often the amendment number", + "type": [ + "string", + "null" + ], + "title": "ID", + "minLength": 1 + }, + "description": { + "description": "A free text, or semi-structured, description of the changes made in this amendment.", + "type": [ + "string", + "null" + ], + "title": "Description", + "minLength": 1 + }, + "amendsReleaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amended release (identifier)", + "minLength": 1 + }, + "releaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amending release (identifier)", + "minLength": 1 + }, + "changes": { + "title": "Amended fields", + "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", + "type": "array", + "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. (Deprecated in 1.1)", + "type": "string", + "minLength": 1 + }, + "former_value": { + "title": "Former Value", + "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", + "type": [ + "string", + "number", + "integer", + "array", + "object", + "null" + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "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" + }, + "minItems": 1, + "uniqueItems": true + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "minItems": 1, + "uniqueItems": true + }, + "amendment": { + "title": "Amendment", + "type": "object", + "description": "The use of individual amendment objects has been deprecated. From OCDS 1.1 information should be provided in the amendments array.", + "properties": { + "date": { + "title": "Amendment date", + "description": "The date of this amendment.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "rationale": { + "title": "Rationale", + "description": "An explanation for the amendment.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "description": "An identifier for this amendment: often the amendment number", + "type": [ + "string", + "null" + ], + "title": "ID", + "minLength": 1 + }, + "description": { + "description": "A free text, or semi-structured, description of the changes made in this amendment.", + "type": [ + "string", + "null" + ], + "title": "Description", + "minLength": 1 + }, + "amendsReleaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amended release (identifier)", + "minLength": 1 + }, + "releaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amending release (identifier)", + "minLength": 1 + }, + "changes": { + "title": "Amended fields", + "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", + "type": "array", + "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. (Deprecated in 1.1)", + "type": "string", + "minLength": 1 + }, + "former_value": { + "title": "Former Value", + "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", + "type": [ + "string", + "number", + "integer", + "array", + "object", + "null" + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "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" + }, + "minItems": 1, + "uniqueItems": true + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "required": [ + "id" + ], + "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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + "language": { + "title": "Release language", + "description": "The default language of the data, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "minLength": 1 + }, + "relatedProcesses": { + "uniqueItems": true, + "items": { + "description": "A reference to a related contracting process: generally one preceding or following on from the current process.", + "type": "object", + "title": "Related Process", + "properties": { + "id": { + "title": "Relationship ID", + "description": "A local identifier for this relationship, unique within this array.", + "type": "string", + "minLength": 1 + }, + "relationship": { + "items": { + "type": "string", + "minLength": 1 + }, + "description": "The type of relationship, using the open [relatedProcess](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process) codelist.", + "title": "Relationship", + "type": [ + "array", + "null" + ], + "codelist": "relatedProcess.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "title": { + "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", + "title": "Related process title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "scheme": { + "title": "Scheme", + "description": "The identification scheme used by this cross-reference, using the open [relatedProcessScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "relatedProcessScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "identifier": { + "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", + "title": "Identifier", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "format": "uri", + "description": "A URI pointing to a machine-readable document, release or record package containing the identified related process.", + "title": "Related process URI", + "type": [ + "string", + "null" + ] + } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "description": "The details of related processes: for example, if this process follows on from one or more other processes, represented under a separate ocid. This is commonly used to relate mini-competitions to their parent frameworks or individual tenders to a broader planning process.", + "title": "Related processes", + "type": "array", + "minItems": 1 + }, + "links": { + "title": "Links", + "description": "Links to related resources. In a release, links relate to the individual release: for example, a link to a canonical version of the release in another OCDS publication. In a compiled release, links relate to the entire contracting process: for example, a link to a resource in a non-OCDS publication that represents the entire contracting process.", + "type": "array", + "items": { + "title": "Link", + "description": "A reference to a related resource.", + "type": "object", + "properties": { + "rel": { + "title": "Link relation type", + "description": "The relationship with the related resource, using the open [link relation type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#link-relation-type) codelist.", + "type": "string", + "codelist": "linkRelationType.csv", + "openCodelist": true, + "minLength": 1 + }, + "href": { + "title": "Link target", + "description": "The URL of the related resource.", + "type": "string", + "format": "uri" + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "omitWhenMerged": true, + "minItems": 1 + } + }, + "required": [ + "ocid", + "id", + "date", + "tag", + "initiationType" + ], + "definitions": { + "Planning": { + "title": "Planning", + "description": "Information about, for example, needs identification, budget planning and market research. This information concerns the planning process. This information typically concerns the period before the publication of procurement documents.", + "type": "object", + "properties": { + "id": { + "title": "Planning ID", + "description": "An identifier for this planning process.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "rationale": { + "title": "Rationale", + "description": "The rationale for the planned procurement provided in free text. More detail can be provided in an attached document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "budget": { + "type": "object", + "title": "Budget", + "description": "Details of the budget that funds the planned contracting process.", + "properties": { + "id": { + "title": "ID", + "description": "An identifier for the budget line item which provides funds for this contracting process. This identifier should be possible to cross-reference against formal budget documents.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Budget Source", + "description": "A short free-text description of the budget allocation for this contracting process. This may be used to provide human-readable information on the budget category allocated to this contracting process, and/or, information about the nature and source of the allocation (e.g. conditional, confirmed; any official authorizations given to the budget allocation).", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "amount": { + "title": "Amount", + "description": "The value reserved in the budget for this contracting process. A negative value indicates anticipated income to the budget as a result of this contracting process, rather than expenditure. Where the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line funding this contracting process.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "project": { + "title": "Project title", + "description": "The name of the project through which this contracting process is funded (if applicable). Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry. No translation option is offered for this string, as translated values can be provided in third-party data, linked from the data source above.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "projectID": { + "title": "Project identifier", + "description": "An external identifier for the project that this contracting process forms part of, or is funded via (if applicable). Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "Linked budget information", + "description": "A URI pointing directly to a machine-readable record about the budget line-item or line-items that fund this contracting process. Information can be provided in a range of formats, including using IATI, the Open Fiscal Data Standard or any other standard which provides structured data on budget sources. Human readable documents can be included using the planning.documents block.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "source": { + "title": "Data Source", + "description": "(Deprecated in 1.1) Used to point either to a corresponding Budget Data Package, or to a machine or human-readable source where users can find further information on the budget line item identifiers, or project identifiers, provided here.", + "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" + } + }, + "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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "documents": { + "title": "Documents", + "description": "Documents related to the planning process (for example, notices, needs assessments and market studies).", + "type": "array", + "items": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true + }, + "milestones": { + "title": "Planning milestones", + "description": "A list of milestones associated with the planning process.", + "type": "array", + "items": { + "title": "Milestone", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "Milestone title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "type": { + "title": "Milestone type", + "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "milestoneType.csv", + "openCodelist": true, + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A description of the milestone.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "code": { + "title": "Milestone code", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "dueDate": { + "title": "Due date", + "description": "The date the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateMet": { + "format": "date-time", + "title": "Date met", + "description": "The date on which the milestone was met.", + "type": [ + "string", + "null" + ] + }, + "dateModified": { + "title": "Date modified", + "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "status": { + "title": "Status", + "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", + "type": [ + "string", + "null" + ], + "enum": [ + "scheduled", + "met", + "notMet", + "partiallyMet", + null + ], + "codelist": "milestoneStatus.csv", + "openCodelist": false + }, + "documents": { + "title": "Documents", + "description": "List of documents associated with this milestone (Deprecated in 1.1).", + "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": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Tender": { + "title": "Tender", + "description": "Information about, for example, the needed items and their estimated value, procurement method, award criteria, and various deadlines. This information concerns either the contracting process or the planning process. For a contracting process, this information typically concerns the period starting with the publication of procurement documents and ending with the bid submission deadline. For a planning process, this information typically concerns the period before the publication of procurement documents.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "Tender ID", + "description": "An identifier for this tender process. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Tender title", + "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Tender description", + "description": "A summary description of the tender. This complements any structured information provided using the items array. Descriptions should be short and easy to read. Avoid using ALL CAPS.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "status": { + "title": "Tender status", + "description": "The current status of the tender, from the closed [tenderStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#tender-status) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "tenderStatus.csv", + "openCodelist": false, + "enum": [ + "planning", + "planned", + "active", + "cancelled", + "unsuccessful", + "complete", + "withdrawn", + null + ] + }, + "statusDetails": { + "title": "Status details", + "description": "Additional details on the status of the tender. This field can be used to provide the local name of the status.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "procuringEntity": { + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "type": [ + "string", + "null" + ], + "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", + "title": "Organization name", + "minLength": 1 + }, + "id": { + "type": [ + "string", + "integer" + ], + "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", + "title": "ID", + "minLength": 1 + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "address": { + "title": "Address", + "description": "(Deprecated outside the parties section)", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View.", + "minLength": 1 + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA.", + "minLength": 1 + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043.", + "minLength": 1 + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "countryName": { + "title": "Country name", + "type": [ + "string", + "null" + ], + "description": "The country name. For example, United States.", + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "additionalIdentifiers": { + "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": { + "title": "Identifier", + "description": "A unique identifier for an organization.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "title": "Additional identifiers", + "uniqueItems": true, + "wholeListMerge": true, + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 + }, + "contactPoint": { + "title": "Contact point", + "type": "object", + "description": "(Deprecated outside the parties section)", + "properties": { + "name": { + "title": "Name", + "type": [ + "string", + "null" + ], + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 + }, + "email": { + "title": "Email", + "type": [ + "string", + "null" + ], + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" + }, + "telephone": { + "title": "Telephone", + "type": [ + "string", + "null" + ], + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "faxNumber": { + "title": "Fax number", + "type": [ + "string", + "null" + ], + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "url": { + "title": "URL", + "type": [ + "string", + "null" + ], + "description": "A web address for the contact point/person.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + } + }, + "type": "object", + "description": "The organization managing the contracting process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", + "title": "Procuring entity", + "minProperties": 1 + }, + "items": { + "title": "Items to be procured", + "description": "The goods and services to be purchased, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", + "type": "array", + "items": { + "title": "Item", + "type": "object", + "description": "A good, service, or work to be contracted.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A description of the goods, services to be provided.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "classification": { + "title": "Classification", + "description": "The primary classification for the item.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "classificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "additionalClassifications": { + "title": "Additional classifications", + "description": "An array of additional classifications for the item.", + "type": "array", + "items": { + "title": "Classification", + "description": "A classification consists of at least two parts: an identifier for the list (scheme) from which the classification is taken, and an identifier for the category from that list being applied. It is useful to also publish a text label and/or URI that users can draw on to interpret the classification.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "classificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "wholeListMerge": true, + "minItems": 1 + }, + "quantity": { + "title": "Quantity", + "description": "The number of units to be provided.", + "type": [ + "number", + "null" + ] + }, + "unit": { + "title": "Unit", + "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "Name of the unit.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "value": { + "title": "Value", + "description": "The monetary value of a single unit.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "uri": { + "title": "URI", + "description": "The machine-readable URI for the unit of measure, provided by the scheme.", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "weight": { + "title": "Weight", + "description": "The weight of one item unit.", + "type": "object", + "properties": { + "unit": { + "title": "Unit", + "description": "The code and scheme for the unit in which the weight is specified.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", + "type": [ + "string", + "null" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "quantity": { + "title": "Quantity", + "description": "The number of units.", + "type": [ + "number", + "null" + ] + } + }, + "minProperties": 1 + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + "value": { + "title": "Value", + "description": "The estimated value of the procurement, as estimated when publishing the tender information. A negative value indicates that the contracting process may involve payments from the supplier to the buyer (commonly used in concession contracts).", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "minValue": { + "title": "Minimum value", + "description": "The estimated minimum value of the procurement. A negative value indicates that the contracting process may involve payments from the supplier to the buyer (commonly used in concession contracts).", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "maximumValue": { + "title": "Maximum value", + "description": "The estimated maximum value of the framework agreement, as estimated when publishing the tender information.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "procurementMethod": { + "title": "Procurement method", + "description": "The method describing which organizations can submit a bid, using the closed [method](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#method) codelist. In releases concerning second stages (e.g. in framework agreements) or other subsequent stages, the procurement method always refers to the first stage of the contracting process.", + "type": [ + "string", + "null" + ], + "codelist": "method.csv", + "openCodelist": false, + "enum": [ + "open", + "selective", + "limited", + "direct", + null + ] + }, + "procurementMethodDetails": { + "title": "Procurement method details", + "description": "Additional detail on the procurement method used. This field can be used to provide the local name of the particular procurement method used.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "procurementMethodRationale": { + "title": "Procurement method rationale", + "description": "Rationale for the chosen procurement method. This is especially important to provide a justification in the case of limited tenders or direct awards.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "mainProcurementCategory": { + "title": "Main procurement category", + "description": "The primary category describing the main object of this contracting process, from the closed [procurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#procurement-category) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "procurementCategory.csv", + "openCodelist": false, + "enum": [ + "goods", + "works", + "services", + null + ] + }, + "additionalProcurementCategories": { + "title": "Additional procurement categories", + "description": "Any additional categories describing the objects of this contracting process, using the open [extendedProcurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#extended-procurement-category) codelist.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "extendedProcurementCategory.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "awardCriteria": { + "title": "Award criteria", + "description": "The award criteria for the procurement, using the open [awardCriteria](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#award-criteria) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "awardCriteria.csv", + "openCodelist": true, + "minLength": 1 + }, + "awardCriteriaDetails": { + "title": "Award criteria details", + "description": "Any detailed or further information on the award criteria.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "submissionMethod": { + "title": "Submission method", + "description": "The methods by which bids are submitted, using the open [submissionMethod](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#submission-method) codelist.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "submissionMethod.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated, because all codes from the submissionMethod codelist are deprecated. Refer to the Deprecation note of individual codes.", + "deprecatedVersion": "1.2" + }, + "minItems": 1, + "uniqueItems": true + }, + "submissionMethodDetails": { + "title": "Submission method details", + "description": "Any detailed or further information on the submission method. This can include the address, e-mail address or online service to which bids are submitted, and any special requirements to be followed for submissions.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "datePublished": { + "description": "The date on which the tender was published.", + "format": "date-time", + "title": "Date published", + "type": [ + "string", + "null" + ] + }, + "tenderPeriod": { + "title": "Tender period", + "description": "The period when the tender is open for submissions. The end date is the closing date for bid submissions.", + "type": "object", + "properties": { + "startDate": { + "title": "Start date", + "description": "The start date for the period. When known, a precise start date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "endDate": { + "title": "End date", + "description": "The end date for the period. When known, a precise end date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "maxExtentDate": { + "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", + "format": "date-time", + "title": "Maximum extent", + "type": [ + "string", + "null" + ] + }, + "durationInDays": { + "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", + "title": "Duration (days)", + "type": [ + "integer", + "null" + ], + "minimum": 0 + } + }, + "minProperties": 1 + }, + "enquiryPeriod": { + "title": "Enquiry period", + "description": "The period during which potential bidders may submit questions and requests for clarification to the buyer or the procuring entity. Details of how to submit enquiries should be provided in attached notices, or in submissionMethodDetails. Structured dates for when responses to questions will be made can be provided using tender milestones.", + "type": "object", + "properties": { + "startDate": { + "title": "Start date", + "description": "The start date for the period. When known, a precise start date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "endDate": { + "title": "End date", + "description": "The end date for the period. When known, a precise end date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "maxExtentDate": { + "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", + "format": "date-time", + "title": "Maximum extent", + "type": [ + "string", + "null" + ] + }, + "durationInDays": { + "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", + "title": "Duration (days)", + "type": [ + "integer", + "null" + ], + "minimum": 0 + } + }, + "minProperties": 1 + }, + "hasEnquiries": { + "title": "Has enquiries?", + "description": "A true/false field to indicate whether any enquiries were received during the tender process. Structured information on enquiries that were received, and responses to them, can be provided using the enquiries extension.", + "type": [ + "boolean", + "null" + ] + }, + "eligibilityCriteria": { + "title": "Eligibility criteria", + "description": "A description of any eligibility criteria for potential suppliers.", + "type": [ + "string", + "null" + ], + "deprecated": { + "description": "This field had unclear semantics and used ambiguous terms, and is deprecated in favor of exclusionGrounds.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + }, + "exclusionGrounds": { + "title": "Exclusion grounds", + "description": "The criteria regarding the situation of a tenderer that can lead to its exclusion from the contracting process. For example: criminal convictions, bankruptcy, presence on a blacklist or failure to pay taxes.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "selectionCriteria": { + "title": "Selection criteria", + "description": "The minimum requirements for tenderers to participate in the contracting process. Selection criteria ensure that a tenderer has the legal and financial capacities and the technical and professional abilities to perform the contract to be awarded. More structured information can be provided using the selection criteria extension.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "awardPeriod": { + "title": "Evaluation and award period", + "description": "The period for decision making regarding the contract award. The end date should be the date on which an award decision is due to be finalized. The start date may be used to indicate the start of an evaluation period.", + "type": "object", + "properties": { + "startDate": { + "title": "Start date", + "description": "The start date for the period. When known, a precise start date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "endDate": { + "title": "End date", + "description": "The end date for the period. When known, a precise end date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "maxExtentDate": { + "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", + "format": "date-time", + "title": "Maximum extent", + "type": [ + "string", + "null" + ] + }, + "durationInDays": { + "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", + "title": "Duration (days)", + "type": [ + "integer", + "null" + ], + "minimum": 0 + } + }, + "minProperties": 1 + }, + "contractPeriod": { + "title": "Contract period", + "description": "The period over which the contract is estimated or required to be active. If the tender does not specify explicit dates, the duration field may be used.", + "type": "object", + "properties": { + "startDate": { + "title": "Start date", + "description": "The start date for the period. When known, a precise start date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "endDate": { + "title": "End date", + "description": "The end date for the period. When known, a precise end date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "maxExtentDate": { + "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", + "format": "date-time", + "title": "Maximum extent", + "type": [ + "string", + "null" + ] + }, + "durationInDays": { + "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", + "title": "Duration (days)", + "type": [ + "integer", + "null" + ], + "minimum": 0 + } + }, + "minProperties": 1 + }, + "numberOfTenderers": { + "title": "Number of tenderers", + "description": "The number of tenderers that submit a bid.", + "type": [ + "integer", + "null" + ], + "minimum": 0 + }, + "tenderers": { + "title": "Tenderers", + "description": "All organizations that submit a bid. More detailed information on bids and the bidding organization can be provided using the bid extension.", + "type": "array", + "items": { + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "type": [ + "string", + "null" + ], + "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", + "title": "Organization name", + "minLength": 1 + }, + "id": { + "type": [ + "string", + "integer" + ], + "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", + "title": "ID", + "minLength": 1 + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "address": { + "title": "Address", + "description": "(Deprecated outside the parties section)", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View.", + "minLength": 1 + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA.", + "minLength": 1 + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043.", + "minLength": 1 + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "countryName": { + "title": "Country name", + "type": [ + "string", + "null" + ], + "description": "The country name. For example, United States.", + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "additionalIdentifiers": { + "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": { + "title": "Identifier", + "description": "A unique identifier for an organization.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "title": "Additional identifiers", + "uniqueItems": true, + "wholeListMerge": true, + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 + }, + "contactPoint": { + "title": "Contact point", + "type": "object", + "description": "(Deprecated outside the parties section)", + "properties": { + "name": { + "title": "Name", + "type": [ + "string", + "null" + ], + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 + }, + "email": { + "title": "Email", + "type": [ + "string", + "null" + ], + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" + }, + "telephone": { + "title": "Telephone", + "type": [ + "string", + "null" + ], + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "faxNumber": { + "title": "Fax number", + "type": [ + "string", + "null" + ], + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "url": { + "title": "URL", + "type": [ + "string", + "null" + ], + "description": "A web address for the contact point/person.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + } + }, + "type": "object", + "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", + "title": "Organization reference", + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + "documents": { + "title": "Documents", + "description": "Documents related to the tender stage (for example, notices, technical specifications, evaluation criteria, questions and clarifications).", + "type": "array", + "items": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true + }, + "milestones": { + "title": "Milestones", + "description": "A list of milestones associated with the tender.", + "type": "array", + "items": { + "title": "Milestone", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "Milestone title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "type": { + "title": "Milestone type", + "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "milestoneType.csv", + "openCodelist": true, + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A description of the milestone.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "code": { + "title": "Milestone code", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "dueDate": { + "title": "Due date", + "description": "The date the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateMet": { + "format": "date-time", + "title": "Date met", + "description": "The date on which the milestone was met.", + "type": [ + "string", + "null" + ] + }, + "dateModified": { + "title": "Date modified", + "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "status": { + "title": "Status", + "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", + "type": [ + "string", + "null" + ], + "enum": [ + "scheduled", + "met", + "notMet", + "partiallyMet", + null + ], + "codelist": "milestoneStatus.csv", + "openCodelist": false + }, + "documents": { + "title": "Documents", + "description": "List of documents associated with this milestone (Deprecated in 1.1).", + "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": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true + }, + "amendments": { + "description": "A tender amendment is a formal change to the tender, and generally involves the publication of a new tender notice/release. The rationale and a description of the changes made can be provided here.", + "type": "array", + "title": "Amendments", + "items": { + "title": "Amendment", + "type": "object", + "description": "Amendment information", + "properties": { + "date": { + "title": "Amendment date", + "description": "The date of this amendment.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "rationale": { + "title": "Rationale", + "description": "An explanation for the amendment.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "description": "An identifier for this amendment: often the amendment number", + "type": [ + "string", + "null" + ], + "title": "ID", + "minLength": 1 + }, + "description": { + "description": "A free text, or semi-structured, description of the changes made in this amendment.", + "type": [ + "string", + "null" + ], + "title": "Description", + "minLength": 1 + }, + "amendsReleaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amended release (identifier)", + "minLength": 1 + }, + "releaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amending release (identifier)", + "minLength": 1 + }, + "changes": { + "title": "Amended fields", + "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", + "type": "array", + "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. (Deprecated in 1.1)", + "type": "string", + "minLength": 1 + }, + "former_value": { + "title": "Former Value", + "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", + "type": [ + "string", + "number", + "integer", + "array", + "object", + "null" + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "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" + }, + "minItems": 1, + "uniqueItems": true + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "minItems": 1, + "uniqueItems": true + }, + "amendment": { + "title": "Amendment", + "type": "object", + "description": "The use of individual amendment objects has been deprecated. From OCDS 1.1 information should be provided in the amendments array.", + "properties": { + "date": { + "title": "Amendment date", + "description": "The date of this amendment.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "rationale": { + "title": "Rationale", + "description": "An explanation for the amendment.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "description": "An identifier for this amendment: often the amendment number", + "type": [ + "string", + "null" + ], + "title": "ID", + "minLength": 1 + }, + "description": { + "description": "A free text, or semi-structured, description of the changes made in this amendment.", + "type": [ + "string", + "null" + ], + "title": "Description", + "minLength": 1 + }, + "amendsReleaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amended release (identifier)", + "minLength": 1 + }, + "releaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amending release (identifier)", + "minLength": 1 + }, + "changes": { + "title": "Amended fields", + "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", + "type": "array", + "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. (Deprecated in 1.1)", + "type": "string", + "minLength": 1 + }, + "former_value": { + "title": "Former Value", + "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", + "type": [ + "string", + "number", + "integer", + "array", + "object", + "null" + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "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" + }, + "minItems": 1, + "uniqueItems": true + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "required": [ + "id" + ], + "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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(selectionCriteria_(((([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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Award": { + "title": "Award", + "description": "Decision by the buyer or the procuring entity on the supplier with whom it intends to conclude a contract, including the items to be supplied and their value. Typically, this decision leads to one or more contracts, but not always (for example, the award is appealed at court or the supplier refuses to sign the contract). Depending on the jurisdiction, a single decision may concern a single supplier, item and value; or batches of suppliers and/or items and/or values. Similarly, sometimes the award is published as soon as it is made and sometimes only together with a contract.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "Award ID", + "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "Award title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "Award description", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "status": { + "title": "Award status", + "description": "The current status of the award, from the closed [awardStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#award-status) codelist.", + "type": [ + "string", + "null" + ], + "enum": [ + "pending", + "active", + "cancelled", + "unsuccessful", + null + ], + "codelist": "awardStatus.csv", + "openCodelist": false + }, + "statusDetails": { + "title": "Status details", + "description": "Additional details on the status of the award. This field can be used to provide the local name of the status.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "date": { + "title": "Award date", + "description": "The date of the contract award. This is usually the date on which a decision to award was made.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "value": { + "title": "Value", + "description": "The value of this award. There may be more than one award per procurement. A negative value indicates that the award may involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "maximumValue": { + "title": "Maximum value", + "description": "The estimated maximum value of the framework agreement, as a whole, as estimated when making the award.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "estimatedValue": { + "title": "Estimated value", + "description": "The estimated value of the framework agreement, as a whole, as estimated when making the award.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "suppliers": { + "title": "Suppliers", + "description": "Organizations with which a buyer or a procuring entity decided to conclude a contract.", + "type": "array", + "items": { + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "type": [ + "string", + "null" + ], + "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", + "title": "Organization name", + "minLength": 1 + }, + "id": { + "type": [ + "string", + "integer" + ], + "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", + "title": "ID", + "minLength": 1 + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "address": { + "title": "Address", + "description": "(Deprecated outside the parties section)", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View.", + "minLength": 1 + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA.", + "minLength": 1 + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043.", + "minLength": 1 + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "countryName": { + "title": "Country name", + "type": [ + "string", + "null" + ], + "description": "The country name. For example, United States.", + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "additionalIdentifiers": { + "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": { + "title": "Identifier", + "description": "A unique identifier for an organization.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "title": "Additional identifiers", + "uniqueItems": true, + "wholeListMerge": true, + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 + }, + "contactPoint": { + "title": "Contact point", + "type": "object", + "description": "(Deprecated outside the parties section)", + "properties": { + "name": { + "title": "Name", + "type": [ + "string", + "null" + ], + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 + }, + "email": { + "title": "Email", + "type": [ + "string", + "null" + ], + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" + }, + "telephone": { + "title": "Telephone", + "type": [ + "string", + "null" + ], + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "faxNumber": { + "title": "Fax number", + "type": [ + "string", + "null" + ], + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "url": { + "title": "URL", + "type": [ + "string", + "null" + ], + "description": "A web address for the contact point/person.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + } + }, + "type": "object", + "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", + "title": "Organization reference", + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + "items": { + "title": "Items awarded", + "description": "The goods and services awarded in this award, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", + "type": "array", + "minItems": 1, + "items": { + "title": "Item", + "type": "object", + "description": "A good, service, or work to be contracted.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A description of the goods, services to be provided.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "classification": { + "title": "Classification", + "description": "The primary classification for the item.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "classificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "additionalClassifications": { + "title": "Additional classifications", + "description": "An array of additional classifications for the item.", + "type": "array", + "items": { + "title": "Classification", + "description": "A classification consists of at least two parts: an identifier for the list (scheme) from which the classification is taken, and an identifier for the category from that list being applied. It is useful to also publish a text label and/or URI that users can draw on to interpret the classification.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "classificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "wholeListMerge": true, + "minItems": 1 + }, + "quantity": { + "title": "Quantity", + "description": "The number of units to be provided.", + "type": [ + "number", + "null" + ] + }, + "unit": { + "title": "Unit", + "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "Name of the unit.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "value": { + "title": "Value", + "description": "The monetary value of a single unit.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "uri": { + "title": "URI", + "description": "The machine-readable URI for the unit of measure, provided by the scheme.", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "weight": { + "title": "Weight", + "description": "The weight of one item unit.", + "type": "object", + "properties": { + "unit": { + "title": "Unit", + "description": "The code and scheme for the unit in which the weight is specified.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", + "type": [ + "string", + "null" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "quantity": { + "title": "Quantity", + "description": "The number of units.", + "type": [ + "number", + "null" + ] + } + }, + "minProperties": 1 + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true + }, + "contractPeriod": { + "title": "Contract period", + "description": "The period for which the contract has been awarded.", + "type": "object", + "properties": { + "startDate": { + "title": "Start date", + "description": "The start date for the period. When known, a precise start date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "endDate": { + "title": "End date", + "description": "The end date for the period. When known, a precise end date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "maxExtentDate": { + "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", + "format": "date-time", + "title": "Maximum extent", + "type": [ + "string", + "null" + ] + }, + "durationInDays": { + "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", + "title": "Duration (days)", + "type": [ + "integer", + "null" + ], + "minimum": 0 + } + }, + "minProperties": 1 + }, + "documents": { + "title": "Documents", + "description": "Documents related to the award (for example, notices, bids, evaluation reports).", + "type": "array", + "items": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + "amendments": { + "description": "An award amendment is a formal change to the details of the award, and generally involves the publication of a new award notice/release. The rationale and a description of the changes made can be provided here.", + "type": "array", + "title": "Amendments", + "items": { + "title": "Amendment", + "type": "object", + "description": "Amendment information", + "properties": { + "date": { + "title": "Amendment date", + "description": "The date of this amendment.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "rationale": { + "title": "Rationale", + "description": "An explanation for the amendment.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "description": "An identifier for this amendment: often the amendment number", + "type": [ + "string", + "null" + ], + "title": "ID", + "minLength": 1 + }, + "description": { + "description": "A free text, or semi-structured, description of the changes made in this amendment.", + "type": [ + "string", + "null" + ], + "title": "Description", + "minLength": 1 + }, + "amendsReleaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amended release (identifier)", + "minLength": 1 + }, + "releaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amending release (identifier)", + "minLength": 1 + }, + "changes": { + "title": "Amended fields", + "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", + "type": "array", + "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. (Deprecated in 1.1)", + "type": "string", + "minLength": 1 + }, + "former_value": { + "title": "Former Value", + "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", + "type": [ + "string", + "number", + "integer", + "array", + "object", + "null" + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "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" + }, + "minItems": 1, + "uniqueItems": true + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "minItems": 1, + "uniqueItems": true + }, + "amendment": { + "title": "Amendment", + "type": "object", + "description": "The use of individual amendment objects has been deprecated. From OCDS 1.1 information should be provided in the amendments array.", + "properties": { + "date": { + "title": "Amendment date", + "description": "The date of this amendment.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "rationale": { + "title": "Rationale", + "description": "An explanation for the amendment.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "description": "An identifier for this amendment: often the amendment number", + "type": [ + "string", + "null" + ], + "title": "ID", + "minLength": 1 + }, + "description": { + "description": "A free text, or semi-structured, description of the changes made in this amendment.", + "type": [ + "string", + "null" + ], + "title": "Description", + "minLength": 1 + }, + "amendsReleaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amended release (identifier)", + "minLength": 1 + }, + "releaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amending release (identifier)", + "minLength": 1 + }, + "changes": { + "title": "Amended fields", + "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", + "type": "array", + "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. (Deprecated in 1.1)", + "type": "string", + "minLength": 1 + }, + "former_value": { + "title": "Former Value", + "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", + "type": [ + "string", + "number", + "integer", + "array", + "object", + "null" + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "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" + }, + "minItems": 1, + "uniqueItems": true + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "required": [ + "id" + ], + "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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Contract": { + "type": "object", + "title": "Contract", + "description": "Information regarding the contract, typically between the buyer and supplier. This includes contracts describing all the contractual conditions (e.g. item, quantity, price, payment terms, time and place of delivery), as well as contracts only describing the general contractual conditions (such as a framework agreement) and those only describing the specific contractual conditions (such as a contract within a framework agreement). Communication between contractual parties that consists of minor specifications of conditions agreed previously (e.g. specifying the time or place of delivery) is not considered a contract. Amendments are considered as part of the contract that is being amended. Contracts are also used when giving prizes or other rewards (e.g. a follow-up contract) resulting from a design contest.", + "required": [ + "id", + "awardID" + ], + "properties": { + "id": { + "title": "Contract ID", + "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "awardID": { + "title": "Award ID", + "description": "The award.id against which this contract is being issued.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Contract title", + "description": "Contract title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Contract description", + "description": "Contract description", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "status": { + "title": "Contract status", + "description": "The current status of the contract, from the closed [contractStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#contract-status) codelist.", + "type": [ + "string", + "null" + ], + "enum": [ + "pending", + "active", + "cancelled", + "terminated", + "terminatedEarly", + "terminatedSuccessfully", + null + ], + "codelist": "contractStatus.csv", + "openCodelist": false + }, + "statusDetails": { + "title": "Status details", + "description": "Additional details on the status of the contract. This field can be used to provide the local name of the status.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "dateSigned": { + "title": "Date concluded", + "description": "The date the contract was concluded. Typically, this is the date when the last buyer or supplier signed the contract. However, if no contract is signed, then the date of contract conclusion may correspond to other dates (e.g. the date when the buyer notified the supplier, which had the legal effect of concluding the contract).", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "value": { + "title": "Value", + "description": "The value of this contract. A negative value indicates that the contract will involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "maximumValue": { + "title": "Maximum value", + "description": "The maximum value of the framework agreement, as a whole.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "estimatedValue": { + "title": "Estimated value", + "description": "The estimated value of the framework agreement, as a whole, as estimated when the framework agreement is concluded (e.g. signed).", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "items": { + "title": "Items contracted", + "description": "The goods, services, and any intangible outcomes in this contract. If the items contracted are identical to the items awarded, this field should be omitted.", + "type": "array", + "minItems": 1, + "items": { + "title": "Item", + "type": "object", + "description": "A good, service, or work to be contracted.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A description of the goods, services to be provided.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "classification": { + "title": "Classification", + "description": "The primary classification for the item.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "classificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "additionalClassifications": { + "title": "Additional classifications", + "description": "An array of additional classifications for the item.", + "type": "array", + "items": { + "title": "Classification", + "description": "A classification consists of at least two parts: an identifier for the list (scheme) from which the classification is taken, and an identifier for the category from that list being applied. It is useful to also publish a text label and/or URI that users can draw on to interpret the classification.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "classificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "wholeListMerge": true, + "minItems": 1 + }, + "quantity": { + "title": "Quantity", + "description": "The number of units to be provided.", + "type": [ + "number", + "null" + ] + }, + "unit": { + "title": "Unit", + "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "Name of the unit.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "value": { + "title": "Value", + "description": "The monetary value of a single unit.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "uri": { + "title": "URI", + "description": "The machine-readable URI for the unit of measure, provided by the scheme.", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "weight": { + "title": "Weight", + "description": "The weight of one item unit.", + "type": "object", + "properties": { + "unit": { + "title": "Unit", + "description": "The code and scheme for the unit in which the weight is specified.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", + "type": [ + "string", + "null" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "quantity": { + "title": "Quantity", + "description": "The number of units.", + "type": [ + "number", + "null" + ] + } + }, + "minProperties": 1 + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true + }, + "period": { + "title": "Period", + "description": "The start and end date for the contract.", + "type": "object", + "properties": { + "startDate": { + "title": "Start date", + "description": "The start date for the period. When known, a precise start date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "endDate": { + "title": "End date", + "description": "The end date for the period. When known, a precise end date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "maxExtentDate": { + "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", + "format": "date-time", + "title": "Maximum extent", + "type": [ + "string", + "null" + ] + }, + "durationInDays": { + "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", + "title": "Duration (days)", + "type": [ + "integer", + "null" + ], + "minimum": 0 + } + }, + "minProperties": 1 + }, + "documents": { + "title": "Documents", + "description": "Documents related to the contract (for example, notices, signed contracts).", + "type": "array", + "items": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + "implementation": { + "type": "object", + "title": "Implementation", + "description": "Information related to the implementation of the contract in accordance with the obligations laid out therein.", + "properties": { + "transactions": { + "title": "Transactions", + "description": "A list of the spending transactions made against this contract", + "type": "array", + "items": { + "type": "object", + "title": "Transaction information", + "description": "A spending transaction related to the contracting process. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A unique identifier for this transaction. This identifier should be possible to cross-reference against the provided data source. For IATI this is the transaction reference. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "source": { + "title": "Data source", + "description": "Used to point either to a corresponding Fiscal Data Package, IATI file, or machine or human-readable source where users can find further information on the budget line item identifiers, or project identifiers, provided here.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "date": { + "title": "Date", + "description": "The date of the transaction", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "value": { + "title": "Value", + "description": "The value of the transaction.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "payer": { + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "type": [ + "string", + "null" + ], + "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", + "title": "Organization name", + "minLength": 1 + }, + "id": { + "type": [ + "string", + "integer" + ], + "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", + "title": "ID", + "minLength": 1 + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "address": { + "title": "Address", + "description": "(Deprecated outside the parties section)", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View.", + "minLength": 1 + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA.", + "minLength": 1 + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043.", + "minLength": 1 + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "countryName": { + "title": "Country name", + "type": [ + "string", + "null" + ], + "description": "The country name. For example, United States.", + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "additionalIdentifiers": { + "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": { + "title": "Identifier", + "description": "A unique identifier for an organization.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "title": "Additional identifiers", + "uniqueItems": true, + "wholeListMerge": true, + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 + }, + "contactPoint": { + "title": "Contact point", + "type": "object", + "description": "(Deprecated outside the parties section)", + "properties": { + "name": { + "title": "Name", + "type": [ + "string", + "null" + ], + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 + }, + "email": { + "title": "Email", + "type": [ + "string", + "null" + ], + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" + }, + "telephone": { + "title": "Telephone", + "type": [ + "string", + "null" + ], + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "faxNumber": { + "title": "Fax number", + "type": [ + "string", + "null" + ], + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "url": { + "title": "URL", + "type": [ + "string", + "null" + ], + "description": "A web address for the contact point/person.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + } + }, + "type": "object", + "description": "An organization reference for the organization from which the funds in this transaction originate.", + "title": "Payer", + "minProperties": 1 + }, + "payee": { + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "type": [ + "string", + "null" + ], + "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", + "title": "Organization name", + "minLength": 1 + }, + "id": { + "type": [ + "string", + "integer" + ], + "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", + "title": "ID", + "minLength": 1 + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "address": { + "title": "Address", + "description": "(Deprecated outside the parties section)", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View.", + "minLength": 1 + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA.", + "minLength": 1 + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043.", + "minLength": 1 + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "countryName": { + "title": "Country name", + "type": [ + "string", + "null" + ], + "description": "The country name. For example, United States.", + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "additionalIdentifiers": { + "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": { + "title": "Identifier", + "description": "A unique identifier for an organization.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "title": "Additional identifiers", + "uniqueItems": true, + "wholeListMerge": true, + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 + }, + "contactPoint": { + "title": "Contact point", + "type": "object", + "description": "(Deprecated outside the parties section)", + "properties": { + "name": { + "title": "Name", + "type": [ + "string", + "null" + ], + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 + }, + "email": { + "title": "Email", + "type": [ + "string", + "null" + ], + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" + }, + "telephone": { + "title": "Telephone", + "type": [ + "string", + "null" + ], + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "faxNumber": { + "title": "Fax number", + "type": [ + "string", + "null" + ], + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "url": { + "title": "URL", + "type": [ + "string", + "null" + ], + "description": "A web address for the contact point/person.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + } + }, + "type": "object", + "description": "An organization reference for the organization which receives the funds in this transaction.", + "title": "Payee", + "minProperties": 1 + }, + "uri": { + "title": "Linked spending information", + "description": "A URI pointing directly to a machine-readable record about this spending transaction.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "amount": { + "title": "Amount", + "description": "(Deprecated in 1.1. Use transaction.value instead) The value of the transaction. A negative value indicates a refund or correction.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1, + "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": { + "title": "Provider organization", + "description": "(Deprecated in 1.1. Use transaction.payer instead.) The Organization Identifier for the organization from which the funds in this transaction originate. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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": { + "title": "Receiver organization", + "description": "(Deprecated in 1.1. Use transaction.payee instead). The Organization Identifier for the organization which receives the funds in this transaction. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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" + } + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + "milestones": { + "title": "Milestones", + "description": "As milestones are completed, the milestone's status and dates should be updated.", + "type": "array", + "items": { + "title": "Milestone", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "Milestone title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "type": { + "title": "Milestone type", + "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "milestoneType.csv", + "openCodelist": true, + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A description of the milestone.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "code": { + "title": "Milestone code", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "dueDate": { + "title": "Due date", + "description": "The date the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateMet": { + "format": "date-time", + "title": "Date met", + "description": "The date on which the milestone was met.", + "type": [ + "string", + "null" + ] + }, + "dateModified": { + "title": "Date modified", + "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "status": { + "title": "Status", + "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", + "type": [ + "string", + "null" + ], + "enum": [ + "scheduled", + "met", + "notMet", + "partiallyMet", + null + ], + "codelist": "milestoneStatus.csv", + "openCodelist": false + }, + "documents": { + "title": "Documents", + "description": "List of documents associated with this milestone (Deprecated in 1.1).", + "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": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + "documents": { + "title": "Documents", + "description": "Documents related to the implementation of the contract (for example, completion certificates, audits).", + "type": "array", + "items": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + } + }, + "minProperties": 1 + }, + "relatedProcesses": { + "uniqueItems": true, + "items": { + "description": "A reference to a related contracting process: generally one preceding or following on from the current process.", + "type": "object", + "title": "Related Process", + "properties": { + "id": { + "title": "Relationship ID", + "description": "A local identifier for this relationship, unique within this array.", + "type": "string", + "minLength": 1 + }, + "relationship": { + "items": { + "type": "string", + "minLength": 1 + }, + "description": "The type of relationship, using the open [relatedProcess](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process) codelist.", + "title": "Relationship", + "type": [ + "array", + "null" + ], + "codelist": "relatedProcess.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "title": { + "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", + "title": "Related process title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "scheme": { + "title": "Scheme", + "description": "The identification scheme used by this cross-reference, using the open [relatedProcessScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "relatedProcessScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "identifier": { + "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", + "title": "Identifier", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "format": "uri", + "description": "A URI pointing to a machine-readable document, release or record package containing the identified related process.", + "title": "Related process URI", + "type": [ + "string", + "null" + ] + } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "description": "The details of related processes: for example, if this process is followed by one or more contracting processes, represented under a separate ocid. This is commonly used to refer to subcontracts and to renewal or replacement processes for this contract.", + "title": "Related processes", + "type": "array", + "minItems": 1 + }, + "milestones": { + "title": "Contract milestones", + "description": "A list of milestones associated with the finalization of this contract.", + "type": "array", + "items": { + "title": "Milestone", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "Milestone title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "type": { + "title": "Milestone type", + "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "milestoneType.csv", + "openCodelist": true, + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A description of the milestone.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "code": { + "title": "Milestone code", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "dueDate": { + "title": "Due date", + "description": "The date the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateMet": { + "format": "date-time", + "title": "Date met", + "description": "The date on which the milestone was met.", + "type": [ + "string", + "null" + ] + }, + "dateModified": { + "title": "Date modified", + "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "status": { + "title": "Status", + "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", + "type": [ + "string", + "null" + ], + "enum": [ + "scheduled", + "met", + "notMet", + "partiallyMet", + null + ], + "codelist": "milestoneStatus.csv", + "openCodelist": false + }, + "documents": { + "title": "Documents", + "description": "List of documents associated with this milestone (Deprecated in 1.1).", + "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": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true + }, + "amendments": { + "description": "A contract amendment is a formal change to, or extension of, a contract, and generally involves the publication of a new contract signature notice/release, or some other documents detailing the change. The rationale and a description of the changes made can be provided here.", + "type": "array", + "title": "Amendments", + "items": { + "title": "Amendment", + "type": "object", + "description": "Amendment information", + "properties": { + "date": { + "title": "Amendment date", + "description": "The date of this amendment.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "rationale": { + "title": "Rationale", + "description": "An explanation for the amendment.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "description": "An identifier for this amendment: often the amendment number", + "type": [ + "string", + "null" + ], + "title": "ID", + "minLength": 1 + }, + "description": { + "description": "A free text, or semi-structured, description of the changes made in this amendment.", + "type": [ + "string", + "null" + ], + "title": "Description", + "minLength": 1 + }, + "amendsReleaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amended release (identifier)", + "minLength": 1 + }, + "releaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amending release (identifier)", + "minLength": 1 + }, + "changes": { + "title": "Amended fields", + "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", + "type": "array", + "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. (Deprecated in 1.1)", + "type": "string", + "minLength": 1 + }, + "former_value": { + "title": "Former Value", + "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", + "type": [ + "string", + "number", + "integer", + "array", + "object", + "null" + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "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" + }, + "minItems": 1, + "uniqueItems": true + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "minItems": 1, + "uniqueItems": true + }, + "amendment": { + "title": "Amendment", + "type": "object", + "description": "The use of individual amendment objects has been deprecated. From OCDS 1.1 information should be provided in the amendments array.", + "properties": { + "date": { + "title": "Amendment date", + "description": "The date of this amendment.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "rationale": { + "title": "Rationale", + "description": "An explanation for the amendment.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "description": "An identifier for this amendment: often the amendment number", + "type": [ + "string", + "null" + ], + "title": "ID", + "minLength": 1 + }, + "description": { + "description": "A free text, or semi-structured, description of the changes made in this amendment.", + "type": [ + "string", + "null" + ], + "title": "Description", + "minLength": 1 + }, + "amendsReleaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amended release (identifier)", + "minLength": 1 + }, + "releaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amending release (identifier)", + "minLength": 1 + }, + "changes": { + "title": "Amended fields", + "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", + "type": "array", + "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. (Deprecated in 1.1)", + "type": "string", + "minLength": 1 + }, + "former_value": { + "title": "Former Value", + "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", + "type": [ + "string", + "number", + "integer", + "array", + "object", + "null" + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "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" + }, + "minItems": 1, + "uniqueItems": true + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "required": [ + "id" + ], + "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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Implementation": { + "type": "object", + "title": "Implementation", + "description": "Information during the performance / implementation stage of the contract.", + "properties": { + "transactions": { + "title": "Transactions", + "description": "A list of the spending transactions made against this contract", + "type": "array", + "items": { + "type": "object", + "title": "Transaction information", + "description": "A spending transaction related to the contracting process. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A unique identifier for this transaction. This identifier should be possible to cross-reference against the provided data source. For IATI this is the transaction reference. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "source": { + "title": "Data source", + "description": "Used to point either to a corresponding Fiscal Data Package, IATI file, or machine or human-readable source where users can find further information on the budget line item identifiers, or project identifiers, provided here.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "date": { + "title": "Date", + "description": "The date of the transaction", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "value": { + "title": "Value", + "description": "The value of the transaction.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "payer": { + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "type": [ + "string", + "null" + ], + "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", + "title": "Organization name", + "minLength": 1 + }, + "id": { + "type": [ + "string", + "integer" + ], + "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", + "title": "ID", + "minLength": 1 + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "address": { + "title": "Address", + "description": "(Deprecated outside the parties section)", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View.", + "minLength": 1 + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA.", + "minLength": 1 + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043.", + "minLength": 1 + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "countryName": { + "title": "Country name", + "type": [ + "string", + "null" + ], + "description": "The country name. For example, United States.", + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "additionalIdentifiers": { + "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": { + "title": "Identifier", + "description": "A unique identifier for an organization.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "title": "Additional identifiers", + "uniqueItems": true, + "wholeListMerge": true, + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 + }, + "contactPoint": { + "title": "Contact point", + "type": "object", + "description": "(Deprecated outside the parties section)", + "properties": { + "name": { + "title": "Name", + "type": [ + "string", + "null" + ], + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 + }, + "email": { + "title": "Email", + "type": [ + "string", + "null" + ], + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" + }, + "telephone": { + "title": "Telephone", + "type": [ + "string", + "null" + ], + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "faxNumber": { + "title": "Fax number", + "type": [ + "string", + "null" + ], + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "url": { + "title": "URL", + "type": [ + "string", + "null" + ], + "description": "A web address for the contact point/person.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + } + }, + "type": "object", + "description": "An organization reference for the organization from which the funds in this transaction originate.", + "title": "Payer", + "minProperties": 1 + }, + "payee": { + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "type": [ + "string", + "null" + ], + "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", + "title": "Organization name", + "minLength": 1 + }, + "id": { + "type": [ + "string", + "integer" + ], + "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", + "title": "ID", + "minLength": 1 + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "address": { + "title": "Address", + "description": "(Deprecated outside the parties section)", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View.", + "minLength": 1 + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA.", + "minLength": 1 + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043.", + "minLength": 1 + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "countryName": { + "title": "Country name", + "type": [ + "string", + "null" + ], + "description": "The country name. For example, United States.", + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "additionalIdentifiers": { + "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": { + "title": "Identifier", + "description": "A unique identifier for an organization.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "title": "Additional identifiers", + "uniqueItems": true, + "wholeListMerge": true, + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 + }, + "contactPoint": { + "title": "Contact point", + "type": "object", + "description": "(Deprecated outside the parties section)", + "properties": { + "name": { + "title": "Name", + "type": [ + "string", + "null" + ], + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 + }, + "email": { + "title": "Email", + "type": [ + "string", + "null" + ], + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" + }, + "telephone": { + "title": "Telephone", + "type": [ + "string", + "null" + ], + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "faxNumber": { + "title": "Fax number", + "type": [ + "string", + "null" + ], + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "url": { + "title": "URL", + "type": [ + "string", + "null" + ], + "description": "A web address for the contact point/person.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + } + }, + "type": "object", + "description": "An organization reference for the organization which receives the funds in this transaction.", + "title": "Payee", + "minProperties": 1 + }, + "uri": { + "title": "Linked spending information", + "description": "A URI pointing directly to a machine-readable record about this spending transaction.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "amount": { + "title": "Amount", + "description": "(Deprecated in 1.1. Use transaction.value instead) The value of the transaction. A negative value indicates a refund or correction.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1, + "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": { + "title": "Provider organization", + "description": "(Deprecated in 1.1. Use transaction.payer instead.) The Organization Identifier for the organization from which the funds in this transaction originate. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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": { + "title": "Receiver organization", + "description": "(Deprecated in 1.1. Use transaction.payee instead). The Organization Identifier for the organization which receives the funds in this transaction. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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" + } + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + "milestones": { + "title": "Milestones", + "description": "As milestones are completed, the milestone's status and dates should be updated.", + "type": "array", + "items": { + "title": "Milestone", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "Milestone title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "type": { + "title": "Milestone type", + "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "milestoneType.csv", + "openCodelist": true, + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A description of the milestone.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "code": { + "title": "Milestone code", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "dueDate": { + "title": "Due date", + "description": "The date the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateMet": { + "format": "date-time", + "title": "Date met", + "description": "The date on which the milestone was met.", + "type": [ + "string", + "null" + ] + }, + "dateModified": { + "title": "Date modified", + "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "status": { + "title": "Status", + "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", + "type": [ + "string", + "null" + ], + "enum": [ + "scheduled", + "met", + "notMet", + "partiallyMet", + null + ], + "codelist": "milestoneStatus.csv", + "openCodelist": false + }, + "documents": { + "title": "Documents", + "description": "List of documents associated with this milestone (Deprecated in 1.1).", + "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": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + "documents": { + "title": "Documents", + "description": "Documents related to the implementation of the contract (for example, completion certificates, audits).", + "type": "array", + "items": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + } + }, + "minProperties": 1 + }, + "Milestone": { + "title": "Milestone", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "Milestone title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "type": { + "title": "Milestone type", + "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "milestoneType.csv", + "openCodelist": true, + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A description of the milestone.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "code": { + "title": "Milestone code", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "dueDate": { + "title": "Due date", + "description": "The date the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateMet": { + "format": "date-time", + "title": "Date met", + "description": "The date on which the milestone was met.", + "type": [ + "string", + "null" + ] + }, + "dateModified": { + "title": "Date modified", + "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "status": { + "title": "Status", + "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", + "type": [ + "string", + "null" + ], + "enum": [ + "scheduled", + "met", + "notMet", + "partiallyMet", + null + ], + "codelist": "milestoneStatus.csv", + "openCodelist": false + }, + "documents": { + "title": "Documents", + "description": "List of documents associated with this milestone (Deprecated in 1.1).", + "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": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Document": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Budget": { + "type": "object", + "title": "Budget information", + "description": "This section contains basic information about the budget estimated for, or allocated to, this contracting process at the present time. Further documentation and data about how budgets have been allocated to a contracting process should be published outside of OCDS data, according to the best available standards.", + "properties": { + "id": { + "title": "ID", + "description": "An identifier for the budget line item which provides funds for this contracting process. This identifier should be possible to cross-reference against formal budget documents.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Budget Source", + "description": "A short free-text description of the budget allocation for this contracting process. This may be used to provide human-readable information on the budget category allocated to this contracting process, and/or, information about the nature and source of the allocation (e.g. conditional, confirmed; any official authorizations given to the budget allocation).", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "amount": { + "title": "Amount", + "description": "The value reserved in the budget for this contracting process. A negative value indicates anticipated income to the budget as a result of this contracting process, rather than expenditure. Where the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line funding this contracting process.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "project": { + "title": "Project title", + "description": "The name of the project through which this contracting process is funded (if applicable). Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry. No translation option is offered for this string, as translated values can be provided in third-party data, linked from the data source above.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "projectID": { + "title": "Project identifier", + "description": "An external identifier for the project that this contracting process forms part of, or is funded via (if applicable). Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "Linked budget information", + "description": "A URI pointing directly to a machine-readable record about the budget line-item or line-items that fund this contracting process. Information can be provided in a range of formats, including using IATI, the Open Fiscal Data Standard or any other standard which provides structured data on budget sources. Human readable documents can be included using the planning.documents block.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "source": { + "title": "Data Source", + "description": "(Deprecated in 1.1) Used to point either to a corresponding Budget Data Package, or to a machine or human-readable source where users can find further information on the budget line item identifiers, or project identifiers, provided here.", + "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" + } + }, + "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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Transaction": { + "type": "object", + "title": "Transaction information", + "description": "A spending transaction related to the contracting process. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A unique identifier for this transaction. This identifier should be possible to cross-reference against the provided data source. For IATI this is the transaction reference. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "source": { + "title": "Data source", + "description": "Used to point either to a corresponding Fiscal Data Package, IATI file, or machine or human-readable source where users can find further information on the budget line item identifiers, or project identifiers, provided here.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "date": { + "title": "Date", + "description": "The date of the transaction", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "value": { + "title": "Value", + "description": "The value of the transaction.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "payer": { + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "type": [ + "string", + "null" + ], + "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", + "title": "Organization name", + "minLength": 1 + }, + "id": { + "type": [ + "string", + "integer" + ], + "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", + "title": "ID", + "minLength": 1 + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "address": { + "title": "Address", + "description": "(Deprecated outside the parties section)", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View.", + "minLength": 1 + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA.", + "minLength": 1 + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043.", + "minLength": 1 + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "countryName": { + "title": "Country name", + "type": [ + "string", + "null" + ], + "description": "The country name. For example, United States.", + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "additionalIdentifiers": { + "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": { + "title": "Identifier", + "description": "A unique identifier for an organization.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "title": "Additional identifiers", + "uniqueItems": true, + "wholeListMerge": true, + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 + }, + "contactPoint": { + "title": "Contact point", + "type": "object", + "description": "(Deprecated outside the parties section)", + "properties": { + "name": { + "title": "Name", + "type": [ + "string", + "null" + ], + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 + }, + "email": { + "title": "Email", + "type": [ + "string", + "null" + ], + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" + }, + "telephone": { + "title": "Telephone", + "type": [ + "string", + "null" + ], + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "faxNumber": { + "title": "Fax number", + "type": [ + "string", + "null" + ], + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "url": { + "title": "URL", + "type": [ + "string", + "null" + ], + "description": "A web address for the contact point/person.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + } + }, + "type": "object", + "description": "An organization reference for the organization from which the funds in this transaction originate.", + "title": "Payer", + "minProperties": 1 + }, + "payee": { + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "type": [ + "string", + "null" + ], + "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", + "title": "Organization name", + "minLength": 1 + }, + "id": { + "type": [ + "string", + "integer" + ], + "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", + "title": "ID", + "minLength": 1 + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "address": { + "title": "Address", + "description": "(Deprecated outside the parties section)", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View.", + "minLength": 1 + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA.", + "minLength": 1 + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043.", + "minLength": 1 + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "countryName": { + "title": "Country name", + "type": [ + "string", + "null" + ], + "description": "The country name. For example, United States.", + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "additionalIdentifiers": { + "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": { + "title": "Identifier", + "description": "A unique identifier for an organization.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "title": "Additional identifiers", + "uniqueItems": true, + "wholeListMerge": true, + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 + }, + "contactPoint": { + "title": "Contact point", + "type": "object", + "description": "(Deprecated outside the parties section)", + "properties": { + "name": { + "title": "Name", + "type": [ + "string", + "null" + ], + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 + }, + "email": { + "title": "Email", + "type": [ + "string", + "null" + ], + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" + }, + "telephone": { + "title": "Telephone", + "type": [ + "string", + "null" + ], + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "faxNumber": { + "title": "Fax number", + "type": [ + "string", + "null" + ], + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "url": { + "title": "URL", + "type": [ + "string", + "null" + ], + "description": "A web address for the contact point/person.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + } + }, + "type": "object", + "description": "An organization reference for the organization which receives the funds in this transaction.", + "title": "Payee", + "minProperties": 1 + }, + "uri": { + "title": "Linked spending information", + "description": "A URI pointing directly to a machine-readable record about this spending transaction.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "amount": { + "title": "Amount", + "description": "(Deprecated in 1.1. Use transaction.value instead) The value of the transaction. A negative value indicates a refund or correction.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1, + "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": { + "title": "Provider organization", + "description": "(Deprecated in 1.1. Use transaction.payer instead.) The Organization Identifier for the organization from which the funds in this transaction originate. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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": { + "title": "Receiver organization", + "description": "(Deprecated in 1.1. Use transaction.payee instead). The Organization Identifier for the organization which receives the funds in this transaction. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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" + } + } + }, + "minProperties": 1 + }, + "OrganizationReference": { + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "type": [ + "string", + "null" + ], + "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", + "title": "Organization name", + "minLength": 1 + }, + "id": { + "type": [ + "string", + "integer" + ], + "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", + "title": "ID", + "minLength": 1 + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "address": { + "title": "Address", + "description": "(Deprecated outside the parties section)", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View.", + "minLength": 1 + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA.", + "minLength": 1 + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043.", + "minLength": 1 + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "countryName": { + "title": "Country name", + "type": [ + "string", + "null" + ], + "description": "The country name. For example, United States.", + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + }, + "additionalIdentifiers": { + "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": { + "title": "Identifier", + "description": "A unique identifier for an organization.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "title": "Additional identifiers", + "uniqueItems": true, + "wholeListMerge": true, + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 + }, + "contactPoint": { + "title": "Contact point", + "type": "object", + "description": "(Deprecated outside the parties section)", + "properties": { + "name": { + "title": "Name", + "type": [ + "string", + "null" + ], + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 + }, + "email": { + "title": "Email", + "type": [ + "string", + "null" + ], + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" + }, + "telephone": { + "title": "Telephone", + "type": [ + "string", + "null" + ], + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "faxNumber": { + "title": "Fax number", + "type": [ + "string", + "null" + ], + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "url": { + "title": "URL", + "type": [ + "string", + "null" + ], + "description": "A web address for the contact point/person.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "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." + } + } + }, + "type": "object", + "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", + "title": "Organization reference", + "minProperties": 1 + }, + "Organization": { + "title": "Organization", + "description": "An organization", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "title": "Common name", + "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting process.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "type": "string", + "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the contracting process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", + "title": "ID", + "minLength": 1 + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "additionalIdentifiers": { + "title": "Additional identifiers", + "description": "A list of additional / supplemental identifiers for the organization or participant, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "type": "array", + "items": { + "title": "Identifier", + "description": "A unique identifier for an organization.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "wholeListMerge": true, + "minItems": 1 + }, + "address": { + "title": "Address", + "description": "An address. This may be the legally registered address of the organization, or may be a correspondence address for this particular contracting process.", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View.", + "minLength": 1 + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA.", + "minLength": 1 + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043.", + "minLength": 1 + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "countryName": { + "title": "Country name", + "type": [ + "string", + "null" + ], + "description": "The country name. For example, United States.", + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1 + }, + "contactPoint": { + "title": "Contact point", + "type": "object", + "description": "Contact details that can be used for this organization.", + "properties": { + "name": { + "title": "Name", + "type": [ + "string", + "null" + ], + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 + }, + "email": { + "title": "Email", + "type": [ + "string", + "null" + ], + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" + }, + "telephone": { + "title": "Telephone", + "type": [ + "string", + "null" + ], + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "faxNumber": { + "title": "Fax number", + "type": [ + "string", + "null" + ], + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "url": { + "title": "URL", + "type": [ + "string", + "null" + ], + "description": "A web address for the contact point/person.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "roles": { + "title": "Roles", + "description": "The organization's role(s) in the contracting process, using the open [partyRole](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#party-role) codelist.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "partyRole.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "details": { + "type": [ + "object", + "null" + ], + "description": "Additional classification information about organizations can be provided using organization details extensions that define particular fields and classification schemes.", + "title": "Details", + "minProperties": 1 + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Item": { + "title": "Item", + "type": "object", + "description": "A good, service, or work to be contracted.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A description of the goods, services to be provided.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "classification": { + "title": "Classification", + "description": "The primary classification for the item.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "classificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "additionalClassifications": { + "title": "Additional classifications", + "description": "An array of additional classifications for the item.", + "type": "array", + "items": { + "title": "Classification", + "description": "A classification consists of at least two parts: an identifier for the list (scheme) from which the classification is taken, and an identifier for the category from that list being applied. It is useful to also publish a text label and/or URI that users can draw on to interpret the classification.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "classificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "wholeListMerge": true, + "minItems": 1 + }, + "quantity": { + "title": "Quantity", + "description": "The number of units to be provided.", + "type": [ + "number", + "null" + ] + }, + "unit": { + "title": "Unit", + "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "Name of the unit.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "value": { + "title": "Value", + "description": "The monetary value of a single unit.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "uri": { + "title": "URI", + "description": "The machine-readable URI for the unit of measure, provided by the scheme.", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "weight": { + "title": "Weight", + "description": "The weight of one item unit.", + "type": "object", + "properties": { + "unit": { + "title": "Unit", + "description": "The code and scheme for the unit in which the weight is specified.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", + "type": [ + "string", + "null" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "quantity": { + "title": "Quantity", + "description": "The number of units.", + "type": [ + "number", + "null" + ] + } + }, + "minProperties": 1 + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Amendment": { + "title": "Amendment", + "type": "object", + "description": "Amendment information", + "properties": { + "date": { + "title": "Amendment date", + "description": "The date of this amendment.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "rationale": { + "title": "Rationale", + "description": "An explanation for the amendment.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "description": "An identifier for this amendment: often the amendment number", + "type": [ + "string", + "null" + ], + "title": "ID", + "minLength": 1 + }, + "description": { + "description": "A free text, or semi-structured, description of the changes made in this amendment.", + "type": [ + "string", + "null" + ], + "title": "Description", + "minLength": 1 + }, + "amendsReleaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amended release (identifier)", + "minLength": 1 + }, + "releaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amending release (identifier)", + "minLength": 1 + }, + "changes": { + "title": "Amended fields", + "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", + "type": "array", + "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. (Deprecated in 1.1)", + "type": "string", + "minLength": 1 + }, + "former_value": { + "title": "Former Value", + "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", + "type": [ + "string", + "number", + "integer", + "array", + "object", + "null" + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "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" + }, + "minItems": 1, + "uniqueItems": true + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "Classification": { + "title": "Classification", + "description": "A classification consists of at least two parts: an identifier for the list (scheme) from which the classification is taken, and an identifier for the category from that list being applied. It is useful to also publish a text label and/or URI that users can draw on to interpret the classification.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "classificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Identifier": { + "title": "Identifier", + "description": "A unique identifier for an organization.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Address": { + "title": "Address", + "description": "An address.", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View.", + "minLength": 1 + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA.", + "minLength": 1 + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043.", + "minLength": 1 + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "countryName": { + "title": "Country name", + "type": [ + "string", + "null" + ], + "description": "The country name. For example, United States.", + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1 + }, + "ContactPoint": { + "title": "Contact point", + "type": "object", + "description": "A person, contact point or department to contact in relation to this contracting process.", + "properties": { + "name": { + "title": "Name", + "type": [ + "string", + "null" + ], + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 + }, + "email": { + "title": "Email", + "type": [ + "string", + "null" + ], + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" + }, + "telephone": { + "title": "Telephone", + "type": [ + "string", + "null" + ], + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "faxNumber": { + "title": "Fax number", + "type": [ + "string", + "null" + ], + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "url": { + "title": "URL", + "type": [ + "string", + "null" + ], + "description": "A web address for the contact point/person.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Value": { + "title": "Value", + "description": "Financial values should be published with a currency attached.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "UnitValue": { + "title": "Unit value", + "description": "The monetary value of a single unit.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ], + "minimum": 0 + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "Period": { + "title": "Period", + "description": "Key events during a contracting process may have a known start date, end date, duration, or maximum extent (the latest date the period can extend to). In some cases, not all of these fields will have known or relevant values.", + "type": "object", + "properties": { + "startDate": { + "title": "Start date", + "description": "The start date for the period. When known, a precise start date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "endDate": { + "title": "End date", + "description": "The end date for the period. When known, a precise end date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "maxExtentDate": { + "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", + "format": "date-time", + "title": "Maximum extent", + "type": [ + "string", + "null" + ] + }, + "durationInDays": { + "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", + "title": "Duration (days)", + "type": [ + "integer", + "null" + ], + "minimum": 0 + } + }, + "minProperties": 1 + }, + "SimpleUnit": { + "title": "Simple Unit", + "description": "A simple unit of measure, consisting of: an identifier for the list (scheme) from which the unit is taken, and an identifier for the unit from that list.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", + "type": [ + "string", + "null" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "RelatedProcess": { + "description": "A reference to a related contracting process: generally one preceding or following on from the current process.", + "type": "object", + "title": "Related Process", + "properties": { + "id": { + "title": "Relationship ID", + "description": "A local identifier for this relationship, unique within this array.", + "type": "string", + "minLength": 1 + }, + "relationship": { + "items": { + "type": "string", + "minLength": 1 + }, + "description": "The type of relationship, using the open [relatedProcess](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process) codelist.", + "title": "Relationship", + "type": [ + "array", + "null" + ], + "codelist": "relatedProcess.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "title": { + "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", + "title": "Related process title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "scheme": { + "title": "Scheme", + "description": "The identification scheme used by this cross-reference, using the open [relatedProcessScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "relatedProcessScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "identifier": { + "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", + "title": "Identifier", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "format": "uri", + "description": "A URI pointing to a machine-readable document, release or record package containing the identified related process.", + "title": "Related process URI", + "type": [ + "string", + "null" + ] + } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "Unit": { + "title": "Unit", + "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "Name of the unit.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "value": { + "title": "Value", + "description": "The monetary value of a single unit.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "uri": { + "title": "URI", + "description": "The machine-readable URI for the unit of measure, provided by the scheme.", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "weight": { + "title": "Weight", + "description": "The weight of one item unit.", + "type": "object", + "properties": { + "unit": { + "title": "Unit", + "description": "The code and scheme for the unit in which the weight is specified.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", + "type": [ + "string", + "null" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "quantity": { + "title": "Quantity", + "description": "The number of units.", + "type": [ + "number", + "null" + ] + } + }, + "minProperties": 1 + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Link": { + "title": "Link", + "description": "A reference to a related resource.", + "type": "object", + "properties": { + "rel": { + "title": "Link relation type", + "description": "The relationship with the related resource, using the open [link relation type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#link-relation-type) codelist.", + "type": "string", + "codelist": "linkRelationType.csv", + "openCodelist": true, + "minLength": 1 + }, + "href": { + "title": "Link target", + "description": "The URL of the related resource.", + "type": "string", + "format": "uri" + } + }, + "minProperties": 1 + } + }, + "minProperties": 1 +} diff --git a/schema/strict/record-package-schema.json b/schema/strict/record-package-schema.json new file mode 100644 index 000000000..738ac76c6 --- /dev/null +++ b/schema/strict/record-package-schema.json @@ -0,0 +1,245 @@ +{ + "id": "https://standard.open-contracting.org/schema/1__1__5/record-package-schema.json", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Schema for an Open Contracting Record package", + "description": "The record package contains a list of records along with some publishing metadata.", + "type": "object", + "properties": { + "uri": { + "title": "Package identifier", + "description": "The URI of this package that identifies it uniquely in the world.", + "type": "string", + "format": "uri" + }, + "version": { + "title": "OCDS schema version", + "description": "The version of the OCDS schema used in this package, expressed as major.minor For example: 1.0 or 1.1", + "type": "string", + "pattern": "^(\\d+\\.)(\\d+)$" + }, + "extensions": { + "title": "OCDS extensions", + "description": "An array of OCDS extensions used in this package, in which each array item is the URL of an extension.json file.", + "type": "array", + "items": { + "type": "string", + "format": "uri" + }, + "minItems": 1, + "uniqueItems": true + }, + "publisher": { + "title": "Publisher", + "description": "Information to uniquely identify the publisher of this package.", + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The name of the organization or department responsible for publishing this OCDS data.", + "type": "string", + "minLength": 1 + }, + "scheme": { + "title": "Scheme", + "description": "The scheme that holds the unique identifiers used to identify the item being identified.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uid": { + "title": "uid", + "description": "The unique ID for this entity under the given ID scheme.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the publisher.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + }, + "required": [ + "name" + ], + "minProperties": 1 + }, + "license": { + "title": "License", + "description": "A link to the license that applies to the data in this package. A Public Domain Dedication or [Open Definition Conformant](https://opendefinition.org/licenses/) license is recommended. The canonical URI of the license should be used. Documents linked from this file may be under other license conditions.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "publicationPolicy": { + "title": "Publication policy", + "description": "A link to a document describing the publishers publication policy.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "publishedDate": { + "title": "Published date", + "description": "The date that this package was published. If this package is generated 'on demand', this date should reflect the date of the last change to the underlying contents of the package.", + "type": "string", + "format": "date-time" + }, + "packages": { + "title": "Packages", + "description": "A list of URIs of all the release packages that were used to create this record package.", + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "format": "uri" + }, + "uniqueItems": true, + "deprecated": { + "description": "This field is deprecated, because it is rarely implemented, is rarely used, and depends on a publication pattern in which release packages are published at stable URLs.", + "deprecatedVersion": "1.2" + } + }, + "records": { + "title": "Records", + "description": "The records for this data package.", + "type": "array", + "items": { + "$ref": "#/definitions/Record" + }, + "uniqueItems": true, + "minItems": 1 + } + }, + "required": [ + "uri", + "publisher", + "publishedDate", + "records", + "version" + ], + "definitions": { + "Record": { + "title": "Record", + "description": "A record aggregates releases with the same open contracting process identifier (ocid). There should be a single record per ocid per [distribution](https://www.w3.org/TR/vocab-dcat-2/#Class:Distribution), where a distribution might be a specific API endpoint or a specific bulk download file.", + "type": "object", + "properties": { + "ocid": { + "title": "Open contracting process identifier", + "description": "A globally unique identifier for the contracting process that the record describes. Alternatively, this identifier can refer to a planning process or a single stage of a multiple stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", + "type": "string", + "minLength": 1 + }, + "releases": { + "title": "Releases", + "description": "All the releases about the contracting process at the time of the record's publication. The releases must be sorted in date order, from oldest to newest.", + "oneOf": [ + { + "title": "Linked releases", + "description": "A list of references to releases.", + "type": "array", + "items": { + "$ref": "#/definitions/LinkedRelease" + }, + "minItems": 1, + "uniqueItems": true + }, + { + "title": "Embedded releases", + "description": "A list of releases, with all the data.", + "type": "array", + "items": { + "$ref": "https://standard.open-contracting.org/schema/1__1__5/release-schema.json" + }, + "minItems": 1, + "uniqueItems": true + } + ] + }, + "compiledRelease": { + "title": "Compiled release", + "description": "The latest value of each field at the time of the record's publication. It follows the same schema as a release. A record should contain a compiled release.", + "$ref": "https://standard.open-contracting.org/schema/1__1__5/release-schema.json" + }, + "versionedRelease": { + "title": "Versioned release", + "description": "The history of values of each field up to the time of the record's publication.", + "$ref": "https://standard.open-contracting.org/schema/1__1__5/versioned-release-validation-schema.json" + } + }, + "required": [ + "ocid" + ], + "minProperties": 1 + }, + "LinkedRelease": { + "title": "Linked release", + "description": "A reference to a release.", + "type": "object", + "properties": { + "url": { + "title": "Release URL", + "description": "The URL of the release which contains the URL of the package with the release `id` appended using a fragment identifier e.g. https://standard.open-contracting.org/{{version}}/{{lang}}/examples/tender.json#ocds-213czf-000-00001", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "date": { + "title": "Release Date", + "description": "The date of the release. It should match the value of the `date` field of the release. This is used to sort the releases in the list in chronological order.", + "type": "string", + "format": "date-time" + }, + "tag": { + "title": "Release Tag", + "description": "The tags of the release. It should match the value of the `tag` field of the release. This provides additional context when reviewing a record to see what types of releases are included for this ocid.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "planning", + "planningUpdate", + "tender", + "tenderAmendment", + "tenderUpdate", + "tenderCancellation", + "award", + "awardUpdate", + "awardCancellation", + "contract", + "contractUpdate", + "contractAmendment", + "implementation", + "implementationUpdate", + "contractTermination", + "compiled" + ] + }, + "codelist": "releaseTag.csv", + "openCodelist": false, + "minItems": 1, + "uniqueItems": true + } + }, + "required": [ + "url", + "date" + ], + "minProperties": 1 + } + }, + "minProperties": 1 +} diff --git a/schema/strict/release-package-schema.json b/schema/strict/release-package-schema.json new file mode 100644 index 000000000..92b2f1f19 --- /dev/null +++ b/schema/strict/release-package-schema.json @@ -0,0 +1,118 @@ +{ + "id": "https://standard.open-contracting.org/schema/1__1__5/release-package-schema.json", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Schema for an Open Contracting Release Package", + "description": "The release package contains a list of releases along with some publishing metadata.", + "type": "object", + "required": [ + "uri", + "publisher", + "publishedDate", + "releases", + "version" + ], + "properties": { + "uri": { + "title": "Package identifier", + "description": "The URI of this package that identifies it uniquely in the world. Recommended practice is to use a dereferenceable URI, where a persistent copy of this package is available.", + "type": "string", + "format": "uri" + }, + "version": { + "title": "OCDS schema version", + "description": "The version of the OCDS schema used in this package, expressed as major.minor For example: 1.0 or 1.1", + "type": "string", + "pattern": "^(\\d+\\.)(\\d+)$" + }, + "extensions": { + "title": "OCDS extensions", + "description": "An array of OCDS extensions used in this package, in which each array item is the URL of an extension.json file.", + "type": "array", + "items": { + "type": "string", + "format": "uri" + }, + "minItems": 1, + "uniqueItems": true + }, + "publishedDate": { + "title": "Published date", + "description": "The date that this package was published. If this package is generated 'on demand', this date should reflect the date of the last change to the underlying contents of the package.", + "type": "string", + "format": "date-time" + }, + "releases": { + "title": "Releases", + "description": "An array of one or more OCDS releases.", + "type": "array", + "items": { + "$ref": "https://standard.open-contracting.org/schema/1__1__5/release-schema.json" + }, + "uniqueItems": true, + "minItems": 1 + }, + "publisher": { + "title": "Publisher", + "description": "Information to uniquely identify the publisher of this package.", + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The name of the organization or department responsible for publishing this OCDS data.", + "type": "string", + "minLength": 1 + }, + "scheme": { + "title": "Scheme", + "description": "The scheme that holds the unique identifiers used to identify the item being identified.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uid": { + "title": "uid", + "description": "The unique ID for this entity under the given ID scheme.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the publisher.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + }, + "required": [ + "name" + ], + "minProperties": 1 + }, + "license": { + "title": "License", + "description": "A link to the license that applies to the data in this package. A Public Domain Dedication or [Open Definition Conformant](https://opendefinition.org/licenses/) license is recommended. The canonical URI of the license should be used. Documents linked from this file may be under other license conditions.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "publicationPolicy": { + "title": "Publication policy", + "description": "A link to a document describing the publishers [publication policy](https://standard.open-contracting.org/{{version}}/{{lang}}/guidance/publish/#finalize-your-publication-policy).", + "type": [ + "string", + "null" + ], + "format": "uri" + } + }, + "minProperties": 1 +} diff --git a/schema/strict/release-schema.json b/schema/strict/release-schema.json new file mode 100644 index 000000000..a915ec53c --- /dev/null +++ b/schema/strict/release-schema.json @@ -0,0 +1,3185 @@ +{ + "id": "https://standard.open-contracting.org/schema/1__1__5/release-schema.json", + "$schema": "http://json-schema.org/draft-04/schema#", + "title": "Schema for an Open Contracting Release", + "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multiple stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\"", + "type": "object", + "properties": { + "ocid": { + "title": "Open contracting process identifier", + "description": "A globally unique identifier for the contracting process that the release describes. Alternatively, this identifier can refer to a planning process or a single stage of a multiple stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", + "type": "string", + "minLength": 1 + }, + "id": { + "title": "Release ID", + "description": "The identifier of the release. The release ID must be unique within the scope of the contracting process (identified by the ocid), for a given version of OCDS. In other words, a publisher may publish datasets for different versions of OCDS, and repeat releases within each dataset. The release ID must not contain the number sign (#). For a compiled release, the `ocid` and the maximum `date` among the individual releases used to create the compiled release, separated by a hyphen: {ocid}-{date}.", + "type": "string", + "minLength": 1, + "omitWhenMerged": true + }, + "date": { + "title": "Release Date", + "description": "The date on which the information contained in the release was first recorded in, or published by, any system. For a compiled release, the maximum `date` among the individual releases used to create the compiled release. The release date should be unique within the scope of the contracting process identified by the Open Contracting ID (ocid), for a given version of OCDS.", + "type": "string", + "format": "date-time", + "omitWhenMerged": true + }, + "publisher": { + "title": "Publisher", + "description": "The original publisher of this release.", + "$ref": "#/definitions/Identifier" + }, + "tag": { + "title": "Release Tag", + "description": "A tag labeling the release (for example, as corresponding to a stage of the contracting process), using the the open [releaseTag](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#release-tag) codelist. Codes outside the releaseTag codelist might indicate, for example, the notice or form to which the release corresponds, or the event that triggered the publication of the release. Planning processes must not use the 'tender' code, even if they use `tender` fields.", + "type": "array", + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "releaseTag.csv", + "openCodelist": true, + "minItems": 1, + "omitWhenMerged": true, + "uniqueItems": true + }, + "initiationType": { + "title": "Initiation type", + "description": "The type of initiation process used for this contract, from the closed [initiationType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#initiation-type) codelist.", + "type": "string", + "enum": [ + "tender" + ], + "codelist": "initiationType.csv", + "openCodelist": false, + "deprecated": { + "description": "This field is deprecated, because the approach to data modelling that it supports was not pursued.", + "deprecatedVersion": "1.2" + } + }, + "parties": { + "title": "Parties", + "description": "Information on the organizations who are involved in the contracting process and their roles, e.g. buyer, procuring entity, supplier etc. Organization references elsewhere in the schema are used to refer back to this entries in this list.", + "type": "array", + "items": { + "$ref": "#/definitions/Organization" + }, + "uniqueItems": true, + "minItems": 1 + }, + "buyer": { + "title": "Buyer", + "description": "The organization aiming to conclude a contract with a supplier or to use the goods, works or services resulting from the contract.", + "$ref": "#/definitions/OrganizationReference" + }, + "planning": { + "title": "Planning", + "description": "Information about, for example, needs identification, budget planning and market research. This information concerns the planning process. This information typically concerns the period before the publication of procurement documents.", + "$ref": "#/definitions/Planning" + }, + "tender": { + "title": "Tender", + "description": "Information about, for example, the needed items and their estimated value, procurement method, award criteria, and various deadlines. This information concerns either the contracting process or the planning process. For a contracting process, this information typically concerns the period starting with the publication of procurement documents and ending with the bid submission deadline. For a planning process, this information typically concerns the period before the publication of procurement documents.", + "$ref": "#/definitions/Tender" + }, + "awards": { + "title": "Awards", + "description": "Information about the awards. This information concerns the contracting process. This information typically concerns the period after the bid submission deadline and ending with the award or, if there is a standstill period, the end of the standstill period.", + "type": "array", + "items": { + "$ref": "#/definitions/Award" + }, + "uniqueItems": true, + "minItems": 1 + }, + "contracts": { + "title": "Contracts", + "description": "Information about the contracts and their implementation. This information concerns the contracting process. This information typically concerns the period after the award or, if there was a standstill period, after the end of the standstill period.", + "type": "array", + "items": { + "$ref": "#/definitions/Contract" + }, + "uniqueItems": true, + "minItems": 1 + }, + "language": { + "title": "Release language", + "description": "The default language of the data, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "minLength": 1 + }, + "relatedProcesses": { + "uniqueItems": true, + "items": { + "$ref": "#/definitions/RelatedProcess" + }, + "description": "The details of related processes: for example, if this process follows on from one or more other processes, represented under a separate ocid. This is commonly used to relate mini-competitions to their parent frameworks or individual tenders to a broader planning process.", + "title": "Related processes", + "type": "array", + "minItems": 1 + }, + "links": { + "title": "Links", + "description": "Links to related resources. In a release, links relate to the individual release: for example, a link to a canonical version of the release in another OCDS publication. In a compiled release, links relate to the entire contracting process: for example, a link to a resource in a non-OCDS publication that represents the entire contracting process.", + "type": "array", + "items": { + "$ref": "#/definitions/Link" + }, + "uniqueItems": true, + "omitWhenMerged": true, + "minItems": 1 + } + }, + "required": [ + "ocid", + "id", + "date", + "tag", + "initiationType" + ], + "definitions": { + "Planning": { + "title": "Planning", + "description": "Information about, for example, needs identification, budget planning and market research. This information concerns the planning process. This information typically concerns the period before the publication of procurement documents.", + "type": "object", + "properties": { + "id": { + "title": "Planning ID", + "description": "An identifier for this planning process.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "rationale": { + "title": "Rationale", + "description": "The rationale for the planned procurement provided in free text. More detail can be provided in an attached document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "budget": { + "title": "Budget", + "description": "Details of the budget that funds the planned contracting process.", + "$ref": "#/definitions/Budget" + }, + "documents": { + "title": "Documents", + "description": "Documents related to the planning process (for example, notices, needs assessments and market studies).", + "type": "array", + "items": { + "$ref": "#/definitions/Document" + }, + "minItems": 1, + "uniqueItems": true + }, + "milestones": { + "title": "Planning milestones", + "description": "A list of milestones associated with the planning process.", + "type": "array", + "items": { + "$ref": "#/definitions/Milestone" + }, + "minItems": 1, + "uniqueItems": true + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Tender": { + "title": "Tender", + "description": "Information about, for example, the needed items and their estimated value, procurement method, award criteria, and various deadlines. This information concerns either the contracting process or the planning process. For a contracting process, this information typically concerns the period starting with the publication of procurement documents and ending with the bid submission deadline. For a planning process, this information typically concerns the period before the publication of procurement documents.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "Tender ID", + "description": "An identifier for this tender process. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Tender title", + "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Tender description", + "description": "A summary description of the tender. This complements any structured information provided using the items array. Descriptions should be short and easy to read. Avoid using ALL CAPS.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "status": { + "title": "Tender status", + "description": "The current status of the tender, from the closed [tenderStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#tender-status) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "tenderStatus.csv", + "openCodelist": false, + "enum": [ + "planning", + "planned", + "active", + "cancelled", + "unsuccessful", + "complete", + "withdrawn", + null + ] + }, + "statusDetails": { + "title": "Status details", + "description": "Additional details on the status of the tender. This field can be used to provide the local name of the status.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "procuringEntity": { + "title": "Procuring entity", + "description": "The organization managing the contracting process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", + "$ref": "#/definitions/OrganizationReference" + }, + "items": { + "title": "Items to be procured", + "description": "The goods and services to be purchased, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", + "type": "array", + "items": { + "$ref": "#/definitions/Item" + }, + "uniqueItems": true, + "minItems": 1 + }, + "value": { + "title": "Value", + "description": "The estimated value of the procurement, as estimated when publishing the tender information. A negative value indicates that the contracting process may involve payments from the supplier to the buyer (commonly used in concession contracts).", + "$ref": "#/definitions/Value" + }, + "minValue": { + "title": "Minimum value", + "description": "The estimated minimum value of the procurement. A negative value indicates that the contracting process may involve payments from the supplier to the buyer (commonly used in concession contracts).", + "$ref": "#/definitions/Value" + }, + "maximumValue": { + "title": "Maximum value", + "description": "The estimated maximum value of the framework agreement, as estimated when publishing the tender information.", + "$ref": "#/definitions/Value" + }, + "procurementMethod": { + "title": "Procurement method", + "description": "The method describing which organizations can submit a bid, using the closed [method](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#method) codelist. In releases concerning second stages (e.g. in framework agreements) or other subsequent stages, the procurement method always refers to the first stage of the contracting process.", + "type": [ + "string", + "null" + ], + "codelist": "method.csv", + "openCodelist": false, + "enum": [ + "open", + "selective", + "limited", + "direct", + null + ] + }, + "procurementMethodDetails": { + "title": "Procurement method details", + "description": "Additional detail on the procurement method used. This field can be used to provide the local name of the particular procurement method used.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "procurementMethodRationale": { + "title": "Procurement method rationale", + "description": "Rationale for the chosen procurement method. This is especially important to provide a justification in the case of limited tenders or direct awards.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "mainProcurementCategory": { + "title": "Main procurement category", + "description": "The primary category describing the main object of this contracting process, from the closed [procurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#procurement-category) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "procurementCategory.csv", + "openCodelist": false, + "enum": [ + "goods", + "works", + "services", + null + ] + }, + "additionalProcurementCategories": { + "title": "Additional procurement categories", + "description": "Any additional categories describing the objects of this contracting process, using the open [extendedProcurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#extended-procurement-category) codelist.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "extendedProcurementCategory.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "awardCriteria": { + "title": "Award criteria", + "description": "The award criteria for the procurement, using the open [awardCriteria](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#award-criteria) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "awardCriteria.csv", + "openCodelist": true, + "minLength": 1 + }, + "awardCriteriaDetails": { + "title": "Award criteria details", + "description": "Any detailed or further information on the award criteria.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "submissionMethod": { + "title": "Submission method", + "description": "The methods by which bids are submitted, using the open [submissionMethod](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#submission-method) codelist.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "submissionMethod.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated, because all codes from the submissionMethod codelist are deprecated. Refer to the Deprecation note of individual codes.", + "deprecatedVersion": "1.2" + }, + "minItems": 1, + "uniqueItems": true + }, + "submissionMethodDetails": { + "title": "Submission method details", + "description": "Any detailed or further information on the submission method. This can include the address, e-mail address or online service to which bids are submitted, and any special requirements to be followed for submissions.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "datePublished": { + "description": "The date on which the tender was published.", + "format": "date-time", + "title": "Date published", + "type": [ + "string", + "null" + ] + }, + "tenderPeriod": { + "title": "Tender period", + "description": "The period when the tender is open for submissions. The end date is the closing date for bid submissions.", + "$ref": "#/definitions/Period" + }, + "enquiryPeriod": { + "title": "Enquiry period", + "description": "The period during which potential bidders may submit questions and requests for clarification to the buyer or the procuring entity. Details of how to submit enquiries should be provided in attached notices, or in submissionMethodDetails. Structured dates for when responses to questions will be made can be provided using tender milestones.", + "$ref": "#/definitions/Period" + }, + "hasEnquiries": { + "title": "Has enquiries?", + "description": "A true/false field to indicate whether any enquiries were received during the tender process. Structured information on enquiries that were received, and responses to them, can be provided using the enquiries extension.", + "type": [ + "boolean", + "null" + ] + }, + "eligibilityCriteria": { + "title": "Eligibility criteria", + "description": "A description of any eligibility criteria for potential suppliers.", + "type": [ + "string", + "null" + ], + "deprecated": { + "description": "This field had unclear semantics and used ambiguous terms, and is deprecated in favor of exclusionGrounds.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + }, + "exclusionGrounds": { + "title": "Exclusion grounds", + "description": "The criteria regarding the situation of a tenderer that can lead to its exclusion from the contracting process. For example: criminal convictions, bankruptcy, presence on a blacklist or failure to pay taxes.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "selectionCriteria": { + "title": "Selection criteria", + "description": "The minimum requirements for tenderers to participate in the contracting process. Selection criteria ensure that a tenderer has the legal and financial capacities and the technical and professional abilities to perform the contract to be awarded. More structured information can be provided using the selection criteria extension.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "awardPeriod": { + "title": "Evaluation and award period", + "description": "The period for decision making regarding the contract award. The end date should be the date on which an award decision is due to be finalized. The start date may be used to indicate the start of an evaluation period.", + "$ref": "#/definitions/Period" + }, + "contractPeriod": { + "description": "The period over which the contract is estimated or required to be active. If the tender does not specify explicit dates, the duration field may be used.", + "title": "Contract period", + "$ref": "#/definitions/Period" + }, + "numberOfTenderers": { + "title": "Number of tenderers", + "description": "The number of tenderers that submit a bid.", + "type": [ + "integer", + "null" + ], + "minimum": 0 + }, + "tenderers": { + "title": "Tenderers", + "description": "All organizations that submit a bid. More detailed information on bids and the bidding organization can be provided using the bid extension.", + "type": "array", + "items": { + "$ref": "#/definitions/OrganizationReference" + }, + "uniqueItems": true, + "minItems": 1 + }, + "documents": { + "title": "Documents", + "description": "Documents related to the tender stage (for example, notices, technical specifications, evaluation criteria, questions and clarifications).", + "type": "array", + "items": { + "$ref": "#/definitions/Document" + }, + "minItems": 1, + "uniqueItems": true + }, + "milestones": { + "title": "Milestones", + "description": "A list of milestones associated with the tender.", + "type": "array", + "items": { + "$ref": "#/definitions/Milestone" + }, + "minItems": 1, + "uniqueItems": true + }, + "amendments": { + "description": "A tender amendment is a formal change to the tender, and generally involves the publication of a new tender notice/release. The rationale and a description of the changes made can be provided here.", + "type": "array", + "title": "Amendments", + "items": { + "$ref": "#/definitions/Amendment" + }, + "minItems": 1, + "uniqueItems": true + }, + "amendment": { + "title": "Amendment", + "description": "The use of individual amendment objects has been deprecated. From OCDS 1.1 information should be provided in the amendments array.", + "$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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(selectionCriteria_(((([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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Award": { + "title": "Award", + "description": "Decision by the buyer or the procuring entity on the supplier with whom it intends to conclude a contract, including the items to be supplied and their value. Typically, this decision leads to one or more contracts, but not always (for example, the award is appealed at court or the supplier refuses to sign the contract). Depending on the jurisdiction, a single decision may concern a single supplier, item and value; or batches of suppliers and/or items and/or values. Similarly, sometimes the award is published as soon as it is made and sometimes only together with a contract.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "Award ID", + "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "Award title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "Award description", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "status": { + "title": "Award status", + "description": "The current status of the award, from the closed [awardStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#award-status) codelist.", + "type": [ + "string", + "null" + ], + "enum": [ + "pending", + "active", + "cancelled", + "unsuccessful", + null + ], + "codelist": "awardStatus.csv", + "openCodelist": false + }, + "statusDetails": { + "title": "Status details", + "description": "Additional details on the status of the award. This field can be used to provide the local name of the status.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "date": { + "title": "Award date", + "description": "The date of the contract award. This is usually the date on which a decision to award was made.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "value": { + "title": "Value", + "description": "The value of this award. There may be more than one award per procurement. A negative value indicates that the award may involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", + "$ref": "#/definitions/Value" + }, + "maximumValue": { + "title": "Maximum value", + "description": "The estimated maximum value of the framework agreement, as a whole, as estimated when making the award.", + "$ref": "#/definitions/Value" + }, + "estimatedValue": { + "title": "Estimated value", + "description": "The estimated value of the framework agreement, as a whole, as estimated when making the award.", + "$ref": "#/definitions/Value" + }, + "suppliers": { + "title": "Suppliers", + "description": "Organizations with which a buyer or a procuring entity decided to conclude a contract.", + "type": "array", + "items": { + "$ref": "#/definitions/OrganizationReference" + }, + "uniqueItems": true, + "minItems": 1 + }, + "items": { + "title": "Items awarded", + "description": "The goods and services awarded in this award, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/Item" + }, + "uniqueItems": true + }, + "contractPeriod": { + "title": "Contract period", + "description": "The period for which the contract has been awarded.", + "$ref": "#/definitions/Period" + }, + "documents": { + "title": "Documents", + "description": "Documents related to the award (for example, notices, bids, evaluation reports).", + "type": "array", + "items": { + "$ref": "#/definitions/Document" + }, + "uniqueItems": true, + "minItems": 1 + }, + "amendments": { + "description": "An award amendment is a formal change to the details of the award, and generally involves the publication of a new award notice/release. The rationale and a description of the changes made can be provided here.", + "type": "array", + "title": "Amendments", + "items": { + "$ref": "#/definitions/Amendment" + }, + "minItems": 1, + "uniqueItems": true + }, + "amendment": { + "title": "Amendment", + "description": "The use of individual amendment objects has been deprecated. From OCDS 1.1 information should be provided in the amendments array.", + "$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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Contract": { + "type": "object", + "title": "Contract", + "description": "Information regarding the contract, typically between the buyer and supplier. This includes contracts describing all the contractual conditions (e.g. item, quantity, price, payment terms, time and place of delivery), as well as contracts only describing the general contractual conditions (such as a framework agreement) and those only describing the specific contractual conditions (such as a contract within a framework agreement). Communication between contractual parties that consists of minor specifications of conditions agreed previously (e.g. specifying the time or place of delivery) is not considered a contract. Amendments are considered as part of the contract that is being amended. Contracts are also used when giving prizes or other rewards (e.g. a follow-up contract) resulting from a design contest.", + "required": [ + "id", + "awardID" + ], + "properties": { + "id": { + "title": "Contract ID", + "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "awardID": { + "title": "Award ID", + "description": "The award.id against which this contract is being issued.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Contract title", + "description": "Contract title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Contract description", + "description": "Contract description", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "status": { + "title": "Contract status", + "description": "The current status of the contract, from the closed [contractStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#contract-status) codelist.", + "type": [ + "string", + "null" + ], + "enum": [ + "pending", + "active", + "cancelled", + "terminated", + "terminatedEarly", + "terminatedSuccessfully", + null + ], + "codelist": "contractStatus.csv", + "openCodelist": false + }, + "statusDetails": { + "title": "Status details", + "description": "Additional details on the status of the contract. This field can be used to provide the local name of the status.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "dateSigned": { + "title": "Date concluded", + "description": "The date the contract was concluded. Typically, this is the date when the last buyer or supplier signed the contract. However, if no contract is signed, then the date of contract conclusion may correspond to other dates (e.g. the date when the buyer notified the supplier, which had the legal effect of concluding the contract).", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "value": { + "title": "Value", + "description": "The value of this contract. A negative value indicates that the contract will involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", + "$ref": "#/definitions/Value" + }, + "maximumValue": { + "title": "Maximum value", + "description": "The maximum value of the framework agreement, as a whole.", + "$ref": "#/definitions/Value" + }, + "estimatedValue": { + "title": "Estimated value", + "description": "The estimated value of the framework agreement, as a whole, as estimated when the framework agreement is concluded (e.g. signed).", + "$ref": "#/definitions/Value" + }, + "items": { + "title": "Items contracted", + "description": "The goods, services, and any intangible outcomes in this contract. If the items contracted are identical to the items awarded, this field should be omitted.", + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/Item" + }, + "uniqueItems": true + }, + "period": { + "title": "Period", + "description": "The start and end date for the contract.", + "$ref": "#/definitions/Period" + }, + "documents": { + "title": "Documents", + "description": "Documents related to the contract (for example, notices, signed contracts).", + "type": "array", + "items": { + "$ref": "#/definitions/Document" + }, + "uniqueItems": true, + "minItems": 1 + }, + "implementation": { + "title": "Implementation", + "description": "Information related to the implementation of the contract in accordance with the obligations laid out therein.", + "$ref": "#/definitions/Implementation" + }, + "relatedProcesses": { + "uniqueItems": true, + "items": { + "$ref": "#/definitions/RelatedProcess" + }, + "description": "The details of related processes: for example, if this process is followed by one or more contracting processes, represented under a separate ocid. This is commonly used to refer to subcontracts and to renewal or replacement processes for this contract.", + "title": "Related processes", + "type": "array", + "minItems": 1 + }, + "milestones": { + "title": "Contract milestones", + "description": "A list of milestones associated with the finalization of this contract.", + "type": "array", + "items": { + "$ref": "#/definitions/Milestone" + }, + "minItems": 1, + "uniqueItems": true + }, + "amendments": { + "description": "A contract amendment is a formal change to, or extension of, a contract, and generally involves the publication of a new contract signature notice/release, or some other documents detailing the change. The rationale and a description of the changes made can be provided here.", + "type": "array", + "title": "Amendments", + "items": { + "$ref": "#/definitions/Amendment" + }, + "minItems": 1, + "uniqueItems": true + }, + "amendment": { + "title": "Amendment", + "description": "The use of individual amendment objects has been deprecated. From OCDS 1.1 information should be provided in the amendments array.", + "$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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Implementation": { + "type": "object", + "title": "Implementation", + "description": "Information during the performance / implementation stage of the contract.", + "properties": { + "transactions": { + "title": "Transactions", + "description": "A list of the spending transactions made against this contract", + "type": "array", + "items": { + "$ref": "#/definitions/Transaction" + }, + "uniqueItems": true, + "minItems": 1 + }, + "milestones": { + "title": "Milestones", + "description": "As milestones are completed, the milestone's status and dates should be updated.", + "type": "array", + "items": { + "$ref": "#/definitions/Milestone" + }, + "uniqueItems": true, + "minItems": 1 + }, + "documents": { + "title": "Documents", + "description": "Documents related to the implementation of the contract (for example, completion certificates, audits).", + "type": "array", + "items": { + "$ref": "#/definitions/Document" + }, + "uniqueItems": true, + "minItems": 1 + } + }, + "minProperties": 1 + }, + "Milestone": { + "title": "Milestone", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "Milestone title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "type": { + "title": "Milestone type", + "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "milestoneType.csv", + "openCodelist": true, + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A description of the milestone.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "code": { + "title": "Milestone code", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "dueDate": { + "title": "Due date", + "description": "The date the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateMet": { + "format": "date-time", + "title": "Date met", + "description": "The date on which the milestone was met.", + "type": [ + "string", + "null" + ] + }, + "dateModified": { + "title": "Date modified", + "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "status": { + "title": "Status", + "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", + "type": [ + "string", + "null" + ], + "enum": [ + "scheduled", + "met", + "notMet", + "partiallyMet", + null + ], + "codelist": "milestoneStatus.csv", + "openCodelist": false + }, + "documents": { + "title": "Documents", + "description": "List of documents associated with this milestone (Deprecated in 1.1).", + "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, + "minItems": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Document": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Budget": { + "type": "object", + "title": "Budget information", + "description": "This section contains basic information about the budget estimated for, or allocated to, this contracting process at the present time. Further documentation and data about how budgets have been allocated to a contracting process should be published outside of OCDS data, according to the best available standards.", + "properties": { + "id": { + "title": "ID", + "description": "An identifier for the budget line item which provides funds for this contracting process. This identifier should be possible to cross-reference against formal budget documents.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Budget Source", + "description": "A short free-text description of the budget allocation for this contracting process. This may be used to provide human-readable information on the budget category allocated to this contracting process, and/or, information about the nature and source of the allocation (e.g. conditional, confirmed; any official authorizations given to the budget allocation).", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "amount": { + "title": "Amount", + "description": "The value reserved in the budget for this contracting process. A negative value indicates anticipated income to the budget as a result of this contracting process, rather than expenditure. Where the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line funding this contracting process.", + "$ref": "#/definitions/Value" + }, + "project": { + "title": "Project title", + "description": "The name of the project through which this contracting process is funded (if applicable). Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry. No translation option is offered for this string, as translated values can be provided in third-party data, linked from the data source above.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "projectID": { + "title": "Project identifier", + "description": "An external identifier for the project that this contracting process forms part of, or is funded via (if applicable). Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "Linked budget information", + "description": "A URI pointing directly to a machine-readable record about the budget line-item or line-items that fund this contracting process. Information can be provided in a range of formats, including using IATI, the Open Fiscal Data Standard or any other standard which provides structured data on budget sources. Human readable documents can be included using the planning.documents block.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "source": { + "title": "Data Source", + "description": "(Deprecated in 1.1) Used to point either to a corresponding Budget Data Package, or to a machine or human-readable source where users can find further information on the budget line item identifiers, or project identifiers, provided here.", + "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" + } + }, + "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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Transaction": { + "type": "object", + "title": "Transaction information", + "description": "A spending transaction related to the contracting process. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A unique identifier for this transaction. This identifier should be possible to cross-reference against the provided data source. For IATI this is the transaction reference. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "source": { + "title": "Data source", + "description": "Used to point either to a corresponding Fiscal Data Package, IATI file, or machine or human-readable source where users can find further information on the budget line item identifiers, or project identifiers, provided here.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "date": { + "title": "Date", + "description": "The date of the transaction", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "value": { + "$ref": "#/definitions/Value", + "title": "Value", + "description": "The value of the transaction." + }, + "payer": { + "$ref": "#/definitions/OrganizationReference", + "title": "Payer", + "description": "An organization reference for the organization from which the funds in this transaction originate." + }, + "payee": { + "$ref": "#/definitions/OrganizationReference", + "title": "Payee", + "description": "An organization reference for the organization which receives the funds in this transaction." + }, + "uri": { + "title": "Linked spending information", + "description": "A URI pointing directly to a machine-readable record about this spending transaction.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "amount": { + "title": "Amount", + "description": "(Deprecated in 1.1. Use transaction.value instead) The value of the transaction. A negative value indicates a refund or correction.", + "$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": { + "title": "Provider organization", + "description": "(Deprecated in 1.1. Use transaction.payer instead.) The Organization Identifier for the organization from which the funds in this transaction originate. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", + "$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": { + "title": "Receiver organization", + "description": "(Deprecated in 1.1. Use transaction.payee instead). The Organization Identifier for the organization which receives the funds in this transaction. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", + "$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" + } + } + }, + "minProperties": 1 + }, + "OrganizationReference": { + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "type": [ + "string", + "null" + ], + "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", + "title": "Organization name", + "minLength": 1 + }, + "id": { + "type": [ + "string", + "integer" + ], + "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", + "title": "ID", + "minLength": 1 + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "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", + "description": "(Deprecated outside the parties section)", + "title": "Address" + }, + "additionalIdentifiers": { + "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/Identifier" + }, + "title": "Additional identifiers", + "uniqueItems": true, + "wholeListMerge": true, + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "minItems": 1 + }, + "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", + "description": "(Deprecated outside the parties section)", + "title": "Contact point" + } + }, + "type": "object", + "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", + "title": "Organization reference", + "minProperties": 1 + }, + "Organization": { + "title": "Organization", + "description": "An organization", + "type": "object", + "required": [ + "id", + "name" + ], + "properties": { + "name": { + "title": "Common name", + "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting process.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "type": "string", + "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the contracting process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", + "title": "ID", + "minLength": 1 + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "$ref": "#/definitions/Identifier" + }, + "additionalIdentifiers": { + "title": "Additional identifiers", + "description": "A list of additional / supplemental identifiers for the organization or participant, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "type": "array", + "items": { + "$ref": "#/definitions/Identifier" + }, + "uniqueItems": true, + "wholeListMerge": true, + "minItems": 1 + }, + "address": { + "title": "Address", + "description": "An address. This may be the legally registered address of the organization, or may be a correspondence address for this particular contracting process.", + "$ref": "#/definitions/Address" + }, + "contactPoint": { + "title": "Contact point", + "description": "Contact details that can be used for this organization.", + "$ref": "#/definitions/ContactPoint" + }, + "roles": { + "title": "Roles", + "description": "The organization's role(s) in the contracting process, using the open [partyRole](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#party-role) codelist.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "partyRole.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "details": { + "type": [ + "object", + "null" + ], + "description": "Additional classification information about organizations can be provided using organization details extensions that define particular fields and classification schemes.", + "title": "Details", + "minProperties": 1 + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Item": { + "title": "Item", + "type": "object", + "description": "A good, service, or work to be contracted.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A description of the goods, services to be provided.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "classification": { + "title": "Classification", + "description": "The primary classification for the item.", + "$ref": "#/definitions/Classification" + }, + "additionalClassifications": { + "title": "Additional classifications", + "description": "An array of additional classifications for the item.", + "type": "array", + "items": { + "$ref": "#/definitions/Classification" + }, + "uniqueItems": true, + "wholeListMerge": true, + "minItems": 1 + }, + "quantity": { + "title": "Quantity", + "description": "The number of units to be provided.", + "type": [ + "number", + "null" + ] + }, + "unit": { + "title": "Unit", + "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "$ref": "#/definitions/Unit" + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Amendment": { + "title": "Amendment", + "type": "object", + "description": "Amendment information", + "properties": { + "date": { + "title": "Amendment date", + "description": "The date of this amendment.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "rationale": { + "title": "Rationale", + "description": "An explanation for the amendment.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "description": "An identifier for this amendment: often the amendment number", + "type": [ + "string", + "null" + ], + "title": "ID", + "minLength": 1 + }, + "description": { + "description": "A free text, or semi-structured, description of the changes made in this amendment.", + "type": [ + "string", + "null" + ], + "title": "Description", + "minLength": 1 + }, + "amendsReleaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amended release (identifier)", + "minLength": 1 + }, + "releaseID": { + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "type": [ + "string", + "null" + ], + "title": "Amending release (identifier)", + "minLength": 1 + }, + "changes": { + "title": "Amended fields", + "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", + "type": "array", + "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. (Deprecated in 1.1)", + "type": "string", + "minLength": 1 + }, + "former_value": { + "title": "Former Value", + "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", + "type": [ + "string", + "number", + "integer", + "array", + "object", + "null" + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "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" + }, + "minItems": 1, + "uniqueItems": true + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "Classification": { + "title": "Classification", + "description": "A classification consists of at least two parts: an identifier for the list (scheme) from which the classification is taken, and an identifier for the category from that list being applied. It is useful to also publish a text label and/or URI that users can draw on to interpret the classification.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "classificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Identifier": { + "title": "Identifier", + "description": "A unique identifier for an organization.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Address": { + "title": "Address", + "description": "An address.", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy.", + "minLength": 1 + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View.", + "minLength": 1 + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA.", + "minLength": 1 + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043.", + "minLength": 1 + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "countryName": { + "title": "Country name", + "type": [ + "string", + "null" + ], + "description": "The country name. For example, United States.", + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1 + }, + "ContactPoint": { + "title": "Contact point", + "type": "object", + "description": "A person, contact point or department to contact in relation to this contracting process.", + "properties": { + "name": { + "title": "Name", + "type": [ + "string", + "null" + ], + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "minLength": 1 + }, + "email": { + "title": "Email", + "type": [ + "string", + "null" + ], + "description": "The e-mail address of the contact point/person.", + "minLength": 1, + "format": "email" + }, + "telephone": { + "title": "Telephone", + "type": [ + "string", + "null" + ], + "description": "The telephone number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "faxNumber": { + "title": "Fax number", + "type": [ + "string", + "null" + ], + "description": "The fax number of the contact point/person. This should include the international dialing code.", + "minLength": 1 + }, + "url": { + "title": "URL", + "type": [ + "string", + "null" + ], + "description": "A web address for the contact point/person.", + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Value": { + "title": "Value", + "description": "Financial values should be published with a currency attached.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "UnitValue": { + "title": "Unit value", + "description": "The monetary value of a single unit.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ], + "minimum": 0 + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 + }, + "Period": { + "title": "Period", + "description": "Key events during a contracting process may have a known start date, end date, duration, or maximum extent (the latest date the period can extend to). In some cases, not all of these fields will have known or relevant values.", + "type": "object", + "properties": { + "startDate": { + "title": "Start date", + "description": "The start date for the period. When known, a precise start date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "endDate": { + "title": "End date", + "description": "The end date for the period. When known, a precise end date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "maxExtentDate": { + "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", + "format": "date-time", + "title": "Maximum extent", + "type": [ + "string", + "null" + ] + }, + "durationInDays": { + "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", + "title": "Duration (days)", + "type": [ + "integer", + "null" + ], + "minimum": 0 + } + }, + "minProperties": 1 + }, + "SimpleUnit": { + "title": "Simple Unit", + "description": "A simple unit of measure, consisting of: an identifier for the list (scheme) from which the unit is taken, and an identifier for the unit from that list.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", + "type": [ + "string", + "null" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "RelatedProcess": { + "description": "A reference to a related contracting process: generally one preceding or following on from the current process.", + "type": "object", + "title": "Related Process", + "properties": { + "id": { + "title": "Relationship ID", + "description": "A local identifier for this relationship, unique within this array.", + "type": "string", + "minLength": 1 + }, + "relationship": { + "items": { + "type": "string", + "minLength": 1 + }, + "description": "The type of relationship, using the open [relatedProcess](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process) codelist.", + "title": "Relationship", + "type": [ + "array", + "null" + ], + "codelist": "relatedProcess.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "title": { + "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", + "title": "Related process title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "scheme": { + "title": "Scheme", + "description": "The identification scheme used by this cross-reference, using the open [relatedProcessScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process-scheme) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "relatedProcessScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "identifier": { + "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", + "title": "Identifier", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "uri": { + "format": "uri", + "description": "A URI pointing to a machine-readable document, release or record package containing the identified related process.", + "title": "Related process URI", + "type": [ + "string", + "null" + ] + } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "Unit": { + "title": "Unit", + "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "name": { + "title": "Name", + "description": "Name of the unit.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "value": { + "title": "Value", + "description": "The monetary value of a single unit.", + "$ref": "#/definitions/Value" + }, + "uri": { + "title": "URI", + "description": "The machine-readable URI for the unit of measure, provided by the scheme.", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "weight": { + "title": "Weight", + "description": "The weight of one item unit.", + "type": "object", + "properties": { + "unit": { + "title": "Unit", + "description": "The code and scheme for the unit in which the weight is specified.", + "$ref": "#/definitions/SimpleUnit" + }, + "quantity": { + "title": "Quantity", + "description": "The number of units.", + "type": [ + "number", + "null" + ] + } + }, + "minProperties": 1 + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Link": { + "title": "Link", + "description": "A reference to a related resource.", + "type": "object", + "properties": { + "rel": { + "title": "Link relation type", + "description": "The relationship with the related resource, using the open [link relation type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#link-relation-type) codelist.", + "type": "string", + "codelist": "linkRelationType.csv", + "openCodelist": true, + "minLength": 1 + }, + "href": { + "title": "Link target", + "description": "The URL of the related resource.", + "type": "string", + "format": "uri" + } + }, + "minProperties": 1 + } + }, + "minProperties": 1 +} diff --git a/schema/strict/versioned-release-validation-schema.json b/schema/strict/versioned-release-validation-schema.json new file mode 100644 index 000000000..3639853ef --- /dev/null +++ b/schema/strict/versioned-release-validation-schema.json @@ -0,0 +1,4877 @@ +{ + "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": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multiple stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\"", + "type": "object", + "properties": { + "publisher": { + "$ref": "#/definitions/Identifier" + }, + "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, + "deprecated": { + "description": "This field is deprecated, because the approach to data modelling that it supports was not pursued.", + "deprecatedVersion": "1.2" + } + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "parties": { + "type": "array", + "items": { + "$ref": "#/definitions/Organization" + }, + "uniqueItems": true, + "minItems": 1 + }, + "buyer": { + "$ref": "#/definitions/OrganizationReferenceVersionedId" + }, + "planning": { + "$ref": "#/definitions/Planning" + }, + "tender": { + "$ref": "#/definitions/Tender" + }, + "awards": { + "type": "array", + "items": { + "$ref": "#/definitions/Award" + }, + "uniqueItems": true, + "minItems": 1 + }, + "contracts": { + "type": "array", + "items": { + "$ref": "#/definitions/Contract" + }, + "uniqueItems": true, + "minItems": 1 + }, + "language": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "relatedProcesses": { + "uniqueItems": true, + "items": { + "$ref": "#/definitions/RelatedProcess" + }, + "type": "array", + "minItems": 1 + }, + "ocid": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "ocid", + "initiationType" + ], + "definitions": { + "Planning": { + "type": "object", + "properties": { + "id": { + "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" + } + } + } + } + }, + "rationale": { + "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" + } + } + } + } + }, + "budget": { + "$ref": "#/definitions/Budget" + }, + "documents": { + "type": "array", + "items": { + "$ref": "#/definitions/Document" + }, + "minItems": 1, + "uniqueItems": true + }, + "milestones": { + "type": "array", + "items": { + "$ref": "#/definitions/Milestone" + }, + "minItems": 1, + "uniqueItems": true + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "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 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "title": { + "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" + } + } + } + } + }, + "description": { + "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" + } + } + } + } + }, + "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" + } + } + } + } + }, + "statusDetails": { + "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" + } + } + } + } + }, + "procuringEntity": { + "$ref": "#/definitions/OrganizationReferenceVersionedId" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/Item" + }, + "uniqueItems": true, + "minItems": 1 + }, + "value": { + "$ref": "#/definitions/Value" + }, + "minValue": { + "$ref": "#/definitions/Value" + }, + "maximumValue": { + "$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": { + "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" + } + } + } + } + }, + "procurementMethodRationale": { + "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" + } + } + } + } + }, + "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", + "minLength": 1 + }, + "codelist": "extendedProcurementCategory.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": 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, + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "awardCriteriaDetails": { + "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" + } + } + } + } + }, + "submissionMethod": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "submissionMethod.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated, because all codes from the submissionMethod codelist are deprecated. Refer to the Deprecation note of individual codes.", + "deprecatedVersion": "1.2" + }, + "minItems": 1, + "uniqueItems": true + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "submissionMethodDetails": { + "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" + } + } + } + } + }, + "datePublished": { + "$ref": "#/definitions/StringNullDateTimeVersioned" + }, + "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": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "string", + "null" + ], + "deprecated": { + "description": "This field had unclear semantics and used ambiguous terms, and is deprecated in favor of exclusionGrounds.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "exclusionGrounds": { + "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" + } + } + } + } + }, + "selectionCriteria": { + "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" + } + } + } + } + }, + "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" + ], + "minimum": 0 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "tenderers": { + "type": "array", + "items": { + "$ref": "#/definitions/OrganizationReference" + }, + "uniqueItems": true, + "minItems": 1 + }, + "documents": { + "type": "array", + "items": { + "$ref": "#/definitions/Document" + }, + "minItems": 1, + "uniqueItems": true + }, + "milestones": { + "type": "array", + "items": { + "$ref": "#/definitions/Milestone" + }, + "minItems": 1, + "uniqueItems": true + }, + "amendments": { + "type": "array", + "items": { + "$ref": "#/definitions/Amendment" + }, + "minItems": 1, + "uniqueItems": true + }, + "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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(selectionCriteria_(((([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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Award": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "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" + } + } + } + } + }, + "description": { + "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" + } + } + } + } + }, + "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" + } + } + } + } + }, + "statusDetails": { + "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" + } + } + } + } + }, + "date": { + "$ref": "#/definitions/StringNullDateTimeVersioned" + }, + "value": { + "$ref": "#/definitions/Value" + }, + "maximumValue": { + "$ref": "#/definitions/Value" + }, + "estimatedValue": { + "$ref": "#/definitions/Value" + }, + "suppliers": { + "type": "array", + "items": { + "$ref": "#/definitions/OrganizationReference" + }, + "uniqueItems": true, + "minItems": 1 + }, + "items": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/Item" + }, + "uniqueItems": true + }, + "contractPeriod": { + "$ref": "#/definitions/Period" + }, + "documents": { + "type": "array", + "items": { + "$ref": "#/definitions/Document" + }, + "uniqueItems": true, + "minItems": 1 + }, + "amendments": { + "type": "array", + "items": { + "$ref": "#/definitions/Amendment" + }, + "minItems": 1, + "uniqueItems": true + }, + "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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "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": { + "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" + } + } + } + } + }, + "description": { + "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" + } + } + } + } + }, + "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", + "terminatedEarly", + "terminatedSuccessfully", + null + ], + "codelist": "contractStatus.csv", + "openCodelist": false + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "statusDetails": { + "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" + } + } + } + } + }, + "dateSigned": { + "$ref": "#/definitions/StringNullDateTimeVersioned" + }, + "value": { + "$ref": "#/definitions/Value" + }, + "maximumValue": { + "$ref": "#/definitions/Value" + }, + "estimatedValue": { + "$ref": "#/definitions/Value" + }, + "items": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/definitions/Item" + }, + "uniqueItems": true + }, + "period": { + "$ref": "#/definitions/Period" + }, + "documents": { + "type": "array", + "items": { + "$ref": "#/definitions/Document" + }, + "uniqueItems": true, + "minItems": 1 + }, + "implementation": { + "$ref": "#/definitions/Implementation" + }, + "relatedProcesses": { + "uniqueItems": true, + "items": { + "$ref": "#/definitions/RelatedProcess" + }, + "type": "array", + "minItems": 1 + }, + "milestones": { + "type": "array", + "items": { + "$ref": "#/definitions/Milestone" + }, + "minItems": 1, + "uniqueItems": true + }, + "amendments": { + "type": "array", + "items": { + "$ref": "#/definitions/Amendment" + }, + "minItems": 1, + "uniqueItems": true + }, + "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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Implementation": { + "type": "object", + "properties": { + "transactions": { + "type": "array", + "items": { + "$ref": "#/definitions/Transaction" + }, + "uniqueItems": true, + "minItems": 1 + }, + "milestones": { + "type": "array", + "items": { + "$ref": "#/definitions/Milestone" + }, + "uniqueItems": true, + "minItems": 1 + }, + "documents": { + "type": "array", + "items": { + "$ref": "#/definitions/Document" + }, + "uniqueItems": true, + "minItems": 1 + } + }, + "minProperties": 1 + }, + "Milestone": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "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" + } + } + } + } + }, + "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, + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "description": { + "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" + } + } + } + } + }, + "code": { + "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" + } + } + } + } + }, + "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, + "minItems": 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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "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, + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "title": { + "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" + } + } + } + } + }, + "description": { + "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" + } + } + } + } + }, + "url": { + "$ref": "#/definitions/StringNullUriVersioned" + }, + "datePublished": { + "$ref": "#/definitions/StringNullDateTimeVersioned" + }, + "dateModified": { + "$ref": "#/definitions/StringNullDateTimeVersioned" + }, + "format": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "languages": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "language": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "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" + ], + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "description": { + "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" + } + } + } + } + }, + "amount": { + "$ref": "#/definitions/Value" + }, + "project": { + "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" + } + } + } + } + }, + "projectID": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "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" + } + } + }, + "minProperties": 1 + }, + "OrganizationReference": { + "required": [ + "id", + "name" + ], + "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" + ], + "minLength": 1 + }, + "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, + "minItems": 1 + }, + "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", + "minProperties": 1 + }, + "Organization": { + "type": "object", + "required": [ + "id", + "name" + ], + "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", + "minLength": 1 + }, + "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, + "minItems": 1 + }, + "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", + "minLength": 1 + }, + "codelist": "partyRole.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": 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" + ], + "minProperties": 1 + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Item": { + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "description": { + "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" + } + } + } + } + }, + "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, + "minItems": 1 + }, + "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": { + "$ref": "#/definitions/Unit" + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Amendment": { + "type": "object", + "properties": { + "date": { + "$ref": "#/definitions/StringNullDateTimeVersioned" + }, + "rationale": { + "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", + "null" + ], + "minLength": 1 + }, + "description": { + "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" + } + } + } + } + }, + "amendsReleaseID": { + "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" + } + } + } + } + }, + "releaseID": { + "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" + } + } + } + } + }, + "changes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "property": { + "type": "string", + "minLength": 1 + }, + "former_value": { + "type": [ + "string", + "number", + "integer", + "array", + "object", + "null" + ], + "minLength": 1, + "minItems": 1, + "uniqueItems": true, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "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" + }, + "minItems": 1, + "uniqueItems": true + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "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": "classificationScheme.csv", + "openCodelist": true, + "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", + "null" + ], + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "description": { + "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" + } + } + } + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Identifier": { + "type": "object", + "properties": { + "scheme": { + "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", + "null" + ], + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "legalName": { + "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" + } + } + } + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Address": { + "type": "object", + "properties": { + "streetAddress": { + "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" + } + } + } + } + }, + "locality": { + "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" + } + } + } + } + }, + "region": { + "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" + } + } + } + } + }, + "postalCode": { + "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" + } + } + } + } + }, + "country": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", + "CM", + "CN", + "CO", + "CR", + "CU", + "CV", + "CW", + "CX", + "CY", + "CZ", + "DE", + "DJ", + "DK", + "DM", + "DO", + "DZ", + "EC", + "EE", + "EG", + "EH", + "ER", + "ES", + "ET", + "FI", + "FJ", + "FK", + "FM", + "FO", + "FR", + "GA", + "GB", + "GD", + "GE", + "GF", + "GG", + "GH", + "GI", + "GL", + "GM", + "GN", + "GP", + "GQ", + "GR", + "GS", + "GT", + "GU", + "GW", + "GY", + "HK", + "HM", + "HN", + "HR", + "HT", + "HU", + "ID", + "IE", + "IL", + "IM", + "IN", + "IO", + "IQ", + "IR", + "IS", + "IT", + "JE", + "JM", + "JO", + "JP", + "KE", + "KG", + "KH", + "KI", + "KM", + "KN", + "KP", + "KR", + "KW", + "KY", + "KZ", + "LA", + "LB", + "LC", + "LI", + "LK", + "LR", + "LS", + "LT", + "LU", + "LV", + "LY", + "MA", + "MC", + "MD", + "ME", + "MF", + "MG", + "MH", + "MK", + "ML", + "MM", + "MN", + "MO", + "MP", + "MQ", + "MR", + "MS", + "MT", + "MU", + "MV", + "MW", + "MX", + "MY", + "MZ", + "NA", + "NC", + "NE", + "NF", + "NG", + "NI", + "NL", + "NO", + "NP", + "NR", + "NU", + "NZ", + "OM", + "PA", + "PE", + "PF", + "PG", + "PH", + "PK", + "PL", + "PM", + "PN", + "PR", + "PS", + "PT", + "PW", + "PY", + "QA", + "RE", + "RO", + "RS", + "RU", + "RW", + "SA", + "SB", + "SC", + "SD", + "SE", + "SG", + "SH", + "SI", + "SJ", + "SK", + "SL", + "SM", + "SN", + "SO", + "SR", + "SS", + "ST", + "SV", + "SX", + "SY", + "SZ", + "TC", + "TD", + "TF", + "TG", + "TH", + "TJ", + "TK", + "TL", + "TM", + "TN", + "TO", + "TR", + "TT", + "TV", + "TW", + "TZ", + "UA", + "UG", + "UM", + "US", + "UY", + "UZ", + "VA", + "VC", + "VE", + "VG", + "VI", + "VN", + "VU", + "WF", + "WS", + "XK", + "YE", + "YT", + "ZA", + "ZM", + "ZW", + null + ] + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "countryName": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "string", + "null" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + } + }, + "minProperties": 1 + }, + "ContactPoint": { + "type": "object", + "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" + } + } + } + } + }, + "email": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "string", + "null" + ], + "minLength": 1, + "format": "email" + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "telephone": { + "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" + } + } + } + } + }, + "faxNumber": { + "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" + } + } + } + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "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" + } + } + } + } + } + }, + "minProperties": 1 + }, + "UnitValue": { + "type": "object", + "properties": { + "amount": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "number", + "null" + ], + "minimum": 0 + }, + "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" + } + } + } + } + } + }, + "minProperties": 1 + }, + "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" + ], + "minimum": 0 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "minProperties": 1 + }, + "SimpleUnit": { + "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, + "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", + "null" + ], + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "minProperties": 1 + }, + "RelatedProcess": { + "type": "object", + "properties": { + "id": { + "type": "string", + "minLength": 1 + }, + "relationship": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "items": { + "type": "string", + "minLength": 1 + }, + "type": [ + "array", + "null" + ], + "codelist": "relatedProcess.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "title": { + "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" + } + } + } + } + }, + "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, + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "identifier": { + "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" + } + } + } + } + }, + "uri": { + "$ref": "#/definitions/StringNullUriVersioned" + } + }, + "minProperties": 1, + "required": [ + "id" + ] + }, + "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, + "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", + "null" + ], + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "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" + } + } + } + } + }, + "value": { + "$ref": "#/definitions/Value" + }, + "uri": { + "$ref": "#/definitions/StringNullUriVersioned" + }, + "weight": { + "type": "object", + "properties": { + "unit": { + "$ref": "#/definitions/SimpleUnit" + }, + "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" + } + } + } + } + } + }, + "minProperties": 1 + } + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Link": { + "type": "object", + "properties": { + "rel": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": "string", + "codelist": "linkRelationType.csv", + "openCodelist": true, + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "href": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": "string", + "format": "uri" + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "minProperties": 1 + }, + "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" + } + } + } + } + }, + "IdentifierUnversioned": { + "type": "object", + "properties": { + "scheme": { + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "legalName": { + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "OrganizationReferenceVersionedId": { + "required": [ + "id", + "name" + ], + "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" + ], + "minLength": 1 + }, + "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, + "minItems": 1 + }, + "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", + "minProperties": 1 + }, + "ClassificationUnversioned": { + "type": "object", + "properties": { + "scheme": { + "type": [ + "string", + "null" + ], + "codelist": "classificationScheme.csv", + "openCodelist": true, + "minLength": 1 + }, + "id": { + "type": [ + "string", + "integer", + "null" + ], + "minLength": 1 + }, + "description": { + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + } + }, + "minProperties": 1 +} From 3f2d1138fb5e8c2d95291acde2523ebd91803013 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 10 Feb 2022 16:07:56 +1300 Subject: [PATCH 07/29] Checkout schema files from 1.2-dev --- schema/dereferenced-release-schema.json | 9935 ++++++++++------- schema/record-package-schema.json | 40 +- schema/release-package-schema.json | 22 +- schema/release-schema.json | 892 +- .../versioned-release-validation-schema.json | 2361 +--- 5 files changed, 6431 insertions(+), 6819 deletions(-) diff --git a/schema/dereferenced-release-schema.json b/schema/dereferenced-release-schema.json index 7e3f31f2e..73d9d34e3 100644 --- a/schema/dereferenced-release-schema.json +++ b/schema/dereferenced-release-schema.json @@ -36,8 +36,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -46,8 +45,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -55,8 +53,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -73,25 +70,21 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "tag": { "title": "Release Tag", "description": "A tag labeling the release (for example, as corresponding to a stage of the contracting process), using the the open [releaseTag](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#release-tag) codelist. Codes outside the releaseTag codelist might indicate, for example, the notice or form to which the release corresponds, or the event that triggered the publication of the release. Planning processes must not use the 'tender' code, even if they use `tender` fields.", "type": "array", "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "releaseTag.csv", "openCodelist": true, "minItems": 1, - "omitWhenMerged": true, - "uniqueItems": true + "omitWhenMerged": true }, "initiationType": { "title": "Initiation type", @@ -115,10 +108,6 @@ "title": "Organization", "description": "An organization", "type": "object", - "required": [ - "id", - "name" - ], "properties": { "name": { "title": "Common name", @@ -126,14 +115,12 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "type": "string", "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the contracting process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", - "title": "ID", - "minLength": 1 + "title": "ID" }, "identifier": { "title": "Primary identifier", @@ -146,8 +133,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -156,8 +142,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -165,8 +150,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -183,11 +167,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "additionalIdentifiers": { "title": "Additional identifiers", @@ -204,8 +186,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -214,8 +195,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -223,8 +203,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -241,15 +220,12 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 + "wholeListMerge": true }, "address": { "title": "Address", @@ -262,8 +238,7 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 + "description": "The street address. For example, 1600 Amphitheatre Pkwy." }, "locality": { "title": "Locality", @@ -271,8 +246,7 @@ "string", "null" ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 + "description": "The locality. For example, Mountain View." }, "region": { "title": "Region", @@ -280,8 +254,7 @@ "string", "null" ], - "description": "The region. For example, CA.", - "minLength": 1 + "description": "The region. For example, CA." }, "postalCode": { "title": "Postal code", @@ -289,8 +262,7 @@ "string", "null" ], - "description": "The postal code. For example, 94043.", - "minLength": 1 + "description": "The postal code. For example, 94043." }, "country": { "title": "Country code", @@ -565,8 +537,7 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, "patternProperties": { @@ -578,11 +549,9 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } - }, - "minProperties": 1 + } }, "contactPoint": { "title": "Contact point", @@ -595,8 +564,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", - "minLength": 1 + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." }, "email": { "title": "Email", @@ -604,9 +572,7 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" + "description": "The e-mail address of the contact point/person." }, "telephone": { "title": "Telephone", @@ -614,8 +580,7 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The telephone number of the contact point/person. This should include the international dialing code." }, "faxNumber": { "title": "Fax number", @@ -623,8 +588,7 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The fax number of the contact point/person. This should include the international dialing code." }, "url": { "title": "URL", @@ -641,11 +605,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "roles": { "title": "Roles", @@ -655,13 +617,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "partyRole.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "details": { "type": [ @@ -669,8 +628,7 @@ "null" ], "description": "Additional classification information about organizations can be provided using organization details extensions that define particular fields and classification schemes.", - "title": "Details", - "minProperties": 1 + "title": "Details" } }, "patternProperties": { @@ -678,20 +636,13 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "buyer": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": [ @@ -708,8 +659,7 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 + "title": "ID" }, "identifier": { "title": "Primary identifier", @@ -722,8 +672,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -732,8 +681,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -741,8 +689,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -759,11 +706,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -780,8 +725,7 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 + "description": "The street address. For example, 1600 Amphitheatre Pkwy." }, "locality": { "title": "Locality", @@ -789,8 +733,7 @@ "string", "null" ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 + "description": "The locality. For example, Mountain View." }, "region": { "title": "Region", @@ -798,8 +741,7 @@ "string", "null" ], - "description": "The region. For example, CA.", - "minLength": 1 + "description": "The region. For example, CA." }, "postalCode": { "title": "Postal code", @@ -807,8 +749,7 @@ "string", "null" ], - "description": "The postal code. For example, 94043.", - "minLength": 1 + "description": "The postal code. For example, 94043." }, "country": { "title": "Country code", @@ -1083,8 +1024,7 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, "patternProperties": { @@ -1096,11 +1036,9 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, - "minProperties": 1, "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." @@ -1123,8 +1061,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -1133,8 +1070,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -1142,8 +1078,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -1160,17 +1095,14 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." }, "contactPoint": { "title": "Contact point", @@ -1183,8 +1115,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", - "minLength": 1 + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." }, "email": { "title": "Email", @@ -1192,9 +1123,7 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" + "description": "The e-mail address of the contact point/person." }, "telephone": { "title": "Telephone", @@ -1202,8 +1131,7 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The telephone number of the contact point/person. This should include the international dialing code." }, "faxNumber": { "title": "Fax number", @@ -1211,8 +1139,7 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The fax number of the contact point/person. This should include the international dialing code." }, "url": { "title": "URL", @@ -1229,11 +1156,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -1242,8 +1167,7 @@ }, "type": "object", "description": "The organization aiming to conclude a contract with a supplier or to use the goods, works or services resulting from the contract.", - "title": "Buyer", - "minProperties": 1 + "title": "Buyer" }, "planning": { "title": "Planning", @@ -1256,8 +1180,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "rationale": { "title": "Rationale", @@ -1265,8 +1188,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "budget": { "type": "object", @@ -1280,8 +1202,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Budget Source", @@ -1289,8 +1210,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "amount": { "title": "Amount", @@ -1620,8 +1540,7 @@ null ] } - }, - "minProperties": 1 + } }, "project": { "title": "Project title", @@ -1629,8 +1548,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "projectID": { "title": "Project identifier", @@ -1639,8 +1557,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "Linked budget information", @@ -1670,25 +1587,21 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "documents": { "title": "Documents", @@ -1719,8 +1632,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "title": { "title": "Title", @@ -1728,8 +1640,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -1737,8 +1648,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "url": { "title": "URL", @@ -1775,8 +1685,7 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "languages": { "title": "Languages", @@ -1786,13 +1695,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "language": { "title": "Language", @@ -1806,8 +1712,20 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } } }, "patternProperties": { @@ -1815,21 +1733,16 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true + } + } }, "milestones": { "title": "Planning milestones", @@ -1858,8 +1771,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "type": { "title": "Milestone type", @@ -1869,8 +1781,7 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "description": { "title": "Description", @@ -1878,17 +1789,24 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "code": { "title": "Milestone code", "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ] + }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", "type": [ "string", "null" ], - "minLength": 1 + "format": "date-time" }, "dueDate": { "title": "Due date", @@ -1967,8 +1885,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "title": { "title": "Title", @@ -1976,8 +1893,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -1985,8 +1901,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "url": { "title": "URL", @@ -2023,8 +1938,7 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "languages": { "title": "Languages", @@ -2034,13 +1948,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "language": { "title": "Language", @@ -2054,8 +1965,20 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } } }, "patternProperties": { @@ -2063,299 +1986,601 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "tender": { - "title": "Tender", - "description": "Information about, for example, the needed items and their estimated value, procurement method, award criteria, and various deadlines. This information concerns either the contracting process or the planning process. For a contracting process, this information typically concerns the period starting with the publication of procurement documents and ending with the bid submission deadline. For a planning process, this information typically concerns the period before the publication of procurement documents.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "Tender ID", - "description": "An identifier for this tender process. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "integer" - ], - "minLength": 1 - }, - "title": { - "title": "Tender title", - "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Tender description", - "description": "A summary description of the tender. This complements any structured information provided using the items array. Descriptions should be short and easy to read. Avoid using ALL CAPS.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "status": { - "title": "Tender status", - "description": "The current status of the tender, from the closed [tenderStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#tender-status) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "tenderStatus.csv", - "openCodelist": false, - "enum": [ - "planning", - "planned", - "active", - "cancelled", - "unsuccessful", - "complete", - "withdrawn", - null - ] - }, - "statusDetails": { - "title": "Status details", - "description": "Additional details on the status of the tender. This field can be used to provide the local name of the status.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "procuringEntity": { - "required": [ - "id", - "name" - ], - "properties": { - "name": { - "type": [ - "string", - "null" - ], - "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", - "title": "Organization name", - "minLength": 1 - }, - "id": { - "type": [ - "string", - "integer" - ], - "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "integer", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 + } }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } + "uniqueItems": true }, - "minProperties": 1, - "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." - } - }, - "address": { - "title": "Address", - "description": "(Deprecated outside the parties section)", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + } + } + }, + "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" + ] + } + } + } + } + }, + "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": { + "title": "Tender", + "description": "Information about, for example, the needed items and their estimated value, procurement method, award criteria, and various deadlines. This information concerns either the contracting process or the planning process. For a contracting process, this information typically concerns the period starting with the publication of procurement documents and ending with the bid submission deadline. For a planning process, this information typically concerns the period before the publication of procurement documents.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "Tender ID", + "description": "An identifier for this tender process. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Tender title", + "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement. The title should be less than 150 characters in length.", + "type": [ + "string", + "null" + ] + }, + "description": { + "title": "Tender description", + "description": "A summary description of the tender. This complements any structured information provided using the items array. Descriptions should be short and easy to read. Avoid using ALL CAPS.", + "type": [ + "string", + "null" + ] + }, + "status": { + "title": "Tender status", + "description": "The current status of the tender, from the closed [tenderStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#tender-status) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "tenderStatus.csv", + "openCodelist": false, + "enum": [ + "planning", + "planned", + "active", + "cancelled", + "unsuccessful", + "complete", + "withdrawn", + null + ] + }, + "statusDetails": { + "title": "Status details", + "description": "Additional details on the status of the tender. This field can be used to provide the local name of the status.", + "type": [ + "string", + "null" + ] + }, + "procuringEntity": { + "properties": { + "name": { + "type": [ + "string", + "null" + ], + "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", + "title": "Organization name", + "minLength": 1 + }, + "id": { + "type": [ + "string", + "integer" + ], + "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", + "title": "ID" + }, + "identifier": { + "title": "Primary identifier", + "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", + "type": [ + "string", + "null" + ] + }, + "id": { + "title": "ID", + "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ] + }, + "legalName": { + "title": "Legal Name", + "description": "The legally registered name of the organization.", + "type": [ + "string", + "null" + ] + }, + "uri": { + "title": "URI", + "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", + "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" + ] + } + }, + "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." + } + }, + "address": { + "title": "Address", + "description": "(Deprecated outside the parties section)", + "type": "object", + "properties": { + "streetAddress": { + "title": "Street address", + "type": [ + "string", + "null" + ], + "description": "The street address. For example, 1600 Amphitheatre Pkwy." + }, + "locality": { + "title": "Locality", + "type": [ + "string", + "null" + ], + "description": "The locality. For example, Mountain View." + }, + "region": { + "title": "Region", + "type": [ + "string", + "null" + ], + "description": "The region. For example, CA." + }, + "postalCode": { + "title": "Postal code", + "type": [ + "string", + "null" + ], + "description": "The postal code. For example, 94043." + }, + "country": { + "title": "Country code", + "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", + "type": [ + "string", + "null" + ], + "codelist": "country.csv", + "openCodelist": false, + "enum": [ + "AD", + "AE", + "AF", + "AG", + "AI", + "AL", + "AM", + "AO", + "AQ", + "AR", + "AS", + "AT", + "AU", + "AW", + "AX", + "AZ", + "BA", + "BB", + "BD", + "BE", + "BF", + "BG", + "BH", + "BI", + "BJ", + "BL", + "BM", + "BN", + "BO", + "BQ", + "BR", + "BS", + "BT", + "BV", + "BW", + "BY", + "BZ", + "CA", + "CC", + "CD", + "CF", + "CG", + "CH", + "CI", + "CK", + "CL", "CM", "CN", "CO", @@ -2573,8 +2798,7 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, "patternProperties": { @@ -2586,11 +2810,9 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, - "minProperties": 1, "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." @@ -2613,8 +2835,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -2623,8 +2844,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -2632,8 +2852,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -2650,17 +2869,14 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." }, "contactPoint": { "title": "Contact point", @@ -2673,8 +2889,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", - "minLength": 1 + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." }, "email": { "title": "Email", @@ -2682,9 +2897,7 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" + "description": "The e-mail address of the contact point/person." }, "telephone": { "title": "Telephone", @@ -2692,8 +2905,7 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The telephone number of the contact point/person. This should include the international dialing code." }, "faxNumber": { "title": "Fax number", @@ -2701,8 +2913,7 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The fax number of the contact point/person. This should include the international dialing code." }, "url": { "title": "URL", @@ -2719,11 +2930,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -2732,8 +2941,7 @@ }, "type": "object", "description": "The organization managing the contracting process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", - "title": "Procuring entity", - "minProperties": 1 + "title": "Procuring entity" }, "items": { "title": "Items to be procured", @@ -2762,8 +2970,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "classification": { "title": "Classification", @@ -2778,8 +2985,7 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -2788,8 +2994,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -2797,8 +3002,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -2815,11 +3019,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "additionalClassifications": { "title": "Additional classifications", @@ -2838,8 +3040,7 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -2848,8 +3049,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -2857,8 +3057,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -2875,15 +3074,12 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 + "wholeListMerge": true }, "quantity": { "title": "Quantity", @@ -2906,8 +3102,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -2915,8 +3110,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "name": { "title": "Name", @@ -2924,8 +3118,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "value": { "title": "Value", @@ -3255,8 +3448,7 @@ null ] } - }, - "minProperties": 1 + } }, "uri": { "title": "URI", @@ -3285,8 +3477,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -3294,11 +3485,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "quantity": { "title": "Quantity", @@ -3308,8 +3497,7 @@ "null" ] } - }, - "minProperties": 1 + } } }, "patternProperties": { @@ -3317,11 +3505,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } } }, "patternProperties": { @@ -3329,14 +3515,11 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "value": { "title": "Value", @@ -3666,8 +3849,7 @@ null ] } - }, - "minProperties": 1 + } }, "minValue": { "title": "Minimum value", @@ -3997,8 +4179,7 @@ null ] } - }, - "minProperties": 1 + } }, "maximumValue": { "title": "Maximum value", @@ -4328,8 +4509,7 @@ null ] } - }, - "minProperties": 1 + } }, "procurementMethod": { "title": "Procurement method", @@ -4354,8 +4534,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "procurementMethodRationale": { "title": "Procurement method rationale", @@ -4363,8 +4542,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "mainProcurementCategory": { "title": "Main procurement category", @@ -4390,13 +4568,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "extendedProcurementCategory.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "awardCriteria": { "title": "Award criteria", @@ -4406,8 +4581,7 @@ "null" ], "codelist": "awardCriteria.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "awardCriteriaDetails": { "title": "Award criteria details", @@ -4415,8 +4589,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "submissionMethod": { "title": "Submission method", @@ -4426,26 +4599,22 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "submissionMethod.csv", "openCodelist": true, "deprecated": { "description": "This field is deprecated, because all codes from the submissionMethod codelist are deprecated. Refer to the Deprecation note of individual codes.", "deprecatedVersion": "1.2" - }, - "minItems": 1, - "uniqueItems": true + } }, "submissionMethodDetails": { "title": "Submission method details", - "description": "Any detailed or further information on the submission method. This can include the address, e-mail address or online service to which bids are submitted, and any special requirements to be followed for submissions.", + "description": "Information about the methods by which bids are submitted. This can include the address, e-mail address or online service to which bids are submitted, and any special requirements to be followed for submissions. More structured information can be provided using the submission terms extension.", "type": [ "string", "null" - ], - "minLength": 1 + ] }, "datePublished": { "description": "The date on which the tender was published.", @@ -4494,11 +4663,9 @@ "type": [ "integer", "null" - ], - "minimum": 0 + ] } - }, - "minProperties": 1 + } }, "enquiryPeriod": { "title": "Enquiry period", @@ -4538,11 +4705,9 @@ "type": [ "integer", "null" - ], - "minimum": 0 + ] } - }, - "minProperties": 1 + } }, "hasEnquiries": { "title": "Has enquiries?", @@ -4562,8 +4727,7 @@ "deprecated": { "description": "This field had unclear semantics and used ambiguous terms, and is deprecated in favor of exclusionGrounds.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } }, "exclusionGrounds": { "title": "Exclusion grounds", @@ -4571,8 +4735,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "selectionCriteria": { "title": "Selection criteria", @@ -4580,8 +4743,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "awardPeriod": { "title": "Evaluation and award period", @@ -4621,11 +4783,51 @@ "type": [ "integer", "null" + ] + } + } + }, + "standstillPeriod": { + "title": "Standstill period", + "description": "The period before the contract signature during which the award decision can be challenged. This period typically starts on the date on which the tenderers are informed about the award decision.", + "type": "object", + "properties": { + "startDate": { + "title": "Start date", + "description": "The start date for the period. When known, a precise start date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "endDate": { + "title": "End date", + "description": "The end date for the period. When known, a precise end date must be provided.", + "type": [ + "string", + "null" ], - "minimum": 0 + "format": "date-time" + }, + "maxExtentDate": { + "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", + "format": "date-time", + "title": "Maximum extent", + "type": [ + "string", + "null" + ] + }, + "durationInDays": { + "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", + "title": "Duration (days)", + "type": [ + "integer", + "null" + ] } - }, - "minProperties": 1 + } }, "contractPeriod": { "title": "Contract period", @@ -4665,11 +4867,9 @@ "type": [ "integer", "null" - ], - "minimum": 0 + ] } - }, - "minProperties": 1 + } }, "numberOfTenderers": { "title": "Number of tenderers", @@ -4677,18 +4877,13 @@ "type": [ "integer", "null" - ], - "minimum": 0 + ] }, "tenderers": { "title": "Tenderers", "description": "All organizations that submit a bid. More detailed information on bids and the bidding organization can be provided using the bid extension.", "type": "array", "items": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": [ @@ -4705,8 +4900,7 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 + "title": "ID" }, "identifier": { "title": "Primary identifier", @@ -4719,8 +4913,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -4729,8 +4922,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -4738,8 +4930,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -4756,11 +4947,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -4777,8 +4966,7 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 + "description": "The street address. For example, 1600 Amphitheatre Pkwy." }, "locality": { "title": "Locality", @@ -4786,8 +4974,7 @@ "string", "null" ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 + "description": "The locality. For example, Mountain View." }, "region": { "title": "Region", @@ -4795,8 +4982,7 @@ "string", "null" ], - "description": "The region. For example, CA.", - "minLength": 1 + "description": "The region. For example, CA." }, "postalCode": { "title": "Postal code", @@ -4804,8 +4990,7 @@ "string", "null" ], - "description": "The postal code. For example, 94043.", - "minLength": 1 + "description": "The postal code. For example, 94043." }, "country": { "title": "Country code", @@ -5080,8 +5265,7 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, "patternProperties": { @@ -5093,11 +5277,9 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, - "minProperties": 1, "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." @@ -5120,8 +5302,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -5130,8 +5311,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -5139,8 +5319,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -5157,17 +5336,14 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." }, "contactPoint": { "title": "Contact point", @@ -5180,8 +5356,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", - "minLength": 1 + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." }, "email": { "title": "Email", @@ -5189,9 +5364,7 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" + "description": "The e-mail address of the contact point/person." }, "telephone": { "title": "Telephone", @@ -5199,8 +5372,7 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The telephone number of the contact point/person. This should include the international dialing code." }, "faxNumber": { "title": "Fax number", @@ -5208,8 +5380,7 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The fax number of the contact point/person. This should include the international dialing code." }, "url": { "title": "URL", @@ -5226,11 +5397,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -5239,11 +5408,9 @@ }, "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", - "title": "Organization reference", - "minProperties": 1 + "title": "Organization reference" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "documents": { "title": "Documents", @@ -5271,390 +5438,721 @@ "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", "type": [ "string", - "null" + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ] + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ] + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + }, + "codelist": "language.csv", + "openCodelist": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } + } + }, + "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" + ] + } + } + } + }, + "milestones": { + "title": "Milestones", + "description": "A list of milestones associated with the tender.", + "type": "array", + "items": { + "title": "Milestone", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" ], - "codelist": "documentType.csv", - "openCodelist": true, "minLength": 1 }, "title": { "title": "Title", - "description": "The document title.", + "description": "Milestone title", + "type": [ + "string", + "null" + ] + }, + "type": { + "title": "Milestone type", + "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", "type": [ "string", "null" ], - "minLength": 1 + "codelist": "milestoneType.csv", + "openCodelist": true }, "description": { "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "description": "A description of the milestone.", "type": [ "string", "null" - ], - "minLength": 1 + ] }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "code": { + "title": "Milestone code", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" - ], - "format": "uri" + ] }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", "type": [ "string", "null" ], "format": "date-time" }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", + "dueDate": { + "title": "Due date", + "description": "The date the milestone is due.", "type": [ "string", "null" ], "format": "date-time" }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "dateMet": { + "format": "date-time", + "title": "Date met", + "description": "The date on which the milestone was met.", "type": [ "string", "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + ] }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "dateModified": { + "title": "Date modified", + "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", "type": [ - "array", + "string", "null" ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "format": "date-time" }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "status": { + "title": "Status", + "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", "type": [ "string", "null" ], - "codelist": "language.csv", - "openCodelist": true, + "enum": [ + "scheduled", + "met", + "notMet", + "partiallyMet", + null + ], + "codelist": "milestoneStatus.csv", + "openCodelist": false + }, + "documents": { + "title": "Documents", + "description": "List of documents associated with this milestone (Deprecated in 1.1).", + "type": "array", "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" + "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." }, - "minLength": 1 + "items": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ] + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ] + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + }, + "codelist": "language.csv", + "openCodelist": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } + } + }, + "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" + ] + } + } + }, + "uniqueItems": true + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + } } }, "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true - }, - "milestones": { - "title": "Milestones", - "description": "A list of milestones associated with the tender.", - "type": "array", - "items": { - "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "integer" - ], - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "Milestone title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "type": { - "title": "Milestone type", - "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the milestone.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "code": { - "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "dueDate": { - "title": "Due date", - "description": "The date the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateMet": { - "format": "date-time", - "title": "Date met", - "description": "The date on which the milestone was met.", "type": [ "string", "null" ] }, - "dateModified": { - "title": "Date modified", - "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "status": { - "title": "Status", - "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", - "type": [ - "string", - "null" - ], - "enum": [ - "scheduled", - "met", - "notMet", - "partiallyMet", - null - ], - "codelist": "milestoneStatus.csv", - "openCodelist": false - }, - "documents": { - "title": "Documents", - "description": "List of documents associated with this milestone (Deprecated in 1.1).", - "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": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "integer" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 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" - ], - "minLength": 1 - }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true + } + } }, "amendments": { "description": "A tender amendment is a formal change to the tender, and generally involves the publication of a new tender notice/release. The rationale and a description of the changes made can be provided here.", @@ -5680,8 +6178,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -5689,8 +6186,7 @@ "string", "null" ], - "title": "ID", - "minLength": 1 + "title": "ID" }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -5698,8 +6194,7 @@ "string", "null" ], - "title": "Description", - "minLength": 1 + "title": "Description" }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -5707,8 +6202,7 @@ "string", "null" ], - "title": "Amended release (identifier)", - "minLength": 1 + "title": "Amended release (identifier)" }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -5716,8 +6210,7 @@ "string", "null" ], - "title": "Amending release (identifier)", - "minLength": 1 + "title": "Amending release (identifier)" }, "changes": { "title": "Amended fields", @@ -5729,8 +6222,7 @@ "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 + "type": "string" }, "former_value": { "title": "Former Value", @@ -5742,21 +6234,14 @@ "array", "object", "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 + ] } - }, - "minProperties": 1 + } }, "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" - }, - "minItems": 1, - "uniqueItems": true + } } }, "patternProperties": { @@ -5764,17 +6249,10 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "minItems": 1, - "uniqueItems": true + } + } }, "amendment": { "title": "Amendment", @@ -5796,8 +6274,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -5805,8 +6282,7 @@ "string", "null" ], - "title": "ID", - "minLength": 1 + "title": "ID" }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -5814,8 +6290,7 @@ "string", "null" ], - "title": "Description", - "minLength": 1 + "title": "Description" }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -5823,8 +6298,7 @@ "string", "null" ], - "title": "Amended release (identifier)", - "minLength": 1 + "title": "Amended release (identifier)" }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -5832,8 +6306,7 @@ "string", "null" ], - "title": "Amending release (identifier)", - "minLength": 1 + "title": "Amending release (identifier)" }, "changes": { "title": "Amended fields", @@ -5845,8 +6318,7 @@ "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 + "type": "string" }, "former_value": { "title": "Former Value", @@ -5858,21 +6330,14 @@ "array", "object", "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 + ] } - }, - "minProperties": 1 + } }, "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" - }, - "minItems": 1, - "uniqueItems": true + } } }, "patternProperties": { @@ -5880,14 +6345,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, - "required": [ - "id" - ], "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -5899,53 +6359,45 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(selectionCriteria_(((([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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "awards": { "title": "Awards", @@ -5974,8 +6426,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -5983,8 +6434,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "status": { "title": "Award status", @@ -6009,8 +6459,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "date": { "title": "Award date", @@ -6349,8 +6798,7 @@ null ] } - }, - "minProperties": 1 + } }, "maximumValue": { "title": "Maximum value", @@ -6680,8 +7128,7 @@ null ] } - }, - "minProperties": 1 + } }, "estimatedValue": { "title": "Estimated value", @@ -7011,18 +7458,13 @@ null ] } - }, - "minProperties": 1 + } }, "suppliers": { "title": "Suppliers", "description": "Organizations with which a buyer or a procuring entity decided to conclude a contract.", "type": "array", "items": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": [ @@ -7039,8 +7481,7 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 + "title": "ID" }, "identifier": { "title": "Primary identifier", @@ -7053,8 +7494,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -7063,8 +7503,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -7072,8 +7511,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -7090,11 +7528,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -7111,8 +7547,7 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 + "description": "The street address. For example, 1600 Amphitheatre Pkwy." }, "locality": { "title": "Locality", @@ -7120,8 +7555,7 @@ "string", "null" ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 + "description": "The locality. For example, Mountain View." }, "region": { "title": "Region", @@ -7129,8 +7563,7 @@ "string", "null" ], - "description": "The region. For example, CA.", - "minLength": 1 + "description": "The region. For example, CA." }, "postalCode": { "title": "Postal code", @@ -7138,8 +7571,7 @@ "string", "null" ], - "description": "The postal code. For example, 94043.", - "minLength": 1 + "description": "The postal code. For example, 94043." }, "country": { "title": "Country code", @@ -7414,8 +7846,7 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, "patternProperties": { @@ -7427,11 +7858,9 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, - "minProperties": 1, "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." @@ -7454,8 +7883,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -7464,8 +7892,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -7473,8 +7900,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -7491,17 +7917,14 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." }, "contactPoint": { "title": "Contact point", @@ -7514,8 +7937,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", - "minLength": 1 + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." }, "email": { "title": "Email", @@ -7523,9 +7945,7 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" + "description": "The e-mail address of the contact point/person." }, "telephone": { "title": "Telephone", @@ -7533,8 +7953,7 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The telephone number of the contact point/person. This should include the international dialing code." }, "faxNumber": { "title": "Fax number", @@ -7542,8 +7961,7 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The fax number of the contact point/person. This should include the international dialing code." }, "url": { "title": "URL", @@ -7560,11 +7978,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -7573,11 +7989,9 @@ }, "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", - "title": "Organization reference", - "minProperties": 1 + "title": "Organization reference" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "items": { "title": "Items awarded", @@ -7607,8 +8021,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "classification": { "title": "Classification", @@ -7623,8 +8036,7 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -7633,8 +8045,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -7642,8 +8053,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -7660,11 +8070,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "additionalClassifications": { "title": "Additional classifications", @@ -7683,8 +8091,7 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -7693,8 +8100,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -7702,8 +8108,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -7720,15 +8125,12 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 + "wholeListMerge": true }, "quantity": { "title": "Quantity", @@ -7751,8 +8153,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -7760,8 +8161,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "name": { "title": "Name", @@ -7769,8 +8169,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "value": { "title": "Value", @@ -8100,8 +8499,7 @@ null ] } - }, - "minProperties": 1 + } }, "uri": { "title": "URI", @@ -8130,8 +8528,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -8139,11 +8536,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "quantity": { "title": "Quantity", @@ -8153,8 +8548,7 @@ "null" ] } - }, - "minProperties": 1 + } } }, "patternProperties": { @@ -8162,11 +8556,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } } }, "patternProperties": { @@ -8174,11 +8566,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "uniqueItems": true }, @@ -8220,11 +8610,9 @@ "type": [ "integer", "null" - ], - "minimum": 0 + ] } - }, - "minProperties": 1 + } }, "documents": { "title": "Documents", @@ -8255,8 +8643,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "title": { "title": "Title", @@ -8264,8 +8651,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -8273,8 +8659,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "url": { "title": "URL", @@ -8311,8 +8696,7 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "languages": { "title": "Languages", @@ -8322,13 +8706,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "language": { "title": "Language", @@ -8342,8 +8723,20 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } } }, "patternProperties": { @@ -8351,21 +8744,17 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "amendments": { "description": "An award amendment is a formal change to the details of the award, and generally involves the publication of a new award notice/release. The rationale and a description of the changes made can be provided here.", @@ -8391,8 +8780,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -8400,8 +8788,7 @@ "string", "null" ], - "title": "ID", - "minLength": 1 + "title": "ID" }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -8409,8 +8796,7 @@ "string", "null" ], - "title": "Description", - "minLength": 1 + "title": "Description" }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -8418,8 +8804,7 @@ "string", "null" ], - "title": "Amended release (identifier)", - "minLength": 1 + "title": "Amended release (identifier)" }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -8427,8 +8812,7 @@ "string", "null" ], - "title": "Amending release (identifier)", - "minLength": 1 + "title": "Amending release (identifier)" }, "changes": { "title": "Amended fields", @@ -8440,8 +8824,7 @@ "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 + "type": "string" }, "former_value": { "title": "Former Value", @@ -8453,21 +8836,14 @@ "array", "object", "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 + ] } - }, - "minProperties": 1 + } }, "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" - }, - "minItems": 1, - "uniqueItems": true + } } }, "patternProperties": { @@ -8475,17 +8851,10 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "minItems": 1, - "uniqueItems": true + } + } }, "amendment": { "title": "Amendment", @@ -8507,8 +8876,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -8516,8 +8884,7 @@ "string", "null" ], - "title": "ID", - "minLength": 1 + "title": "ID" }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -8525,8 +8892,7 @@ "string", "null" ], - "title": "Description", - "minLength": 1 + "title": "Description" }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -8534,8 +8900,7 @@ "string", "null" ], - "title": "Amended release (identifier)", - "minLength": 1 + "title": "Amended release (identifier)" }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -8543,8 +8908,7 @@ "string", "null" ], - "title": "Amending release (identifier)", - "minLength": 1 + "title": "Amending release (identifier)" }, "changes": { "title": "Amended fields", @@ -8556,8 +8920,7 @@ "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 + "type": "string" }, "former_value": { "title": "Former Value", @@ -8569,21 +8932,14 @@ "array", "object", "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 + ] } - }, - "minProperties": 1 + } }, "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" - }, - "minItems": 1, - "uniqueItems": true + } } }, "patternProperties": { @@ -8591,14 +8947,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, - "required": [ - "id" - ], "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -8610,21 +8961,17 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "contracts": { "title": "Contracts", @@ -8663,8 +9010,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Contract description", @@ -8672,8 +9018,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "status": { "title": "Contract status", @@ -8700,8 +9045,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "dateSigned": { "title": "Date concluded", @@ -9040,8 +9384,7 @@ null ] } - }, - "minProperties": 1 + } }, "maximumValue": { "title": "Maximum value", @@ -9371,8 +9714,7 @@ null ] } - }, - "minProperties": 1 + } }, "estimatedValue": { "title": "Estimated value", @@ -9702,8 +10044,7 @@ null ] } - }, - "minProperties": 1 + } }, "items": { "title": "Items contracted", @@ -9733,8 +10074,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "classification": { "title": "Classification", @@ -9749,8 +10089,7 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -9759,8 +10098,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -9768,8 +10106,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -9786,11 +10123,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "additionalClassifications": { "title": "Additional classifications", @@ -9809,8 +10144,7 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -9819,8 +10153,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -9828,8 +10161,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -9846,15 +10178,12 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 + "wholeListMerge": true }, "quantity": { "title": "Quantity", @@ -9877,8 +10206,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -9886,8 +10214,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "name": { "title": "Name", @@ -9895,8 +10222,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "value": { "title": "Value", @@ -10226,8 +10552,7 @@ null ] } - }, - "minProperties": 1 + } }, "uri": { "title": "URI", @@ -10256,8 +10581,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -10265,11 +10589,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "quantity": { "title": "Quantity", @@ -10279,8 +10601,7 @@ "null" ] } - }, - "minProperties": 1 + } } }, "patternProperties": { @@ -10288,11 +10609,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } } }, "patternProperties": { @@ -10300,11 +10619,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "uniqueItems": true }, @@ -10346,11 +10663,9 @@ "type": [ "integer", "null" - ], - "minimum": 0 + ] } - }, - "minProperties": 1 + } }, "documents": { "title": "Documents", @@ -10381,8 +10696,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "title": { "title": "Title", @@ -10390,8 +10704,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -10399,8 +10712,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "url": { "title": "URL", @@ -10437,8 +10749,7 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "languages": { "title": "Languages", @@ -10448,13 +10759,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "language": { "title": "Language", @@ -10468,8 +10776,20 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } } }, "patternProperties": { @@ -10477,21 +10797,17 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "implementation": { "type": "object", @@ -10865,14 +11181,9 @@ null ] } - }, - "minProperties": 1 + } }, "payer": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": [ @@ -10889,8 +11200,7 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 + "title": "ID" }, "identifier": { "title": "Primary identifier", @@ -10903,8 +11213,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -10913,8 +11222,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -10922,8 +11230,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -10940,11 +11247,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -10961,8 +11266,7 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 + "description": "The street address. For example, 1600 Amphitheatre Pkwy." }, "locality": { "title": "Locality", @@ -10970,8 +11274,7 @@ "string", "null" ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 + "description": "The locality. For example, Mountain View." }, "region": { "title": "Region", @@ -10979,8 +11282,7 @@ "string", "null" ], - "description": "The region. For example, CA.", - "minLength": 1 + "description": "The region. For example, CA." }, "postalCode": { "title": "Postal code", @@ -10988,8 +11290,7 @@ "string", "null" ], - "description": "The postal code. For example, 94043.", - "minLength": 1 + "description": "The postal code. For example, 94043." }, "country": { "title": "Country code", @@ -11264,8 +11565,7 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, "patternProperties": { @@ -11277,11 +11577,9 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, - "minProperties": 1, "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." @@ -11304,8 +11602,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -11314,8 +11611,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -11323,8 +11619,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -11341,17 +11636,14 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." }, "contactPoint": { "title": "Contact point", @@ -11364,8 +11656,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", - "minLength": 1 + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." }, "email": { "title": "Email", @@ -11373,9 +11664,7 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" + "description": "The e-mail address of the contact point/person." }, "telephone": { "title": "Telephone", @@ -11383,8 +11672,7 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The telephone number of the contact point/person. This should include the international dialing code." }, "faxNumber": { "title": "Fax number", @@ -11392,8 +11680,7 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The fax number of the contact point/person. This should include the international dialing code." }, "url": { "title": "URL", @@ -11410,11 +11697,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -11423,14 +11708,9 @@ }, "type": "object", "description": "An organization reference for the organization from which the funds in this transaction originate.", - "title": "Payer", - "minProperties": 1 + "title": "Payer" }, "payee": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": [ @@ -11447,8 +11727,7 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 + "title": "ID" }, "identifier": { "title": "Primary identifier", @@ -11461,8 +11740,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -11471,8 +11749,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -11480,8 +11757,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -11498,11 +11774,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -11519,8 +11793,7 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 + "description": "The street address. For example, 1600 Amphitheatre Pkwy." }, "locality": { "title": "Locality", @@ -11528,8 +11801,7 @@ "string", "null" ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 + "description": "The locality. For example, Mountain View." }, "region": { "title": "Region", @@ -11537,8 +11809,7 @@ "string", "null" ], - "description": "The region. For example, CA.", - "minLength": 1 + "description": "The region. For example, CA." }, "postalCode": { "title": "Postal code", @@ -11546,8 +11817,7 @@ "string", "null" ], - "description": "The postal code. For example, 94043.", - "minLength": 1 + "description": "The postal code. For example, 94043." }, "country": { "title": "Country code", @@ -11822,8 +12092,7 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, "patternProperties": { @@ -11835,11 +12104,9 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, - "minProperties": 1, "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." @@ -11862,8 +12129,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -11872,8 +12138,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -11881,8 +12146,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -11899,17 +12163,14 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." }, "contactPoint": { "title": "Contact point", @@ -11922,8 +12183,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", - "minLength": 1 + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." }, "email": { "title": "Email", @@ -11931,9 +12191,7 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" + "description": "The e-mail address of the contact point/person." }, "telephone": { "title": "Telephone", @@ -11941,8 +12199,7 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The telephone number of the contact point/person. This should include the international dialing code." }, "faxNumber": { "title": "Fax number", @@ -11950,8 +12207,7 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The fax number of the contact point/person. This should include the international dialing code." }, "url": { "title": "URL", @@ -11968,11 +12224,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -11981,8 +12235,7 @@ }, "type": "object", "description": "An organization reference for the organization which receives the funds in this transaction.", - "title": "Payee", - "minProperties": 1 + "title": "Payee" }, "uri": { "title": "Linked spending information", @@ -12322,7 +12575,6 @@ ] } }, - "minProperties": 1, "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" @@ -12339,8 +12591,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -12349,8 +12600,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -12358,8 +12608,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -12376,11 +12625,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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" @@ -12397,8 +12644,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -12407,8 +12653,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -12416,8 +12661,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -12434,21 +12678,17 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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" } } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "milestones": { "title": "Milestones", @@ -12477,8 +12717,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "type": { "title": "Milestone type", @@ -12488,8 +12727,7 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "description": { "title": "Description", @@ -12497,17 +12735,24 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "code": { "title": "Milestone code", "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ] + }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", "type": [ "string", "null" ], - "minLength": 1 + "format": "date-time" }, "dueDate": { "title": "Due date", @@ -12586,8 +12831,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "title": { "title": "Title", @@ -12595,8 +12839,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -12604,8 +12847,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "url": { "title": "URL", @@ -12642,8 +12884,7 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "languages": { "title": "Languages", @@ -12653,13 +12894,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "language": { "title": "Language", @@ -12673,8 +12911,20 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } } }, "patternProperties": { @@ -12682,21 +12932,347 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + } } }, "patternProperties": { @@ -12704,21 +13280,17 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "documents": { "title": "Documents", @@ -12749,8 +13321,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "title": { "title": "Title", @@ -12758,8 +13329,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -12767,8 +13337,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "url": { "title": "URL", @@ -12805,8 +13374,7 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "languages": { "title": "Languages", @@ -12816,13 +13384,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "language": { "title": "Language", @@ -12836,8 +13401,20 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } } }, "patternProperties": { @@ -12845,24 +13422,19 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true } - }, - "minProperties": 1 + } }, "relatedProcesses": { "uniqueItems": true, @@ -12874,13 +13446,11 @@ "id": { "title": "Relationship ID", "description": "A local identifier for this relationship, unique within this array.", - "type": "string", - "minLength": 1 + "type": "string" }, "relationship": { "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "description": "The type of relationship, using the open [relatedProcess](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process) codelist.", "title": "Relationship", @@ -12889,9 +13459,7 @@ "null" ], "codelist": "relatedProcess.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "title": { "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", @@ -12899,8 +13467,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "scheme": { "title": "Scheme", @@ -12910,8 +13477,7 @@ "null" ], "codelist": "relatedProcessScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "identifier": { "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", @@ -12919,8 +13485,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "format": "uri", @@ -12931,16 +13496,11 @@ "null" ] } - }, - "minProperties": 1, - "required": [ - "id" - ] + } }, "description": "The details of related processes: for example, if this process is followed by one or more contracting processes, represented under a separate ocid. This is commonly used to refer to subcontracts and to renewal or replacement processes for this contract.", "title": "Related processes", - "type": "array", - "minItems": 1 + "type": "array" }, "milestones": { "title": "Contract milestones", @@ -12969,8 +13529,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "type": { "title": "Milestone type", @@ -12980,8 +13539,7 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "description": { "title": "Description", @@ -12989,17 +13547,24 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "code": { "title": "Milestone code", "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ] + }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", "type": [ "string", "null" ], - "minLength": 1 + "format": "date-time" }, "dueDate": { "title": "Due date", @@ -13078,8 +13643,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "title": { "title": "Title", @@ -13087,8 +13651,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -13096,8 +13659,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "url": { "title": "URL", @@ -13134,8 +13696,7 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "languages": { "title": "Languages", @@ -13145,13 +13706,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "language": { "title": "Language", @@ -13165,8 +13723,20 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } } }, "patternProperties": { @@ -13174,21 +13744,347 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + } } }, "patternProperties": { @@ -13196,21 +14092,16 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true + } + } }, "amendments": { "description": "A contract amendment is a formal change to, or extension of, a contract, and generally involves the publication of a new contract signature notice/release, or some other documents detailing the change. The rationale and a description of the changes made can be provided here.", @@ -13236,8 +14127,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -13245,8 +14135,7 @@ "string", "null" ], - "title": "ID", - "minLength": 1 + "title": "ID" }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -13254,8 +14143,7 @@ "string", "null" ], - "title": "Description", - "minLength": 1 + "title": "Description" }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -13263,8 +14151,7 @@ "string", "null" ], - "title": "Amended release (identifier)", - "minLength": 1 + "title": "Amended release (identifier)" }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -13272,8 +14159,7 @@ "string", "null" ], - "title": "Amending release (identifier)", - "minLength": 1 + "title": "Amending release (identifier)" }, "changes": { "title": "Amended fields", @@ -13285,8 +14171,7 @@ "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 + "type": "string" }, "former_value": { "title": "Former Value", @@ -13298,21 +14183,14 @@ "array", "object", "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 + ] } - }, - "minProperties": 1 + } }, "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" - }, - "minItems": 1, - "uniqueItems": true + } } }, "patternProperties": { @@ -13320,17 +14198,10 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "minItems": 1, - "uniqueItems": true + } + } }, "amendment": { "title": "Amendment", @@ -13352,8 +14223,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -13361,8 +14231,7 @@ "string", "null" ], - "title": "ID", - "minLength": 1 + "title": "ID" }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -13370,8 +14239,7 @@ "string", "null" ], - "title": "Description", - "minLength": 1 + "title": "Description" }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -13379,8 +14247,7 @@ "string", "null" ], - "title": "Amended release (identifier)", - "minLength": 1 + "title": "Amended release (identifier)" }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -13388,8 +14255,7 @@ "string", "null" ], - "title": "Amending release (identifier)", - "minLength": 1 + "title": "Amending release (identifier)" }, "changes": { "title": "Amended fields", @@ -13401,8 +14267,7 @@ "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 + "type": "string" }, "former_value": { "title": "Former Value", @@ -13414,21 +14279,14 @@ "array", "object", "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 + ] } - }, - "minProperties": 1 + } }, "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" - }, - "minItems": 1, - "uniqueItems": true + } } }, "patternProperties": { @@ -13436,14 +14294,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, - "required": [ - "id" - ], "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -13455,21 +14308,17 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "language": { "title": "Release language", @@ -13479,8 +14328,7 @@ "null" ], "codelist": "language.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "relatedProcesses": { "uniqueItems": true, @@ -13492,13 +14340,11 @@ "id": { "title": "Relationship ID", "description": "A local identifier for this relationship, unique within this array.", - "type": "string", - "minLength": 1 + "type": "string" }, "relationship": { "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "description": "The type of relationship, using the open [relatedProcess](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process) codelist.", "title": "Relationship", @@ -13507,9 +14353,7 @@ "null" ], "codelist": "relatedProcess.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "title": { "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", @@ -13517,8 +14361,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "scheme": { "title": "Scheme", @@ -13528,8 +14371,7 @@ "null" ], "codelist": "relatedProcessScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "identifier": { "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", @@ -13537,8 +14379,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "format": "uri", @@ -13549,20 +14390,15 @@ "null" ] } - }, - "minProperties": 1, - "required": [ - "id" - ] + } }, "description": "The details of related processes: for example, if this process follows on from one or more other processes, represented under a separate ocid. This is commonly used to relate mini-competitions to their parent frameworks or individual tenders to a broader planning process.", "title": "Related processes", - "type": "array", - "minItems": 1 + "type": "array" }, "links": { "title": "Links", - "description": "Links to related resources. In a release, links relate to the individual release: for example, a link to a canonical version of the release in another OCDS publication. In a compiled release, links relate to the entire contracting process: for example, a link to a resource in a non-OCDS publication that represents the entire contracting process.", + "description": "Links to related resources. In a release, links relate to the individual release: for example, a link to a canonical version of the release in another OCDS publication. In a compiled release, links relate to the entire contracting process: for example, a link to a resource in a non-OCDS publication that represents the entire contracting process. For references to related processes, see the `relatedProcesses` array.", "type": "array", "items": { "title": "Link", @@ -13574,8 +14410,7 @@ "description": "The relationship with the related resource, using the open [link relation type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#link-relation-type) codelist.", "type": "string", "codelist": "linkRelationType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "href": { "title": "Link target", @@ -13583,12 +14418,10 @@ "type": "string", "format": "uri" } - }, - "minProperties": 1 + } }, "uniqueItems": true, - "omitWhenMerged": true, - "minItems": 1 + "omitWhenMerged": true } }, "required": [ @@ -13610,8 +14443,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "rationale": { "title": "Rationale", @@ -13619,8 +14451,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "budget": { "type": "object", @@ -13634,8 +14465,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Budget Source", @@ -13643,8 +14473,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "amount": { "title": "Amount", @@ -13974,8 +14803,7 @@ null ] } - }, - "minProperties": 1 + } }, "project": { "title": "Project title", @@ -13983,8 +14811,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "projectID": { "title": "Project identifier", @@ -13993,8 +14820,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "Linked budget information", @@ -14024,25 +14850,21 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "documents": { "title": "Documents", @@ -14073,8 +14895,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "title": { "title": "Title", @@ -14082,8 +14903,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -14091,8 +14911,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "url": { "title": "URL", @@ -14129,8 +14948,7 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "languages": { "title": "Languages", @@ -14140,13 +14958,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "language": { "title": "Language", @@ -14160,8 +14975,20 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } } }, "patternProperties": { @@ -14169,21 +14996,16 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true + } + } }, "milestones": { "title": "Planning milestones", @@ -14212,8 +15034,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "type": { "title": "Milestone type", @@ -14223,8 +15044,7 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "description": { "title": "Description", @@ -14232,17 +15052,24 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "code": { "title": "Milestone code", "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ] + }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", "type": [ "string", "null" ], - "minLength": 1 + "format": "date-time" }, "dueDate": { "title": "Due date", @@ -14321,8 +15148,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "title": { "title": "Title", @@ -14330,8 +15156,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -14339,8 +15164,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "url": { "title": "URL", @@ -14377,8 +15201,7 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "languages": { "title": "Languages", @@ -14388,13 +15211,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "language": { "title": "Language", @@ -14408,8 +15228,20 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } } }, "patternProperties": { @@ -14417,21 +15249,347 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + } } }, "patternProperties": { @@ -14439,21 +15597,16 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true + } + } } }, "patternProperties": { @@ -14461,11 +15614,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Tender": { "title": "Tender", @@ -14486,12 +15637,11 @@ }, "title": { "title": "Tender title", - "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement.", + "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement. The title should be less than 150 characters in length.", "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Tender description", @@ -14499,8 +15649,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "status": { "title": "Tender status", @@ -14528,14 +15677,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "procuringEntity": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": [ @@ -14552,8 +15696,7 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 + "title": "ID" }, "identifier": { "title": "Primary identifier", @@ -14566,8 +15709,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -14576,8 +15718,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -14585,8 +15726,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -14603,11 +15743,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -14624,8 +15762,7 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 + "description": "The street address. For example, 1600 Amphitheatre Pkwy." }, "locality": { "title": "Locality", @@ -14633,8 +15770,7 @@ "string", "null" ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 + "description": "The locality. For example, Mountain View." }, "region": { "title": "Region", @@ -14642,8 +15778,7 @@ "string", "null" ], - "description": "The region. For example, CA.", - "minLength": 1 + "description": "The region. For example, CA." }, "postalCode": { "title": "Postal code", @@ -14651,8 +15786,7 @@ "string", "null" ], - "description": "The postal code. For example, 94043.", - "minLength": 1 + "description": "The postal code. For example, 94043." }, "country": { "title": "Country code", @@ -14927,8 +16061,7 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, "patternProperties": { @@ -14940,11 +16073,9 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, - "minProperties": 1, "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." @@ -14967,8 +16098,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -14977,8 +16107,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -14986,8 +16115,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -15004,17 +16132,14 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." }, "contactPoint": { "title": "Contact point", @@ -15027,8 +16152,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", - "minLength": 1 + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." }, "email": { "title": "Email", @@ -15036,9 +16160,7 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" + "description": "The e-mail address of the contact point/person." }, "telephone": { "title": "Telephone", @@ -15046,8 +16168,7 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The telephone number of the contact point/person. This should include the international dialing code." }, "faxNumber": { "title": "Fax number", @@ -15055,8 +16176,7 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The fax number of the contact point/person. This should include the international dialing code." }, "url": { "title": "URL", @@ -15073,11 +16193,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -15086,8 +16204,7 @@ }, "type": "object", "description": "The organization managing the contracting process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", - "title": "Procuring entity", - "minProperties": 1 + "title": "Procuring entity" }, "items": { "title": "Items to be procured", @@ -15116,8 +16233,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "classification": { "title": "Classification", @@ -15132,8 +16248,7 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -15142,8 +16257,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -15151,8 +16265,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -15169,11 +16282,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "additionalClassifications": { "title": "Additional classifications", @@ -15192,8 +16303,7 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -15202,8 +16312,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -15211,8 +16320,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -15229,15 +16337,12 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 + "wholeListMerge": true }, "quantity": { "title": "Quantity", @@ -15260,8 +16365,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -15269,8 +16373,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "name": { "title": "Name", @@ -15278,8 +16381,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "value": { "title": "Value", @@ -15609,8 +16711,7 @@ null ] } - }, - "minProperties": 1 + } }, "uri": { "title": "URI", @@ -15639,8 +16740,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -15648,11 +16748,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "quantity": { "title": "Quantity", @@ -15662,8 +16760,7 @@ "null" ] } - }, - "minProperties": 1 + } } }, "patternProperties": { @@ -15671,11 +16768,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } } }, "patternProperties": { @@ -15683,14 +16778,11 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "value": { "title": "Value", @@ -16020,8 +17112,7 @@ null ] } - }, - "minProperties": 1 + } }, "minValue": { "title": "Minimum value", @@ -16351,8 +17442,7 @@ null ] } - }, - "minProperties": 1 + } }, "maximumValue": { "title": "Maximum value", @@ -16682,8 +17772,7 @@ null ] } - }, - "minProperties": 1 + } }, "procurementMethod": { "title": "Procurement method", @@ -16708,8 +17797,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "procurementMethodRationale": { "title": "Procurement method rationale", @@ -16717,8 +17805,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "mainProcurementCategory": { "title": "Main procurement category", @@ -16744,13 +17831,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "extendedProcurementCategory.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "awardCriteria": { "title": "Award criteria", @@ -16760,8 +17844,7 @@ "null" ], "codelist": "awardCriteria.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "awardCriteriaDetails": { "title": "Award criteria details", @@ -16769,8 +17852,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "submissionMethod": { "title": "Submission method", @@ -16780,26 +17862,22 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "submissionMethod.csv", "openCodelist": true, "deprecated": { "description": "This field is deprecated, because all codes from the submissionMethod codelist are deprecated. Refer to the Deprecation note of individual codes.", "deprecatedVersion": "1.2" - }, - "minItems": 1, - "uniqueItems": true + } }, "submissionMethodDetails": { "title": "Submission method details", - "description": "Any detailed or further information on the submission method. This can include the address, e-mail address or online service to which bids are submitted, and any special requirements to be followed for submissions.", + "description": "Information about the methods by which bids are submitted. This can include the address, e-mail address or online service to which bids are submitted, and any special requirements to be followed for submissions. More structured information can be provided using the submission terms extension.", "type": [ "string", "null" - ], - "minLength": 1 + ] }, "datePublished": { "description": "The date on which the tender was published.", @@ -16848,11 +17926,9 @@ "type": [ "integer", "null" - ], - "minimum": 0 + ] } - }, - "minProperties": 1 + } }, "enquiryPeriod": { "title": "Enquiry period", @@ -16892,11 +17968,9 @@ "type": [ "integer", "null" - ], - "minimum": 0 + ] } - }, - "minProperties": 1 + } }, "hasEnquiries": { "title": "Has enquiries?", @@ -16916,8 +17990,7 @@ "deprecated": { "description": "This field had unclear semantics and used ambiguous terms, and is deprecated in favor of exclusionGrounds.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } }, "exclusionGrounds": { "title": "Exclusion grounds", @@ -16925,8 +17998,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "selectionCriteria": { "title": "Selection criteria", @@ -16934,8 +18006,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "awardPeriod": { "title": "Evaluation and award period", @@ -16975,11 +18046,51 @@ "type": [ "integer", "null" + ] + } + } + }, + "standstillPeriod": { + "title": "Standstill period", + "description": "The period before the contract signature during which the award decision can be challenged. This period typically starts on the date on which the tenderers are informed about the award decision.", + "type": "object", + "properties": { + "startDate": { + "title": "Start date", + "description": "The start date for the period. When known, a precise start date must be provided.", + "type": [ + "string", + "null" ], - "minimum": 0 + "format": "date-time" + }, + "endDate": { + "title": "End date", + "description": "The end date for the period. When known, a precise end date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "maxExtentDate": { + "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", + "format": "date-time", + "title": "Maximum extent", + "type": [ + "string", + "null" + ] + }, + "durationInDays": { + "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", + "title": "Duration (days)", + "type": [ + "integer", + "null" + ] } - }, - "minProperties": 1 + } }, "contractPeriod": { "title": "Contract period", @@ -17019,11 +18130,9 @@ "type": [ "integer", "null" - ], - "minimum": 0 + ] } - }, - "minProperties": 1 + } }, "numberOfTenderers": { "title": "Number of tenderers", @@ -17031,18 +18140,13 @@ "type": [ "integer", "null" - ], - "minimum": 0 + ] }, "tenderers": { "title": "Tenderers", "description": "All organizations that submit a bid. More detailed information on bids and the bidding organization can be provided using the bid extension.", "type": "array", "items": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": [ @@ -17059,8 +18163,7 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 + "title": "ID" }, "identifier": { "title": "Primary identifier", @@ -17073,8 +18176,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -17083,8 +18185,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -17092,8 +18193,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -17110,11 +18210,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -17131,8 +18229,7 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 + "description": "The street address. For example, 1600 Amphitheatre Pkwy." }, "locality": { "title": "Locality", @@ -17140,8 +18237,7 @@ "string", "null" ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 + "description": "The locality. For example, Mountain View." }, "region": { "title": "Region", @@ -17149,8 +18245,7 @@ "string", "null" ], - "description": "The region. For example, CA.", - "minLength": 1 + "description": "The region. For example, CA." }, "postalCode": { "title": "Postal code", @@ -17158,8 +18253,7 @@ "string", "null" ], - "description": "The postal code. For example, 94043.", - "minLength": 1 + "description": "The postal code. For example, 94043." }, "country": { "title": "Country code", @@ -17434,8 +18528,7 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, "patternProperties": { @@ -17447,11 +18540,9 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, - "minProperties": 1, "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." @@ -17474,8 +18565,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -17484,8 +18574,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -17493,8 +18582,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -17511,17 +18599,14 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." }, "contactPoint": { "title": "Contact point", @@ -17534,8 +18619,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", - "minLength": 1 + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." }, "email": { "title": "Email", @@ -17543,9 +18627,7 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" + "description": "The e-mail address of the contact point/person." }, "telephone": { "title": "Telephone", @@ -17553,8 +18635,7 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The telephone number of the contact point/person. This should include the international dialing code." }, "faxNumber": { "title": "Fax number", @@ -17562,8 +18643,7 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The fax number of the contact point/person. This should include the international dialing code." }, "url": { "title": "URL", @@ -17580,11 +18660,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -17593,11 +18671,9 @@ }, "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", - "title": "Organization reference", - "minProperties": 1 + "title": "Organization reference" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "documents": { "title": "Documents", @@ -17628,8 +18704,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "title": { "title": "Title", @@ -17637,8 +18712,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -17646,8 +18720,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "url": { "title": "URL", @@ -17664,351 +18737,685 @@ "type": [ "string", "null" - ], - "format": "date-time" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + }, + "codelist": "language.csv", + "openCodelist": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } + } + }, + "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" + ] + } + } + } + }, + "milestones": { + "title": "Milestones", + "description": "A list of milestones associated with the tender.", + "type": "array", + "items": { + "title": "Milestone", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "Milestone title", + "type": [ + "string", + "null" + ] + }, + "type": { + "title": "Milestone type", + "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "milestoneType.csv", + "openCodelist": true + }, + "description": { + "title": "Description", + "description": "A description of the milestone.", + "type": [ + "string", + "null" + ] + }, + "code": { + "title": "Milestone code", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ] + }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dueDate": { + "title": "Due date", + "description": "The date the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateMet": { + "format": "date-time", + "title": "Date met", + "description": "The date on which the milestone was met.", + "type": [ + "string", + "null" + ] }, "dateModified": { "title": "Date modified", - "description": "Date that the document was last modified", + "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", "type": [ "string", "null" ], "format": "date-time" }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "status": { + "title": "Status", + "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", "type": [ "string", "null" ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" + "enum": [ + "scheduled", + "met", + "notMet", + "partiallyMet", + null ], + "codelist": "milestoneStatus.csv", + "openCodelist": false + }, + "documents": { + "title": "Documents", + "description": "List of documents associated with this milestone (Deprecated in 1.1).", + "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": { - "type": "string", - "minLength": 1 + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ] + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ] + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + }, + "codelist": "language.csv", + "openCodelist": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } + } + }, + "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" + ] + } + } }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, "uniqueItems": true }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + } } }, "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true - }, - "milestones": { - "title": "Milestones", - "description": "A list of milestones associated with the tender.", - "type": "array", - "items": { - "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "integer" - ], - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "Milestone title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "type": { - "title": "Milestone type", - "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the milestone.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "code": { - "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "dueDate": { - "title": "Due date", - "description": "The date the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateMet": { - "format": "date-time", - "title": "Date met", - "description": "The date on which the milestone was met.", "type": [ "string", "null" ] }, - "dateModified": { - "title": "Date modified", - "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "status": { - "title": "Status", - "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", - "type": [ - "string", - "null" - ], - "enum": [ - "scheduled", - "met", - "notMet", - "partiallyMet", - null - ], - "codelist": "milestoneStatus.csv", - "openCodelist": false - }, - "documents": { - "title": "Documents", - "description": "List of documents associated with this milestone (Deprecated in 1.1).", - "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": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "integer" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 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" - ], - "minLength": 1 - }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true + } + } }, "amendments": { "description": "A tender amendment is a formal change to the tender, and generally involves the publication of a new tender notice/release. The rationale and a description of the changes made can be provided here.", @@ -18034,8 +19441,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -18043,8 +19449,7 @@ "string", "null" ], - "title": "ID", - "minLength": 1 + "title": "ID" }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -18052,8 +19457,7 @@ "string", "null" ], - "title": "Description", - "minLength": 1 + "title": "Description" }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -18061,8 +19465,7 @@ "string", "null" ], - "title": "Amended release (identifier)", - "minLength": 1 + "title": "Amended release (identifier)" }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -18070,8 +19473,7 @@ "string", "null" ], - "title": "Amending release (identifier)", - "minLength": 1 + "title": "Amending release (identifier)" }, "changes": { "title": "Amended fields", @@ -18083,8 +19485,7 @@ "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 + "type": "string" }, "former_value": { "title": "Former Value", @@ -18096,21 +19497,14 @@ "array", "object", "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 + ] } - }, - "minProperties": 1 + } }, "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" - }, - "minItems": 1, - "uniqueItems": true + } } }, "patternProperties": { @@ -18118,17 +19512,10 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "minItems": 1, - "uniqueItems": true + } + } }, "amendment": { "title": "Amendment", @@ -18150,8 +19537,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -18159,8 +19545,7 @@ "string", "null" ], - "title": "ID", - "minLength": 1 + "title": "ID" }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -18168,8 +19553,7 @@ "string", "null" ], - "title": "Description", - "minLength": 1 + "title": "Description" }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -18177,8 +19561,7 @@ "string", "null" ], - "title": "Amended release (identifier)", - "minLength": 1 + "title": "Amended release (identifier)" }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -18186,8 +19569,7 @@ "string", "null" ], - "title": "Amending release (identifier)", - "minLength": 1 + "title": "Amending release (identifier)" }, "changes": { "title": "Amended fields", @@ -18199,8 +19581,7 @@ "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 + "type": "string" }, "former_value": { "title": "Former Value", @@ -18212,21 +19593,14 @@ "array", "object", "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 + ] } - }, - "minProperties": 1 + } }, "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" - }, - "minItems": 1, - "uniqueItems": true + } } }, "patternProperties": { @@ -18234,14 +19608,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, - "required": [ - "id" - ], "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -18253,53 +19622,45 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(selectionCriteria_(((([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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Award": { "title": "Award", @@ -18324,8 +19685,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -18333,8 +19693,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "status": { "title": "Award status", @@ -18359,8 +19718,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "date": { "title": "Award date", @@ -18699,8 +20057,7 @@ null ] } - }, - "minProperties": 1 + } }, "maximumValue": { "title": "Maximum value", @@ -19030,8 +20387,7 @@ null ] } - }, - "minProperties": 1 + } }, "estimatedValue": { "title": "Estimated value", @@ -19361,18 +20717,13 @@ null ] } - }, - "minProperties": 1 + } }, "suppliers": { "title": "Suppliers", "description": "Organizations with which a buyer or a procuring entity decided to conclude a contract.", "type": "array", "items": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": [ @@ -19389,8 +20740,7 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 + "title": "ID" }, "identifier": { "title": "Primary identifier", @@ -19403,8 +20753,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -19413,8 +20762,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -19422,8 +20770,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -19440,11 +20787,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -19461,8 +20806,7 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 + "description": "The street address. For example, 1600 Amphitheatre Pkwy." }, "locality": { "title": "Locality", @@ -19470,8 +20814,7 @@ "string", "null" ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 + "description": "The locality. For example, Mountain View." }, "region": { "title": "Region", @@ -19479,8 +20822,7 @@ "string", "null" ], - "description": "The region. For example, CA.", - "minLength": 1 + "description": "The region. For example, CA." }, "postalCode": { "title": "Postal code", @@ -19488,8 +20830,7 @@ "string", "null" ], - "description": "The postal code. For example, 94043.", - "minLength": 1 + "description": "The postal code. For example, 94043." }, "country": { "title": "Country code", @@ -19764,8 +21105,7 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, "patternProperties": { @@ -19777,11 +21117,9 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, - "minProperties": 1, "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." @@ -19804,8 +21142,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -19814,8 +21151,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -19823,8 +21159,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -19841,17 +21176,14 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." }, "contactPoint": { "title": "Contact point", @@ -19864,8 +21196,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", - "minLength": 1 + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." }, "email": { "title": "Email", @@ -19873,9 +21204,7 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" + "description": "The e-mail address of the contact point/person." }, "telephone": { "title": "Telephone", @@ -19883,8 +21212,7 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The telephone number of the contact point/person. This should include the international dialing code." }, "faxNumber": { "title": "Fax number", @@ -19892,8 +21220,7 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The fax number of the contact point/person. This should include the international dialing code." }, "url": { "title": "URL", @@ -19910,11 +21237,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -19923,11 +21248,9 @@ }, "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", - "title": "Organization reference", - "minProperties": 1 + "title": "Organization reference" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "items": { "title": "Items awarded", @@ -19957,8 +21280,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "classification": { "title": "Classification", @@ -19973,8 +21295,7 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -19983,8 +21304,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -19992,8 +21312,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -20010,11 +21329,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "additionalClassifications": { "title": "Additional classifications", @@ -20033,8 +21350,7 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -20043,8 +21359,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -20052,8 +21367,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -20070,15 +21384,12 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 + "wholeListMerge": true }, "quantity": { "title": "Quantity", @@ -20101,8 +21412,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -20110,8 +21420,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "name": { "title": "Name", @@ -20119,8 +21428,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "value": { "title": "Value", @@ -20450,8 +21758,7 @@ null ] } - }, - "minProperties": 1 + } }, "uri": { "title": "URI", @@ -20480,8 +21787,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -20489,11 +21795,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "quantity": { "title": "Quantity", @@ -20503,8 +21807,7 @@ "null" ] } - }, - "minProperties": 1 + } } }, "patternProperties": { @@ -20512,11 +21815,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } } }, "patternProperties": { @@ -20524,11 +21825,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "uniqueItems": true }, @@ -20570,11 +21869,9 @@ "type": [ "integer", "null" - ], - "minimum": 0 + ] } - }, - "minProperties": 1 + } }, "documents": { "title": "Documents", @@ -20605,8 +21902,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "title": { "title": "Title", @@ -20614,8 +21910,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -20623,8 +21918,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "url": { "title": "URL", @@ -20661,8 +21955,7 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "languages": { "title": "Languages", @@ -20672,13 +21965,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "language": { "title": "Language", @@ -20692,8 +21982,20 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } } }, "patternProperties": { @@ -20701,21 +22003,17 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "amendments": { "description": "An award amendment is a formal change to the details of the award, and generally involves the publication of a new award notice/release. The rationale and a description of the changes made can be provided here.", @@ -20741,8 +22039,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -20750,8 +22047,7 @@ "string", "null" ], - "title": "ID", - "minLength": 1 + "title": "ID" }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -20759,8 +22055,7 @@ "string", "null" ], - "title": "Description", - "minLength": 1 + "title": "Description" }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -20768,8 +22063,7 @@ "string", "null" ], - "title": "Amended release (identifier)", - "minLength": 1 + "title": "Amended release (identifier)" }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -20777,8 +22071,7 @@ "string", "null" ], - "title": "Amending release (identifier)", - "minLength": 1 + "title": "Amending release (identifier)" }, "changes": { "title": "Amended fields", @@ -20790,8 +22083,7 @@ "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 + "type": "string" }, "former_value": { "title": "Former Value", @@ -20803,21 +22095,14 @@ "array", "object", "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 + ] } - }, - "minProperties": 1 + } }, "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" - }, - "minItems": 1, - "uniqueItems": true + } } }, "patternProperties": { @@ -20825,17 +22110,10 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "minItems": 1, - "uniqueItems": true + } + } }, "amendment": { "title": "Amendment", @@ -20857,8 +22135,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -20866,8 +22143,7 @@ "string", "null" ], - "title": "ID", - "minLength": 1 + "title": "ID" }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -20875,8 +22151,7 @@ "string", "null" ], - "title": "Description", - "minLength": 1 + "title": "Description" }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -20884,8 +22159,7 @@ "string", "null" ], - "title": "Amended release (identifier)", - "minLength": 1 + "title": "Amended release (identifier)" }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -20893,8 +22167,7 @@ "string", "null" ], - "title": "Amending release (identifier)", - "minLength": 1 + "title": "Amending release (identifier)" }, "changes": { "title": "Amended fields", @@ -20906,8 +22179,7 @@ "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 + "type": "string" }, "former_value": { "title": "Former Value", @@ -20919,21 +22191,14 @@ "array", "object", "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 + ] } - }, - "minProperties": 1 + } }, "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" - }, - "minItems": 1, - "uniqueItems": true + } } }, "patternProperties": { @@ -20941,14 +22206,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, - "required": [ - "id" - ], "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -20960,18 +22220,15 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Contract": { "type": "object", @@ -21006,8 +22263,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Contract description", @@ -21015,8 +22271,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "status": { "title": "Contract status", @@ -21043,8 +22298,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "dateSigned": { "title": "Date concluded", @@ -21383,8 +22637,7 @@ null ] } - }, - "minProperties": 1 + } }, "maximumValue": { "title": "Maximum value", @@ -21714,8 +22967,7 @@ null ] } - }, - "minProperties": 1 + } }, "estimatedValue": { "title": "Estimated value", @@ -22045,8 +23297,7 @@ null ] } - }, - "minProperties": 1 + } }, "items": { "title": "Items contracted", @@ -22076,8 +23327,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "classification": { "title": "Classification", @@ -22092,8 +23342,7 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -22102,8 +23351,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -22111,8 +23359,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -22129,11 +23376,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "additionalClassifications": { "title": "Additional classifications", @@ -22152,8 +23397,7 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -22162,8 +23406,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -22171,8 +23414,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -22189,15 +23431,12 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 + "wholeListMerge": true }, "quantity": { "title": "Quantity", @@ -22220,8 +23459,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -22229,8 +23467,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "name": { "title": "Name", @@ -22238,8 +23475,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "value": { "title": "Value", @@ -22569,8 +23805,7 @@ null ] } - }, - "minProperties": 1 + } }, "uri": { "title": "URI", @@ -22599,8 +23834,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -22608,11 +23842,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "quantity": { "title": "Quantity", @@ -22622,8 +23854,7 @@ "null" ] } - }, - "minProperties": 1 + } } }, "patternProperties": { @@ -22631,11 +23862,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } } }, "patternProperties": { @@ -22643,11 +23872,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "uniqueItems": true }, @@ -22689,11 +23916,9 @@ "type": [ "integer", "null" - ], - "minimum": 0 + ] } - }, - "minProperties": 1 + } }, "documents": { "title": "Documents", @@ -22724,8 +23949,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "title": { "title": "Title", @@ -22733,8 +23957,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -22742,8 +23965,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "url": { "title": "URL", @@ -22780,8 +24002,7 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "languages": { "title": "Languages", @@ -22791,13 +24012,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "language": { "title": "Language", @@ -22811,8 +24029,20 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } } }, "patternProperties": { @@ -22820,21 +24050,17 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "implementation": { "type": "object", @@ -23208,14 +24434,9 @@ null ] } - }, - "minProperties": 1 + } }, "payer": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": [ @@ -23232,8 +24453,7 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 + "title": "ID" }, "identifier": { "title": "Primary identifier", @@ -23246,8 +24466,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -23256,8 +24475,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -23265,8 +24483,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -23283,11 +24500,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -23304,8 +24519,7 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 + "description": "The street address. For example, 1600 Amphitheatre Pkwy." }, "locality": { "title": "Locality", @@ -23313,8 +24527,7 @@ "string", "null" ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 + "description": "The locality. For example, Mountain View." }, "region": { "title": "Region", @@ -23322,8 +24535,7 @@ "string", "null" ], - "description": "The region. For example, CA.", - "minLength": 1 + "description": "The region. For example, CA." }, "postalCode": { "title": "Postal code", @@ -23331,8 +24543,7 @@ "string", "null" ], - "description": "The postal code. For example, 94043.", - "minLength": 1 + "description": "The postal code. For example, 94043." }, "country": { "title": "Country code", @@ -23607,8 +24818,7 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, "patternProperties": { @@ -23620,11 +24830,9 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, - "minProperties": 1, "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." @@ -23647,8 +24855,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -23657,8 +24864,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -23666,8 +24872,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -23684,17 +24889,14 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." }, "contactPoint": { "title": "Contact point", @@ -23707,8 +24909,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", - "minLength": 1 + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." }, "email": { "title": "Email", @@ -23716,9 +24917,7 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" + "description": "The e-mail address of the contact point/person." }, "telephone": { "title": "Telephone", @@ -23726,8 +24925,7 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The telephone number of the contact point/person. This should include the international dialing code." }, "faxNumber": { "title": "Fax number", @@ -23735,8 +24933,7 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The fax number of the contact point/person. This should include the international dialing code." }, "url": { "title": "URL", @@ -23753,11 +24950,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -23766,14 +24961,9 @@ }, "type": "object", "description": "An organization reference for the organization from which the funds in this transaction originate.", - "title": "Payer", - "minProperties": 1 + "title": "Payer" }, "payee": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": [ @@ -23790,8 +24980,7 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 + "title": "ID" }, "identifier": { "title": "Primary identifier", @@ -23804,8 +24993,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -23814,8 +25002,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -23823,8 +25010,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -23841,11 +25027,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -23862,8 +25046,7 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 + "description": "The street address. For example, 1600 Amphitheatre Pkwy." }, "locality": { "title": "Locality", @@ -23871,8 +25054,7 @@ "string", "null" ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 + "description": "The locality. For example, Mountain View." }, "region": { "title": "Region", @@ -23880,8 +25062,7 @@ "string", "null" ], - "description": "The region. For example, CA.", - "minLength": 1 + "description": "The region. For example, CA." }, "postalCode": { "title": "Postal code", @@ -23889,8 +25070,7 @@ "string", "null" ], - "description": "The postal code. For example, 94043.", - "minLength": 1 + "description": "The postal code. For example, 94043." }, "country": { "title": "Country code", @@ -24165,8 +25345,7 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, "patternProperties": { @@ -24178,11 +25357,9 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, - "minProperties": 1, "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." @@ -24205,8 +25382,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -24215,8 +25391,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -24224,8 +25399,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -24242,17 +25416,14 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." }, "contactPoint": { "title": "Contact point", @@ -24265,8 +25436,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", - "minLength": 1 + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." }, "email": { "title": "Email", @@ -24274,9 +25444,7 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" + "description": "The e-mail address of the contact point/person." }, "telephone": { "title": "Telephone", @@ -24284,8 +25452,7 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The telephone number of the contact point/person. This should include the international dialing code." }, "faxNumber": { "title": "Fax number", @@ -24293,8 +25460,7 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The fax number of the contact point/person. This should include the international dialing code." }, "url": { "title": "URL", @@ -24311,11 +25477,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -24324,8 +25488,7 @@ }, "type": "object", "description": "An organization reference for the organization which receives the funds in this transaction.", - "title": "Payee", - "minProperties": 1 + "title": "Payee" }, "uri": { "title": "Linked spending information", @@ -24665,7 +25828,6 @@ ] } }, - "minProperties": 1, "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" @@ -24682,8 +25844,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -24692,8 +25853,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -24701,8 +25861,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -24719,11 +25878,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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" @@ -24740,8 +25897,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -24750,8 +25906,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -24759,8 +25914,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -24777,21 +25931,17 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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" } } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "milestones": { "title": "Milestones", @@ -24820,8 +25970,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "type": { "title": "Milestone type", @@ -24831,8 +25980,7 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "description": { "title": "Description", @@ -24840,17 +25988,24 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "code": { "title": "Milestone code", "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ] + }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", "type": [ "string", "null" ], - "minLength": 1 + "format": "date-time" }, "dueDate": { "title": "Due date", @@ -24929,8 +26084,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "title": { "title": "Title", @@ -24938,8 +26092,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -24947,8 +26100,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "url": { "title": "URL", @@ -24985,8 +26137,7 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "languages": { "title": "Languages", @@ -24996,13 +26147,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "language": { "title": "Language", @@ -25016,8 +26164,20 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } } }, "patternProperties": { @@ -25025,21 +26185,347 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + } } }, "patternProperties": { @@ -25047,21 +26533,17 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "documents": { "title": "Documents", @@ -25092,8 +26574,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "title": { "title": "Title", @@ -25101,8 +26582,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -25110,8 +26590,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "url": { "title": "URL", @@ -25148,8 +26627,7 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "languages": { "title": "Languages", @@ -25159,13 +26637,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "language": { "title": "Language", @@ -25179,8 +26654,20 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } } }, "patternProperties": { @@ -25188,24 +26675,19 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true } - }, - "minProperties": 1 + } }, "relatedProcesses": { "uniqueItems": true, @@ -25217,13 +26699,11 @@ "id": { "title": "Relationship ID", "description": "A local identifier for this relationship, unique within this array.", - "type": "string", - "minLength": 1 + "type": "string" }, "relationship": { "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "description": "The type of relationship, using the open [relatedProcess](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process) codelist.", "title": "Relationship", @@ -25232,9 +26712,7 @@ "null" ], "codelist": "relatedProcess.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "title": { "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", @@ -25242,8 +26720,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "scheme": { "title": "Scheme", @@ -25253,8 +26730,7 @@ "null" ], "codelist": "relatedProcessScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "identifier": { "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", @@ -25262,8 +26738,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "format": "uri", @@ -25274,16 +26749,11 @@ "null" ] } - }, - "minProperties": 1, - "required": [ - "id" - ] + } }, "description": "The details of related processes: for example, if this process is followed by one or more contracting processes, represented under a separate ocid. This is commonly used to refer to subcontracts and to renewal or replacement processes for this contract.", "title": "Related processes", - "type": "array", - "minItems": 1 + "type": "array" }, "milestones": { "title": "Contract milestones", @@ -25312,8 +26782,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "type": { "title": "Milestone type", @@ -25323,8 +26792,7 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "description": { "title": "Description", @@ -25332,17 +26800,24 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "code": { "title": "Milestone code", "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ] + }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", "type": [ "string", "null" ], - "minLength": 1 + "format": "date-time" }, "dueDate": { "title": "Due date", @@ -25421,8 +26896,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "title": { "title": "Title", @@ -25430,8 +26904,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -25439,8 +26912,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "url": { "title": "URL", @@ -25477,8 +26949,7 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "languages": { "title": "Languages", @@ -25488,13 +26959,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "language": { "title": "Language", @@ -25508,8 +26976,20 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } } }, "patternProperties": { @@ -25517,21 +26997,347 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + } } }, "patternProperties": { @@ -25539,21 +27345,16 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true + } + } }, "amendments": { "description": "A contract amendment is a formal change to, or extension of, a contract, and generally involves the publication of a new contract signature notice/release, or some other documents detailing the change. The rationale and a description of the changes made can be provided here.", @@ -25579,8 +27380,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -25588,8 +27388,7 @@ "string", "null" ], - "title": "ID", - "minLength": 1 + "title": "ID" }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -25597,8 +27396,7 @@ "string", "null" ], - "title": "Description", - "minLength": 1 + "title": "Description" }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -25606,8 +27404,7 @@ "string", "null" ], - "title": "Amended release (identifier)", - "minLength": 1 + "title": "Amended release (identifier)" }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -25615,8 +27412,7 @@ "string", "null" ], - "title": "Amending release (identifier)", - "minLength": 1 + "title": "Amending release (identifier)" }, "changes": { "title": "Amended fields", @@ -25628,8 +27424,7 @@ "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 + "type": "string" }, "former_value": { "title": "Former Value", @@ -25641,21 +27436,14 @@ "array", "object", "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 + ] } - }, - "minProperties": 1 + } }, "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" - }, - "minItems": 1, - "uniqueItems": true + } } }, "patternProperties": { @@ -25663,17 +27451,10 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "minItems": 1, - "uniqueItems": true + } + } }, "amendment": { "title": "Amendment", @@ -25695,8 +27476,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -25704,8 +27484,7 @@ "string", "null" ], - "title": "ID", - "minLength": 1 + "title": "ID" }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -25713,8 +27492,7 @@ "string", "null" ], - "title": "Description", - "minLength": 1 + "title": "Description" }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -25722,8 +27500,7 @@ "string", "null" ], - "title": "Amended release (identifier)", - "minLength": 1 + "title": "Amended release (identifier)" }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -25731,8 +27508,7 @@ "string", "null" ], - "title": "Amending release (identifier)", - "minLength": 1 + "title": "Amending release (identifier)" }, "changes": { "title": "Amended fields", @@ -25744,8 +27520,7 @@ "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 + "type": "string" }, "former_value": { "title": "Former Value", @@ -25757,21 +27532,14 @@ "array", "object", "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 + ] } - }, - "minProperties": 1 + } }, "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" - }, - "minItems": 1, - "uniqueItems": true + } } }, "patternProperties": { @@ -25779,14 +27547,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, - "required": [ - "id" - ], "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -25798,18 +27561,15 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Implementation": { "type": "object", @@ -26183,14 +27943,9 @@ null ] } - }, - "minProperties": 1 + } }, "payer": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": [ @@ -26207,8 +27962,7 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 + "title": "ID" }, "identifier": { "title": "Primary identifier", @@ -26221,8 +27975,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -26231,8 +27984,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -26240,8 +27992,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -26258,11 +28009,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -26279,8 +28028,7 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 + "description": "The street address. For example, 1600 Amphitheatre Pkwy." }, "locality": { "title": "Locality", @@ -26288,8 +28036,7 @@ "string", "null" ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 + "description": "The locality. For example, Mountain View." }, "region": { "title": "Region", @@ -26297,8 +28044,7 @@ "string", "null" ], - "description": "The region. For example, CA.", - "minLength": 1 + "description": "The region. For example, CA." }, "postalCode": { "title": "Postal code", @@ -26306,8 +28052,7 @@ "string", "null" ], - "description": "The postal code. For example, 94043.", - "minLength": 1 + "description": "The postal code. For example, 94043." }, "country": { "title": "Country code", @@ -26582,8 +28327,7 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, "patternProperties": { @@ -26595,11 +28339,9 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, - "minProperties": 1, "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." @@ -26622,8 +28364,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -26632,8 +28373,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -26641,8 +28381,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -26659,17 +28398,14 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." }, "contactPoint": { "title": "Contact point", @@ -26682,8 +28418,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", - "minLength": 1 + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." }, "email": { "title": "Email", @@ -26691,9 +28426,7 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" + "description": "The e-mail address of the contact point/person." }, "telephone": { "title": "Telephone", @@ -26701,8 +28434,7 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The telephone number of the contact point/person. This should include the international dialing code." }, "faxNumber": { "title": "Fax number", @@ -26710,8 +28442,7 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The fax number of the contact point/person. This should include the international dialing code." }, "url": { "title": "URL", @@ -26728,11 +28459,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -26741,14 +28470,9 @@ }, "type": "object", "description": "An organization reference for the organization from which the funds in this transaction originate.", - "title": "Payer", - "minProperties": 1 + "title": "Payer" }, "payee": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": [ @@ -26765,8 +28489,7 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 + "title": "ID" }, "identifier": { "title": "Primary identifier", @@ -26779,8 +28502,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -26789,8 +28511,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -26798,8 +28519,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -26816,11 +28536,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -26837,8 +28555,7 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 + "description": "The street address. For example, 1600 Amphitheatre Pkwy." }, "locality": { "title": "Locality", @@ -26846,8 +28563,7 @@ "string", "null" ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 + "description": "The locality. For example, Mountain View." }, "region": { "title": "Region", @@ -26855,8 +28571,7 @@ "string", "null" ], - "description": "The region. For example, CA.", - "minLength": 1 + "description": "The region. For example, CA." }, "postalCode": { "title": "Postal code", @@ -26864,8 +28579,7 @@ "string", "null" ], - "description": "The postal code. For example, 94043.", - "minLength": 1 + "description": "The postal code. For example, 94043." }, "country": { "title": "Country code", @@ -27140,8 +28854,7 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, "patternProperties": { @@ -27153,11 +28866,9 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, - "minProperties": 1, "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." @@ -27180,8 +28891,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -27190,8 +28900,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -27199,8 +28908,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -27217,17 +28925,14 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." }, "contactPoint": { "title": "Contact point", @@ -27240,8 +28945,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", - "minLength": 1 + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." }, "email": { "title": "Email", @@ -27249,9 +28953,7 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" + "description": "The e-mail address of the contact point/person." }, "telephone": { "title": "Telephone", @@ -27259,8 +28961,7 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The telephone number of the contact point/person. This should include the international dialing code." }, "faxNumber": { "title": "Fax number", @@ -27268,8 +28969,7 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The fax number of the contact point/person. This should include the international dialing code." }, "url": { "title": "URL", @@ -27286,11 +28986,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -27299,8 +28997,7 @@ }, "type": "object", "description": "An organization reference for the organization which receives the funds in this transaction.", - "title": "Payee", - "minProperties": 1 + "title": "Payee" }, "uri": { "title": "Linked spending information", @@ -27640,7 +29337,6 @@ ] } }, - "minProperties": 1, "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" @@ -27657,8 +29353,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -27667,8 +29362,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -27676,8 +29370,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -27694,11 +29387,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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" @@ -27715,8 +29406,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -27725,8 +29415,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -27734,8 +29423,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -27752,21 +29440,17 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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" } } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "milestones": { "title": "Milestones", @@ -27795,8 +29479,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "type": { "title": "Milestone type", @@ -27806,8 +29489,7 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "description": { "title": "Description", @@ -27815,17 +29497,24 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "code": { "title": "Milestone code", "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ] + }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", "type": [ "string", "null" ], - "minLength": 1 + "format": "date-time" }, "dueDate": { "title": "Due date", @@ -27904,8 +29593,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "title": { "title": "Title", @@ -27913,8 +29601,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -27922,8 +29609,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "url": { "title": "URL", @@ -27960,8 +29646,7 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "languages": { "title": "Languages", @@ -27971,13 +29656,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "language": { "title": "Language", @@ -27991,8 +29673,20 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } } }, "patternProperties": { @@ -28000,21 +29694,347 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + } } }, "patternProperties": { @@ -28022,21 +30042,17 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "documents": { "title": "Documents", @@ -28067,8 +30083,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "title": { "title": "Title", @@ -28076,8 +30091,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -28085,8 +30099,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "url": { "title": "URL", @@ -28123,8 +30136,7 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "languages": { "title": "Languages", @@ -28134,13 +30146,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "language": { "title": "Language", @@ -28154,8 +30163,20 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } } }, "patternProperties": { @@ -28163,24 +30184,19 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true } - }, - "minProperties": 1 + } }, "Milestone": { "title": "Milestone", @@ -28205,8 +30221,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "type": { "title": "Milestone type", @@ -28216,8 +30231,7 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "description": { "title": "Description", @@ -28225,17 +30239,24 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "code": { "title": "Milestone code", "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ] + }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", "type": [ "string", "null" ], - "minLength": 1 + "format": "date-time" }, "dueDate": { "title": "Due date", @@ -28314,8 +30335,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "title": { "title": "Title", @@ -28323,8 +30343,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -28332,8 +30351,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "url": { "title": "URL", @@ -28370,8 +30388,7 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "languages": { "title": "Languages", @@ -28381,13 +30398,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "language": { "title": "Language", @@ -28401,8 +30415,20 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } } }, "patternProperties": { @@ -28410,21 +30436,347 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + } } }, "patternProperties": { @@ -28432,18 +30784,15 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Document": { "type": "object", @@ -28470,8 +30819,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "title": { "title": "Title", @@ -28479,8 +30827,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -28488,8 +30835,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "url": { "title": "URL", @@ -28526,8 +30872,7 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "languages": { "title": "Languages", @@ -28537,13 +30882,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "language": { "title": "Language", @@ -28557,8 +30899,20 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } } }, "patternProperties": { @@ -28566,18 +30920,15 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Budget": { "type": "object", @@ -28591,8 +30942,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Budget Source", @@ -28600,8 +30950,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "amount": { "title": "Amount", @@ -28931,8 +31280,7 @@ null ] } - }, - "minProperties": 1 + } }, "project": { "title": "Project title", @@ -28940,8 +31288,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "projectID": { "title": "Project identifier", @@ -28950,8 +31297,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "Linked budget information", @@ -28981,25 +31327,21 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Transaction": { "type": "object", @@ -29364,14 +31706,9 @@ null ] } - }, - "minProperties": 1 + } }, "payer": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": [ @@ -29388,8 +31725,7 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 + "title": "ID" }, "identifier": { "title": "Primary identifier", @@ -29402,8 +31738,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -29412,8 +31747,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -29421,8 +31755,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -29439,11 +31772,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -29460,8 +31791,7 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 + "description": "The street address. For example, 1600 Amphitheatre Pkwy." }, "locality": { "title": "Locality", @@ -29469,8 +31799,7 @@ "string", "null" ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 + "description": "The locality. For example, Mountain View." }, "region": { "title": "Region", @@ -29478,8 +31807,7 @@ "string", "null" ], - "description": "The region. For example, CA.", - "minLength": 1 + "description": "The region. For example, CA." }, "postalCode": { "title": "Postal code", @@ -29487,8 +31815,7 @@ "string", "null" ], - "description": "The postal code. For example, 94043.", - "minLength": 1 + "description": "The postal code. For example, 94043." }, "country": { "title": "Country code", @@ -29763,8 +32090,7 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, "patternProperties": { @@ -29776,11 +32102,9 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, - "minProperties": 1, "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." @@ -29803,8 +32127,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -29813,8 +32136,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -29822,8 +32144,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -29840,17 +32161,14 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." }, "contactPoint": { "title": "Contact point", @@ -29863,8 +32181,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", - "minLength": 1 + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." }, "email": { "title": "Email", @@ -29872,9 +32189,7 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" + "description": "The e-mail address of the contact point/person." }, "telephone": { "title": "Telephone", @@ -29882,8 +32197,7 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The telephone number of the contact point/person. This should include the international dialing code." }, "faxNumber": { "title": "Fax number", @@ -29891,8 +32205,7 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The fax number of the contact point/person. This should include the international dialing code." }, "url": { "title": "URL", @@ -29909,11 +32222,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -29922,14 +32233,9 @@ }, "type": "object", "description": "An organization reference for the organization from which the funds in this transaction originate.", - "title": "Payer", - "minProperties": 1 + "title": "Payer" }, "payee": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": [ @@ -29946,8 +32252,7 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 + "title": "ID" }, "identifier": { "title": "Primary identifier", @@ -29960,8 +32265,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -29970,8 +32274,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -29979,8 +32282,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -29997,11 +32299,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -30018,8 +32318,7 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 + "description": "The street address. For example, 1600 Amphitheatre Pkwy." }, "locality": { "title": "Locality", @@ -30027,8 +32326,7 @@ "string", "null" ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 + "description": "The locality. For example, Mountain View." }, "region": { "title": "Region", @@ -30036,8 +32334,7 @@ "string", "null" ], - "description": "The region. For example, CA.", - "minLength": 1 + "description": "The region. For example, CA." }, "postalCode": { "title": "Postal code", @@ -30045,8 +32342,7 @@ "string", "null" ], - "description": "The postal code. For example, 94043.", - "minLength": 1 + "description": "The postal code. For example, 94043." }, "country": { "title": "Country code", @@ -30321,8 +32617,7 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, "patternProperties": { @@ -30334,11 +32629,9 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, - "minProperties": 1, "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." @@ -30361,8 +32654,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -30371,8 +32663,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -30380,8 +32671,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -30398,17 +32688,14 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." }, "contactPoint": { "title": "Contact point", @@ -30421,8 +32708,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", - "minLength": 1 + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." }, "email": { "title": "Email", @@ -30430,9 +32716,7 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" + "description": "The e-mail address of the contact point/person." }, "telephone": { "title": "Telephone", @@ -30440,8 +32724,7 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The telephone number of the contact point/person. This should include the international dialing code." }, "faxNumber": { "title": "Fax number", @@ -30449,8 +32732,7 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The fax number of the contact point/person. This should include the international dialing code." }, "url": { "title": "URL", @@ -30467,11 +32749,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -30480,8 +32760,7 @@ }, "type": "object", "description": "An organization reference for the organization which receives the funds in this transaction.", - "title": "Payee", - "minProperties": 1 + "title": "Payee" }, "uri": { "title": "Linked spending information", @@ -30821,7 +33100,6 @@ ] } }, - "minProperties": 1, "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" @@ -30838,8 +33116,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -30848,8 +33125,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -30857,8 +33133,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -30875,11 +33150,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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" @@ -30896,8 +33169,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -30906,8 +33178,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -30915,8 +33186,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -30933,24 +33203,17 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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" } } - }, - "minProperties": 1 + } }, "OrganizationReference": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": [ @@ -30967,8 +33230,7 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 + "title": "ID" }, "identifier": { "title": "Primary identifier", @@ -30981,8 +33243,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -30991,8 +33252,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -31000,8 +33260,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -31018,11 +33277,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -31039,8 +33296,7 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 + "description": "The street address. For example, 1600 Amphitheatre Pkwy." }, "locality": { "title": "Locality", @@ -31048,8 +33304,7 @@ "string", "null" ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 + "description": "The locality. For example, Mountain View." }, "region": { "title": "Region", @@ -31057,8 +33312,7 @@ "string", "null" ], - "description": "The region. For example, CA.", - "minLength": 1 + "description": "The region. For example, CA." }, "postalCode": { "title": "Postal code", @@ -31066,8 +33320,7 @@ "string", "null" ], - "description": "The postal code. For example, 94043.", - "minLength": 1 + "description": "The postal code. For example, 94043." }, "country": { "title": "Country code", @@ -31342,8 +33595,7 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, "patternProperties": { @@ -31355,11 +33607,9 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, - "minProperties": 1, "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." @@ -31382,8 +33632,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -31392,8 +33641,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -31401,8 +33649,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -31419,17 +33666,14 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." }, "contactPoint": { "title": "Contact point", @@ -31442,8 +33686,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", - "minLength": 1 + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." }, "email": { "title": "Email", @@ -31451,9 +33694,7 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" + "description": "The e-mail address of the contact point/person." }, "telephone": { "title": "Telephone", @@ -31461,8 +33702,7 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The telephone number of the contact point/person. This should include the international dialing code." }, "faxNumber": { "title": "Fax number", @@ -31470,8 +33710,7 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The fax number of the contact point/person. This should include the international dialing code." }, "url": { "title": "URL", @@ -31488,11 +33727,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } }, - "minProperties": 1, "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." @@ -31501,17 +33738,12 @@ }, "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", - "title": "Organization reference", - "minProperties": 1 + "title": "Organization reference" }, "Organization": { "title": "Organization", "description": "An organization", "type": "object", - "required": [ - "id", - "name" - ], "properties": { "name": { "title": "Common name", @@ -31519,14 +33751,12 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "type": "string", "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the contracting process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", - "title": "ID", - "minLength": 1 + "title": "ID" }, "identifier": { "title": "Primary identifier", @@ -31539,8 +33769,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -31549,8 +33778,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -31558,8 +33786,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -31576,11 +33803,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "additionalIdentifiers": { "title": "Additional identifiers", @@ -31597,8 +33822,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -31607,8 +33831,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -31616,8 +33839,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -31634,15 +33856,12 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 + "wholeListMerge": true }, "address": { "title": "Address", @@ -31655,8 +33874,7 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 + "description": "The street address. For example, 1600 Amphitheatre Pkwy." }, "locality": { "title": "Locality", @@ -31664,8 +33882,7 @@ "string", "null" ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 + "description": "The locality. For example, Mountain View." }, "region": { "title": "Region", @@ -31673,8 +33890,7 @@ "string", "null" ], - "description": "The region. For example, CA.", - "minLength": 1 + "description": "The region. For example, CA." }, "postalCode": { "title": "Postal code", @@ -31682,8 +33898,7 @@ "string", "null" ], - "description": "The postal code. For example, 94043.", - "minLength": 1 + "description": "The postal code. For example, 94043." }, "country": { "title": "Country code", @@ -31958,8 +34173,7 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, "patternProperties": { @@ -31971,11 +34185,9 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } - }, - "minProperties": 1 + } }, "contactPoint": { "title": "Contact point", @@ -31988,8 +34200,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", - "minLength": 1 + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." }, "email": { "title": "Email", @@ -31997,9 +34208,7 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" + "description": "The e-mail address of the contact point/person." }, "telephone": { "title": "Telephone", @@ -32007,8 +34216,7 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The telephone number of the contact point/person. This should include the international dialing code." }, "faxNumber": { "title": "Fax number", @@ -32016,8 +34224,7 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The fax number of the contact point/person. This should include the international dialing code." }, "url": { "title": "URL", @@ -32034,11 +34241,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "roles": { "title": "Roles", @@ -32048,13 +34253,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "partyRole.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "details": { "type": [ @@ -32062,8 +34264,7 @@ "null" ], "description": "Additional classification information about organizations can be provided using organization details extensions that define particular fields and classification schemes.", - "title": "Details", - "minProperties": 1 + "title": "Details" } }, "patternProperties": { @@ -32071,11 +34272,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Item": { "title": "Item", @@ -32100,8 +34299,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "classification": { "title": "Classification", @@ -32116,8 +34314,7 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -32126,8 +34323,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -32135,8 +34331,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -32153,11 +34348,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "additionalClassifications": { "title": "Additional classifications", @@ -32176,8 +34369,7 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -32186,8 +34378,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -32195,8 +34386,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -32213,15 +34403,12 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 + "wholeListMerge": true }, "quantity": { "title": "Quantity", @@ -32244,8 +34431,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -32253,8 +34439,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "name": { "title": "Name", @@ -32262,8 +34447,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "value": { "title": "Value", @@ -32593,8 +34777,7 @@ null ] } - }, - "minProperties": 1 + } }, "uri": { "title": "URI", @@ -32623,8 +34806,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -32632,11 +34814,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "quantity": { "title": "Quantity", @@ -32646,8 +34826,7 @@ "null" ] } - }, - "minProperties": 1 + } } }, "patternProperties": { @@ -32655,11 +34834,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } } }, "patternProperties": { @@ -32667,11 +34844,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Amendment": { "title": "Amendment", @@ -32693,8 +34868,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -32702,8 +34876,7 @@ "string", "null" ], - "title": "ID", - "minLength": 1 + "title": "ID" }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -32711,8 +34884,7 @@ "string", "null" ], - "title": "Description", - "minLength": 1 + "title": "Description" }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -32720,8 +34892,7 @@ "string", "null" ], - "title": "Amended release (identifier)", - "minLength": 1 + "title": "Amended release (identifier)" }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -32729,8 +34900,7 @@ "string", "null" ], - "title": "Amending release (identifier)", - "minLength": 1 + "title": "Amending release (identifier)" }, "changes": { "title": "Amended fields", @@ -32742,8 +34912,7 @@ "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 + "type": "string" }, "former_value": { "title": "Former Value", @@ -32755,21 +34924,14 @@ "array", "object", "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 + ] } - }, - "minProperties": 1 + } }, "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" - }, - "minItems": 1, - "uniqueItems": true + } } }, "patternProperties": { @@ -32777,14 +34939,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1, - "required": [ - "id" - ] + } }, "Classification": { "title": "Classification", @@ -32799,8 +34956,7 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -32809,8 +34965,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -32818,8 +34973,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -32836,11 +34990,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Identifier": { "title": "Identifier", @@ -32853,8 +35005,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -32863,8 +35014,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -32872,8 +35022,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -32890,11 +35039,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Address": { "title": "Address", @@ -32907,8 +35054,7 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 + "description": "The street address. For example, 1600 Amphitheatre Pkwy." }, "locality": { "title": "Locality", @@ -32916,8 +35062,7 @@ "string", "null" ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 + "description": "The locality. For example, Mountain View." }, "region": { "title": "Region", @@ -32925,8 +35070,7 @@ "string", "null" ], - "description": "The region. For example, CA.", - "minLength": 1 + "description": "The region. For example, CA." }, "postalCode": { "title": "Postal code", @@ -32934,8 +35078,7 @@ "string", "null" ], - "description": "The postal code. For example, 94043.", - "minLength": 1 + "description": "The postal code. For example, 94043." }, "country": { "title": "Country code", @@ -33210,8 +35353,7 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, "patternProperties": { @@ -33223,11 +35365,9 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } - }, - "minProperties": 1 + } }, "ContactPoint": { "title": "Contact point", @@ -33240,8 +35380,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", - "minLength": 1 + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." }, "email": { "title": "Email", @@ -33249,9 +35388,7 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" + "description": "The e-mail address of the contact point/person." }, "telephone": { "title": "Telephone", @@ -33259,8 +35396,7 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The telephone number of the contact point/person. This should include the international dialing code." }, "faxNumber": { "title": "Fax number", @@ -33268,8 +35404,7 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The fax number of the contact point/person. This should include the international dialing code." }, "url": { "title": "URL", @@ -33286,11 +35421,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Value": { "title": "Value", @@ -33620,340 +35753,7 @@ null ] } - }, - "minProperties": 1 - }, - "UnitValue": { - "title": "Unit value", - "description": "The monetary value of a single unit.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 + } }, "Period": { "title": "Period", @@ -33993,11 +35793,9 @@ "type": [ "integer", "null" - ], - "minimum": 0 + ] } - }, - "minProperties": 1 + } }, "SimpleUnit": { "title": "Simple Unit", @@ -34012,8 +35810,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -34021,11 +35818,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "RelatedProcess": { "description": "A reference to a related contracting process: generally one preceding or following on from the current process.", @@ -34035,13 +35830,11 @@ "id": { "title": "Relationship ID", "description": "A local identifier for this relationship, unique within this array.", - "type": "string", - "minLength": 1 + "type": "string" }, "relationship": { "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "description": "The type of relationship, using the open [relatedProcess](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process) codelist.", "title": "Relationship", @@ -34050,9 +35843,7 @@ "null" ], "codelist": "relatedProcess.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "title": { "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", @@ -34060,8 +35851,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "scheme": { "title": "Scheme", @@ -34071,8 +35861,7 @@ "null" ], "codelist": "relatedProcessScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "identifier": { "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", @@ -34080,8 +35869,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "format": "uri", @@ -34092,11 +35880,7 @@ "null" ] } - }, - "minProperties": 1, - "required": [ - "id" - ] + } }, "Unit": { "title": "Unit", @@ -34111,8 +35895,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -34120,8 +35903,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "name": { "title": "Name", @@ -34129,8 +35911,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "value": { "title": "Value", @@ -34460,8 +36241,7 @@ null ] } - }, - "minProperties": 1 + } }, "uri": { "title": "URI", @@ -34490,8 +36270,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -34499,11 +36278,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "quantity": { "title": "Quantity", @@ -34513,8 +36290,7 @@ "null" ] } - }, - "minProperties": 1 + } } }, "patternProperties": { @@ -34522,11 +36298,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Link": { "title": "Link", @@ -34538,8 +36312,7 @@ "description": "The relationship with the related resource, using the open [link relation type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#link-relation-type) codelist.", "type": "string", "codelist": "linkRelationType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "href": { "title": "Link target", @@ -34547,9 +36320,7 @@ "type": "string", "format": "uri" } - }, - "minProperties": 1 + } } - }, - "minProperties": 1 + } } diff --git a/schema/record-package-schema.json b/schema/record-package-schema.json index 738ac76c6..ace4d1954 100644 --- a/schema/record-package-schema.json +++ b/schema/record-package-schema.json @@ -24,9 +24,7 @@ "items": { "type": "string", "format": "uri" - }, - "minItems": 1, - "uniqueItems": true + } }, "publisher": { "title": "Publisher", @@ -36,8 +34,7 @@ "name": { "title": "Name", "description": "The name of the organization or department responsible for publishing this OCDS data.", - "type": "string", - "minLength": 1 + "type": "string" }, "scheme": { "title": "Scheme", @@ -45,8 +42,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uid": { "title": "uid", @@ -54,8 +50,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -69,8 +64,7 @@ }, "required": [ "name" - ], - "minProperties": 1 + ] }, "license": { "title": "License", @@ -118,8 +112,7 @@ "items": { "$ref": "#/definitions/Record" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true } }, "required": [ @@ -138,8 +131,7 @@ "ocid": { "title": "Open contracting process identifier", "description": "A globally unique identifier for the contracting process that the record describes. Alternatively, this identifier can refer to a planning process or a single stage of a multiple stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", - "type": "string", - "minLength": 1 + "type": "string" }, "releases": { "title": "Releases", @@ -152,8 +144,7 @@ "items": { "$ref": "#/definitions/LinkedRelease" }, - "minItems": 1, - "uniqueItems": true + "minItems": 1 }, { "title": "Embedded releases", @@ -162,8 +153,7 @@ "items": { "$ref": "https://standard.open-contracting.org/schema/1__1__5/release-schema.json" }, - "minItems": 1, - "uniqueItems": true + "minItems": 1 } ] }, @@ -180,8 +170,7 @@ }, "required": [ "ocid" - ], - "minProperties": 1 + ] }, "LinkedRelease": { "title": "Linked release", @@ -230,16 +219,13 @@ }, "codelist": "releaseTag.csv", "openCodelist": false, - "minItems": 1, - "uniqueItems": true + "minItems": 1 } }, "required": [ "url", "date" - ], - "minProperties": 1 + ] } - }, - "minProperties": 1 + } } diff --git a/schema/release-package-schema.json b/schema/release-package-schema.json index 92b2f1f19..e4491c289 100644 --- a/schema/release-package-schema.json +++ b/schema/release-package-schema.json @@ -31,9 +31,7 @@ "items": { "type": "string", "format": "uri" - }, - "minItems": 1, - "uniqueItems": true + } }, "publishedDate": { "title": "Published date", @@ -48,8 +46,7 @@ "items": { "$ref": "https://standard.open-contracting.org/schema/1__1__5/release-schema.json" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "publisher": { "title": "Publisher", @@ -59,8 +56,7 @@ "name": { "title": "Name", "description": "The name of the organization or department responsible for publishing this OCDS data.", - "type": "string", - "minLength": 1 + "type": "string" }, "scheme": { "title": "Scheme", @@ -68,8 +64,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uid": { "title": "uid", @@ -77,8 +72,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -92,8 +86,7 @@ }, "required": [ "name" - ], - "minProperties": 1 + ] }, "license": { "title": "License", @@ -113,6 +106,5 @@ ], "format": "uri" } - }, - "minProperties": 1 + } } diff --git a/schema/release-schema.json b/schema/release-schema.json index a915ec53c..6c0d988a4 100644 --- a/schema/release-schema.json +++ b/schema/release-schema.json @@ -35,14 +35,12 @@ "description": "A tag labeling the release (for example, as corresponding to a stage of the contracting process), using the the open [releaseTag](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#release-tag) codelist. Codes outside the releaseTag codelist might indicate, for example, the notice or form to which the release corresponds, or the event that triggered the publication of the release. Planning processes must not use the 'tender' code, even if they use `tender` fields.", "type": "array", "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "releaseTag.csv", "openCodelist": true, "minItems": 1, - "omitWhenMerged": true, - "uniqueItems": true + "omitWhenMerged": true }, "initiationType": { "title": "Initiation type", @@ -65,8 +63,7 @@ "items": { "$ref": "#/definitions/Organization" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "buyer": { "title": "Buyer", @@ -90,8 +87,7 @@ "items": { "$ref": "#/definitions/Award" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "contracts": { "title": "Contracts", @@ -100,8 +96,7 @@ "items": { "$ref": "#/definitions/Contract" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "language": { "title": "Release language", @@ -111,8 +106,7 @@ "null" ], "codelist": "language.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "relatedProcesses": { "uniqueItems": true, @@ -121,19 +115,17 @@ }, "description": "The details of related processes: for example, if this process follows on from one or more other processes, represented under a separate ocid. This is commonly used to relate mini-competitions to their parent frameworks or individual tenders to a broader planning process.", "title": "Related processes", - "type": "array", - "minItems": 1 + "type": "array" }, "links": { "title": "Links", - "description": "Links to related resources. In a release, links relate to the individual release: for example, a link to a canonical version of the release in another OCDS publication. In a compiled release, links relate to the entire contracting process: for example, a link to a resource in a non-OCDS publication that represents the entire contracting process.", + "description": "Links to related resources. In a release, links relate to the individual release: for example, a link to a canonical version of the release in another OCDS publication. In a compiled release, links relate to the entire contracting process: for example, a link to a resource in a non-OCDS publication that represents the entire contracting process. For references to related processes, see the `relatedProcesses` array.", "type": "array", "items": { "$ref": "#/definitions/Link" }, "uniqueItems": true, - "omitWhenMerged": true, - "minItems": 1 + "omitWhenMerged": true } }, "required": [ @@ -155,8 +147,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "rationale": { "title": "Rationale", @@ -164,8 +155,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "budget": { "title": "Budget", @@ -178,9 +168,7 @@ "type": "array", "items": { "$ref": "#/definitions/Document" - }, - "minItems": 1, - "uniqueItems": true + } }, "milestones": { "title": "Planning milestones", @@ -188,9 +176,7 @@ "type": "array", "items": { "$ref": "#/definitions/Milestone" - }, - "minItems": 1, - "uniqueItems": true + } } }, "patternProperties": { @@ -198,11 +184,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Tender": { "title": "Tender", @@ -223,12 +207,11 @@ }, "title": { "title": "Tender title", - "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement.", + "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement. The title should be less than 150 characters in length.", "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Tender description", @@ -236,8 +219,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "status": { "title": "Tender status", @@ -265,8 +247,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "procuringEntity": { "title": "Procuring entity", @@ -280,8 +261,7 @@ "items": { "$ref": "#/definitions/Item" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "value": { "title": "Value", @@ -321,8 +301,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "procurementMethodRationale": { "title": "Procurement method rationale", @@ -330,8 +309,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "mainProcurementCategory": { "title": "Main procurement category", @@ -357,13 +335,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "extendedProcurementCategory.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "awardCriteria": { "title": "Award criteria", @@ -373,8 +348,7 @@ "null" ], "codelist": "awardCriteria.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "awardCriteriaDetails": { "title": "Award criteria details", @@ -382,8 +356,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "submissionMethod": { "title": "Submission method", @@ -393,26 +366,22 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "submissionMethod.csv", "openCodelist": true, "deprecated": { "description": "This field is deprecated, because all codes from the submissionMethod codelist are deprecated. Refer to the Deprecation note of individual codes.", "deprecatedVersion": "1.2" - }, - "minItems": 1, - "uniqueItems": true + } }, "submissionMethodDetails": { "title": "Submission method details", - "description": "Any detailed or further information on the submission method. This can include the address, e-mail address or online service to which bids are submitted, and any special requirements to be followed for submissions.", + "description": "Information about the methods by which bids are submitted. This can include the address, e-mail address or online service to which bids are submitted, and any special requirements to be followed for submissions. More structured information can be provided using the submission terms extension.", "type": [ "string", "null" - ], - "minLength": 1 + ] }, "datePublished": { "description": "The date on which the tender was published.", @@ -451,8 +420,7 @@ "deprecated": { "description": "This field had unclear semantics and used ambiguous terms, and is deprecated in favor of exclusionGrounds.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } }, "exclusionGrounds": { "title": "Exclusion grounds", @@ -460,8 +428,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "selectionCriteria": { "title": "Selection criteria", @@ -469,14 +436,18 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "awardPeriod": { "title": "Evaluation and award period", "description": "The period for decision making regarding the contract award. The end date should be the date on which an award decision is due to be finalized. The start date may be used to indicate the start of an evaluation period.", "$ref": "#/definitions/Period" }, + "standstillPeriod": { + "title": "Standstill period", + "description": "The period before the contract signature during which the award decision can be challenged. This period typically starts on the date on which the tenderers are informed about the award decision.", + "$ref": "#/definitions/Period" + }, "contractPeriod": { "description": "The period over which the contract is estimated or required to be active. If the tender does not specify explicit dates, the duration field may be used.", "title": "Contract period", @@ -488,8 +459,7 @@ "type": [ "integer", "null" - ], - "minimum": 0 + ] }, "tenderers": { "title": "Tenderers", @@ -498,8 +468,7 @@ "items": { "$ref": "#/definitions/OrganizationReference" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "documents": { "title": "Documents", @@ -507,9 +476,7 @@ "type": "array", "items": { "$ref": "#/definitions/Document" - }, - "minItems": 1, - "uniqueItems": true + } }, "milestones": { "title": "Milestones", @@ -517,9 +484,7 @@ "type": "array", "items": { "$ref": "#/definitions/Milestone" - }, - "minItems": 1, - "uniqueItems": true + } }, "amendments": { "description": "A tender amendment is a formal change to the tender, and generally involves the publication of a new tender notice/release. The rationale and a description of the changes made can be provided here.", @@ -527,9 +492,7 @@ "title": "Amendments", "items": { "$ref": "#/definitions/Amendment" - }, - "minItems": 1, - "uniqueItems": true + } }, "amendment": { "title": "Amendment", @@ -546,53 +509,45 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(selectionCriteria_(((([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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Award": { "title": "Award", @@ -617,8 +572,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -626,8 +580,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "status": { "title": "Award status", @@ -652,8 +605,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "date": { "title": "Award date", @@ -686,8 +638,7 @@ "items": { "$ref": "#/definitions/OrganizationReference" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "items": { "title": "Items awarded", @@ -711,8 +662,7 @@ "items": { "$ref": "#/definitions/Document" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "amendments": { "description": "An award amendment is a formal change to the details of the award, and generally involves the publication of a new award notice/release. The rationale and a description of the changes made can be provided here.", @@ -720,9 +670,7 @@ "title": "Amendments", "items": { "$ref": "#/definitions/Amendment" - }, - "minItems": 1, - "uniqueItems": true + } }, "amendment": { "title": "Amendment", @@ -739,18 +687,15 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Contract": { "type": "object", @@ -785,8 +730,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Contract description", @@ -794,8 +738,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "status": { "title": "Contract status", @@ -822,8 +765,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "dateSigned": { "title": "Date concluded", @@ -871,8 +813,7 @@ "items": { "$ref": "#/definitions/Document" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "implementation": { "title": "Implementation", @@ -886,8 +827,7 @@ }, "description": "The details of related processes: for example, if this process is followed by one or more contracting processes, represented under a separate ocid. This is commonly used to refer to subcontracts and to renewal or replacement processes for this contract.", "title": "Related processes", - "type": "array", - "minItems": 1 + "type": "array" }, "milestones": { "title": "Contract milestones", @@ -895,9 +835,7 @@ "type": "array", "items": { "$ref": "#/definitions/Milestone" - }, - "minItems": 1, - "uniqueItems": true + } }, "amendments": { "description": "A contract amendment is a formal change to, or extension of, a contract, and generally involves the publication of a new contract signature notice/release, or some other documents detailing the change. The rationale and a description of the changes made can be provided here.", @@ -905,9 +843,7 @@ "title": "Amendments", "items": { "$ref": "#/definitions/Amendment" - }, - "minItems": 1, - "uniqueItems": true + } }, "amendment": { "title": "Amendment", @@ -924,18 +860,15 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Implementation": { "type": "object", @@ -949,8 +882,7 @@ "items": { "$ref": "#/definitions/Transaction" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "milestones": { "title": "Milestones", @@ -959,8 +891,7 @@ "items": { "$ref": "#/definitions/Milestone" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "documents": { "title": "Documents", @@ -969,11 +900,9 @@ "items": { "$ref": "#/definitions/Document" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true } - }, - "minProperties": 1 + } }, "Milestone": { "title": "Milestone", @@ -998,8 +927,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "type": { "title": "Milestone type", @@ -1009,8 +937,7 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "description": { "title": "Description", @@ -1018,17 +945,24 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "code": { "title": "Milestone code", "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ] + }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", "type": [ "string", "null" ], - "minLength": 1 + "format": "date-time" }, "dueDate": { "title": "Due date", @@ -1085,8 +1019,12 @@ "items": { "$ref": "#/definitions/Document" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "$ref": "#/definitions/Value" } }, "patternProperties": { @@ -1094,18 +1032,15 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Document": { "type": "object", @@ -1132,8 +1067,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "title": { "title": "Title", @@ -1141,8 +1075,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -1150,8 +1083,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "url": { "title": "URL", @@ -1188,8 +1120,7 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "languages": { "title": "Languages", @@ -1199,13 +1130,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "language": { "title": "Language", @@ -1219,8 +1147,20 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ] + } } }, "patternProperties": { @@ -1228,18 +1168,15 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Budget": { "type": "object", @@ -1253,8 +1190,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Budget Source", @@ -1262,8 +1198,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "amount": { "title": "Amount", @@ -1276,8 +1211,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "projectID": { "title": "Project identifier", @@ -1286,8 +1220,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "Linked budget information", @@ -1317,25 +1250,21 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Transaction": { "type": "object", @@ -1423,14 +1352,9 @@ "deprecatedVersion": "1.1" } } - }, - "minProperties": 1 + } }, "OrganizationReference": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": [ @@ -1447,8 +1371,7 @@ "integer" ], "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 + "title": "ID" }, "identifier": { "title": "Primary identifier", @@ -1480,8 +1403,7 @@ "title": "Additional identifiers", "uniqueItems": true, "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 + "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier." }, "contactPoint": { "deprecated": { @@ -1495,17 +1417,12 @@ }, "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", - "title": "Organization reference", - "minProperties": 1 + "title": "Organization reference" }, "Organization": { "title": "Organization", "description": "An organization", "type": "object", - "required": [ - "id", - "name" - ], "properties": { "name": { "title": "Common name", @@ -1513,14 +1430,12 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "type": "string", "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the contracting process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", - "title": "ID", - "minLength": 1 + "title": "ID" }, "identifier": { "title": "Primary identifier", @@ -1535,8 +1450,7 @@ "$ref": "#/definitions/Identifier" }, "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 + "wholeListMerge": true }, "address": { "title": "Address", @@ -1556,13 +1470,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "partyRole.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "details": { "type": [ @@ -1570,8 +1481,7 @@ "null" ], "description": "Additional classification information about organizations can be provided using organization details extensions that define particular fields and classification schemes.", - "title": "Details", - "minProperties": 1 + "title": "Details" } }, "patternProperties": { @@ -1579,11 +1489,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Item": { "title": "Item", @@ -1608,8 +1516,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "classification": { "title": "Classification", @@ -1624,8 +1531,7 @@ "$ref": "#/definitions/Classification" }, "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 + "wholeListMerge": true }, "quantity": { "title": "Quantity", @@ -1646,11 +1552,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Amendment": { "title": "Amendment", @@ -1672,8 +1576,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "description": "An identifier for this amendment: often the amendment number", @@ -1681,8 +1584,7 @@ "string", "null" ], - "title": "ID", - "minLength": 1 + "title": "ID" }, "description": { "description": "A free text, or semi-structured, description of the changes made in this amendment.", @@ -1690,8 +1592,7 @@ "string", "null" ], - "title": "Description", - "minLength": 1 + "title": "Description" }, "amendsReleaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", @@ -1699,8 +1600,7 @@ "string", "null" ], - "title": "Amended release (identifier)", - "minLength": 1 + "title": "Amended release (identifier)" }, "releaseID": { "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", @@ -1708,8 +1608,7 @@ "string", "null" ], - "title": "Amending release (identifier)", - "minLength": 1 + "title": "Amending release (identifier)" }, "changes": { "title": "Amended fields", @@ -1721,8 +1620,7 @@ "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 + "type": "string" }, "former_value": { "title": "Former Value", @@ -1734,21 +1632,14 @@ "array", "object", "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 + ] } - }, - "minProperties": 1 + } }, "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" - }, - "minItems": 1, - "uniqueItems": true + } } }, "patternProperties": { @@ -1756,14 +1647,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1, - "required": [ - "id" - ] + } }, "Classification": { "title": "Classification", @@ -1778,8 +1664,7 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -1788,8 +1673,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "title": "Description", @@ -1797,8 +1681,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -1815,11 +1698,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Identifier": { "title": "Identifier", @@ -1832,8 +1713,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "title": "ID", @@ -1842,8 +1722,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "title": "Legal Name", @@ -1851,8 +1730,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -1869,11 +1747,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Address": { "title": "Address", @@ -1886,8 +1762,7 @@ "string", "null" ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 + "description": "The street address. For example, 1600 Amphitheatre Pkwy." }, "locality": { "title": "Locality", @@ -1895,8 +1770,7 @@ "string", "null" ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 + "description": "The locality. For example, Mountain View." }, "region": { "title": "Region", @@ -1904,8 +1778,7 @@ "string", "null" ], - "description": "The region. For example, CA.", - "minLength": 1 + "description": "The region. For example, CA." }, "postalCode": { "title": "Postal code", @@ -1913,8 +1786,7 @@ "string", "null" ], - "description": "The postal code. For example, 94043.", - "minLength": 1 + "description": "The postal code. For example, 94043." }, "country": { "title": "Country code", @@ -2189,8 +2061,7 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } }, "patternProperties": { @@ -2202,11 +2073,9 @@ "deprecated": { "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } } - }, - "minProperties": 1 + } }, "ContactPoint": { "title": "Contact point", @@ -2219,8 +2088,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", - "minLength": 1 + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." }, "email": { "title": "Email", @@ -2228,9 +2096,7 @@ "string", "null" ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" + "description": "The e-mail address of the contact point/person." }, "telephone": { "title": "Telephone", @@ -2238,8 +2104,7 @@ "string", "null" ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The telephone number of the contact point/person. This should include the international dialing code." }, "faxNumber": { "title": "Fax number", @@ -2247,8 +2112,7 @@ "string", "null" ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 + "description": "The fax number of the contact point/person. This should include the international dialing code." }, "url": { "title": "URL", @@ -2265,11 +2129,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Value": { "title": "Value", @@ -2599,340 +2461,7 @@ null ] } - }, - "minProperties": 1 - }, - "UnitValue": { - "title": "Unit value", - "description": "The monetary value of a single unit.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 + } }, "Period": { "title": "Period", @@ -2972,11 +2501,9 @@ "type": [ "integer", "null" - ], - "minimum": 0 + ] } - }, - "minProperties": 1 + } }, "SimpleUnit": { "title": "Simple Unit", @@ -2991,8 +2518,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -3000,11 +2526,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "RelatedProcess": { "description": "A reference to a related contracting process: generally one preceding or following on from the current process.", @@ -3014,13 +2538,11 @@ "id": { "title": "Relationship ID", "description": "A local identifier for this relationship, unique within this array.", - "type": "string", - "minLength": 1 + "type": "string" }, "relationship": { "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "description": "The type of relationship, using the open [relatedProcess](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process) codelist.", "title": "Relationship", @@ -3029,9 +2551,7 @@ "null" ], "codelist": "relatedProcess.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "title": { "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", @@ -3039,8 +2559,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "scheme": { "title": "Scheme", @@ -3050,8 +2569,7 @@ "null" ], "codelist": "relatedProcessScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "identifier": { "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", @@ -3059,8 +2577,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "format": "uri", @@ -3071,11 +2588,7 @@ "null" ] } - }, - "minProperties": 1, - "required": [ - "id" - ] + } }, "Unit": { "title": "Unit", @@ -3090,8 +2603,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "title": "ID", @@ -3099,8 +2611,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "name": { "title": "Name", @@ -3108,8 +2619,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "value": { "title": "Value", @@ -3143,8 +2653,7 @@ "null" ] } - }, - "minProperties": 1 + } } }, "patternProperties": { @@ -3152,11 +2661,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Link": { "title": "Link", @@ -3168,8 +2675,7 @@ "description": "The relationship with the related resource, using the open [link relation type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#link-relation-type) codelist.", "type": "string", "codelist": "linkRelationType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "href": { "title": "Link target", @@ -3177,9 +2683,7 @@ "type": "string", "format": "uri" } - }, - "minProperties": 1 + } } - }, - "minProperties": 1 + } } diff --git a/schema/versioned-release-validation-schema.json b/schema/versioned-release-validation-schema.json index 3639853ef..1c3e2c016 100644 --- a/schema/versioned-release-validation-schema.json +++ b/schema/versioned-release-validation-schema.json @@ -46,8 +46,7 @@ "items": { "$ref": "#/definitions/Organization" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "buyer": { "$ref": "#/definitions/OrganizationReferenceVersionedId" @@ -63,16 +62,14 @@ "items": { "$ref": "#/definitions/Award" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "contracts": { "type": "array", "items": { "$ref": "#/definitions/Contract" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "language": { "type": "array", @@ -92,8 +89,7 @@ "null" ], "codelist": "language.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "releaseTag": { "type": "array", @@ -109,8 +105,7 @@ "items": { "$ref": "#/definitions/RelatedProcess" }, - "type": "array", - "minItems": 1 + "type": "array" }, "ocid": { "type": "string", @@ -126,60 +121,10 @@ "type": "object", "properties": { "id": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "rationale": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "budget": { "$ref": "#/definitions/Budget" @@ -188,17 +133,13 @@ "type": "array", "items": { "$ref": "#/definitions/Document" - }, - "minItems": 1, - "uniqueItems": true + } }, "milestones": { "type": "array", "items": { "$ref": "#/definitions/Milestone" - }, - "minItems": 1, - "uniqueItems": true + } } }, "patternProperties": { @@ -206,11 +147,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Tender": { "type": "object", @@ -247,60 +186,10 @@ } }, "title": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "description": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "status": { "type": "array", @@ -342,32 +231,7 @@ } }, "statusDetails": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "procuringEntity": { "$ref": "#/definitions/OrganizationReferenceVersionedId" @@ -377,8 +241,7 @@ "items": { "$ref": "#/definitions/Item" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "value": { "$ref": "#/definitions/Value" @@ -426,6 +289,12 @@ } }, "procurementMethodDetails": { + "$ref": "#/definitions/StringNullVersioned" + }, + "procurementMethodRationale": { + "$ref": "#/definitions/StringNullVersioned" + }, + "mainProcurementCategory": { "type": "array", "items": { "type": "object", @@ -442,7 +311,14 @@ "string", "null" ], - "minLength": 1 + "codelist": "procurementCategory.csv", + "openCodelist": false, + "enum": [ + "goods", + "works", + "services", + null + ] }, "releaseTag": { "type": "array", @@ -453,7 +329,7 @@ } } }, - "procurementMethodRationale": { + "additionalProcurementCategories": { "type": "array", "items": { "type": "object", @@ -467,10 +343,14 @@ }, "value": { "type": [ - "string", + "array", "null" ], - "minLength": 1 + "items": { + "type": "string" + }, + "codelist": "extendedProcurementCategory.csv", + "openCodelist": true }, "releaseTag": { "type": "array", @@ -481,7 +361,7 @@ } } }, - "mainProcurementCategory": { + "awardCriteria": { "type": "array", "items": { "type": "object", @@ -498,14 +378,8 @@ "string", "null" ], - "codelist": "procurementCategory.csv", - "openCodelist": false, - "enum": [ - "goods", - "works", - "services", - null - ] + "codelist": "awardCriteria.csv", + "openCodelist": true }, "releaseTag": { "type": "array", @@ -516,7 +390,10 @@ } } }, - "additionalProcurementCategories": { + "awardCriteriaDetails": { + "$ref": "#/definitions/StringNullVersioned" + }, + "submissionMethod": { "type": "array", "items": { "type": "object", @@ -534,13 +411,14 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, - "codelist": "extendedProcurementCategory.csv", + "codelist": "submissionMethod.csv", "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "deprecated": { + "description": "This field is deprecated, because all codes from the submissionMethod codelist are deprecated. Refer to the Deprecation note of individual codes.", + "deprecatedVersion": "1.2" + } }, "releaseTag": { "type": "array", @@ -551,7 +429,19 @@ } } }, - "awardCriteria": { + "submissionMethodDetails": { + "$ref": "#/definitions/StringNullVersioned" + }, + "datePublished": { + "$ref": "#/definitions/StringNullDateTimeVersioned" + }, + "tenderPeriod": { + "$ref": "#/definitions/Period" + }, + "enquiryPeriod": { + "$ref": "#/definitions/Period" + }, + "hasEnquiries": { "type": "array", "items": { "type": "object", @@ -565,12 +455,9 @@ }, "value": { "type": [ - "string", + "boolean", "null" - ], - "codelist": "awardCriteria.csv", - "openCodelist": true, - "minLength": 1 + ] }, "releaseTag": { "type": "array", @@ -581,7 +468,7 @@ } } }, - "awardCriteriaDetails": { + "eligibilityCriteria": { "type": "array", "items": { "type": "object", @@ -598,7 +485,10 @@ "string", "null" ], - "minLength": 1 + "deprecated": { + "description": "This field had unclear semantics and used ambiguous terms, and is deprecated in favor of exclusionGrounds.", + "deprecatedVersion": "1.2" + } }, "releaseTag": { "type": "array", @@ -609,7 +499,22 @@ } } }, - "submissionMethod": { + "exclusionGrounds": { + "$ref": "#/definitions/StringNullVersioned" + }, + "selectionCriteria": { + "$ref": "#/definitions/StringNullVersioned" + }, + "awardPeriod": { + "$ref": "#/definitions/Period" + }, + "standstillPeriod": { + "$ref": "#/definitions/Period" + }, + "contractPeriod": { + "$ref": "#/definitions/Period" + }, + "numberOfTenderers": { "type": "array", "items": { "type": "object", @@ -623,21 +528,9 @@ }, "value": { "type": [ - "array", + "integer", "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "submissionMethod.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated, because all codes from the submissionMethod codelist are deprecated. Refer to the Deprecation note of individual codes.", - "deprecatedVersion": "1.2" - }, - "minItems": 1, - "uniqueItems": true + ] }, "releaseTag": { "type": "array", @@ -648,223 +541,30 @@ } } }, - "submissionMethodDetails": { - "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" - } - } - } - } - }, - "datePublished": { - "$ref": "#/definitions/StringNullDateTimeVersioned" - }, - "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": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": [ - "string", - "null" - ], - "deprecated": { - "description": "This field had unclear semantics and used ambiguous terms, and is deprecated in favor of exclusionGrounds.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "exclusionGrounds": { - "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" - } - } - } - } - }, - "selectionCriteria": { - "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" - } - } - } - } - }, - "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" - ], - "minimum": 0 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "tenderers": { + "tenderers": { "type": "array", "items": { "$ref": "#/definitions/OrganizationReference" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "documents": { "type": "array", "items": { "$ref": "#/definitions/Document" - }, - "minItems": 1, - "uniqueItems": true + } }, "milestones": { "type": "array", "items": { "$ref": "#/definitions/Milestone" - }, - "minItems": 1, - "uniqueItems": true + } }, "amendments": { "type": "array", "items": { "$ref": "#/definitions/Amendment" - }, - "minItems": 1, - "uniqueItems": true + } }, "amendment": { "$ref": "#/definitions/Amendment", @@ -879,53 +579,45 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(selectionCriteria_(((([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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Award": { "type": "object", @@ -941,34 +633,12 @@ "minLength": 1 }, "title": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "description": { + "$ref": "#/definitions/StringNullVersioned" + }, + "status": { "type": "array", "items": { "type": "object", @@ -985,43 +655,15 @@ "string", "null" ], - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "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 + "enum": [ + "pending", + "active", + "cancelled", + "unsuccessful", + null + ], + "codelist": "awardStatus.csv", + "openCodelist": false }, "releaseTag": { "type": "array", @@ -1033,32 +675,7 @@ } }, "statusDetails": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "date": { "$ref": "#/definitions/StringNullDateTimeVersioned" @@ -1077,8 +694,7 @@ "items": { "$ref": "#/definitions/OrganizationReference" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "items": { "type": "array", @@ -1096,16 +712,13 @@ "items": { "$ref": "#/definitions/Document" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "amendments": { "type": "array", "items": { "$ref": "#/definitions/Amendment" - }, - "minItems": 1, - "uniqueItems": true + } }, "amendment": { "$ref": "#/definitions/Amendment", @@ -1120,18 +733,15 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Contract": { "type": "object", @@ -1176,60 +786,10 @@ } }, "title": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "description": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "status": { "type": "array", @@ -1270,32 +830,7 @@ } }, "statusDetails": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "dateSigned": { "$ref": "#/definitions/StringNullDateTimeVersioned" @@ -1325,8 +860,7 @@ "items": { "$ref": "#/definitions/Document" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "implementation": { "$ref": "#/definitions/Implementation" @@ -1336,24 +870,19 @@ "items": { "$ref": "#/definitions/RelatedProcess" }, - "type": "array", - "minItems": 1 + "type": "array" }, "milestones": { "type": "array", "items": { "$ref": "#/definitions/Milestone" - }, - "minItems": 1, - "uniqueItems": true + } }, "amendments": { "type": "array", "items": { "$ref": "#/definitions/Amendment" - }, - "minItems": 1, - "uniqueItems": true + } }, "amendment": { "$ref": "#/definitions/Amendment", @@ -1368,18 +897,15 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Implementation": { "type": "object", @@ -1389,27 +915,23 @@ "items": { "$ref": "#/definitions/Transaction" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "milestones": { "type": "array", "items": { "$ref": "#/definitions/Milestone" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "documents": { "type": "array", "items": { "$ref": "#/definitions/Document" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true } - }, - "minProperties": 1 + } }, "Milestone": { "type": "object", @@ -1425,32 +947,7 @@ "minLength": 1 }, "title": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "type": { "type": "array", @@ -1470,8 +967,7 @@ "null" ], "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "releaseTag": { "type": "array", @@ -1483,60 +979,13 @@ } }, "description": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "code": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" + }, + "dueAfterDate": { + "$ref": "#/definitions/StringNullDateTimeVersioned" }, "dueDate": { "$ref": "#/definitions/StringNullDateTimeVersioned" @@ -1592,8 +1041,10 @@ "items": { "$ref": "#/definitions/Document" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true + }, + "value": { + "$ref": "#/definitions/Value" } }, "patternProperties": { @@ -1601,18 +1052,15 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Document": { "type": "object", @@ -1645,8 +1093,7 @@ "null" ], "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "releaseTag": { "type": "array", @@ -1658,60 +1105,10 @@ } }, "title": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "description": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "url": { "$ref": "#/definitions/StringNullUriVersioned" @@ -1740,8 +1137,7 @@ "null" ], "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "releaseTag": { "type": "array", @@ -1770,13 +1166,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "releaseTag": { "type": "array", @@ -1809,8 +1202,7 @@ "deprecated": { "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", "deprecatedVersion": "1.2" - }, - "minLength": 1 + } }, "releaseTag": { "type": "array", @@ -1820,30 +1212,8 @@ } } } - } - }, - "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" - ], - "minLength": 1 }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Budget": { - "type": "object", - "properties": { - "id": { + "relatedItems": { "type": "array", "items": { "type": "object", @@ -1857,11 +1227,14 @@ }, "value": { "type": [ - "string", - "integer", + "array", "null" ], - "minLength": 1 + "items": { + "type": [ + "string" + ] + } }, "releaseTag": { "type": "array", @@ -1871,8 +1244,27 @@ } } } + } + }, + "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": { + "^(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", @@ -1887,9 +1279,9 @@ "value": { "type": [ "string", + "integer", "null" - ], - "minLength": 1 + ] }, "releaseTag": { "type": "array", @@ -1900,36 +1292,14 @@ } } }, + "description": { + "$ref": "#/definitions/StringNullVersioned" + }, "amount": { "$ref": "#/definitions/Value" }, "project": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "projectID": { "type": "array", @@ -1948,8 +1318,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "releaseTag": { "type": "array", @@ -2001,25 +1370,21 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] }, "^(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" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Transaction": { "type": "object", @@ -2073,14 +1438,9 @@ "deprecatedVersion": "1.1" } } - }, - "minProperties": 1 + } }, "OrganizationReference": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": "array", @@ -2114,8 +1474,7 @@ "type": [ "string", "integer" - ], - "minLength": 1 + ] }, "identifier": { "deprecated": { @@ -2152,8 +1511,7 @@ "items": { "$ref": "#/definitions/IdentifierUnversioned" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "releaseTag": { "type": "array", @@ -2172,47 +1530,16 @@ "$ref": "#/definitions/ContactPoint" } }, - "type": "object", - "minProperties": 1 + "type": "object" }, "Organization": { "type": "object", - "required": [ - "id", - "name" - ], "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "id": { - "type": "string", - "minLength": 1 + "type": "string" }, "identifier": { "$ref": "#/definitions/Identifier" @@ -2234,8 +1561,7 @@ "items": { "$ref": "#/definitions/IdentifierUnversioned" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "releaseTag": { "type": "array", @@ -2270,13 +1596,10 @@ "null" ], "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "codelist": "partyRole.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "releaseTag": { "type": "array", @@ -2303,8 +1626,7 @@ "type": [ "object", "null" - ], - "minProperties": 1 + ] }, "releaseTag": { "type": "array", @@ -2321,11 +1643,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Item": { "type": "object", @@ -2341,32 +1661,7 @@ "minLength": 1 }, "description": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "classification": { "$ref": "#/definitions/Classification" @@ -2388,8 +1683,7 @@ "items": { "$ref": "#/definitions/ClassificationUnversioned" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "releaseTag": { "type": "array", @@ -2436,11 +1730,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Amendment": { "type": "object", @@ -2449,133 +1741,31 @@ "$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": { - "releaseDate": { - "format": "date-time", + "property": { "type": "string" }, - "releaseID": { - "type": "string" - }, - "value": { - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "id": { - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "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" - } - } - } - } - }, - "amendsReleaseID": { - "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" - } - } - } - } - }, - "releaseID": { - "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" - } - } - } - } - }, - "changes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "property": { - "type": "string", - "minLength": 1 - }, "former_value": { "type": [ "string", @@ -2584,21 +1774,14 @@ "array", "object", "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 + ] } - }, - "minProperties": 1 + } }, "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" - }, - "minItems": 1, - "uniqueItems": true + } } }, "patternProperties": { @@ -2606,14 +1789,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1, - "required": [ - "id" - ] + } }, "Classification": { "type": "object", @@ -2636,8 +1814,7 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "releaseTag": { "type": "array", @@ -2665,8 +1842,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "releaseTag": { "type": "array", @@ -2678,32 +1854,7 @@ } }, "description": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "uri": { "$ref": "#/definitions/StringNullUriVersioned" @@ -2714,42 +1865,15 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Identifier": { "type": "object", "properties": { "scheme": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "id": { "type": "array", @@ -2768,8 +1892,7 @@ "string", "integer", "null" - ], - "minLength": 1 + ] }, "releaseTag": { "type": "array", @@ -2781,32 +1904,7 @@ } }, "legalName": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "uri": { "$ref": "#/definitions/StringNullUriVersioned" @@ -2817,128 +1915,26 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Address": { "type": "object", "properties": { "streetAddress": { - "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" - } - } - } - } - }, - "locality": { - "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" - } - } - } - } - }, - "region": { - "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" - } - } - } - } - }, - "postalCode": { - "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" - } - } - } - } - }, - "country": { + "$ref": "#/definitions/StringNullVersioned" + }, + "locality": { + "$ref": "#/definitions/StringNullVersioned" + }, + "region": { + "$ref": "#/definitions/StringNullVersioned" + }, + "postalCode": { + "$ref": "#/definitions/StringNullVersioned" + }, + "country": { "type": "array", "items": { "type": "object", @@ -3213,546 +2209,34 @@ }, "releaseTag": { "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "countryName": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": [ - "string", - "null" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1 - }, - "ContactPoint": { - "type": "object", - "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" - } - } - } - } - }, - "email": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": [ - "string", - "null" - ], - "minLength": 1, - "format": "email" - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "telephone": { - "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" - } - } - } - } - }, - "faxNumber": { - "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" - } - } - } - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "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 - ] + "items": { + "type": "string" + } + } + } + } + }, + "countryName": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "string", + "null" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + } }, "releaseTag": { "type": "array", @@ -3764,9 +2248,48 @@ } } }, - "minProperties": 1 + "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" + ], + "deprecated": { + "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", + "deprecatedVersion": "1.2" + } + } + } + }, + "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" + ] + } + } }, - "UnitValue": { + "Value": { "type": "object", "properties": { "amount": { @@ -3785,8 +2308,7 @@ "type": [ "number", "null" - ], - "minimum": 0 + ] }, "releaseTag": { "type": "array", @@ -4131,8 +2653,7 @@ } } } - }, - "minProperties": 1 + } }, "Period": { "type": "object", @@ -4162,8 +2683,7 @@ "type": [ "integer", "null" - ], - "minimum": 0 + ] }, "releaseTag": { "type": "array", @@ -4174,8 +2694,7 @@ } } } - }, - "minProperties": 1 + } }, "SimpleUnit": { "type": "object", @@ -4198,8 +2717,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "releaseTag": { "type": "array", @@ -4211,42 +2729,15 @@ } }, "id": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" } - }, - "minProperties": 1 + } }, "RelatedProcess": { "type": "object", "properties": { "id": { - "type": "string", - "minLength": 1 + "type": "string" }, "relationship": { "type": "array", @@ -4262,17 +2753,14 @@ }, "value": { "items": { - "type": "string", - "minLength": 1 + "type": "string" }, "type": [ "array", "null" ], "codelist": "relatedProcess.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true + "openCodelist": true }, "releaseTag": { "type": "array", @@ -4284,32 +2772,7 @@ } }, "title": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "scheme": { "type": "array", @@ -4329,8 +2792,7 @@ "null" ], "codelist": "relatedProcessScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "releaseTag": { "type": "array", @@ -4342,41 +2804,12 @@ } }, "identifier": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "uri": { "$ref": "#/definitions/StringNullUriVersioned" } - }, - "minProperties": 1, - "required": [ - "id" - ] + } }, "Unit": { "type": "object", @@ -4399,8 +2832,7 @@ "null" ], "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "releaseTag": { "type": "array", @@ -4412,60 +2844,10 @@ } }, "id": { - "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "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" - } - } - } - } + "$ref": "#/definitions/StringNullVersioned" }, "value": { "$ref": "#/definitions/Value" @@ -4506,8 +2888,7 @@ } } } - }, - "minProperties": 1 + } } }, "patternProperties": { @@ -4515,11 +2896,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "Link": { "type": "object", @@ -4539,8 +2918,7 @@ "value": { "type": "string", "codelist": "linkRelationType.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "releaseTag": { "type": "array", @@ -4576,8 +2954,7 @@ } } } - }, - "minProperties": 1 + } }, "StringNullUriVersioned": { "type": "array", @@ -4669,23 +3046,20 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "id": { "type": [ "string", "integer", "null" - ], - "minLength": 1 + ] }, "legalName": { "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "type": [ @@ -4700,17 +3074,11 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } }, "OrganizationReferenceVersionedId": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": "array", @@ -4756,8 +3124,7 @@ "type": [ "string", "integer" - ], - "minLength": 1 + ] }, "releaseTag": { "type": "array", @@ -4803,8 +3170,7 @@ "items": { "$ref": "#/definitions/IdentifierUnversioned" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "releaseTag": { "type": "array", @@ -4823,8 +3189,7 @@ "$ref": "#/definitions/ContactPoint" } }, - "type": "object", - "minProperties": 1 + "type": "object" }, "ClassificationUnversioned": { "type": "object", @@ -4835,23 +3200,20 @@ "null" ], "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 + "openCodelist": true }, "id": { "type": [ "string", "integer", "null" - ], - "minLength": 1 + ] }, "description": { "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "type": [ @@ -4866,12 +3228,9 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] } - }, - "minProperties": 1 + } } - }, - "minProperties": 1 + } } From 4476d7284dd65a0461160df4f47a90edeed09428 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 10 Feb 2022 16:16:20 +1300 Subject: [PATCH 08/29] Update derivative strict schema files --- .../strict/dereferenced-release-schema.json | 155 ++++-------------- schema/strict/release-schema.json | 15 +- .../versioned-release-validation-schema.json | 20 +-- 3 files changed, 38 insertions(+), 152 deletions(-) diff --git a/schema/strict/dereferenced-release-schema.json b/schema/strict/dereferenced-release-schema.json index 7e3f31f2e..93394eebb 100644 --- a/schema/strict/dereferenced-release-schema.json +++ b/schema/strict/dereferenced-release-schema.json @@ -123,10 +123,7 @@ "name": { "title": "Common name", "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting process.", - "type": [ - "string", - "null" - ], + "type": "string", "minLength": 1 }, "id": { @@ -694,10 +691,7 @@ ], "properties": { "name": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", "title": "Organization name", "minLength": 1 @@ -2184,10 +2178,7 @@ ], "properties": { "name": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", "title": "Organization name", "minLength": 1 @@ -4691,10 +4682,7 @@ ], "properties": { "name": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", "title": "Organization name", "minLength": 1 @@ -5685,10 +5673,7 @@ }, "id": { "description": "An identifier for this amendment: often the amendment number", - "type": [ - "string", - "null" - ], + "type": "string", "title": "ID", "minLength": 1 }, @@ -5801,10 +5786,7 @@ }, "id": { "description": "An identifier for this amendment: often the amendment number", - "type": [ - "string", - "null" - ], + "type": "string", "title": "ID", "minLength": 1 }, @@ -7025,10 +7007,7 @@ ], "properties": { "name": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", "title": "Organization name", "minLength": 1 @@ -8396,10 +8375,7 @@ }, "id": { "description": "An identifier for this amendment: often the amendment number", - "type": [ - "string", - "null" - ], + "type": "string", "title": "ID", "minLength": 1 }, @@ -8512,10 +8488,7 @@ }, "id": { "description": "An identifier for this amendment: often the amendment number", - "type": [ - "string", - "null" - ], + "type": "string", "title": "ID", "minLength": 1 }, @@ -10875,10 +10848,7 @@ ], "properties": { "name": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", "title": "Organization name", "minLength": 1 @@ -11433,10 +11403,7 @@ ], "properties": { "name": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", "title": "Organization name", "minLength": 1 @@ -13241,10 +13208,7 @@ }, "id": { "description": "An identifier for this amendment: often the amendment number", - "type": [ - "string", - "null" - ], + "type": "string", "title": "ID", "minLength": 1 }, @@ -13357,10 +13321,7 @@ }, "id": { "description": "An identifier for this amendment: often the amendment number", - "type": [ - "string", - "null" - ], + "type": "string", "title": "ID", "minLength": 1 }, @@ -14538,10 +14499,7 @@ ], "properties": { "name": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", "title": "Organization name", "minLength": 1 @@ -17045,10 +17003,7 @@ ], "properties": { "name": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", "title": "Organization name", "minLength": 1 @@ -18039,10 +17994,7 @@ }, "id": { "description": "An identifier for this amendment: often the amendment number", - "type": [ - "string", - "null" - ], + "type": "string", "title": "ID", "minLength": 1 }, @@ -18155,10 +18107,7 @@ }, "id": { "description": "An identifier for this amendment: often the amendment number", - "type": [ - "string", - "null" - ], + "type": "string", "title": "ID", "minLength": 1 }, @@ -19375,10 +19324,7 @@ ], "properties": { "name": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", "title": "Organization name", "minLength": 1 @@ -20746,10 +20692,7 @@ }, "id": { "description": "An identifier for this amendment: often the amendment number", - "type": [ - "string", - "null" - ], + "type": "string", "title": "ID", "minLength": 1 }, @@ -20862,10 +20805,7 @@ }, "id": { "description": "An identifier for this amendment: often the amendment number", - "type": [ - "string", - "null" - ], + "type": "string", "title": "ID", "minLength": 1 }, @@ -23218,10 +23158,7 @@ ], "properties": { "name": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", "title": "Organization name", "minLength": 1 @@ -23776,10 +23713,7 @@ ], "properties": { "name": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", "title": "Organization name", "minLength": 1 @@ -25584,10 +25518,7 @@ }, "id": { "description": "An identifier for this amendment: often the amendment number", - "type": [ - "string", - "null" - ], + "type": "string", "title": "ID", "minLength": 1 }, @@ -25700,10 +25631,7 @@ }, "id": { "description": "An identifier for this amendment: often the amendment number", - "type": [ - "string", - "null" - ], + "type": "string", "title": "ID", "minLength": 1 }, @@ -26193,10 +26121,7 @@ ], "properties": { "name": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", "title": "Organization name", "minLength": 1 @@ -26751,10 +26676,7 @@ ], "properties": { "name": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", "title": "Organization name", "minLength": 1 @@ -29374,10 +29296,7 @@ ], "properties": { "name": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", "title": "Organization name", "minLength": 1 @@ -29932,10 +29851,7 @@ ], "properties": { "name": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", "title": "Organization name", "minLength": 1 @@ -30953,10 +30869,7 @@ ], "properties": { "name": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", "title": "Organization name", "minLength": 1 @@ -31516,10 +31429,7 @@ "name": { "title": "Common name", "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting process.", - "type": [ - "string", - "null" - ], + "type": "string", "minLength": 1 }, "id": { @@ -32698,10 +32608,7 @@ }, "id": { "description": "An identifier for this amendment: often the amendment number", - "type": [ - "string", - "null" - ], + "type": "string", "title": "ID", "minLength": 1 }, diff --git a/schema/strict/release-schema.json b/schema/strict/release-schema.json index a915ec53c..583ec4e01 100644 --- a/schema/strict/release-schema.json +++ b/schema/strict/release-schema.json @@ -1433,10 +1433,7 @@ ], "properties": { "name": { - "type": [ - "string", - "null" - ], + "type": "string", "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", "title": "Organization name", "minLength": 1 @@ -1510,10 +1507,7 @@ "name": { "title": "Common name", "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting process.", - "type": [ - "string", - "null" - ], + "type": "string", "minLength": 1 }, "id": { @@ -1677,10 +1671,7 @@ }, "id": { "description": "An identifier for this amendment: often the amendment number", - "type": [ - "string", - "null" - ], + "type": "string", "title": "ID", "minLength": 1 }, diff --git a/schema/strict/versioned-release-validation-schema.json b/schema/strict/versioned-release-validation-schema.json index 3639853ef..7de033194 100644 --- a/schema/strict/versioned-release-validation-schema.json +++ b/schema/strict/versioned-release-validation-schema.json @@ -2095,10 +2095,7 @@ "type": "string" }, "value": { - "type": [ - "string", - "null" - ], + "type": "string", "minLength": 1 }, "releaseTag": { @@ -2195,10 +2192,7 @@ "type": "string" }, "value": { - "type": [ - "string", - "null" - ], + "type": "string", "minLength": 1 }, "releaseTag": { @@ -2477,10 +2471,7 @@ } }, "id": { - "type": [ - "string", - "null" - ], + "type": "string", "minLength": 1 }, "description": { @@ -4725,10 +4716,7 @@ "type": "string" }, "value": { - "type": [ - "string", - "null" - ], + "type": "string", "minLength": 1 }, "releaseTag": { From 62de1d376d0e81f2cc571f260f89c0b8db16f05c Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Fri, 11 Feb 2022 14:16:06 +1300 Subject: [PATCH 09/29] Generate strict schema files programmatically --- manage.py | 40 +- requirements.txt | 1 + .../strict/dereferenced-release-schema.json | 5406 ++++++++++++++--- schema/strict/record-package-schema.json | 40 +- schema/strict/release-package-schema.json | 22 +- schema/strict/release-schema.json | 861 +-- schema/strict/unitvalue-schema.json | 332 + .../versioned-release-validation-schema.json | 931 +-- 8 files changed, 5925 insertions(+), 1708 deletions(-) create mode 100644 schema/strict/unitvalue-schema.json diff --git a/manage.py b/manage.py index 5163ca4d8..204899941 100755 --- a/manage.py +++ b/manage.py @@ -23,6 +23,7 @@ from docutils.utils import relative_path from jsonref import JsonRef, JsonRefError from lxml import etree +from ocdskit.schema import add_validation_properties basedir = Path(__file__).resolve().parent schemadir = basedir / 'schema' @@ -439,6 +440,27 @@ def get_versioned_release_schema(schema): return schema +def get_strict_release_schema(schema): + """ + Returns the strict release schema. + """ + # Update schema metadata. + release_with_underscores = release.replace('.', '__') + schema['id'] = f'https://standard.open-contracting.org/schema/{release_with_underscores}/strict-release-schema.json' # noqa + schema['title'] = 'Strict schema for an Open Contracting Release.' + schema['description'] = f'{schema["description"]} The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.' # noqa + + # Add validation properties + add_validation_properties(schema) + + # Add UnitValue definition + unitvalue = json_load('strict/unitvalue-schema.json') + schema['definitions']['UnitValue'] = unitvalue + schema['definitions']['Unit']['properties']['value']['$ref'] = '#/definitions/UnitValue' + + return schema + + @click.group() def cli(): pass @@ -541,13 +563,29 @@ def pre_commit(): - meta-schema.json - dereferenced-release-schema.json - versioned-release-validation-schema.json + - strict-release-schema.json + - strict-release-package.json + - strict-record-package.jso + - strict-dereferenced-release-schema.json + - strict-versioned-release-validation-schema.json """ release_schema = json_load('release-schema.json') + release_package_schema = json_load('release-package-schema.json') + record_package_schema = json_load('record-package-schema.json') jsonref_release_schema = json_load('release-schema.json', jsonref) - + + strict_release_schema = get_strict_release_schema(deepcopy(release_schema)) + json_dump('meta-schema.json', get_metaschema()) json_dump('dereferenced-release-schema.json', get_dereferenced_release_schema(jsonref_release_schema)) json_dump('versioned-release-validation-schema.json', get_versioned_release_schema(release_schema)) + + json_dump('strict/release-schema.json', strict_release_schema) + json_dump('strict/release-package-schema.json', release_package_schema) + json_dump('strict/record-package-schema.json', record_package_schema) + strict_jsonref_release_schema = json_load('strict/release-schema.json', jsonref) + json_dump('strict/dereferenced-release-schema.json', get_dereferenced_release_schema(strict_jsonref_release_schema)) + json_dump('strict/versioned-release-validation-schema.json', get_versioned_release_schema(strict_release_schema)) @cli.command() diff --git a/requirements.txt b/requirements.txt index fc5dbfbd6..9ddf5ad66 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,6 +2,7 @@ # Add your own requirements below. +ocdskit sphinx-panels==0.6.0 sphinxcontrib-opencontracting==0.0.6 sphinxcontrib-opendataservices-jsonschema==0.3.0 diff --git a/schema/strict/dereferenced-release-schema.json b/schema/strict/dereferenced-release-schema.json index 93394eebb..366f277c3 100644 --- a/schema/strict/dereferenced-release-schema.json +++ b/schema/strict/dereferenced-release-schema.json @@ -1,8 +1,8 @@ { - "id": "https://standard.open-contracting.org/schema/1__1__5/release-schema.json", + "id": "https://standard.open-contracting.org/schema/1__1__5/strict-release-schema.json", "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Schema for an Open Contracting Release", - "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multiple stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\"", + "title": "Strict schema for an Open Contracting Release.", + "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multiple stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\" The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.", "type": "object", "properties": { "ocid": { @@ -115,10 +115,6 @@ "title": "Organization", "description": "An organization", "type": "object", - "required": [ - "id", - "name" - ], "properties": { "name": { "title": "Common name", @@ -602,7 +598,6 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1, "format": "email" }, "telephone": { @@ -679,16 +674,16 @@ "minLength": 1 } }, + "required": [ + "id", + "name" + ], "minProperties": 1 }, "uniqueItems": true, "minItems": 1 }, "buyer": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": "string", @@ -697,10 +692,7 @@ "minLength": 1 }, "id": { - "type": [ - "string", - "integer" - ], + "type": "string", "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", "title": "ID", "minLength": 1 @@ -1187,7 +1179,6 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1, "format": "email" }, "telephone": { @@ -1237,6 +1228,10 @@ "type": "object", "description": "The organization aiming to conclude a contract with a supplier or to use the goods, works or services resulting from the contract.", "title": "Buyer", + "required": [ + "id", + "name" + ], "minProperties": 1 }, "planning": { @@ -1802,276 +1797,648 @@ "deprecatedVersion": "1.2" }, "minLength": 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" - ], - "minLength": 1 }, - "^(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})+)))$": { + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", "type": [ - "string", - "null" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true - }, - "milestones": { - "title": "Planning milestones", - "description": "A list of milestones associated with the planning process.", - "type": "array", - "items": { - "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "integer" - ], - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "Milestone title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "type": { - "title": "Milestone type", - "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the milestone.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "code": { - "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "dueDate": { - "title": "Due date", - "description": "The date the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateMet": { - "format": "date-time", - "title": "Date met", - "description": "The date on which the milestone was met.", - "type": [ - "string", - "null" - ] - }, - "dateModified": { - "title": "Date modified", - "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "status": { - "title": "Status", - "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", - "type": [ - "string", + "array", "null" ], - "enum": [ - "scheduled", - "met", - "notMet", - "partiallyMet", - null - ], - "codelist": "milestoneStatus.csv", - "openCodelist": false - }, - "documents": { - "title": "Documents", - "description": "List of documents associated with this milestone (Deprecated in 1.1).", - "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": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" + "type": [ + "string" ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "integer" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 + "minLength": 1 }, - "uniqueItems": true, - "minItems": 1 + "minItems": 1, + "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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "minItems": 1, + "uniqueItems": true + }, + "milestones": { + "title": "Planning milestones", + "description": "A list of milestones associated with the planning process.", + "type": "array", + "items": { + "title": "Milestone", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "type": "object", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "Milestone title", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "type": { + "title": "Milestone type", + "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "milestoneType.csv", + "openCodelist": true, + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A description of the milestone.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "code": { + "title": "Milestone code", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dueDate": { + "title": "Due date", + "description": "The date the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateMet": { + "format": "date-time", + "title": "Date met", + "description": "The date on which the milestone was met.", + "type": [ + "string", + "null" + ] + }, + "dateModified": { + "title": "Date modified", + "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "status": { + "title": "Status", + "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", + "type": [ + "string", + "null" + ], + "enum": [ + "scheduled", + "met", + "notMet", + "partiallyMet", + null + ], + "codelist": "milestoneStatus.csv", + "openCodelist": false + }, + "documents": { + "title": "Documents", + "description": "List of documents associated with this milestone (Deprecated in 1.1).", + "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": { + "type": "object", + "title": "Document", + "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", + "required": [ + "id" + ], + "properties": { + "id": { + "title": "ID", + "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer" + ], + "minLength": 1 + }, + "documentType": { + "title": "Document type", + "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "documentType.csv", + "openCodelist": true, + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The document title.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "url": { + "title": "URL", + "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "datePublished": { + "title": "Date published", + "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "dateModified": { + "title": "Date modified", + "description": "Date that the document was last modified", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "format": { + "title": "Format", + "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", + "type": [ + "string", + "null" + ], + "codelist": "mediaType.csv", + "openCodelist": true, + "minLength": 1 + }, + "languages": { + "title": "Languages", + "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string", + "minLength": 1 + }, + "codelist": "language.csv", + "openCodelist": true, + "minItems": 1, + "uniqueItems": true + }, + "language": { + "title": "Language", + "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", + "type": [ + "string", + "null" + ], + "codelist": "language.csv", + "openCodelist": true, + "deprecated": { + "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", + "deprecatedVersion": "1.2" + }, + "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "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" + ], + "minLength": 1 + }, + "^(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" + ], + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "minItems": 1 + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 } }, "patternProperties": { @@ -2126,7 +2493,7 @@ }, "title": { "title": "Tender title", - "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement.", + "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement. The title should be less than 150 characters in length.", "type": [ "string", "null" @@ -2172,10 +2539,6 @@ "minLength": 1 }, "procuringEntity": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": "string", @@ -2184,10 +2547,7 @@ "minLength": 1 }, "id": { - "type": [ - "string", - "integer" - ], + "type": "string", "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", "title": "ID", "minLength": 1 @@ -2674,7 +3034,6 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1, "format": "email" }, "telephone": { @@ -2724,6 +3083,10 @@ "type": "object", "description": "The organization managing the contracting process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", "title": "Procuring entity", + "required": [ + "id", + "name" + ], "minProperties": 1 }, "items": { @@ -2882,7 +3245,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 }, "unit": { "title": "Unit", @@ -2929,7 +3293,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 }, "currency": { "title": "Currency", @@ -3297,7 +3662,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 } }, "minProperties": 1 @@ -4431,7 +4797,7 @@ }, "submissionMethodDetails": { "title": "Submission method details", - "description": "Any detailed or further information on the submission method. This can include the address, e-mail address or online service to which bids are submitted, and any special requirements to be followed for submissions.", + "description": "Information about the methods by which bids are submitted. This can include the address, e-mail address or online service to which bids are submitted, and any special requirements to be followed for submissions. More structured information can be provided using the submission terms extension.", "type": [ "string", "null" @@ -4618,6 +4984,50 @@ }, "minProperties": 1 }, + "standstillPeriod": { + "title": "Standstill period", + "description": "The period before the contract signature during which the award decision can be challenged. This period typically starts on the date on which the tenderers are informed about the award decision.", + "type": "object", + "properties": { + "startDate": { + "title": "Start date", + "description": "The start date for the period. When known, a precise start date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "endDate": { + "title": "End date", + "description": "The end date for the period. When known, a precise end date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "maxExtentDate": { + "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", + "format": "date-time", + "title": "Maximum extent", + "type": [ + "string", + "null" + ] + }, + "durationInDays": { + "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", + "title": "Duration (days)", + "type": [ + "integer", + "null" + ], + "minimum": 0 + } + }, + "minProperties": 1 + }, "contractPeriod": { "title": "Contract period", "description": "The period over which the contract is estimated or required to be active. If the tender does not specify explicit dates, the duration field may be used.", @@ -4676,10 +5086,6 @@ "description": "All organizations that submit a bid. More detailed information on bids and the bidding organization can be provided using the bid extension.", "type": "array", "items": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": "string", @@ -4688,10 +5094,7 @@ "minLength": 1 }, "id": { - "type": [ - "string", - "integer" - ], + "type": "string", "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", "title": "ID", "minLength": 1 @@ -5178,7 +5581,6 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1, "format": "email" }, "telephone": { @@ -5228,6 +5630,10 @@ "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", "title": "Organization reference", + "required": [ + "id", + "name" + ], "minProperties": 1 }, "uniqueItems": true, @@ -5351,6 +5757,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -5433,6 +5855,15 @@ ], "minLength": 1 }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "dueDate": { "title": "Due date", "description": "The date the milestone is due.", @@ -5599,6 +6030,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -5621,6 +6068,337 @@ }, "uniqueItems": true, "minItems": 1 + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 } }, "patternProperties": { @@ -5753,10 +6531,10 @@ "minLength": 1 } }, - "minProperties": 1, "required": [ "id" - ] + ], + "minProperties": 1 }, "minItems": 1, "uniqueItems": true @@ -5866,10 +6644,10 @@ "minLength": 1 } }, - "minProperties": 1, "required": [ "id" ], + "minProperties": 1, "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -7001,10 +7779,6 @@ "description": "Organizations with which a buyer or a procuring entity decided to conclude a contract.", "type": "array", "items": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": "string", @@ -7013,10 +7787,7 @@ "minLength": 1 }, "id": { - "type": [ - "string", - "integer" - ], + "type": "string", "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", "title": "ID", "minLength": 1 @@ -7503,7 +8274,6 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1, "format": "email" }, "telephone": { @@ -7553,6 +8323,10 @@ "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", "title": "Organization reference", + "required": [ + "id", + "name" + ], "minProperties": 1 }, "uniqueItems": true, @@ -7715,7 +8489,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 }, "unit": { "title": "Unit", @@ -7762,7 +8537,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 }, "currency": { "title": "Currency", @@ -8130,7 +8906,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 } }, "minProperties": 1 @@ -8323,6 +9100,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -8455,10 +9248,10 @@ "minLength": 1 } }, - "minProperties": 1, "required": [ "id" - ] + ], + "minProperties": 1 }, "minItems": 1, "uniqueItems": true @@ -8568,10 +9361,10 @@ "minLength": 1 } }, - "minProperties": 1, "required": [ "id" ], + "minProperties": 1, "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -9835,7 +10628,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 }, "unit": { "title": "Unit", @@ -9882,7 +10676,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 }, "currency": { "title": "Currency", @@ -10250,7 +11045,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 } }, "minProperties": 1 @@ -10443,6 +11239,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -10842,10 +11654,6 @@ "minProperties": 1 }, "payer": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": "string", @@ -10854,10 +11662,7 @@ "minLength": 1 }, "id": { - "type": [ - "string", - "integer" - ], + "type": "string", "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", "title": "ID", "minLength": 1 @@ -11344,7 +12149,6 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1, "format": "email" }, "telephone": { @@ -11394,13 +12198,13 @@ "type": "object", "description": "An organization reference for the organization from which the funds in this transaction originate.", "title": "Payer", - "minProperties": 1 - }, - "payee": { "required": [ "id", "name" ], + "minProperties": 1 + }, + "payee": { "properties": { "name": { "type": "string", @@ -11409,10 +12213,7 @@ "minLength": 1 }, "id": { - "type": [ - "string", - "integer" - ], + "type": "string", "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", "title": "ID", "minLength": 1 @@ -11899,7 +12700,6 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1, "format": "email" }, "telephone": { @@ -11949,6 +12749,10 @@ "type": "object", "description": "An organization reference for the organization which receives the funds in this transaction.", "title": "Payee", + "required": [ + "id", + "name" + ], "minProperties": 1 }, "uri": { @@ -12476,6 +13280,15 @@ ], "minLength": 1 }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "dueDate": { "title": "Due date", "description": "The date the milestone is due.", @@ -12642,6 +13455,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -12664,6 +13493,337 @@ }, "uniqueItems": true, "minItems": 1 + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 } }, "patternProperties": { @@ -12805,6 +13965,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -12899,10 +14075,10 @@ ] } }, - "minProperties": 1, "required": [ "id" - ] + ], + "minProperties": 1 }, "description": "The details of related processes: for example, if this process is followed by one or more contracting processes, represented under a separate ocid. This is commonly used to refer to subcontracts and to renewal or replacement processes for this contract.", "title": "Related processes", @@ -12968,6 +14144,15 @@ ], "minLength": 1 }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "dueDate": { "title": "Due date", "description": "The date the milestone is due.", @@ -13134,6 +14319,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -13156,6 +14357,337 @@ }, "uniqueItems": true, "minItems": 1 + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 } }, "patternProperties": { @@ -13288,10 +14820,10 @@ "minLength": 1 } }, - "minProperties": 1, "required": [ "id" - ] + ], + "minProperties": 1 }, "minItems": 1, "uniqueItems": true @@ -13401,10 +14933,10 @@ "minLength": 1 } }, - "minProperties": 1, "required": [ "id" ], + "minProperties": 1, "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -13511,10 +15043,10 @@ ] } }, - "minProperties": 1, "required": [ "id" - ] + ], + "minProperties": 1 }, "description": "The details of related processes: for example, if this process follows on from one or more other processes, represented under a separate ocid. This is commonly used to relate mini-competitions to their parent frameworks or individual tenders to a broader planning process.", "title": "Related processes", @@ -13523,7 +15055,7 @@ }, "links": { "title": "Links", - "description": "Links to related resources. In a release, links relate to the individual release: for example, a link to a canonical version of the release in another OCDS publication. In a compiled release, links relate to the entire contracting process: for example, a link to a resource in a non-OCDS publication that represents the entire contracting process.", + "description": "Links to related resources. In a release, links relate to the individual release: for example, a link to a canonical version of the release in another OCDS publication. In a compiled release, links relate to the entire contracting process: for example, a link to a resource in a non-OCDS publication that represents the entire contracting process. For references to related processes, see the `relatedProcesses` array.", "type": "array", "items": { "title": "Link", @@ -14123,6 +15655,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -14205,6 +15753,15 @@ ], "minLength": 1 }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "dueDate": { "title": "Due date", "description": "The date the milestone is due.", @@ -14371,6 +15928,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -14393,6 +15966,337 @@ }, "uniqueItems": true, "minItems": 1 + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 } }, "patternProperties": { @@ -14447,7 +16351,7 @@ }, "title": { "title": "Tender title", - "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement.", + "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement. The title should be less than 150 characters in length.", "type": [ "string", "null" @@ -14493,10 +16397,6 @@ "minLength": 1 }, "procuringEntity": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": "string", @@ -14505,10 +16405,7 @@ "minLength": 1 }, "id": { - "type": [ - "string", - "integer" - ], + "type": "string", "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", "title": "ID", "minLength": 1 @@ -14995,7 +16892,6 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1, "format": "email" }, "telephone": { @@ -15045,6 +16941,10 @@ "type": "object", "description": "The organization managing the contracting process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", "title": "Procuring entity", + "required": [ + "id", + "name" + ], "minProperties": 1 }, "items": { @@ -15203,7 +17103,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 }, "unit": { "title": "Unit", @@ -15250,7 +17151,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 }, "currency": { "title": "Currency", @@ -15618,7 +17520,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 } }, "minProperties": 1 @@ -16752,7 +18655,7 @@ }, "submissionMethodDetails": { "title": "Submission method details", - "description": "Any detailed or further information on the submission method. This can include the address, e-mail address or online service to which bids are submitted, and any special requirements to be followed for submissions.", + "description": "Information about the methods by which bids are submitted. This can include the address, e-mail address or online service to which bids are submitted, and any special requirements to be followed for submissions. More structured information can be provided using the submission terms extension.", "type": [ "string", "null" @@ -16939,6 +18842,50 @@ }, "minProperties": 1 }, + "standstillPeriod": { + "title": "Standstill period", + "description": "The period before the contract signature during which the award decision can be challenged. This period typically starts on the date on which the tenderers are informed about the award decision.", + "type": "object", + "properties": { + "startDate": { + "title": "Start date", + "description": "The start date for the period. When known, a precise start date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "endDate": { + "title": "End date", + "description": "The end date for the period. When known, a precise end date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "maxExtentDate": { + "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", + "format": "date-time", + "title": "Maximum extent", + "type": [ + "string", + "null" + ] + }, + "durationInDays": { + "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", + "title": "Duration (days)", + "type": [ + "integer", + "null" + ], + "minimum": 0 + } + }, + "minProperties": 1 + }, "contractPeriod": { "title": "Contract period", "description": "The period over which the contract is estimated or required to be active. If the tender does not specify explicit dates, the duration field may be used.", @@ -16997,10 +18944,6 @@ "description": "All organizations that submit a bid. More detailed information on bids and the bidding organization can be provided using the bid extension.", "type": "array", "items": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": "string", @@ -17009,10 +18952,7 @@ "minLength": 1 }, "id": { - "type": [ - "string", - "integer" - ], + "type": "string", "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", "title": "ID", "minLength": 1 @@ -17499,7 +19439,6 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1, "format": "email" }, "telephone": { @@ -17549,6 +19488,10 @@ "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", "title": "Organization reference", + "required": [ + "id", + "name" + ], "minProperties": 1 }, "uniqueItems": true, @@ -17672,6 +19615,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -17754,6 +19713,15 @@ ], "minLength": 1 }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "dueDate": { "title": "Due date", "description": "The date the milestone is due.", @@ -17920,6 +19888,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -17942,6 +19926,337 @@ }, "uniqueItems": true, "minItems": 1 + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 } }, "patternProperties": { @@ -18074,10 +20389,10 @@ "minLength": 1 } }, - "minProperties": 1, "required": [ "id" - ] + ], + "minProperties": 1 }, "minItems": 1, "uniqueItems": true @@ -18187,10 +20502,10 @@ "minLength": 1 } }, - "minProperties": 1, "required": [ "id" ], + "minProperties": 1, "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -19318,10 +21633,6 @@ "description": "Organizations with which a buyer or a procuring entity decided to conclude a contract.", "type": "array", "items": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": "string", @@ -19330,10 +21641,7 @@ "minLength": 1 }, "id": { - "type": [ - "string", - "integer" - ], + "type": "string", "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", "title": "ID", "minLength": 1 @@ -19820,7 +22128,6 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1, "format": "email" }, "telephone": { @@ -19870,6 +22177,10 @@ "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", "title": "Organization reference", + "required": [ + "id", + "name" + ], "minProperties": 1 }, "uniqueItems": true, @@ -20032,7 +22343,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 }, "unit": { "title": "Unit", @@ -20079,7 +22391,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 }, "currency": { "title": "Currency", @@ -20447,7 +22760,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 } }, "minProperties": 1 @@ -20640,6 +22954,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -20772,10 +23102,10 @@ "minLength": 1 } }, - "minProperties": 1, "required": [ "id" - ] + ], + "minProperties": 1 }, "minItems": 1, "uniqueItems": true @@ -20885,10 +23215,10 @@ "minLength": 1 } }, - "minProperties": 1, "required": [ "id" ], + "minProperties": 1, "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -22145,7 +24475,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 }, "unit": { "title": "Unit", @@ -22192,7 +24523,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 }, "currency": { "title": "Currency", @@ -22560,7 +24892,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 } }, "minProperties": 1 @@ -22753,6 +25086,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -23152,10 +25501,6 @@ "minProperties": 1 }, "payer": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": "string", @@ -23164,10 +25509,7 @@ "minLength": 1 }, "id": { - "type": [ - "string", - "integer" - ], + "type": "string", "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", "title": "ID", "minLength": 1 @@ -23654,7 +25996,6 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1, "format": "email" }, "telephone": { @@ -23704,13 +26045,13 @@ "type": "object", "description": "An organization reference for the organization from which the funds in this transaction originate.", "title": "Payer", - "minProperties": 1 - }, - "payee": { "required": [ "id", "name" ], + "minProperties": 1 + }, + "payee": { "properties": { "name": { "type": "string", @@ -23719,10 +26060,7 @@ "minLength": 1 }, "id": { - "type": [ - "string", - "integer" - ], + "type": "string", "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", "title": "ID", "minLength": 1 @@ -24209,7 +26547,6 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1, "format": "email" }, "telephone": { @@ -24259,6 +26596,10 @@ "type": "object", "description": "An organization reference for the organization which receives the funds in this transaction.", "title": "Payee", + "required": [ + "id", + "name" + ], "minProperties": 1 }, "uri": { @@ -24786,6 +27127,15 @@ ], "minLength": 1 }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "dueDate": { "title": "Due date", "description": "The date the milestone is due.", @@ -24952,6 +27302,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -24974,6 +27340,337 @@ }, "uniqueItems": true, "minItems": 1 + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 } }, "patternProperties": { @@ -25115,6 +27812,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -25209,10 +27922,10 @@ ] } }, - "minProperties": 1, "required": [ "id" - ] + ], + "minProperties": 1 }, "description": "The details of related processes: for example, if this process is followed by one or more contracting processes, represented under a separate ocid. This is commonly used to refer to subcontracts and to renewal or replacement processes for this contract.", "title": "Related processes", @@ -25278,6 +27991,15 @@ ], "minLength": 1 }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "dueDate": { "title": "Due date", "description": "The date the milestone is due.", @@ -25444,6 +28166,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -25466,6 +28204,337 @@ }, "uniqueItems": true, "minItems": 1 + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 } }, "patternProperties": { @@ -25598,10 +28667,10 @@ "minLength": 1 } }, - "minProperties": 1, "required": [ "id" - ] + ], + "minProperties": 1 }, "minItems": 1, "uniqueItems": true @@ -25711,10 +28780,10 @@ "minLength": 1 } }, - "minProperties": 1, "required": [ "id" ], + "minProperties": 1, "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -26115,10 +29184,6 @@ "minProperties": 1 }, "payer": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": "string", @@ -26127,10 +29192,7 @@ "minLength": 1 }, "id": { - "type": [ - "string", - "integer" - ], + "type": "string", "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", "title": "ID", "minLength": 1 @@ -26617,7 +29679,6 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1, "format": "email" }, "telephone": { @@ -26667,13 +29728,13 @@ "type": "object", "description": "An organization reference for the organization from which the funds in this transaction originate.", "title": "Payer", - "minProperties": 1 - }, - "payee": { "required": [ "id", "name" ], + "minProperties": 1 + }, + "payee": { "properties": { "name": { "type": "string", @@ -26682,10 +29743,7 @@ "minLength": 1 }, "id": { - "type": [ - "string", - "integer" - ], + "type": "string", "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", "title": "ID", "minLength": 1 @@ -27172,7 +30230,6 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1, "format": "email" }, "telephone": { @@ -27222,6 +30279,10 @@ "type": "object", "description": "An organization reference for the organization which receives the funds in this transaction.", "title": "Payee", + "required": [ + "id", + "name" + ], "minProperties": 1 }, "uri": { @@ -27749,6 +30810,15 @@ ], "minLength": 1 }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "dueDate": { "title": "Due date", "description": "The date the milestone is due.", @@ -27915,6 +30985,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -27937,6 +31023,337 @@ }, "uniqueItems": true, "minItems": 1 + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 } }, "patternProperties": { @@ -28078,6 +31495,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -28159,6 +31592,15 @@ ], "minLength": 1 }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "dueDate": { "title": "Due date", "description": "The date the milestone is due.", @@ -28325,6 +31767,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -28347,6 +31805,337 @@ }, "uniqueItems": true, "minItems": 1 + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ] + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 } }, "patternProperties": { @@ -28481,6 +32270,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -29290,10 +33095,6 @@ "minProperties": 1 }, "payer": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": "string", @@ -29302,10 +33103,7 @@ "minLength": 1 }, "id": { - "type": [ - "string", - "integer" - ], + "type": "string", "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", "title": "ID", "minLength": 1 @@ -29792,7 +33590,6 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1, "format": "email" }, "telephone": { @@ -29842,13 +33639,13 @@ "type": "object", "description": "An organization reference for the organization from which the funds in this transaction originate.", "title": "Payer", - "minProperties": 1 - }, - "payee": { "required": [ "id", "name" ], + "minProperties": 1 + }, + "payee": { "properties": { "name": { "type": "string", @@ -29857,10 +33654,7 @@ "minLength": 1 }, "id": { - "type": [ - "string", - "integer" - ], + "type": "string", "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", "title": "ID", "minLength": 1 @@ -30347,7 +34141,6 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1, "format": "email" }, "telephone": { @@ -30397,6 +34190,10 @@ "type": "object", "description": "An organization reference for the organization which receives the funds in this transaction.", "title": "Payee", + "required": [ + "id", + "name" + ], "minProperties": 1 }, "uri": { @@ -30863,10 +34660,6 @@ "minProperties": 1 }, "OrganizationReference": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": "string", @@ -30875,10 +34668,7 @@ "minLength": 1 }, "id": { - "type": [ - "string", - "integer" - ], + "type": "string", "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", "title": "ID", "minLength": 1 @@ -31365,7 +35155,6 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1, "format": "email" }, "telephone": { @@ -31415,16 +35204,16 @@ "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", "title": "Organization reference", + "required": [ + "id", + "name" + ], "minProperties": 1 }, "Organization": { "title": "Organization", "description": "An organization", "type": "object", - "required": [ - "id", - "name" - ], "properties": { "name": { "title": "Common name", @@ -31908,7 +35697,6 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1, "format": "email" }, "telephone": { @@ -31985,6 +35773,10 @@ "minLength": 1 } }, + "required": [ + "id", + "name" + ], "minProperties": 1 }, "Item": { @@ -32139,7 +35931,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 }, "unit": { "title": "Unit", @@ -32186,7 +35979,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 }, "currency": { "title": "Currency", @@ -32554,7 +36348,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 } }, "minProperties": 1 @@ -32688,10 +36483,10 @@ "minLength": 1 } }, - "minProperties": 1, "required": [ "id" - ] + ], + "minProperties": 1 }, "Classification": { "title": "Classification", @@ -33157,7 +36952,6 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1, "format": "email" }, "telephone": { @@ -33530,338 +37324,6 @@ }, "minProperties": 1 }, - "UnitValue": { - "title": "Unit value", - "description": "The monetary value of a single unit.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, "Period": { "title": "Period", "description": "Key events during a contracting process may have a known start date, end date, duration, or maximum extent (the latest date the period can extend to). In some cases, not all of these fields will have known or relevant values.", @@ -34000,10 +37462,10 @@ ] } }, - "minProperties": 1, "required": [ "id" - ] + ], + "minProperties": 1 }, "Unit": { "title": "Unit", @@ -34050,7 +37512,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 }, "currency": { "title": "Currency", @@ -34418,7 +37881,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 } }, "minProperties": 1 @@ -34456,6 +37920,338 @@ } }, "minProperties": 1 + }, + "UnitValue": { + "title": "Unit value", + "description": "The monetary value of a single unit.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ], + "minimum": 0 + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 } }, "minProperties": 1 diff --git a/schema/strict/record-package-schema.json b/schema/strict/record-package-schema.json index 738ac76c6..ace4d1954 100644 --- a/schema/strict/record-package-schema.json +++ b/schema/strict/record-package-schema.json @@ -24,9 +24,7 @@ "items": { "type": "string", "format": "uri" - }, - "minItems": 1, - "uniqueItems": true + } }, "publisher": { "title": "Publisher", @@ -36,8 +34,7 @@ "name": { "title": "Name", "description": "The name of the organization or department responsible for publishing this OCDS data.", - "type": "string", - "minLength": 1 + "type": "string" }, "scheme": { "title": "Scheme", @@ -45,8 +42,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uid": { "title": "uid", @@ -54,8 +50,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -69,8 +64,7 @@ }, "required": [ "name" - ], - "minProperties": 1 + ] }, "license": { "title": "License", @@ -118,8 +112,7 @@ "items": { "$ref": "#/definitions/Record" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true } }, "required": [ @@ -138,8 +131,7 @@ "ocid": { "title": "Open contracting process identifier", "description": "A globally unique identifier for the contracting process that the record describes. Alternatively, this identifier can refer to a planning process or a single stage of a multiple stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", - "type": "string", - "minLength": 1 + "type": "string" }, "releases": { "title": "Releases", @@ -152,8 +144,7 @@ "items": { "$ref": "#/definitions/LinkedRelease" }, - "minItems": 1, - "uniqueItems": true + "minItems": 1 }, { "title": "Embedded releases", @@ -162,8 +153,7 @@ "items": { "$ref": "https://standard.open-contracting.org/schema/1__1__5/release-schema.json" }, - "minItems": 1, - "uniqueItems": true + "minItems": 1 } ] }, @@ -180,8 +170,7 @@ }, "required": [ "ocid" - ], - "minProperties": 1 + ] }, "LinkedRelease": { "title": "Linked release", @@ -230,16 +219,13 @@ }, "codelist": "releaseTag.csv", "openCodelist": false, - "minItems": 1, - "uniqueItems": true + "minItems": 1 } }, "required": [ "url", "date" - ], - "minProperties": 1 + ] } - }, - "minProperties": 1 + } } diff --git a/schema/strict/release-package-schema.json b/schema/strict/release-package-schema.json index 92b2f1f19..e4491c289 100644 --- a/schema/strict/release-package-schema.json +++ b/schema/strict/release-package-schema.json @@ -31,9 +31,7 @@ "items": { "type": "string", "format": "uri" - }, - "minItems": 1, - "uniqueItems": true + } }, "publishedDate": { "title": "Published date", @@ -48,8 +46,7 @@ "items": { "$ref": "https://standard.open-contracting.org/schema/1__1__5/release-schema.json" }, - "uniqueItems": true, - "minItems": 1 + "uniqueItems": true }, "publisher": { "title": "Publisher", @@ -59,8 +56,7 @@ "name": { "title": "Name", "description": "The name of the organization or department responsible for publishing this OCDS data.", - "type": "string", - "minLength": 1 + "type": "string" }, "scheme": { "title": "Scheme", @@ -68,8 +64,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uid": { "title": "uid", @@ -77,8 +72,7 @@ "type": [ "string", "null" - ], - "minLength": 1 + ] }, "uri": { "title": "URI", @@ -92,8 +86,7 @@ }, "required": [ "name" - ], - "minProperties": 1 + ] }, "license": { "title": "License", @@ -113,6 +106,5 @@ ], "format": "uri" } - }, - "minProperties": 1 + } } diff --git a/schema/strict/release-schema.json b/schema/strict/release-schema.json index 583ec4e01..362c2bae0 100644 --- a/schema/strict/release-schema.json +++ b/schema/strict/release-schema.json @@ -1,8 +1,8 @@ { - "id": "https://standard.open-contracting.org/schema/1__1__5/release-schema.json", + "id": "https://standard.open-contracting.org/schema/1__1__5/strict-release-schema.json", "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Schema for an Open Contracting Release", - "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multiple stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\"", + "title": "Strict schema for an Open Contracting Release.", + "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multiple stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\" The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.", "type": "object", "properties": { "ocid": { @@ -126,7 +126,7 @@ }, "links": { "title": "Links", - "description": "Links to related resources. In a release, links relate to the individual release: for example, a link to a canonical version of the release in another OCDS publication. In a compiled release, links relate to the entire contracting process: for example, a link to a resource in a non-OCDS publication that represents the entire contracting process.", + "description": "Links to related resources. In a release, links relate to the individual release: for example, a link to a canonical version of the release in another OCDS publication. In a compiled release, links relate to the entire contracting process: for example, a link to a resource in a non-OCDS publication that represents the entire contracting process. For references to related processes, see the `relatedProcesses` array.", "type": "array", "items": { "$ref": "#/definitions/Link" @@ -223,7 +223,7 @@ }, "title": { "title": "Tender title", - "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement.", + "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement. The title should be less than 150 characters in length.", "type": [ "string", "null" @@ -407,7 +407,7 @@ }, "submissionMethodDetails": { "title": "Submission method details", - "description": "Any detailed or further information on the submission method. This can include the address, e-mail address or online service to which bids are submitted, and any special requirements to be followed for submissions.", + "description": "Information about the methods by which bids are submitted. This can include the address, e-mail address or online service to which bids are submitted, and any special requirements to be followed for submissions. More structured information can be provided using the submission terms extension.", "type": [ "string", "null" @@ -477,6 +477,11 @@ "description": "The period for decision making regarding the contract award. The end date should be the date on which an award decision is due to be finalized. The start date may be used to indicate the start of an evaluation period.", "$ref": "#/definitions/Period" }, + "standstillPeriod": { + "title": "Standstill period", + "description": "The period before the contract signature during which the award decision can be challenged. This period typically starts on the date on which the tenderers are informed about the award decision.", + "$ref": "#/definitions/Period" + }, "contractPeriod": { "description": "The period over which the contract is estimated or required to be active. If the tender does not specify explicit dates, the duration field may be used.", "title": "Contract period", @@ -1030,6 +1035,15 @@ ], "minLength": 1 }, + "dueAfterDate": { + "title": "Due after date", + "description": "The date after which the milestone is due.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "dueDate": { "title": "Due date", "description": "The date the milestone is due.", @@ -1087,6 +1101,11 @@ }, "uniqueItems": true, "minItems": 1 + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "$ref": "#/definitions/Value" } }, "patternProperties": { @@ -1221,6 +1240,22 @@ "deprecatedVersion": "1.2" }, "minLength": 1 + }, + "relatedItems": { + "title": "Related items", + "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true } }, "patternProperties": { @@ -1427,10 +1462,6 @@ "minProperties": 1 }, "OrganizationReference": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": "string", @@ -1439,10 +1470,7 @@ "minLength": 1 }, "id": { - "type": [ - "string", - "integer" - ], + "type": "string", "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", "title": "ID", "minLength": 1 @@ -1493,16 +1521,16 @@ "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", "title": "Organization reference", + "required": [ + "id", + "name" + ], "minProperties": 1 }, "Organization": { "title": "Organization", "description": "An organization", "type": "object", - "required": [ - "id", - "name" - ], "properties": { "name": { "title": "Common name", @@ -1577,6 +1605,10 @@ "minLength": 1 } }, + "required": [ + "id", + "name" + ], "minProperties": 1 }, "Item": { @@ -1627,7 +1659,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 }, "unit": { "title": "Unit", @@ -1751,10 +1784,10 @@ "minLength": 1 } }, - "minProperties": 1, "required": [ "id" - ] + ], + "minProperties": 1 }, "Classification": { "title": "Classification", @@ -2220,7 +2253,6 @@ "null" ], "description": "The e-mail address of the contact point/person.", - "minLength": 1, "format": "email" }, "telephone": { @@ -2593,401 +2625,69 @@ }, "minProperties": 1 }, - "UnitValue": { - "title": "Unit value", - "description": "The monetary value of a single unit.", + "Period": { + "title": "Period", + "description": "Key events during a contracting process may have a known start date, end date, duration, or maximum extent (the latest date the period can extend to). In some cases, not all of these fields will have known or relevant values.", "type": "object", "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", + "startDate": { + "title": "Start date", + "description": "The start date for the period. When known, a precise start date must be provided.", "type": [ - "number", + "string", + "null" + ], + "format": "date-time" + }, + "endDate": { + "title": "End date", + "description": "The end date for the period. When known, a precise end date must be provided.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, + "maxExtentDate": { + "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", + "format": "date-time", + "title": "Maximum extent", + "type": [ + "string", + "null" + ] + }, + "durationInDays": { + "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", + "title": "Duration (days)", + "type": [ + "integer", "null" ], "minimum": 0 + } + }, + "minProperties": 1 + }, + "SimpleUnit": { + "title": "Simple Unit", + "description": "A simple unit of measure, consisting of: an identifier for the list (scheme) from which the unit is taken, and an identifier for the unit from that list.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true, + "minLength": 1 }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "Period": { - "title": "Period", - "description": "Key events during a contracting process may have a known start date, end date, duration, or maximum extent (the latest date the period can extend to). In some cases, not all of these fields will have known or relevant values.", - "type": "object", - "properties": { - "startDate": { - "title": "Start date", - "description": "The start date for the period. When known, a precise start date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "endDate": { - "title": "End date", - "description": "The end date for the period. When known, a precise end date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "maxExtentDate": { - "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", - "format": "date-time", - "title": "Maximum extent", - "type": [ - "string", - "null" - ] - }, - "durationInDays": { - "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", - "title": "Duration (days)", - "type": [ - "integer", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 - }, - "SimpleUnit": { - "title": "Simple Unit", - "description": "A simple unit of measure, consisting of: an identifier for the list (scheme) from which the unit is taken, and an identifier for the unit from that list.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", + "id": { + "title": "ID", + "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", "type": [ "string", "null" @@ -3063,10 +2763,10 @@ ] } }, - "minProperties": 1, "required": [ "id" - ] + ], + "minProperties": 1 }, "Unit": { "title": "Unit", @@ -3105,7 +2805,7 @@ "value": { "title": "Value", "description": "The monetary value of a single unit.", - "$ref": "#/definitions/Value" + "$ref": "#/definitions/UnitValue" }, "uri": { "title": "URI", @@ -3132,7 +2832,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 } }, "minProperties": 1 @@ -3170,6 +2871,338 @@ } }, "minProperties": 1 + }, + "UnitValue": { + "title": "Unit value", + "description": "The monetary value of a single unit.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ], + "minimum": 0 + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 } }, "minProperties": 1 diff --git a/schema/strict/unitvalue-schema.json b/schema/strict/unitvalue-schema.json new file mode 100644 index 000000000..caffafb70 --- /dev/null +++ b/schema/strict/unitvalue-schema.json @@ -0,0 +1,332 @@ +{ + "title": "Unit value", + "description": "The monetary value of a single unit.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ], + "minimum": 0 + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 +} diff --git a/schema/strict/versioned-release-validation-schema.json b/schema/strict/versioned-release-validation-schema.json index 7de033194..5e0bf3791 100644 --- a/schema/strict/versioned-release-validation-schema.json +++ b/schema/strict/versioned-release-validation-schema.json @@ -2,7 +2,7 @@ "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": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multiple stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\"", + "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multiple stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\" The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.", "type": "object", "properties": { "publisher": { @@ -803,6 +803,9 @@ "awardPeriod": { "$ref": "#/definitions/Period" }, + "standstillPeriod": { + "$ref": "#/definitions/Period" + }, "contractPeriod": { "$ref": "#/definitions/Period" }, @@ -1538,6 +1541,9 @@ } } }, + "dueAfterDate": { + "$ref": "#/definitions/StringNullDateTimeVersioned" + }, "dueDate": { "$ref": "#/definitions/StringNullDateTimeVersioned" }, @@ -1594,6 +1600,9 @@ }, "uniqueItems": true, "minItems": 1 + }, + "value": { + "$ref": "#/definitions/Value" } }, "patternProperties": { @@ -1820,6 +1829,41 @@ } } } + }, + "relatedItems": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "string" + ], + "minLength": 1 + }, + "minItems": 1, + "uniqueItems": true + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } } }, "patternProperties": { @@ -2077,10 +2121,6 @@ "minProperties": 1 }, "OrganizationReference": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": "array", @@ -2108,10 +2148,7 @@ } }, "id": { - "type": [ - "string", - "integer" - ], + "type": "string", "minLength": 1 }, "identifier": { @@ -2169,15 +2206,15 @@ "$ref": "#/definitions/ContactPoint" } }, - "type": "object", - "minProperties": 1 - }, - "Organization": { "type": "object", "required": [ "id", "name" ], + "minProperties": 1 + }, + "Organization": { + "type": "object", "properties": { "name": { "type": "array", @@ -2319,6 +2356,10 @@ "minLength": 1 } }, + "required": [ + "id", + "name" + ], "minProperties": 1 }, "Item": { @@ -2410,7 +2451,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 }, "releaseTag": { "type": "array", @@ -2601,10 +2643,10 @@ "minLength": 1 } }, - "minProperties": 1, "required": [ "id" - ] + ], + "minProperties": 1 }, "Classification": { "type": "object", @@ -3307,7 +3349,6 @@ "string", "null" ], - "minLength": 1, "format": "email" }, "releaseTag": { @@ -3757,10 +3798,19 @@ }, "minProperties": 1 }, - "UnitValue": { + "Period": { "type": "object", "properties": { - "amount": { + "startDate": { + "$ref": "#/definitions/StringNullDateTimeVersioned" + }, + "endDate": { + "$ref": "#/definitions/StringNullDateTimeVersioned" + }, + "maxExtentDate": { + "$ref": "#/definitions/StringNullDateTimeVersioned" + }, + "durationInDays": { "type": "array", "items": { "type": "object", @@ -3774,7 +3824,7 @@ }, "value": { "type": [ - "number", + "integer", "null" ], "minimum": 0 @@ -3787,421 +3837,44 @@ } } } + } + }, + "minProperties": 1 + }, + "SimpleUnit": { + "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, + "minLength": 1 + }, + "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" - } - } - } - } - } - }, - "minProperties": 1 - }, - "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" - ], - "minimum": 0 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "minProperties": 1 - }, - "SimpleUnit": { - "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, - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "id": { + "id": { "type": "array", "items": { "type": "object", @@ -4364,10 +4037,10 @@ "$ref": "#/definitions/StringNullUriVersioned" } }, - "minProperties": 1, "required": [ "id" - ] + ], + "minProperties": 1 }, "Unit": { "type": "object", @@ -4459,7 +4132,7 @@ } }, "value": { - "$ref": "#/definitions/Value" + "$ref": "#/definitions/UnitValue" }, "uri": { "$ref": "#/definitions/StringNullUriVersioned" @@ -4486,7 +4159,8 @@ "type": [ "number", "null" - ] + ], + "minimum": 0 }, "releaseTag": { "type": "array", @@ -4570,6 +4244,374 @@ }, "minProperties": 1 }, + "UnitValue": { + "type": "object", + "properties": { + "amount": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "number", + "null" + ], + "minimum": 0 + }, + "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" + } + } + } + } + } + }, + "minProperties": 1 + }, "StringNullUriVersioned": { "type": "array", "items": { @@ -4698,10 +4740,6 @@ "minProperties": 1 }, "OrganizationReferenceVersionedId": { - "required": [ - "id", - "name" - ], "properties": { "name": { "type": "array", @@ -4741,10 +4779,7 @@ "type": "string" }, "value": { - "type": [ - "string", - "integer" - ], + "type": "string", "minLength": 1 }, "releaseTag": { @@ -4812,6 +4847,10 @@ } }, "type": "object", + "required": [ + "id", + "name" + ], "minProperties": 1 }, "ClassificationUnversioned": { From 5ff4ac6de975b8d7856cdad4045d0e817f0f41db Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Fri, 11 Feb 2022 14:28:06 +1300 Subject: [PATCH 10/29] Fix Flake8 errors --- manage.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/manage.py b/manage.py index 204899941..10a3d23a1 100755 --- a/manage.py +++ b/manage.py @@ -449,10 +449,10 @@ def get_strict_release_schema(schema): schema['id'] = f'https://standard.open-contracting.org/schema/{release_with_underscores}/strict-release-schema.json' # noqa schema['title'] = 'Strict schema for an Open Contracting Release.' schema['description'] = f'{schema["description"]} The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.' # noqa - + # Add validation properties add_validation_properties(schema) - + # Add UnitValue definition unitvalue = json_load('strict/unitvalue-schema.json') schema['definitions']['UnitValue'] = unitvalue @@ -573,18 +573,19 @@ def pre_commit(): release_package_schema = json_load('release-package-schema.json') record_package_schema = json_load('record-package-schema.json') jsonref_release_schema = json_load('release-schema.json', jsonref) - + strict_release_schema = get_strict_release_schema(deepcopy(release_schema)) - + json_dump('meta-schema.json', get_metaschema()) json_dump('dereferenced-release-schema.json', get_dereferenced_release_schema(jsonref_release_schema)) json_dump('versioned-release-validation-schema.json', get_versioned_release_schema(release_schema)) - + json_dump('strict/release-schema.json', strict_release_schema) json_dump('strict/release-package-schema.json', release_package_schema) json_dump('strict/record-package-schema.json', record_package_schema) strict_jsonref_release_schema = json_load('strict/release-schema.json', jsonref) - json_dump('strict/dereferenced-release-schema.json', get_dereferenced_release_schema(strict_jsonref_release_schema)) + json_dump('strict/dereferenced-release-schema.json', + get_dereferenced_release_schema(strict_jsonref_release_schema)) json_dump('strict/versioned-release-validation-schema.json', get_versioned_release_schema(strict_release_schema)) From 7041fbec5a093f3b556e84d79336fe5e55725327 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Fri, 11 Feb 2022 14:38:46 +1300 Subject: [PATCH 11/29] strict schema: remove integer type from id fields --- .../strict/dereferenced-release-schema.json | 211 ++++-------------- schema/strict/release-schema.json | 24 +- .../versioned-release-validation-schema.json | 26 +-- 3 files changed, 63 insertions(+), 198 deletions(-) diff --git a/schema/strict/dereferenced-release-schema.json b/schema/strict/dereferenced-release-schema.json index 366f277c3..a3279cb17 100644 --- a/schema/strict/dereferenced-release-schema.json +++ b/schema/strict/dereferenced-release-schema.json @@ -44,7 +44,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -147,7 +146,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -205,7 +203,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -716,7 +713,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -1117,7 +1113,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -1267,7 +1262,6 @@ "description": "An identifier for the budget line item which provides funds for this contracting process. This identifier should be possible to cross-reference against formal budget documents.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -1695,8 +1689,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -1852,8 +1845,7 @@ "title": "ID", "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -1968,8 +1960,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -2486,8 +2477,7 @@ "title": "Tender ID", "description": "An identifier for this tender process. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -2571,7 +2561,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -2972,7 +2961,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -3105,8 +3093,7 @@ "title": "ID", "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -3140,7 +3127,6 @@ "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -3200,7 +3186,6 @@ "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -5118,7 +5103,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -5519,7 +5503,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -5655,8 +5638,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -5812,8 +5794,7 @@ "title": "ID", "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -5928,8 +5909,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -6723,8 +6703,7 @@ "title": "Award ID", "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -7811,7 +7790,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -8212,7 +8190,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -8349,8 +8326,7 @@ "title": "ID", "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -8384,7 +8360,6 @@ "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -8444,7 +8419,6 @@ "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -8998,8 +8972,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -9409,8 +9382,7 @@ "title": "Contract ID", "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -10488,8 +10460,7 @@ "title": "ID", "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -10523,7 +10494,6 @@ "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -10583,7 +10553,6 @@ "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -11137,8 +11106,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -11299,8 +11267,7 @@ "title": "ID", "description": "A unique identifier for this transaction. This identifier should be possible to cross-reference against the provided data source. For IATI this is the transaction reference. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -11686,7 +11653,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -12087,7 +12053,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -12237,7 +12202,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -12638,7 +12602,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -13118,7 +13081,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -13176,7 +13138,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -13237,8 +13198,7 @@ "title": "ID", "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -13353,8 +13313,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -13863,8 +13822,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -14101,8 +14059,7 @@ "title": "ID", "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -14217,8 +14174,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -15125,7 +15081,6 @@ "description": "An identifier for the budget line item which provides funds for this contracting process. This identifier should be possible to cross-reference against formal budget documents.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -15553,8 +15508,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -15710,8 +15664,7 @@ "title": "ID", "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -15826,8 +15779,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -16344,8 +16296,7 @@ "title": "Tender ID", "description": "An identifier for this tender process. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -16429,7 +16380,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -16830,7 +16780,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -16963,8 +16912,7 @@ "title": "ID", "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -16998,7 +16946,6 @@ "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -17058,7 +17005,6 @@ "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -18976,7 +18922,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -19377,7 +19322,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -19513,8 +19457,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -19670,8 +19613,7 @@ "title": "ID", "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -19786,8 +19728,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -20577,8 +20518,7 @@ "title": "Award ID", "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -21665,7 +21605,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -22066,7 +22005,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -22203,8 +22141,7 @@ "title": "ID", "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -22238,7 +22175,6 @@ "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -22298,7 +22234,6 @@ "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -22852,8 +22787,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -23256,8 +23190,7 @@ "title": "Contract ID", "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -24335,8 +24268,7 @@ "title": "ID", "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -24370,7 +24302,6 @@ "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -24430,7 +24361,6 @@ "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -24984,8 +24914,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -25146,8 +25075,7 @@ "title": "ID", "description": "A unique identifier for this transaction. This identifier should be possible to cross-reference against the provided data source. For IATI this is the transaction reference. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -25533,7 +25461,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -25934,7 +25861,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -26084,7 +26010,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -26485,7 +26410,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -26965,7 +26889,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -27023,7 +26946,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -27084,8 +27006,7 @@ "title": "ID", "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -27200,8 +27121,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -27710,8 +27630,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -27948,8 +27867,7 @@ "title": "ID", "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -28064,8 +27982,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -28829,8 +28746,7 @@ "title": "ID", "description": "A unique identifier for this transaction. This identifier should be possible to cross-reference against the provided data source. For IATI this is the transaction reference. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -29216,7 +29132,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -29617,7 +29532,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -29767,7 +29681,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -30168,7 +30081,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -30648,7 +30560,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -30706,7 +30617,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -30767,8 +30677,7 @@ "title": "ID", "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -30883,8 +30792,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -31393,8 +31301,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -31549,8 +31456,7 @@ "title": "ID", "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -31665,8 +31571,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -32168,8 +32073,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -32316,7 +32220,6 @@ "description": "An identifier for the budget line item which provides funds for this contracting process. This identifier should be possible to cross-reference against formal budget documents.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -32740,8 +32643,7 @@ "title": "ID", "description": "A unique identifier for this transaction. This identifier should be possible to cross-reference against the provided data source. For IATI this is the transaction reference. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -33127,7 +33029,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -33528,7 +33429,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -33678,7 +33578,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -34079,7 +33978,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -34559,7 +34457,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -34617,7 +34514,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -34692,7 +34588,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -35093,7 +34988,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -35246,7 +35140,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -35304,7 +35197,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -35791,8 +35683,7 @@ "title": "ID", "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -35826,7 +35717,6 @@ "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -35886,7 +35776,6 @@ "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -36509,7 +36398,6 @@ "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -36563,7 +36451,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 diff --git a/schema/strict/release-schema.json b/schema/strict/release-schema.json index 362c2bae0..f5ca62c23 100644 --- a/schema/strict/release-schema.json +++ b/schema/strict/release-schema.json @@ -216,8 +216,7 @@ "title": "Tender ID", "description": "An identifier for this tender process. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -611,8 +610,7 @@ "title": "Award ID", "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -770,8 +768,7 @@ "title": "Contract ID", "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -992,8 +989,7 @@ "title": "ID", "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -1138,8 +1134,7 @@ "title": "ID", "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -1286,7 +1281,6 @@ "description": "An identifier for the budget line item which provides funds for this contracting process. This identifier should be possible to cross-reference against formal budget documents.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -1384,8 +1378,7 @@ "title": "ID", "description": "A unique identifier for this transaction. This identifier should be possible to cross-reference against the provided data source. For IATI this is the transaction reference. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -1623,8 +1616,7 @@ "title": "ID", "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -1810,7 +1802,6 @@ "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -1864,7 +1855,6 @@ "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 diff --git a/schema/strict/versioned-release-validation-schema.json b/schema/strict/versioned-release-validation-schema.json index 5e0bf3791..48c13d7ec 100644 --- a/schema/strict/versioned-release-validation-schema.json +++ b/schema/strict/versioned-release-validation-schema.json @@ -232,8 +232,7 @@ }, "value": { "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -938,8 +937,7 @@ "properties": { "id": { "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -1145,8 +1143,7 @@ "properties": { "id": { "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -1422,8 +1419,7 @@ "properties": { "id": { "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -1631,8 +1627,7 @@ "properties": { "id": { "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -1902,7 +1897,6 @@ "value": { "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -2073,8 +2067,7 @@ "properties": { "id": { "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -2370,8 +2363,7 @@ "properties": { "id": { "type": [ - "string", - "integer" + "string" ], "minLength": 1 }, @@ -2696,7 +2688,6 @@ "value": { "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -2799,7 +2790,6 @@ "value": { "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -4708,7 +4698,6 @@ "id": { "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -4868,7 +4857,6 @@ "id": { "type": [ "string", - "integer", "null" ], "minLength": 1 From ce18ec2dd3d64f39a865d1dd7cea4e7196e22c91 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Fri, 11 Feb 2022 15:22:37 +1300 Subject: [PATCH 12/29] strict schema: remove null types from package schemas --- manage.py | 41 ++++++++---- .../strict/dereferenced-release-schema.json | 4 +- schema/strict/record-package-schema.json | 64 +++++++++++-------- schema/strict/release-package-schema.json | 43 +++++++------ schema/strict/release-schema.json | 4 +- 5 files changed, 93 insertions(+), 63 deletions(-) diff --git a/manage.py b/manage.py index 10a3d23a1..cb18e5719 100755 --- a/manage.py +++ b/manage.py @@ -440,27 +440,46 @@ def get_versioned_release_schema(schema): return schema -def get_strict_release_schema(schema): +def get_strict_schema(schema): """ - Returns the strict release schema. + Returns the strict version of the schema. """ # Update schema metadata. release_with_underscores = release.replace('.', '__') - schema['id'] = f'https://standard.open-contracting.org/schema/{release_with_underscores}/strict-release-schema.json' # noqa - schema['title'] = 'Strict schema for an Open Contracting Release.' + schema['id'] = schema['id'].replace(release_with_underscores, + f'{release_with_underscores}/strict') + schema['title'] = f'Strict {schema["title"][0].lower()}{schema["title"][1:]}' schema['description'] = f'{schema["description"]} The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.' # noqa # Add validation properties add_validation_properties(schema) - # Add UnitValue definition - unitvalue = json_load('strict/unitvalue-schema.json') - schema['definitions']['UnitValue'] = unitvalue - schema['definitions']['Unit']['properties']['value']['$ref'] = '#/definitions/UnitValue' + # Remove null types from package schemas + if 'package' in schema['id']: + remove_nulls(schema) + + else: + # Add UnitValue definition + unitvalue = json_load('strict/unitvalue-schema.json') + schema['definitions']['UnitValue'] = unitvalue + schema['definitions']['Unit']['properties']['value']['$ref'] = '#/definitions/UnitValue' return schema +def remove_nulls(schema): + """ + Removes null types + """ + if isinstance(schema, dict): + for key, value in schema.items(): + if key == 'type' and isinstance(value, list): + if 'null' in value: + value.remove('null') + + remove_nulls(value) + + @click.group() def cli(): pass @@ -574,15 +593,15 @@ def pre_commit(): record_package_schema = json_load('record-package-schema.json') jsonref_release_schema = json_load('release-schema.json', jsonref) - strict_release_schema = get_strict_release_schema(deepcopy(release_schema)) + strict_release_schema = get_strict_schema(deepcopy(release_schema)) json_dump('meta-schema.json', get_metaschema()) json_dump('dereferenced-release-schema.json', get_dereferenced_release_schema(jsonref_release_schema)) json_dump('versioned-release-validation-schema.json', get_versioned_release_schema(release_schema)) json_dump('strict/release-schema.json', strict_release_schema) - json_dump('strict/release-package-schema.json', release_package_schema) - json_dump('strict/record-package-schema.json', record_package_schema) + json_dump('strict/release-package-schema.json', get_strict_schema(release_package_schema)) + json_dump('strict/record-package-schema.json', get_strict_schema(record_package_schema)) strict_jsonref_release_schema = json_load('strict/release-schema.json', jsonref) json_dump('strict/dereferenced-release-schema.json', get_dereferenced_release_schema(strict_jsonref_release_schema)) diff --git a/schema/strict/dereferenced-release-schema.json b/schema/strict/dereferenced-release-schema.json index a3279cb17..2e1aed658 100644 --- a/schema/strict/dereferenced-release-schema.json +++ b/schema/strict/dereferenced-release-schema.json @@ -1,7 +1,7 @@ { - "id": "https://standard.open-contracting.org/schema/1__1__5/strict-release-schema.json", + "id": "https://standard.open-contracting.org/schema/1__1__5/strict/release-schema.json", "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Strict schema for an Open Contracting Release.", + "title": "Strict schema for an Open Contracting Release", "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multiple stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\" The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.", "type": "object", "properties": { diff --git a/schema/strict/record-package-schema.json b/schema/strict/record-package-schema.json index ace4d1954..9dcbc7d85 100644 --- a/schema/strict/record-package-schema.json +++ b/schema/strict/record-package-schema.json @@ -1,8 +1,8 @@ { - "id": "https://standard.open-contracting.org/schema/1__1__5/record-package-schema.json", + "id": "https://standard.open-contracting.org/schema/1__1__5/strict/record-package-schema.json", "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Schema for an Open Contracting Record package", - "description": "The record package contains a list of records along with some publishing metadata.", + "title": "Strict schema for an Open Contracting Record package", + "description": "The record package contains a list of records along with some publishing metadata. The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.", "type": "object", "properties": { "uri": { @@ -24,7 +24,9 @@ "items": { "type": "string", "format": "uri" - } + }, + "minItems": 1, + "uniqueItems": true }, "publisher": { "title": "Publisher", @@ -34,44 +36,44 @@ "name": { "title": "Name", "description": "The name of the organization or department responsible for publishing this OCDS data.", - "type": "string" + "type": "string", + "minLength": 1 }, "scheme": { "title": "Scheme", "description": "The scheme that holds the unique identifiers used to identify the item being identified.", "type": [ - "string", - "null" - ] + "string" + ], + "minLength": 1 }, "uid": { "title": "uid", "description": "The unique ID for this entity under the given ID scheme.", "type": [ - "string", - "null" - ] + "string" + ], + "minLength": 1 }, "uri": { "title": "URI", "description": "A URI to identify the publisher.", "type": [ - "string", - "null" + "string" ], "format": "uri" } }, "required": [ "name" - ] + ], + "minProperties": 1 }, "license": { "title": "License", "description": "A link to the license that applies to the data in this package. A Public Domain Dedication or [Open Definition Conformant](https://opendefinition.org/licenses/) license is recommended. The canonical URI of the license should be used. Documents linked from this file may be under other license conditions.", "type": [ - "string", - "null" + "string" ], "format": "uri" }, @@ -79,8 +81,7 @@ "title": "Publication policy", "description": "A link to a document describing the publishers publication policy.", "type": [ - "string", - "null" + "string" ], "format": "uri" }, @@ -112,7 +113,8 @@ "items": { "$ref": "#/definitions/Record" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 } }, "required": [ @@ -131,7 +133,8 @@ "ocid": { "title": "Open contracting process identifier", "description": "A globally unique identifier for the contracting process that the record describes. Alternatively, this identifier can refer to a planning process or a single stage of a multiple stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", - "type": "string" + "type": "string", + "minLength": 1 }, "releases": { "title": "Releases", @@ -144,7 +147,8 @@ "items": { "$ref": "#/definitions/LinkedRelease" }, - "minItems": 1 + "minItems": 1, + "uniqueItems": true }, { "title": "Embedded releases", @@ -153,7 +157,8 @@ "items": { "$ref": "https://standard.open-contracting.org/schema/1__1__5/release-schema.json" }, - "minItems": 1 + "minItems": 1, + "uniqueItems": true } ] }, @@ -170,7 +175,8 @@ }, "required": [ "ocid" - ] + ], + "minProperties": 1 }, "LinkedRelease": { "title": "Linked release", @@ -181,8 +187,7 @@ "title": "Release URL", "description": "The URL of the release which contains the URL of the package with the release `id` appended using a fragment identifier e.g. https://standard.open-contracting.org/{{version}}/{{lang}}/examples/tender.json#ocds-213czf-000-00001", "type": [ - "string", - "null" + "string" ], "format": "uri" }, @@ -219,13 +224,16 @@ }, "codelist": "releaseTag.csv", "openCodelist": false, - "minItems": 1 + "minItems": 1, + "uniqueItems": true } }, "required": [ "url", "date" - ] + ], + "minProperties": 1 } - } + }, + "minProperties": 1 } diff --git a/schema/strict/release-package-schema.json b/schema/strict/release-package-schema.json index e4491c289..08d309d11 100644 --- a/schema/strict/release-package-schema.json +++ b/schema/strict/release-package-schema.json @@ -1,8 +1,8 @@ { - "id": "https://standard.open-contracting.org/schema/1__1__5/release-package-schema.json", + "id": "https://standard.open-contracting.org/schema/1__1__5/strict/release-package-schema.json", "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Schema for an Open Contracting Release Package", - "description": "The release package contains a list of releases along with some publishing metadata.", + "title": "Strict schema for an Open Contracting Release Package", + "description": "The release package contains a list of releases along with some publishing metadata. The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.", "type": "object", "required": [ "uri", @@ -31,7 +31,9 @@ "items": { "type": "string", "format": "uri" - } + }, + "minItems": 1, + "uniqueItems": true }, "publishedDate": { "title": "Published date", @@ -46,7 +48,8 @@ "items": { "$ref": "https://standard.open-contracting.org/schema/1__1__5/release-schema.json" }, - "uniqueItems": true + "uniqueItems": true, + "minItems": 1 }, "publisher": { "title": "Publisher", @@ -56,44 +59,44 @@ "name": { "title": "Name", "description": "The name of the organization or department responsible for publishing this OCDS data.", - "type": "string" + "type": "string", + "minLength": 1 }, "scheme": { "title": "Scheme", "description": "The scheme that holds the unique identifiers used to identify the item being identified.", "type": [ - "string", - "null" - ] + "string" + ], + "minLength": 1 }, "uid": { "title": "uid", "description": "The unique ID for this entity under the given ID scheme.", "type": [ - "string", - "null" - ] + "string" + ], + "minLength": 1 }, "uri": { "title": "URI", "description": "A URI to identify the publisher.", "type": [ - "string", - "null" + "string" ], "format": "uri" } }, "required": [ "name" - ] + ], + "minProperties": 1 }, "license": { "title": "License", "description": "A link to the license that applies to the data in this package. A Public Domain Dedication or [Open Definition Conformant](https://opendefinition.org/licenses/) license is recommended. The canonical URI of the license should be used. Documents linked from this file may be under other license conditions.", "type": [ - "string", - "null" + "string" ], "format": "uri" }, @@ -101,10 +104,10 @@ "title": "Publication policy", "description": "A link to a document describing the publishers [publication policy](https://standard.open-contracting.org/{{version}}/{{lang}}/guidance/publish/#finalize-your-publication-policy).", "type": [ - "string", - "null" + "string" ], "format": "uri" } - } + }, + "minProperties": 1 } diff --git a/schema/strict/release-schema.json b/schema/strict/release-schema.json index f5ca62c23..b2bbfad6e 100644 --- a/schema/strict/release-schema.json +++ b/schema/strict/release-schema.json @@ -1,7 +1,7 @@ { - "id": "https://standard.open-contracting.org/schema/1__1__5/strict-release-schema.json", + "id": "https://standard.open-contracting.org/schema/1__1__5/strict/release-schema.json", "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Strict schema for an Open Contracting Release.", + "title": "Strict schema for an Open Contracting Release", "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multiple stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\" The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.", "type": "object", "properties": { From eacd129e727606087a7839cb8b99fa2de2d1836d Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Mon, 28 Feb 2022 13:53:01 +1300 Subject: [PATCH 13/29] Move key-based validation properties logic from OCDS Kit --- manage.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/manage.py b/manage.py index cb18e5719..916ac5e82 100755 --- a/manage.py +++ b/manage.py @@ -439,6 +439,42 @@ def get_versioned_release_schema(schema): return schema +def add_key_based_validation_properties(schema): + """ + Adds: + * "format": "email" if the key is "email" + * "minimum": 0 to "quantity", "durationInDays" and "numberOfTenderers fields + * "required": ["id", "name"] to "Organization" and "OrganizationReference" + * "required": ["id"] to "Amendment" and "RelatedProcess" + * "$ref": "#/definitions/UnitValue" to "Unit.value" + + Removes "integer" from "type" for ID fields. + + :param dict schema: a JSON schema + """ + if isinstance(schema, list): + for item in schema: + add_key_based_validation_properties(item) + elif isinstance(schema, dict): + for key, value in schema.items(): + if key == 'email': + value['format'] = 'email' + elif key in ['quantity', 'durationInDays', 'numberOfTenderers']: + value['minimum'] = 0 + elif key in ['Organization', 'OrganizationReference']: + value['required'] = ['id', 'name'] + value['properties']['name']['type'] = "string" + value['properties']['id']['type'] = "string" + elif key in ['Amendment', 'RelatedProcess']: + value['required'] = ['id'] + value['properties']['id']['type'] = "string" + elif key == 'id': + if 'type' in value: + if 'integer' in value['type']: + value['type'].remove('integer') + + add_key_based_validation_properties(value) + def get_strict_schema(schema): """ @@ -453,6 +489,9 @@ def get_strict_schema(schema): # Add validation properties add_validation_properties(schema) + + # Add key-based validation properties + add_key_based_validation_properties(schema) # Remove null types from package schemas if 'package' in schema['id']: From 85af27bee511efb3a1b0c04e016a333aa067ae15 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Mon, 28 Feb 2022 13:54:37 +1300 Subject: [PATCH 14/29] Move UnitValue definition to regular release schema --- manage.py | 8 +- schema/dereferenced-release-schema.json | 332 ++++++++++++++++ schema/release-schema.json | 332 ++++++++++++++++ schema/strict/unitvalue-schema.json | 332 ---------------- .../versioned-release-validation-schema.json | 368 ++++++++++++++++++ 5 files changed, 1034 insertions(+), 338 deletions(-) delete mode 100644 schema/strict/unitvalue-schema.json diff --git a/manage.py b/manage.py index 916ac5e82..df9b35619 100755 --- a/manage.py +++ b/manage.py @@ -472,6 +472,8 @@ def add_key_based_validation_properties(schema): if 'type' in value: if 'integer' in value['type']: value['type'].remove('integer') + elif key == 'Unit': + value['properties']['value']['$ref'] = '#/definitions/UnitValue' add_key_based_validation_properties(value) @@ -497,12 +499,6 @@ def get_strict_schema(schema): if 'package' in schema['id']: remove_nulls(schema) - else: - # Add UnitValue definition - unitvalue = json_load('strict/unitvalue-schema.json') - schema['definitions']['UnitValue'] = unitvalue - schema['definitions']['Unit']['properties']['value']['$ref'] = '#/definitions/UnitValue' - return schema diff --git a/schema/dereferenced-release-schema.json b/schema/dereferenced-release-schema.json index 73d9d34e3..10ab3ad64 100644 --- a/schema/dereferenced-release-schema.json +++ b/schema/dereferenced-release-schema.json @@ -36321,6 +36321,338 @@ "format": "uri" } } + }, + "UnitValue": { + "title": "Unit value", + "description": "The monetary value of a single unit.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ], + "minimum": 0 + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 } } } diff --git a/schema/release-schema.json b/schema/release-schema.json index 6c0d988a4..2d15a4f9d 100644 --- a/schema/release-schema.json +++ b/schema/release-schema.json @@ -2684,6 +2684,338 @@ "format": "uri" } } + }, + "UnitValue": { + "title": "Unit value", + "description": "The monetary value of a single unit.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "Amount as a number.", + "type": [ + "number", + "null" + ], + "minimum": 0 + }, + "currency": { + "title": "Currency", + "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", + "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 + ] + } + }, + "minProperties": 1 } } } diff --git a/schema/strict/unitvalue-schema.json b/schema/strict/unitvalue-schema.json deleted file mode 100644 index caffafb70..000000000 --- a/schema/strict/unitvalue-schema.json +++ /dev/null @@ -1,332 +0,0 @@ -{ - "title": "Unit value", - "description": "The monetary value of a single unit.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 -} diff --git a/schema/versioned-release-validation-schema.json b/schema/versioned-release-validation-schema.json index 1c3e2c016..77c0ea22c 100644 --- a/schema/versioned-release-validation-schema.json +++ b/schema/versioned-release-validation-schema.json @@ -2956,6 +2956,374 @@ } } }, + "UnitValue": { + "type": "object", + "properties": { + "amount": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "number", + "null" + ], + "minimum": 0 + }, + "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" + } + } + } + } + } + }, + "minProperties": 1 + }, "StringNullUriVersioned": { "type": "array", "items": { From 7643c47e64a188a8535356251c59faab57dbcf1a Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Mon, 28 Feb 2022 13:56:18 +1300 Subject: [PATCH 15/29] Fix flake8 errors --- manage.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/manage.py b/manage.py index df9b35619..4dfbda8f7 100755 --- a/manage.py +++ b/manage.py @@ -439,6 +439,7 @@ def get_versioned_release_schema(schema): return schema + def add_key_based_validation_properties(schema): """ Adds: @@ -476,7 +477,7 @@ def add_key_based_validation_properties(schema): value['properties']['value']['$ref'] = '#/definitions/UnitValue' add_key_based_validation_properties(value) - + def get_strict_schema(schema): """ @@ -491,7 +492,7 @@ def get_strict_schema(schema): # Add validation properties add_validation_properties(schema) - + # Add key-based validation properties add_key_based_validation_properties(schema) From c0ac04f025786e5cc610dae43567ab8be8b47efc Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Mon, 28 Feb 2022 14:00:44 +1300 Subject: [PATCH 16/29] Run ./manage.py pre-commit --- .../strict/dereferenced-release-schema.json | 147 ++++++++++-------- schema/strict/release-schema.json | 17 +- .../versioned-release-validation-schema.json | 21 +-- 3 files changed, 103 insertions(+), 82 deletions(-) diff --git a/schema/strict/dereferenced-release-schema.json b/schema/strict/dereferenced-release-schema.json index 2e1aed658..93bd33926 100644 --- a/schema/strict/dereferenced-release-schema.json +++ b/schema/strict/dereferenced-release-schema.json @@ -595,6 +595,7 @@ "null" ], "description": "The e-mail address of the contact point/person.", + "minLength": 1, "format": "email" }, "telephone": { @@ -671,11 +672,11 @@ "minLength": 1 } }, + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "uniqueItems": true, "minItems": 1 @@ -1174,6 +1175,7 @@ "null" ], "description": "The e-mail address of the contact point/person.", + "minLength": 1, "format": "email" }, "telephone": { @@ -1223,11 +1225,11 @@ "type": "object", "description": "The organization aiming to conclude a contract with a supplier or to use the goods, works or services resulting from the contract.", "title": "Buyer", + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "planning": { "title": "Planning", @@ -3022,6 +3024,7 @@ "null" ], "description": "The e-mail address of the contact point/person.", + "minLength": 1, "format": "email" }, "telephone": { @@ -3071,11 +3074,11 @@ "type": "object", "description": "The organization managing the contracting process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", "title": "Procuring entity", + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "items": { "title": "Items to be procured", @@ -5564,6 +5567,7 @@ "null" ], "description": "The e-mail address of the contact point/person.", + "minLength": 1, "format": "email" }, "telephone": { @@ -5613,11 +5617,11 @@ "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", "title": "Organization reference", + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "uniqueItems": true, "minItems": 1 @@ -6511,10 +6515,10 @@ "minLength": 1 } }, + "minProperties": 1, "required": [ "id" - ], - "minProperties": 1 + ] }, "minItems": 1, "uniqueItems": true @@ -6624,10 +6628,10 @@ "minLength": 1 } }, + "minProperties": 1, "required": [ "id" ], - "minProperties": 1, "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -8251,6 +8255,7 @@ "null" ], "description": "The e-mail address of the contact point/person.", + "minLength": 1, "format": "email" }, "telephone": { @@ -8300,11 +8305,11 @@ "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", "title": "Organization reference", + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "uniqueItems": true, "minItems": 1 @@ -9221,10 +9226,10 @@ "minLength": 1 } }, + "minProperties": 1, "required": [ "id" - ], - "minProperties": 1 + ] }, "minItems": 1, "uniqueItems": true @@ -9334,10 +9339,10 @@ "minLength": 1 } }, + "minProperties": 1, "required": [ "id" ], - "minProperties": 1, "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -12114,6 +12119,7 @@ "null" ], "description": "The e-mail address of the contact point/person.", + "minLength": 1, "format": "email" }, "telephone": { @@ -12163,11 +12169,11 @@ "type": "object", "description": "An organization reference for the organization from which the funds in this transaction originate.", "title": "Payer", + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "payee": { "properties": { @@ -12663,6 +12669,7 @@ "null" ], "description": "The e-mail address of the contact point/person.", + "minLength": 1, "format": "email" }, "telephone": { @@ -12712,11 +12719,11 @@ "type": "object", "description": "An organization reference for the organization which receives the funds in this transaction.", "title": "Payee", + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "uri": { "title": "Linked spending information", @@ -14033,10 +14040,10 @@ ] } }, + "minProperties": 1, "required": [ "id" - ], - "minProperties": 1 + ] }, "description": "The details of related processes: for example, if this process is followed by one or more contracting processes, represented under a separate ocid. This is commonly used to refer to subcontracts and to renewal or replacement processes for this contract.", "title": "Related processes", @@ -14776,10 +14783,10 @@ "minLength": 1 } }, + "minProperties": 1, "required": [ "id" - ], - "minProperties": 1 + ] }, "minItems": 1, "uniqueItems": true @@ -14889,10 +14896,10 @@ "minLength": 1 } }, + "minProperties": 1, "required": [ "id" ], - "minProperties": 1, "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -14999,10 +15006,10 @@ ] } }, + "minProperties": 1, "required": [ "id" - ], - "minProperties": 1 + ] }, "description": "The details of related processes: for example, if this process follows on from one or more other processes, represented under a separate ocid. This is commonly used to relate mini-competitions to their parent frameworks or individual tenders to a broader planning process.", "title": "Related processes", @@ -16841,6 +16848,7 @@ "null" ], "description": "The e-mail address of the contact point/person.", + "minLength": 1, "format": "email" }, "telephone": { @@ -16890,11 +16898,11 @@ "type": "object", "description": "The organization managing the contracting process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", "title": "Procuring entity", + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "items": { "title": "Items to be procured", @@ -19383,6 +19391,7 @@ "null" ], "description": "The e-mail address of the contact point/person.", + "minLength": 1, "format": "email" }, "telephone": { @@ -19432,11 +19441,11 @@ "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", "title": "Organization reference", + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "uniqueItems": true, "minItems": 1 @@ -20330,10 +20339,10 @@ "minLength": 1 } }, + "minProperties": 1, "required": [ "id" - ], - "minProperties": 1 + ] }, "minItems": 1, "uniqueItems": true @@ -20443,10 +20452,10 @@ "minLength": 1 } }, + "minProperties": 1, "required": [ "id" ], - "minProperties": 1, "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -22066,6 +22075,7 @@ "null" ], "description": "The e-mail address of the contact point/person.", + "minLength": 1, "format": "email" }, "telephone": { @@ -22115,11 +22125,11 @@ "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", "title": "Organization reference", + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "uniqueItems": true, "minItems": 1 @@ -23036,10 +23046,10 @@ "minLength": 1 } }, + "minProperties": 1, "required": [ "id" - ], - "minProperties": 1 + ] }, "minItems": 1, "uniqueItems": true @@ -23149,10 +23159,10 @@ "minLength": 1 } }, + "minProperties": 1, "required": [ "id" ], - "minProperties": 1, "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -25922,6 +25932,7 @@ "null" ], "description": "The e-mail address of the contact point/person.", + "minLength": 1, "format": "email" }, "telephone": { @@ -25971,11 +25982,11 @@ "type": "object", "description": "An organization reference for the organization from which the funds in this transaction originate.", "title": "Payer", + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "payee": { "properties": { @@ -26471,6 +26482,7 @@ "null" ], "description": "The e-mail address of the contact point/person.", + "minLength": 1, "format": "email" }, "telephone": { @@ -26520,11 +26532,11 @@ "type": "object", "description": "An organization reference for the organization which receives the funds in this transaction.", "title": "Payee", + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "uri": { "title": "Linked spending information", @@ -27841,10 +27853,10 @@ ] } }, + "minProperties": 1, "required": [ "id" - ], - "minProperties": 1 + ] }, "description": "The details of related processes: for example, if this process is followed by one or more contracting processes, represented under a separate ocid. This is commonly used to refer to subcontracts and to renewal or replacement processes for this contract.", "title": "Related processes", @@ -28584,10 +28596,10 @@ "minLength": 1 } }, + "minProperties": 1, "required": [ "id" - ], - "minProperties": 1 + ] }, "minItems": 1, "uniqueItems": true @@ -28697,10 +28709,10 @@ "minLength": 1 } }, + "minProperties": 1, "required": [ "id" ], - "minProperties": 1, "deprecated": { "description": "The single amendment object has been deprecated in favour of including amendments in an amendments (plural) array.", "deprecatedVersion": "1.1" @@ -29593,6 +29605,7 @@ "null" ], "description": "The e-mail address of the contact point/person.", + "minLength": 1, "format": "email" }, "telephone": { @@ -29642,11 +29655,11 @@ "type": "object", "description": "An organization reference for the organization from which the funds in this transaction originate.", "title": "Payer", + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "payee": { "properties": { @@ -30142,6 +30155,7 @@ "null" ], "description": "The e-mail address of the contact point/person.", + "minLength": 1, "format": "email" }, "telephone": { @@ -30191,11 +30205,11 @@ "type": "object", "description": "An organization reference for the organization which receives the funds in this transaction.", "title": "Payee", + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "uri": { "title": "Linked spending information", @@ -33490,6 +33504,7 @@ "null" ], "description": "The e-mail address of the contact point/person.", + "minLength": 1, "format": "email" }, "telephone": { @@ -33539,11 +33554,11 @@ "type": "object", "description": "An organization reference for the organization from which the funds in this transaction originate.", "title": "Payer", + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "payee": { "properties": { @@ -34039,6 +34054,7 @@ "null" ], "description": "The e-mail address of the contact point/person.", + "minLength": 1, "format": "email" }, "telephone": { @@ -34088,11 +34104,11 @@ "type": "object", "description": "An organization reference for the organization which receives the funds in this transaction.", "title": "Payee", + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "uri": { "title": "Linked spending information", @@ -35049,6 +35065,7 @@ "null" ], "description": "The e-mail address of the contact point/person.", + "minLength": 1, "format": "email" }, "telephone": { @@ -35098,11 +35115,11 @@ "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", "title": "Organization reference", + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "Organization": { "title": "Organization", @@ -35589,6 +35606,7 @@ "null" ], "description": "The e-mail address of the contact point/person.", + "minLength": 1, "format": "email" }, "telephone": { @@ -35665,11 +35683,11 @@ "minLength": 1 } }, + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "Item": { "title": "Item", @@ -36372,10 +36390,10 @@ "minLength": 1 } }, + "minProperties": 1, "required": [ "id" - ], - "minProperties": 1 + ] }, "Classification": { "title": "Classification", @@ -36839,6 +36857,7 @@ "null" ], "description": "The e-mail address of the contact point/person.", + "minLength": 1, "format": "email" }, "telephone": { @@ -37349,10 +37368,10 @@ ] } }, + "minProperties": 1, "required": [ "id" - ], - "minProperties": 1 + ] }, "Unit": { "title": "Unit", diff --git a/schema/strict/release-schema.json b/schema/strict/release-schema.json index b2bbfad6e..1fb4615d4 100644 --- a/schema/strict/release-schema.json +++ b/schema/strict/release-schema.json @@ -1514,11 +1514,11 @@ "type": "object", "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", "title": "Organization reference", + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "Organization": { "title": "Organization", @@ -1598,11 +1598,11 @@ "minLength": 1 } }, + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "Item": { "title": "Item", @@ -1776,10 +1776,10 @@ "minLength": 1 } }, + "minProperties": 1, "required": [ "id" - ], - "minProperties": 1 + ] }, "Classification": { "title": "Classification", @@ -2243,6 +2243,7 @@ "null" ], "description": "The e-mail address of the contact point/person.", + "minLength": 1, "format": "email" }, "telephone": { @@ -2753,10 +2754,10 @@ ] } }, + "minProperties": 1, "required": [ "id" - ], - "minProperties": 1 + ] }, "Unit": { "title": "Unit", diff --git a/schema/strict/versioned-release-validation-schema.json b/schema/strict/versioned-release-validation-schema.json index 48c13d7ec..3cac37404 100644 --- a/schema/strict/versioned-release-validation-schema.json +++ b/schema/strict/versioned-release-validation-schema.json @@ -2200,11 +2200,11 @@ } }, "type": "object", + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "Organization": { "type": "object", @@ -2349,11 +2349,11 @@ "minLength": 1 } }, + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "Item": { "type": "object", @@ -2635,10 +2635,10 @@ "minLength": 1 } }, + "minProperties": 1, "required": [ "id" - ], - "minProperties": 1 + ] }, "Classification": { "type": "object", @@ -3339,6 +3339,7 @@ "string", "null" ], + "minLength": 1, "format": "email" }, "releaseTag": { @@ -4027,10 +4028,10 @@ "$ref": "#/definitions/StringNullUriVersioned" } }, + "minProperties": 1, "required": [ "id" - ], - "minProperties": 1 + ] }, "Unit": { "type": "object", @@ -4836,11 +4837,11 @@ } }, "type": "object", + "minProperties": 1, "required": [ "id", "name" - ], - "minProperties": 1 + ] }, "ClassificationUnversioned": { "type": "object", From db72bed2f086c6340481536fc54731fdc72ef728 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Mon, 28 Feb 2022 14:32:57 +1300 Subject: [PATCH 17/29] Strict schema: Remove integer type from projectID --- manage.py | 4 ++-- schema/strict/dereferenced-release-schema.json | 3 --- schema/strict/release-schema.json | 1 - schema/strict/versioned-release-validation-schema.json | 1 - 4 files changed, 2 insertions(+), 7 deletions(-) diff --git a/manage.py b/manage.py index 4dfbda8f7..1d660c5e6 100755 --- a/manage.py +++ b/manage.py @@ -449,7 +449,7 @@ def add_key_based_validation_properties(schema): * "required": ["id"] to "Amendment" and "RelatedProcess" * "$ref": "#/definitions/UnitValue" to "Unit.value" - Removes "integer" from "type" for ID fields. + Removes "integer" type from "id" and "projectID" fields. :param dict schema: a JSON schema """ @@ -469,7 +469,7 @@ def add_key_based_validation_properties(schema): elif key in ['Amendment', 'RelatedProcess']: value['required'] = ['id'] value['properties']['id']['type'] = "string" - elif key == 'id': + elif key in ['id', 'projectID']: if 'type' in value: if 'integer' in value['type']: value['type'].remove('integer') diff --git a/schema/strict/dereferenced-release-schema.json b/schema/strict/dereferenced-release-schema.json index 93bd33926..6e271e1df 100644 --- a/schema/strict/dereferenced-release-schema.json +++ b/schema/strict/dereferenced-release-schema.json @@ -1622,7 +1622,6 @@ "description": "An external identifier for the project that this contracting process forms part of, or is funded via (if applicable). Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -15446,7 +15445,6 @@ "description": "An external identifier for the project that this contracting process forms part of, or is funded via (if applicable). Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 @@ -32592,7 +32590,6 @@ "description": "An external identifier for the project that this contracting process forms part of, or is funded via (if applicable). Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 diff --git a/schema/strict/release-schema.json b/schema/strict/release-schema.json index 1fb4615d4..d5b3e8e3a 100644 --- a/schema/strict/release-schema.json +++ b/schema/strict/release-schema.json @@ -1313,7 +1313,6 @@ "description": "An external identifier for the project that this contracting process forms part of, or is funded via (if applicable). Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", - "integer", "null" ], "minLength": 1 diff --git a/schema/strict/versioned-release-validation-schema.json b/schema/strict/versioned-release-validation-schema.json index 3cac37404..74035747f 100644 --- a/schema/strict/versioned-release-validation-schema.json +++ b/schema/strict/versioned-release-validation-schema.json @@ -1984,7 +1984,6 @@ "value": { "type": [ "string", - "integer", "null" ], "minLength": 1 From 062a8f14ccf8ec060f0ae5272ecd64ffc3af55e1 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Mon, 1 Aug 2022 10:00:37 +1200 Subject: [PATCH 18/29] Merge branch '1.2-dev' into 1046-strict-schema Add missing type to UnitValue.currency. Run ./manage.py pre-commit. --- .github/workflows/ci.yml | 17 +- .github/workflows/js.yml | 6 +- .github/workflows/lint.yml | 18 +- .github/workflows/shell.yml | 15 + .gitignore | 1 - README.md | 2 +- common-requirements.in | 3 +- common-requirements.txt | 83 +- docs/conf.py | 2 +- .../suspended_contract.json} | 0 .../moldova_organization_scale.json | 3 - .../release-schema.json | 2 +- docs/examples/planning.json | 177 ---- docs/examples/record.json | 473 --------- .../release_package.json | 438 ++++++++ docs/governance/index.md | 32 +- docs/guidance/build.md | 15 +- docs/guidance/build/data_collection_tools.md | 4 +- docs/guidance/build/easy_releases.md | 12 +- docs/guidance/build/hosting.md | 136 ++- docs/guidance/build/merging.md | 4 +- docs/guidance/build/serialization.md | 2 +- docs/guidance/build/system_architectures.md | 4 +- docs/guidance/design.md | 7 + docs/guidance/design/user_needs.md | 6 +- docs/guidance/map.md | 10 +- docs/guidance/map/amendments.md | 2 +- docs/guidance/map/awards_contracts.md | 4 +- docs/guidance/map/buyers_suppliers.md | 4 +- docs/guidance/map/contract_suspension.md | 2 +- .../map/contracting_planning_processes.md | 2 +- docs/guidance/map/extensions.md | 4 +- docs/guidance/map/framework_agreements.md | 2 +- docs/guidance/map/linked_standards.md | 2 +- docs/guidance/map/localization.md | 4 +- docs/guidance/map/milestones.md | 2 +- .../map/organization_classifications.md | 16 +- docs/guidance/map/organization_identifiers.md | 4 +- docs/guidance/map/organization_reference.md | 4 +- docs/guidance/map/organizational_units.md | 2 +- docs/guidance/map/unsuccessful_processes.md | 2 +- docs/guidance/publish.md | 5 +- docs/guidance/publish/quality.md | 12 +- docs/history/changelog.md | 42 +- docs/primer/releases_and_records.md | 12 +- docs/primer/what.md | 6 +- docs/schema/codelists.md | 36 +- docs/schema/identifiers.md | 16 +- docs/schema/merging.md | 10 +- docs/schema/records_reference.md | 8 +- docs/schema/reference.md | 263 ++++- docs/support/index.md | 4 - manage.py | 65 +- schema/codelists/classificationScheme.csv | 6 +- schema/codelists/documentType.csv | 35 +- .../codelists/extendedProcurementCategory.csv | 8 +- schema/codelists/partyRole.csv | 10 +- schema/codelists/partyScale.csv | 7 + schema/codelists/procurementCategory.csv | 6 +- schema/dereferenced-release-schema.json | 916 +++++++--------- schema/record-package-schema.json | 4 +- schema/release-schema.json | 226 ++-- .../strict/dereferenced-release-schema.json | 974 ++++++++---------- schema/strict/record-package-schema.json | 4 +- schema/strict/release-schema.json | 234 +++-- .../versioned-release-validation-schema.json | 276 +++-- .../versioned-release-validation-schema.json | 217 ++-- script/update | 2 +- setup.cfg | 2 - tests/conftest.py | 32 +- tests/test_common.py | 34 +- tests/test_docs.py | 11 +- 72 files changed, 2561 insertions(+), 2450 deletions(-) create mode 100644 .github/workflows/shell.yml rename docs/examples/{suspendedcontract.json => contract_suspension/suspended_contract.json} (100%) delete mode 100644 docs/examples/planning.json delete mode 100644 docs/examples/record.json create mode 100644 docs/examples/release_schema_reference/release_package.json create mode 100644 schema/codelists/partyScale.csv delete mode 100644 setup.cfg diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a6e362a1c..98986c740 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,23 +5,20 @@ jobs: if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: true - - uses: actions/setup-python@v1 + - uses: actions/setup-python@v3 with: - python-version: 3.6 - - uses: actions/cache@v1 - with: - path: ~/.cache/pip - key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} - restore-keys: | - ${{ runner.os }}-pip- + python-version: 3.8 + cache: pip + cache-dependency-path: '**/requirements*.txt' # Don't install editable projects in the current working directory. # https://pip.pypa.io/en/latest/reference/pip_install/#install-src - run: pip install --src $GITHUB_WORKSPACE/../src -r requirements.txt # Google Chrome and ChromeDriver are already included. # https://help.github.com/en/actions/reference/software-installed-on-github-hosted-runners + # https://github.com/actions/virtual-environments/blob/main/images/linux/Ubuntu2004-Readme.md - if: github.repository == 'open-contracting/standard_profile_template' run: make update extract - run: make @@ -29,7 +26,7 @@ jobs: # - run: | # make linkcheck # rm -f output.json output.txt - - run: pytest + - run: pytest -W error # Deploy the built documentation to the staging directory. - if: github.event_name == 'push' uses: shimataro/ssh-key-action@v2 diff --git a/.github/workflows/js.yml b/.github/workflows/js.yml index 33a22c5c6..2604a6a4d 100644 --- a/.github/workflows/js.yml +++ b/.github/workflows/js.yml @@ -5,9 +5,9 @@ jobs: if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 with: - node-version: 14.x + node-version: 16.x - run: npm install standard - run: npx standard docs/_static/script.js diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 54a61ccb5..ddd3191a8 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -7,19 +7,11 @@ jobs: if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v1 + - uses: actions/checkout@v3 + - uses: actions/setup-python@v3 with: - python-version: 3.6 - - uses: actions/cache@v1 - with: - path: ~/.cache/pip - key: ${{ runner.os }}-pip-${{ hashFiles('.github/workflows/lint.yml') }} - restore-keys: | - ${{ runner.os }}-pip- + python-version: 3.8 + cache: pip + cache-dependency-path: '**/requirements*.txt' - run: curl -s -S --retry 3 $BASEDIR/tests/install.sh | bash - - - run: sudo apt-get install shellcheck - - run: sudo snap install shfmt - run: curl -s -S --retry 3 $BASEDIR/tests/script.sh | bash - - - run: shellcheck $(shfmt -f .) - - run: shfmt -d -i 4 -sr $(shfmt -f .) diff --git a/.github/workflows/shell.yml b/.github/workflows/shell.yml new file mode 100644 index 000000000..182176554 --- /dev/null +++ b/.github/workflows/shell.yml @@ -0,0 +1,15 @@ +name: Lint Shell +on: [push, pull_request] +jobs: + build: + if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Install shellcheck + run: | + sudo apt update + sudo apt install shellcheck + - run: sudo snap install shfmt + - run: shellcheck $(shfmt -f .) + - run: shfmt -d -i 4 -sr $(shfmt -f .) diff --git a/.gitignore b/.gitignore index 7fcb11356..16ebca1ad 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ *.mo *.swp .cache -.python-version .ve /*.pdf diff --git a/README.md b/README.md index c866f047f..38b19d6dc 100644 --- a/README.md +++ b/README.md @@ -30,4 +30,4 @@ cat docs/examples/change_history/{tender,tenderUpdate,award}.json | ocdskit --pr cat docs/examples/change_history/{tender,tenderUpdate,award,contract}.json | ocdskit --pretty compile --published-date 2010-06-10T10:30:00Z --uri https://standard.open-contracting.org/examples/records/ocds-213czf-000-00001.json --package --versioned --schema schema/release-schema.json > docs/examples/change_history/records/contract.json cat docs/examples/change_history/{tender,tenderUpdate,award,contract,implementation}.json | ocdskit --pretty compile --published-date 2011-01-10T09:30:00Z --uri https://standard.open-contracting.org/examples/records/ocds-213czf-000-00001.json --package --versioned --schema schema/release-schema.json > docs/examples/change_history/records/implementation.json cat docs/examples/change_history/{tender,tenderUpdate,award,contract,implementation,contractAmendment}.json | ocdskit --pretty compile --published-date 2011-04-05T13:30:00Z --uri https://standard.open-contracting.org/examples/records/ocds-213czf-000-00001.json --package --versioned --schema schema/release-schema.json > docs/examples/change_history/records/contractAmendment.json -``` \ No newline at end of file +``` diff --git a/common-requirements.in b/common-requirements.in index 70d67f4dd..fda1d46ad 100644 --- a/common-requirements.in +++ b/common-requirements.in @@ -1,6 +1,5 @@ -# https://github.com/executablebooks/MyST-Parser/issues/331 waiting for > 0.14.0 --e git+https://github.com/executablebooks/MyST-Parser.git@a39d2363a161b7f1d4427c6f3011203b560cb302#egg=myst-parser linkify-it-py +myst-parser ocds-babel Sphinx -e git+https://github.com/open-contracting/standard_theme.git@open_contracting#egg=standard_theme diff --git a/common-requirements.txt b/common-requirements.txt index 0d8c9e4a0..149da14d0 100644 --- a/common-requirements.txt +++ b/common-requirements.txt @@ -1,20 +1,24 @@ # -# This file is autogenerated by pip-compile +# This file is autogenerated by pip-compile with python 3.8 # To update, run: # # pip-compile common-requirements.in # --e git+https://github.com/executablebooks/MyST-Parser.git@a39d2363a161b7f1d4427c6f3011203b560cb302#egg=myst-parser - # via -r common-requirements.in -e git+https://github.com/open-contracting/standard_theme.git@open_contracting#egg=standard_theme # via -r common-requirements.in alabaster==0.7.12 # via sphinx +async-generator==1.10 + # via + # trio + # trio-websocket attrs==20.3.0 # via # markdown-it-py + # outcome # pytest -babel==2.9.0 + # trio +babel==2.9.1 # via # sphinx # sphinx-intl @@ -22,6 +26,9 @@ certifi==2020.12.5 # via # elasticsearch # requests + # urllib3 +cffi==1.15.0 + # via cryptography chardet==4.0.0 # via requests click==7.1.2 @@ -32,6 +39,10 @@ click==7.1.2 # sphinx-intl colorama==0.4.4 # via sphinx-autobuild +cryptography==36.0.2 + # via + # pyopenssl + # urllib3 docutils==0.16 # via # myst-parser @@ -42,15 +53,15 @@ gitdb==4.0.5 # via gitpython gitpython==3.1.14 # via transifex-client +h11==0.13.0 + # via wsproto idna==2.10 - # via requests + # via + # requests + # trio + # urllib3 imagesize==1.2.0 # via sphinx -importlib-metadata==3.7.3 - # via - # pep517 - # pluggy - # pytest iniconfig==1.1.1 # via pytest jinja2==2.11.3 @@ -65,7 +76,7 @@ linkify-it-py==1.0.1 # via -r common-requirements.in livereload==2.6.3 # via sphinx-autobuild -lxml==4.6.3 +lxml==4.9.1 # via ocdsindex markdown-it-py==1.0.0 # via @@ -75,28 +86,38 @@ markupsafe==1.1.1 # via jinja2 mdit-py-plugins==0.2.8 # via myst-parser +myst-parser==0.15.1 + # via -r common-requirements.in ocds-babel==0.3.1 # via -r common-requirements.in -ocdsextensionregistry==0.1.3 +ocdsextensionregistry==0.1.12 # via -r common-requirements.in ocdsindex==0.0.7 # via -r common-requirements.in +outcome==1.1.0 + # via trio packaging==20.9 # via # pytest # sphinx pep517==0.10.0 # via pip-tools -pip-tools==6.0.1 +pip-tools==6.6.0 # via -r common-requirements.in pluggy==0.13.1 # via pytest py==1.10.0 # via pytest +pycparser==2.21 + # via cffi pygments==2.8.1 # via sphinx +pyopenssl==22.0.0 + # via urllib3 pyparsing==2.4.7 # via packaging +pysocks==1.7.1 + # via urllib3 pytest==6.2.2 # via -r common-requirements.in python-slugify==4.0.1 @@ -105,15 +126,15 @@ pytz==2021.1 # via babel pyyaml==5.4.1 # via myst-parser -requests-cache==0.5.2 - # via ocdsextensionregistry requests==2.25.1 # via # ocdsextensionregistry # requests-cache # sphinx # transifex-client -selenium==3.141.0 +requests-cache==0.5.2 + # via ocdsextensionregistry +selenium==4.1.3 # via -r common-requirements.in six==1.15.0 # via @@ -121,18 +142,22 @@ six==1.15.0 # transifex-client smmap==3.0.5 # via gitdb +sniffio==1.2.0 + # via trio snowballstemmer==2.1.0 # via sphinx -sphinx-autobuild==2021.3.14 - # via -r common-requirements.in -sphinx-intl==2.0.1 - # via -r common-requirements.in +sortedcontainers==2.4.0 + # via trio sphinx==3.5.2 # via # -r common-requirements.in # myst-parser # sphinx-autobuild # sphinx-intl +sphinx-autobuild==2021.3.14 + # via -r common-requirements.in +sphinx-intl==2.0.1 + # via -r common-requirements.in sphinxcontrib-applehelp==1.0.2 # via sphinx sphinxcontrib-devhelp==1.0.2 @@ -155,22 +180,24 @@ tornado==6.1 # via livereload transifex-client==0.14.2 # via -r common-requirements.in -typing-extensions==3.7.4.3 +trio==0.20.0 # via - # importlib-metadata - # markdown-it-py + # selenium + # trio-websocket +trio-websocket==0.9.2 + # via selenium uc-micro-py==1.0.1 # via linkify-it-py -urllib3==1.26.5 +urllib3[secure,socks]==1.26.5 # via # elasticsearch # requests # selenium # transifex-client -zipp==3.4.1 - # via - # importlib-metadata - # pep517 +wheel==0.37.0 + # via pip-tools +wsproto==1.1.0 + # via trio-websocket # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/docs/conf.py b/docs/conf.py index 95208bd29..36f267ed6 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -60,7 +60,7 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'standard_theme' +html_theme = 'standard_theme' # 'pydata_sphinx_theme' html_theme_path = [standard_theme.get_html_theme_path()] html_favicon = '_static/favicon-16x16.ico' diff --git a/docs/examples/suspendedcontract.json b/docs/examples/contract_suspension/suspended_contract.json similarity index 100% rename from docs/examples/suspendedcontract.json rename to docs/examples/contract_suspension/suspended_contract.json diff --git a/docs/examples/organizations/organization_classification/moldova_organization_scale.json b/docs/examples/organizations/organization_classification/moldova_organization_scale.json index 6047d1ee6..226727b92 100644 --- a/docs/examples/organizations/organization_classification/moldova_organization_scale.json +++ b/docs/examples/organizations/organization_classification/moldova_organization_scale.json @@ -1,9 +1,6 @@ { "uri": "https://standard.open-contracting.org/examples/release/ocds-b3wdp1-MD-1554728148250-EV-1555051169779", "version": "1.1", - "extensions": [ - "https://raw.githubusercontent.com/open-contracting-extensions/ocds_partyDetails_scale_extension/master/extension.json" - ], "publisher": { "name": "M-Tender" }, diff --git a/docs/examples/organizations/organizational_units/ocds_divisionCode_extension/release-schema.json b/docs/examples/organizations/organizational_units/ocds_divisionCode_extension/release-schema.json index 3c5ab1b28..875f7ed43 100644 --- a/docs/examples/organizations/organizational_units/ocds_divisionCode_extension/release-schema.json +++ b/docs/examples/organizations/organizational_units/ocds_divisionCode_extension/release-schema.json @@ -6,7 +6,7 @@ "properties": { "divisionCode": { "title": "Division code", - "description": "This field allows to provide a identifier for an organization's division or department involved in the contracting process. ", + "description": "This field allows to provide a identifier for an organization's division or department involved in the contracting (or planning) process.", "type": [ "string", "null" diff --git a/docs/examples/planning.json b/docs/examples/planning.json deleted file mode 100644 index a0e69febb..000000000 --- a/docs/examples/planning.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "uri": "https://standard.open-contracting.org/examples/releases/ocds-213czf-000-00001-01-planning.json", - "publishedDate": "2009-03-15T14:45:00Z", - "publisher": { - "scheme": "GB-COH", - "uid": "09506232", - "name": "Open Data Services Co-operative Limited", - "uri": "https://standard.open-contracting.org/examples/" - }, - "license": "http://opendatacommons.org/licenses/pddl/1.0/", - "publicationPolicy": "https://github.com/open-contracting/sample-data/", - "version": "1.1", - "extensions": [], - "releases": [ - { - "ocid": "ocds-213czf-000-00001", - "id": "ocds-213czf-000-00001-01-planning", - "date": "2009-03-15T14:45:00Z", - "tag": [ - "planning" - ], - "parties": [ - { - "identifier": { - "scheme": "GB-LAC", - "id": "E09000003", - "legalName": "London Borough of Barnet", - "uri": "http://www.barnet.gov.uk/" - }, - "name": "London Borough of Barnet", - "address": { - "streetAddress": "4, North London Business Park, Oakleigh Rd S", - "locality": "London", - "region": "London", - "postalCode": "N11 1NP", - "country": "GB" - }, - "contactPoint": { - "name": "Procurement Team", - "email": "procurement-team@example.com", - "telephone": "01234 345 346", - "faxNumber": "01234 345 345", - "url": "http://example.com/contact/" - }, - "roles": [ - "procuringEntity", - "buyer" - ], - "id": "GB-LAC-E09000003" - } - ], - "buyer": { - "id": "GB-LAC-E09000003", - "name": "London Borough of Barnet" - }, - "planning": { - "budget": { - "id": "6801ad388f3a38b7740dde20108c58b35984ee91", - "description": "Budget allocation for highway maintenance, aligned with 2015 strategic plan. ", - "amount": { - "amount": 6700000.0, - "currency": "GBP" - }, - "project": "Central Junction Cycle Scheme", - "projectID": "SP001", - "uri": "https://openspending.org/uk-barnet-budget/entries/6801ad388f3a38b7740dde20108c58b35984ee91" - }, - "rationale": "The 2009 Strategic Plan identifies a need for an improved cycle route in the centre of town.", - "documents": [ - { - "id": "0001", - "documentType": "procurementPlan", - "title": "Area Wide Cycle Improvements - Procurement Plan", - "description": "The overall strategic framework for procurement to enhance cycle provision.", - "url": "http://example.com/opencontracting/documents/planning/highways/procurementPlan.pdf", - "datePublished": "2009-01-05T00:00:00Z", - "format": "application/pdf" - }, - { - "id": "0002", - "documentType": "needsAssessment", - "title": "Cycle provision - Needs Assessment", - "description": "Needs assessment for provision for cyclists in the centre of town.", - "url": "http://example.com/opencontracting/documents/ocds-213czf-000-00001/needsAssessment.pdf", - "datePublished": "2009-01-15T00:00:00Z", - "format": "application/pdf" - } - ] - }, - "tender": { - "id": "ocds-213czf-000-00001-01-planning", - "title": "Planned cycle lane improvements", - "description": "The authority plans to tender for improvements to the cycle lane in early 2010. This notice provides advanced notice of the intention to tender, and details to upcoming consultation events.", - "status": "planned", - "items": [ - { - "id": "0001", - "description": "string", - "classification": { - "scheme": "CPV", - "id": "45233130", - "description": "Construction work for highways", - "uri": "http://cpv.data.ac.uk/code-45233130" - }, - "additionalClassifications": [ - { - "scheme": "CPV", - "id": "45233162-2", - "description": "Cycle path construction work", - "uri": "http://cpv.data.ac.uk/code-45233162.html" - } - ], - "quantity": 10, - "unit": { - "name": "Miles", - "value": { - "amount": 100000, - "currency": "GBP" - } - } - } - ], - "minValue": { - "amount": 500000, - "currency": "GBP" - }, - "value": { - "amount": 1000000, - "currency": "GBP" - }, - "procurementMethod": "open", - "procurementMethodRationale": "An open competitive tender is required by EU Rules", - "awardCriteria": "bestProposal", - "awardCriteriaDetails": "The best proposal, subject to value for money requirements, will be accepted.", - "tenderPeriod": { - "startDate": "2010-02-01T00:00:00Z" - }, - "awardPeriod": { - "startDate": "2010-06-01T00:00:00Z", - "endDate": "2011-06-01T23:59:59Z" - }, - "procuringEntity": { - "id": "GB-LAC-E09000003", - "name": "London Borough of Barnet" - }, - "documents": [ - { - "id": "0003", - "documentType": "x_consultationDocument", - "title": "Consultation on cycle provision", - "description": "A consultation document inviting citizen input into cycle provision.", - "url": "http://example.com/consultations/cycle-provision/", - "datePublished": "2015-02-15T00:00:00Z", - "dateModified": "2015-02-15T00:00:00Z", - "format": "text/html" - }, - { - "id": "0004", - "documentType": "x_map", - "title": "Map of affected areas", - "description": "A map showing areas affected by the planned highway updates. Available from local libraries.", - "datePublished": "2015-02-15T00:00:00Z", - "format": "offline/print" - } - ], - "milestones": [ - { - "id": "0001", - "title": "Consultation Period", - "description": "A consultation period is open for citizen input to shape the final plans.", - "dueDate": "2015-04-15T17:00:00Z" - } - ] - } - } - ] -} diff --git a/docs/examples/record.json b/docs/examples/record.json deleted file mode 100644 index be877dc51..000000000 --- a/docs/examples/record.json +++ /dev/null @@ -1,473 +0,0 @@ -{ - "extensions": [], - "publishedDate": "2014-02-02T13:02:00Z", - "publisher": { - "name": "Open Data Services Co-operative Limited", - "scheme": "GB-COH", - "uid": "09506232", - "uri": "https://standard.open-contracting.org/examples/" - }, - "records": [ - { - "compiledRelease": { - "awards": [ - { - "contractPeriod": { - "endDate": "2011-08-01T23:59:00Z", - "startDate": "2010-07-01T00:00:00Z" - }, - "date": "2010-05-10T10:30:00Z", - "description": "AnyCorp Ltd has been awarded the contract to build new cycle lanes in the centre of town.", - "documents": [ - { - "datePublished": "2010-05-10T10:30:00Z", - "description": "Award of contract to build new cycle lanes in the centre of town to AnyCorp Ltd.", - "documentType": "notice", - "format": "text/html", - "id": "0007", - "title": "Award notice", - "url": "http://example.com/tender-notices/ocds-213czf-000-00001-04.html" - } - ], - "id": "ocds-213czf-000-00001-award-01", - "items": [ - { - "additionalClassifications": [ - { - "description": "Cycle path construction work", - "id": "45233162-2", - "scheme": "CPV", - "uri": "http://cpv.data.ac.uk/code-45233162.html" - } - ], - "classification": { - "description": "Construction work for highways", - "id": "45233130", - "scheme": "CPV", - "uri": "http://cpv.data.ac.uk/code-45233130" - }, - "description": "string", - "id": "0001", - "quantity": 8, - "unit": { - "name": "Miles", - "value": { - "amount": 137000, - "currency": "GBP" - } - } - } - ], - "status": "active", - "suppliers": [ - { - "id": "GB-COH-1234567844", - "name": "AnyCorp Cycle Provision" - } - ], - "title": "Award of contract to build new cycle lanes in the centre of town.", - "value": { - "amount": 11000000, - "currency": "GBP" - } - } - ], - "buyer": { - "id": "GB-LAC-E09000003", - "name": "London Borough of Barnet" - }, - "contracts": [ - { - "awardID": "ocds-213czf-000-00001-award-01", - "dateSigned": "2015-06-10T14:23:12Z", - "description": "Contract monitoring for cycle lane construction.", - "documents": [ - { - "datePublished": "2015-06-10T16:43:12Z", - "description": "The Signed Contract for Cycle Path Construction", - "documentType": "contractSigned", - "format": "application/pdf", - "id": "0008", - "title": "Signed Contract", - "url": "http://example.com/contracts/ocds-213czf-000-00001" - }, - { - "datePublished": "2010-12-15T15:34:02Z", - "description": "Physical progress report for cycle path construction", - "documentType": "physicalProcessReport", - "format": "application/pdf", - "id": "0009", - "title": "Progress report", - "url": "http://example.com/reports/ocds-213czf-000-00001/cycle-path-01.pdf" - } - ], - "id": "ocds-213czf-000-00001-contract-01", - "implementation": { - "transactions": [ - { - "date": "2010-08-01T00:00:00Z", - "id": "ocds-213czf-000-00001-1", - "payee": { - "id": "GB-COH-1234567844", - "name": "AnyCorp Ltd" - }, - "payer": { - "id": "GB-LAC-E09000003", - "name": "London Borough of Barnet" - }, - "source": "https://openspending.org/uk-barnet-spending/", - "uri": "https://openspending.org/uk-barnet-spending/transaction/asd9235qaghvs1059620ywhgai", - "value": { - "amount": 500000, - "currency": "GBP" - } - }, - { - "date": "2010-10-01T00:00:00Z", - "id": "ocds-213czf-000-00001-2", - "payee": { - "id": "GB-COH-1234567844", - "name": "AnyCorp Ltd" - }, - "payer": { - "id": "GB-LAC-E09000003", - "name": "London Borough of Barnet" - }, - "source": "https://openspending.org/uk-barnet-spending/", - "uri": "https://openspending.org/uk-barnet-spending/transaction/asd9235qaghvs105962as0012", - "value": { - "amount": 100000, - "currency": "GBP" - } - } - ] - }, - "items": [ - { - "additionalClassifications": [ - { - "description": "Cycle path construction work", - "id": "45233162-2", - "scheme": "CPV", - "uri": "http://cpv.data.ac.uk/code-45233162.html" - } - ], - "classification": { - "description": "Construction work for highways", - "id": "45233130", - "scheme": "CPV", - "uri": "http://cpv.data.ac.uk/code-45233130" - }, - "description": "string", - "id": "0001", - "quantity": 8, - "unit": { - "name": "Miles", - "value": { - "amount": 137000, - "currency": "GBP" - } - } - } - ], - "period": { - "endDate": "2011-08-01T23:59:00Z", - "startDate": "2010-07-01T00:00:00Z" - }, - "status": "active", - "title": "Contract to build new cycle lanes in the centre of town.", - "value": { - "amount": 11000000, - "currency": "GBP" - } - } - ], - "date": "2011-01-10T09:30:00Z", - "id": "ocds-213czf-000-00001-06-implementation", - "ocid": "ocds-213czf-000-00001", - "parties": [ - { - "address": { - "country": "GB", - "locality": "London", - "postalCode": "N11 1NP", - "region": "London", - "streetAddress": "4, North London Business Park, Oakleigh Rd S" - }, - "contactPoint": { - "email": "procurement-team@example.com", - "faxNumber": "01234 345 345", - "name": "Procurement Team", - "telephone": "01234 345 346", - "url": "http://example.com/contact/" - }, - "id": "GB-LAC-E09000003", - "identifier": { - "id": "E09000003", - "legalName": "London Borough of Barnet", - "scheme": "GB-LAC", - "uri": "http://www.barnet.gov.uk/" - }, - "name": "London Borough of Barnet", - "roles": [ - "buyer", - "buyer" - ] - }, - { - "additionalIdentifiers": [ - { - "id": "987654321", - "scheme": "GB-VAT" - } - ], - "address": { - "country": "GB", - "locality": "Anytown", - "postalCode": "AN1 1TN", - "region": "AnyCounty", - "streetAddress": "100 Anytown Lane" - }, - "contactPoint": { - "email": "contracts@anycorp.example", - "faxNumber": "12345 456 343", - "name": "Contracts Team", - "telephone": "12345 456 343" - }, - "id": "GB-COH-1234567844", - "identifier": { - "id": "1234567844", - "legalName": "AnyCorp Ltd", - "scheme": "GB-COH", - "uri": "http://www.anycorp.example" - }, - "name": "AnyCorp Cycle Provision", - "roles": [ - "supplier" - ] - } - ], - "planning": { - "budget": { - "amount": { - "amount": 6700000.0, - "currency": "GBP" - }, - "description": "Budget allocation for highway maintenance, aligned with 2015 strategic plan. ", - "id": "6801ad388f3a38b7740dde20108c58b35984ee91", - "project": "Central Junction Cycle Scheme", - "projectID": "SP001", - "source": "https://openspending.org/uk-barnet-budget/entries/6801ad388f3a38b7740dde20108c58b35984ee91", - "uri": "https://openspending.org/uk-barnet-budget/entries/6801ad388f3a38b7740dde20108c58b35984ee91" - }, - "documents": [ - { - "datePublished": "2009-01-05T00:00:00Z", - "description": "The overall strategic framework for procurement to enhance cycle provision.", - "documentType": "procurementPlan", - "format": "application/pdf", - "id": "0001", - "title": "Area Wide Cycle Improvements - Procurement Plan", - "url": "http://example.com/opencontracting/documents/planning/highways/procurementPlan.pdf" - }, - { - "datePublished": "2009-01-15T00:00:00Z", - "description": "Needs assessment for provision for cyclists in the centre of town.", - "documentType": "needsAssessment", - "format": "application/pdf", - "id": "0002", - "title": "Cycle provision - Needs Assessment", - "url": "http://example.com/opencontracting/documents/ocds-213czf-000-00001/needsAssessment.pdf" - } - ], - "rationale": "The 2009 Strategic Plan identifies a need for an improved cycle route in the centre of town." - }, - "tag": [ - "compiled" - ], - "tender": { - "amendments": [ - { - "amendsReleaseID": "ocds-213czf-000-00001-02-tender", - "date": "2010-03-20T09:45:00Z", - "description": "Following the enquiry period, enquiries were received and responses to questions asked have been published. No changes to the overall tender details were made.", - "id": "update-1", - "rationale": "Update following enquiries.", - "releaseID": "ocds-213czf-000-00001-03-tenderUpdate" - }, - { - "amendsReleaseID": "ocds-213czf-000-00001-02-tender", - "date": "2010-03-20T10:45:00Z", - "description": "Following the enquiry period, a decision was made to increase the maximum value by 10%.", - "id": "amendment-1", - "rationale": "Revised value", - "releaseID": "ocds-213czf-000-00001-03-tenderAmendment" - } - ], - "awardCriteria": "bestProposal", - "awardCriteriaDetails": "The best proposal, subject to value for money requirements, will be accepted.", - "awardPeriod": { - "endDate": "2011-08-01T23:59:59Z", - "startDate": "2010-06-01T00:00:00Z" - }, - "description": "Tenders solicited for work to build new cycle lanes in the centre of town.", - "documents": [ - { - "dateModified": "2015-02-15T00:00:00Z", - "datePublished": "2015-02-15T00:00:00Z", - "description": "A consultation document inviting citizen input into cycle provision.", - "documentType": "x_consultationDocument", - "format": "text/html", - "id": "0003", - "title": "Consultation on cycle provision", - "url": "http://example.com/consultations/cycle-provision/" - }, - { - "datePublished": "2015-02-15T00:00:00Z", - "description": "A map showing areas affected by the planned highway updates. Available from local libraries.", - "documentType": "x_map", - "format": "offline/print", - "id": "0004", - "title": "Map of affected areas" - }, - { - "datePublished": "2010-03-01T09:00:00Z", - "description": "Official tender notice.", - "documentType": "notice", - "format": "text/html", - "id": "0005", - "title": "Tender Notice", - "url": "http://example.com/tender-notices/ocds-213czf-000-00001-01.html" - }, - { - "datePublished": "2010-03-20T11:30:15Z", - "description": "Responses to enquiries asked by interested parties.", - "documentType": "enquiryResponses", - "format": "text/html", - "id": "0006", - "title": "Enquiry Responses", - "url": "http://example.com/enquiry-response/ocds-213czf-000-00001-01.html" - } - ], - "enquiryPeriod": { - "endDate": "2010-03-14T17:30:00Z", - "startDate": "2010-03-01T09:00:00Z" - }, - "hasEnquiries": true, - "id": "ocds-213czf-000-00001-01-tender", - "items": [ - { - "additionalClassifications": [ - { - "description": "Cycle path construction work", - "id": "45233162-2", - "scheme": "CPV", - "uri": "http://cpv.data.ac.uk/code-45233162.html" - } - ], - "classification": { - "description": "Construction work for highways", - "id": "45233130", - "scheme": "CPV", - "uri": "http://cpv.data.ac.uk/code-45233130" - }, - "description": "string", - "id": "0001", - "quantity": 8, - "unit": { - "name": "Miles", - "value": { - "amount": 120000, - "currency": "GBP" - } - } - } - ], - "milestones": [ - { - "description": "A consultation period is open for citizen input to shape the final plans.", - "dueDate": "2015-04-15T17:00:00Z", - "id": "0001", - "title": "Consultation Period" - } - ], - "minValue": { - "amount": 600000, - "currency": "GBP" - }, - "procurementMethod": "open", - "procurementMethodRationale": "An open competitive tender is required by EU Rules", - "procuringEntity": { - "id": "GB-LAC-E09000003", - "name": "London Borough of Barnet" - }, - "status": "active", - "submissionMethodDetails": "Submit through the online portal at http://example.com/submissions/ocds-213czf-000-00001-01/", - "tenderPeriod": { - "endDate": "2011-04-01T18:00:00Z", - "startDate": "2010-03-01T09:00:00Z" - }, - "title": "Planned cycle lane improvements", - "value": { - "amount": 1210000, - "currency": "GBP" - } - } - }, - "ocid": "ocds-213czf-000-00001", - "releases": [ - { - "date": "2009-03-15T14:45:00Z", - "tag": [ - "planning" - ], - "url": "https://standard.open-contracting.org/examples/releases/ocds-213czf-000-00001-01-planning.json#ocds-213czf-000-00001-01-planning" - }, - { - "date": "2010-03-15T09:30:00Z", - "tag": [ - "tender" - ], - "url": "https://standard.open-contracting.org/examples/releases/ocds-213czf-000-00001-02-tender.json#ocds-213czf-000-00001-02-tender" - }, - { - "date": "2010-03-20T10:45:00Z", - "tag": [ - "tenderAmendment" - ], - "url": "https://standard.open-contracting.org/examples/releases/ocds-213czf-000-00001-03-tenderAmendment.json#ocds-213czf-000-00001-03-tenderAmendment" - }, - { - "date": "2010-03-20T09:45:00Z", - "tag": [ - "tenderUpdate" - ], - "url": "https://standard.open-contracting.org/examples/releases/ocds-213czf-000-00001-03-tenderAmendment.json#ocds-213czf-000-00001-03-tenderUpdate" - }, - { - "date": "2010-05-10T09:30:00Z", - "tag": [ - "award" - ], - "url": "https://standard.open-contracting.org/examples/releases/ocds-213czf-000-00001-04-award.json#ocds-213czf-000-00001-04-award" - }, - { - "date": "2010-05-10T10:30:00Z", - "tag": [ - "contract" - ], - "url": "https://standard.open-contracting.org/examples/releases/ocds-213czf-000-00001-05-contract.json#ocds-213czf-000-00001-05-contract" - }, - { - "date": "2011-01-10T09:30:00Z", - "tag": [ - "implementation" - ], - "url": "https://standard.open-contracting.org/examples/releases/ocds-213czf-000-00001-05-contract.json#ocds-213czf-000-00001-06-implementation" - } - ] - } - ], - "uri": "https://standard.open-contracting.org/examples/records/ocds-213czf-000-00001.json", - "version": "1.1" -} diff --git a/docs/examples/release_schema_reference/release_package.json b/docs/examples/release_schema_reference/release_package.json new file mode 100644 index 000000000..b9d97a0d7 --- /dev/null +++ b/docs/examples/release_schema_reference/release_package.json @@ -0,0 +1,438 @@ +{ + "uri": "https://standard.open-contracting.org/examples/releases/ocds-213czf-000-00001.json", + "version": "1.1", + "publishedDate": "2014-02-02T13:02:00Z", + "releases": [ + { + "ocid": "ocds-213czf-000-00001", + "id": "ocds-213czf-000-00001-06-implementation", + "date": "2011-01-10T09:30:00Z", + "publisher": { + "id": "09506232", + "legalName": "Open Data Services Co-operative Limited", + "scheme": "GB-COH", + "uri": "https://standard.open-contracting.org/examples/" + }, + "tag": [ + "contract" + ], + "parties": [ + { + "name": "London Borough of Barnet", + "id": "GB-LAC-E09000003", + "identifier": { + "id": "E09000003", + "legalName": "London Borough of Barnet", + "scheme": "GB-LAC", + "uri": "http://www.barnet.gov.uk/" + }, + "address": { + "country": "GB", + "locality": "London", + "postalCode": "N11 1NP", + "region": "London", + "streetAddress": "4, North London Business Park, Oakleigh Rd S" + }, + "contactPoint": { + "email": "procurement-team@example.com", + "faxNumber": "01234 345 345", + "name": "Procurement Team", + "telephone": "01234 345 346", + "url": "http://example.com/contact/" + }, + "roles": [ + "buyer" + ] + }, + { + "name": "AnyCorp Cycle Provision", + "id": "GB-COH-1234567844", + "identifier": { + "id": "1234567844", + "legalName": "AnyCorp Ltd", + "scheme": "GB-COH", + "uri": "http://www.anycorp.example" + }, + "additionalIdentifiers": [ + { + "id": "987654321", + "scheme": "GB-VAT" + } + ], + "address": { + "country": "GB", + "locality": "Anytown", + "postalCode": "AN1 1TN", + "region": "AnyCounty", + "streetAddress": "100 Anytown Lane" + }, + "contactPoint": { + "email": "contracts@anycorp.example", + "faxNumber": "12345 456 343", + "name": "Contracts Team", + "telephone": "12345 456 343" + }, + "roles": [ + "tenderer", + "supplier" + ] + } + ], + "buyer": { + "id": "GB-LAC-E09000003", + "name": "London Borough of Barnet" + }, + "planning": { + "id": "2009-1", + "rationale": "The 2009 Strategic Plan identifies a need for an improved cycle route in the centre of town.", + "budget": { + "id": "6801ad388f3a38b7740dde20108c58b35984ee91", + "description": "Budget allocation for highway maintenance, aligned with 2015 strategic plan. ", + "amount": { + "amount": 6700000.0, + "currency": "GBP" + }, + "project": "Central Junction Cycle Scheme", + "projectID": "SP001", + "uri": "https://openspending.org/uk-barnet-budget/entries/6801ad388f3a38b7740dde20108c58b35984ee91" + }, + "documents": [ + { + "datePublished": "2009-01-05T00:00:00Z", + "description": "The overall strategic framework for procurement to enhance cycle provision.", + "documentType": "procurementPlan", + "format": "application/pdf", + "id": "0001", + "title": "Area Wide Cycle Improvements - Procurement Plan", + "url": "http://example.com/opencontracting/documents/planning/highways/procurementPlan.pdf" + } + ], + "milestones": [ + { + "id": "1", + "title": "Detailed Budget Plan", + "type": "preProcurement", + "description": "Area Wide Cycle Improvements detailed budget plan", + "code": "budgetPlan", + "dueDate": "2009-01-06T23:29:03Z", + "status": "scheduled" + } + ] + }, + "tender": { + "id": "ocds-213czf-000-00001-01-tender", + "title": "Planned cycle lane improvements", + "description": "Tenders solicited for work to build new cycle lanes in the centre of town.", + "status": "complete", + "statusDetails": "Evaluating proposals", + "procuringEntity": { + "id": "GB-LAC-E09000003", + "name": "London Borough of Barnet" + }, + "items": [ + { + "id": "0001", + "description": "Construction work for highways", + "classification": { + "scheme": "CPV", + "id": "45233130", + "description": "Construction work for highways", + "uri": "http://cpv.data.ac.uk/code-45233130" + }, + "additionalClassifications": [ + { + "description": "Cycle path construction work", + "id": "45233162-2", + "scheme": "CPV", + "uri": "http://cpv.data.ac.uk/code-45233162.html" + } + ], + "quantity": 8, + "unit": { + "scheme": "UNCEFACT", + "id": "SMI", + "name": "Miles", + "value": { + "amount": 120000, + "currency": "GBP" + } + } + } + ], + "value": { + "amount": 960000, + "currency": "GBP" + }, + "minValue": { + "amount": 600000, + "currency": "GBP" + }, + "procurementMethod": "open", + "procurementDetails": "Open procedure (below threshold)", + "procurementMethodRationale": "An open competitive tender is required by EU Rules", + "mainProcurementCategory": "works", + "awardCriteria": "bestProposal", + "awardCriteriaDetails": "The best proposal, subject to value for money requirements, will be accepted.", + "submissionMethodDetails": "Submit through the online portal at http://example.com/submissions/ocds-213czf-000-00001-01/", + "datePublished": "2010-03-01T09:00:00Z", + "tenderPeriod": { + "endDate": "2011-04-01T18:00:00Z", + "startDate": "2010-03-01T09:00:00Z" + }, + "enquiryPeriod": { + "endDate": "2010-03-14T17:30:00Z", + "startDate": "2010-03-01T09:00:00Z" + }, + "hasEnquiries": true, + "exclusionGrounds": "Non-payment of tax and social security contributions", + "selectionCriteria": "Suppliers may be required to have sufficient level of experience demonstrated by suitable references.", + "awardPeriod": { + "endDate": "2011-08-01T23:59:59Z", + "startDate": "2010-06-01T00:00:00Z" + }, + "standstillPeriod": { + "endDate": "2011-08-05T23:59:59Z", + "startDate": "2011-08-01T23:59:59Z" + }, + "contractPeriod": { + "durationInDays": 360 + }, + "numberOfTenderers": 1, + "tenderers": [ + { + "id": "GB-COH-1234567844", + "name": "AnyCorp Cycle Provision" + } + ], + "amendments": [ + { + "date": "2010-03-20T09:45:00Z", + "rationale": "Update following enquiries.", + "id": "update-1", + "description": "Following the enquiry period, enquiries were received and responses to questions asked have been published. No changes to the overall tender details were made.", + "amendsReleaseID": "ocds-213czf-000-00001-02-tender", + "releaseID": "ocds-213czf-000-00001-03-tenderUpdate" + } + ], + "documents": [ + { + "id": "0001", + "documentType": "tenderNotice", + "title": "Enquiry Responses", + "description": "Tender Notice", + "url": "http://example.com/tenderNotice/ocds-213czf-000-00001-01.html", + "datePublished": "2010-03-20T11:30:15Z", + "format": "text/html", + "language": "en" + } + ], + "milestones": [ + { + "description": "A consultation period is open for citizen input to shape the final plans.", + "dueDate": "2015-04-15T17:00:00Z", + "id": "0001", + "title": "Consultation Period" + } + ] + }, + "awards": [ + { + "id": "ocds-213czf-000-00001-award-01", + "title": "Award of contract to build new cycle lanes in the centre of town.", + "description": "AnyCorp Ltd has been awarded the contract to build new cycle lanes in the centre of town.", + "status": "active", + "statusDetails": "Awarded", + "date": "2010-05-10T10:30:00Z", + "value": { + "amount": 1096000, + "currency": "GBP" + }, + "suppliers": [ + { + "id": "GB-COH-1234567844", + "name": "AnyCorp Cycle Provision" + } + ], + "items": [ + { + "additionalClassifications": [ + { + "description": "Cycle path construction work", + "id": "45233162-2", + "scheme": "CPV", + "uri": "http://cpv.data.ac.uk/code-45233162.html" + } + ], + "classification": { + "description": "Construction work for highways", + "id": "45233130", + "scheme": "CPV", + "uri": "http://cpv.data.ac.uk/code-45233130" + }, + "description": "string", + "id": "0001", + "quantity": 8, + "unit": { + "name": "Miles", + "value": { + "amount": 137000, + "currency": "GBP" + } + } + } + ], + "contractPeriod": { + "startDate": "2010-07-01T00:00:00Z", + "endDate": "2011-08-01T23:59:00Z", + "maxExtentDate": "2011-09-01T23:59:00Z", + "durationInDays": 397 + }, + "documents": [ + { + "datePublished": "2010-05-10T10:30:00Z", + "description": "Award of contract to build new cycle lanes in the centre of town to AnyCorp Ltd.", + "documentType": "notice", + "format": "text/html", + "id": "0007", + "title": "Award notice", + "url": "http://example.com/tender-notices/ocds-213czf-000-00001-04.html" + } + ] + } + ], + "contracts": [ + { + "id": "ocds-213czf-000-00001-contract-01", + "awardID": "ocds-213czf-000-00001-award-01", + "title": "Contract to build new cycle lanes in the centre of town.", + "description": "Contract monitoring for cycle lane construction.", + "status": "active", + "statusDetails": "Signed", + "dateSigned": "2015-06-10T14:23:12Z", + "value": { + "amount": 1096000, + "currency": "GBP" + }, + "items": [ + { + "id": "0001", + "description": "Construction work for highways", + "classification": { + "description": "Construction work for highways", + "id": "45233130", + "scheme": "CPV", + "uri": "http://cpv.data.ac.uk/code-45233130" + }, + "additionalClassifications": [ + { + "description": "Cycle path construction work", + "id": "45233162-2", + "scheme": "CPV", + "uri": "http://cpv.data.ac.uk/code-45233162.html" + } + ], + "quantity": 8, + "unit": { + "scheme": "UNCEFACT", + "id": "SMI", + "name": "Miles", + "value": { + "amount": 137000, + "currency": "GBP" + } + } + } + ], + "period": { + "endDate": "2011-08-01T23:59:00Z", + "startDate": "2010-07-01T00:00:00Z" + }, + "documents": [ + { + "datePublished": "2015-06-10T16:43:12Z", + "description": "The Signed Contract for Cycle Path Construction", + "documentType": "contractSigned", + "format": "application/pdf", + "id": "0008", + "title": "Signed Contract", + "url": "http://example.com/contracts/ocds-213czf-000-00001" + }, + { + "datePublished": "2010-12-15T15:34:02Z", + "description": "Physical progress report for cycle path construction", + "documentType": "physicalProcessReport", + "format": "application/pdf", + "id": "0009", + "title": "Progress report", + "url": "http://example.com/reports/ocds-213czf-000-00001/cycle-path-01.pdf" + } + ], + "implementation": { + "transactions": [ + { + "id": "ocds-213czf-000-00001-1", + "source": "https://openspending.org/uk-barnet-spending/", + "date": "2010-08-01T00:00:00Z", + "value": { + "amount": 500000, + "currency": "GBP" + }, + "payer": { + "id": "GB-LAC-E09000003", + "name": "London Borough of Barnet" + }, + "payee": { + "id": "GB-COH-1234567844", + "name": "AnyCorp Ltd" + }, + "uri": "https://openspending.org/uk-barnet-spending/transaction/asd9235qaghvs1059620ywhgai" + } + ], + "milestones": [ + { + "id": "1", + "title": "project started", + "type": "delivery", + "code": "commencement", + "dueDate": "2010-08-01T00:00:00Z", + "status": "scheduled" + } + ], + "documents": [ + { + "datePublished": "2015-06-10T16:43:12Z", + "description": "Physical progress of the Cycle Path Construction", + "documentType": "physicalProgressReport", + "format": "application/pdf", + "id": "0008", + "title": "Progress report", + "url": "http://example.com/implementation/ocds-213czf-000-00001" + } + ] + } + } + ], + "language": "en", + "relatedProcesses": [ + { + "id": "related-1", + "relationship": [ + "unsuccessful" + ], + "title": "Improved cycle route in the centre of town.", + "scheme": "ocid", + "identifier": "ocds-213czf-01", + "uri": "https://standard.open-contracting.org/examples/releases/ocds-213czf-01.json" + } + ] + } + ], + "publisher": { + "name": "Open Data Services Co-operative Limited", + "scheme": "GB-COH", + "uid": "09506232", + "uri": "https://standard.open-contracting.org/examples/" + }, + "license": "https://creativecommons.org/licenses/by/4.0/", + "publicationPolicy": "http://www.example.com/publication-policy" +} diff --git a/docs/governance/index.md b/docs/governance/index.md index 4b265ff5e..43d437aa0 100644 --- a/docs/governance/index.md +++ b/docs/governance/index.md @@ -58,6 +58,20 @@ This documentation website is composed of normative content (the prescriptive pa ### Versions +We use **version numbers** to indicate the nature of changes made to normative content, and to fit the governance process to each change. + +* **A MAJOR version (e.g. 1.0.0 -> 2.0.0)** makes backwards-incompatible changes. Systems written to input or output data with a previous major version might need substantial updates. Data that is valid against the 1.X schema might not be valid against the 2.X schema, for example. + +* **A MINOR version (e.g. 1.0.0 -> 1.1.0)** makes backward-compatible changes. Systems written to input or output data with a previous minor version should be reviewed to assess whether they can implement any concepts added in the new minor version. Data that is valid against the 1.0 schema is also valid against the 1.1 schema, for example. Where relevant, changes should apply a principle of progressive enhancement, such that updated systems can take advantage of the added concepts, while non-updated systems experience no substantive changes in behavior. + +* **A PATCH version (e.g. 1.1.0 -> 1.1.1)** updates open codelists or external closed codelists, or makes backwards-compatible bug fixes or improvements to normative content. Users are encouraged to upgrade to the latest patch version. Unless they were affected by a fixed bug, they should not see any substantive changes after the upgrade. Data that is valid against the 1.1.0 schema is also valid against the 1.1.1 schema, for example. + +MAJOR and MINOR updates to normative content trigger the governance process. PATCH updates to normative content have a short review period to give users an opportunity to confirm that changes are backwards-compatible and non-substantive. + +Changes to non-normative content do not trigger the governance process. + +### Branches + Distinct **branches** of the standard will be maintained within GitHub for each version. Branches can be in one of two states: @@ -68,14 +82,6 @@ Both schema and documentation on a development branch may be updated and should * **Live** - with no suffix ( e.g. 1.0) Only documentation may be updated on a live branch. All documentation changes must be reviewed to ensure they do not make any changes to the meaning of the standard. -Semantic Versioning practices will be used to distinguish between: - -* **Major versions** which make backwards-incompatible changes (e.g. 2.0) - -* **Minor versions** which add functionality in a backwards-compatible manner (e.g. 1.2) - -These are captured by a version number in the format MAJOR.MINOR - ## Revision process To release a new minor or major version upgrade will involve a number of stages outlined in the flowchart below, and described in more depth in the following sections. @@ -180,6 +186,16 @@ Any current or potential OCDS publisher or data user of the standard can be cons "The principle of consensus has its origins in the desire to achieve the general acceptance and application of a Standard within its intended sphere of influence. This entails trying to ensure that the interests of all those likely to be affected by it are taken into account, and that individual concerns are carefully and fairly balanced against the wider public interest." [BSI, 2012](https://www.bsigroup.com/Documents/about-bsi/NSB/BSI-pocket-guide-to-standards-development-UK-EN.pdf) +## Versioning of extensions + +Extensions are governed and versioned independently of the standard, with the exception of core extensions, where: + +* MAJOR or MINOR releases of core extensions only take place as part of the governance process for a MAJOR or MINOR release of OCDS. + +* Each version of the standard explicitly declares the version number of each core extension for that version of the standard. + +Changes to core extensions between standard versions may be staged with labels (like `-alpha` or `-beta`) to indicate these are under development or proposed for adoption in the next version of OCDS, but that their adoption has not yet been formally agreed. + ```{toctree} :hidden: diff --git a/docs/guidance/build.md b/docs/guidance/build.md index d8a906c22..ea58c3fd3 100644 --- a/docs/guidance/build.md +++ b/docs/guidance/build.md @@ -20,7 +20,7 @@ As you complete this phase, you can: ## Register an OCID prefix -In OCDS, the open contracting process identifier (`ocid`) uniquely identifies a contracting process. As a publisher, you will assign a unique `ocid` to each contracting process. +In OCDS, the open contracting process identifier (`ocid`) uniquely identifies a contracting (or planning) process. As a publisher, you will assign a unique `ocid` to each contracting (or planning) process. To ensure that your `ocid`s do not conflict with those of another publisher, you need to register an ocid prefix. @@ -118,8 +118,6 @@ Contact the [OCDS Helpdesk](../support/index.md#ocds-helpdesk) for support and g If you want to use OCDS Kit or Flatten Tool, but don't have access to the command line or can't install new software on your computer, you can use [OCDS Toucan](https://toucan.open-contracting.org/), which gives access to these tools through a web browser. Re-using tools isn't always easy. [Tool Re-Use in Open Contracting: A Primer](https://www.open-contracting.org/resources/tool-re-use-in-open-contracting-a-primer/) is a step-by-step guide to help you determine what you need, evaluate which tool is the right fit, and evaluate whether the right conditions are in place for successful re-use of a tool. - -New tools are continually being authored for publishing OCDS data. Please refer to our [Tools Directory](https://www.open-contracting.org/resources/open-contracting-tools-directory/) for a complete list. ``` ## Build your extensions @@ -148,6 +146,17 @@ OCDS data needs to be published as part of a release package or a record package The Data Review Tool reports any structural issues with your data. It checks whether your data makes sense and displays a preview of your data, so that you can check whether the information is appearing in the correct place within the schema. +You ought to use real data for testing, wherever possible. Using fictional data can lead to false positives and missed errors in your data pipeline: for example, if your test data includes incoherent values for the award date and the contract signature date, it won't be possible to identify issues with how these fields are mapped in your OCDS data. + +If your data source doesn't contain any data yet, because you are developing a new system to collect and publish data, for example, then you ought to work with stakeholders to collect enough real data to populate all the data elements for at least one contracting process. + +If you can't collect enough real data for testing, then you ought to create realistic and coherent test data: + +* use real entities, products, and services +* use plausible dates and values +* avoid using placeholder values +* avoid setting multiple data elements to the same value. + **Action:** Upload some data to the [OCDS Data Review Tool](https://standard.open-contracting.org/review/). **Action:** Request feedback on your draft data from the [OCDS Helpdesk](../../support/index). diff --git a/docs/guidance/build/data_collection_tools.md b/docs/guidance/build/data_collection_tools.md index 1004949f7..1a349b621 100644 --- a/docs/guidance/build/data_collection_tools.md +++ b/docs/guidance/build/data_collection_tools.md @@ -21,7 +21,7 @@ Consider using the form if: * Your users are **unfamiliar** with spreadsheets * Data entry will be done by **many** different users * You want to minimize the work required to collate data -* You **don’t need to update** the data about a contracting process after it is first entered +* You **don’t need to update** the data about a contracting (or planning) process after it is first entered The form includes a subset of fields from the **tender** and **buyer** sections of OCDS. The OCDS Helpdesk can help you extend and adapt the form to suit your needs. @@ -42,7 +42,7 @@ Consider using the spreadsheet template to collect data if: * Your users are **familiar** with using spreadsheets * Data entry will be done by a **small number of** users * You have the **capacity to collate** data entered in multiple spreadsheets -* You need to make **multiple updates** over the life of a contracting process +* You need to make **multiple updates** over the lifetime of a contracting (or planning) process The template includes a subset of fields from the **planning**, **tender**, **award**, **contract** and **implementation** sections of OCDS. diff --git a/docs/guidance/build/easy_releases.md b/docs/guidance/build/easy_releases.md index 177703cf1..051a99ede 100644 --- a/docs/guidance/build/easy_releases.md +++ b/docs/guidance/build/easy_releases.md @@ -4,14 +4,14 @@ # 'Easy' Releases -OCDS encourages the use of the [releases and records](../../primer/releases_and_records) model in order to publish up-to-date, timely data. However, sometimes publishers can't fully support the model, because historic data of contracting processes is not stored in the source system(s). In such case, the publisher can produce only one release for each contracting process, and the release gets overridden with new updates. +OCDS encourages the use of the [releases and records](../../primer/releases_and_records) model in order to publish up-to-date, timely data. However, sometimes publishers can't fully support the model, because historic data of contracting (or planning) processes is not stored in the source system(s). In such case, the publisher can produce only one release for each process, and the release gets overridden with new updates. -In this situation, it is possible to still meet OCDS requirements by following a strategy to build different release identifiers each time the data changes in a contracting process. Over the course of multiple updates, third parties would be able to build their own data store by periodically downloading or scraping the published data, and identifying the updates using release identifiers. +In this situation, it is possible to still meet OCDS requirements by following a strategy to build different release identifiers each time the data changes in a contracting (or planning) process. Over the course of multiple updates, third parties would be able to build their own data store by periodically downloading or scraping the published data, and identifying the updates using release identifiers. Here, two general approaches that a publisher can follow to renew release identifiers on each data update will be shown: * **When the system saves a last modified date for entities** - use the dates to create a new release ID. This can be as simple as appending the date to the release identifier. -* **When the system does not contain a last modified date** - use a hash of all the fields to create a unique release ID. A hash is guaranteed to change when the data changes, and it is almost impossible for it to collide with a previous, existent identifier for the same contracting process. +* **When the system does not contain a last modified date** - use a hash of all the fields to create a unique release ID. A hash is guaranteed to change when the data changes, and it is almost impossible for it to collide with a previous, existent identifier for the same (contracting or planning) process. See the examples below for more details. @@ -27,9 +27,9 @@ In an 'Easy' releases scenario it is still necessary to package data. Therefore ### Release tags -Releases in OCDS have a [release tag](../../schema/codelists.md#release-tag) which indicates the stage of the contracting process they relate to. +A release in OCDS has a [release tag](../../schema/codelists.md#release-tag), which indicates whether it is about a planning process or a contracting process and, if it is about the latter, indicates the stage of the contracting process to which it relates. -When producing a single release for each contracting process, we can't use any tags that need other tags to be present in previous releases, e.g. 'tenderUpdate' which follows the 'tender' tag. +When producing a single release for each contracting (or planning) process, we can't use any tags that need other tags to be present in previous releases, e.g. 'tenderUpdate' which follows the 'tender' tag. In this case, tags need to indicate the sections of the schema which are populated. For example, if a release provides data in the `tender`, `award`, and `contract` sections, the `tag` array would look like this: @@ -43,7 +43,7 @@ In this case, tags need to indicate the sections of the schema which are populat } ``` -This makes more sense if we realize that a release is always the "first release" of a contracting process for an user that access the data for the first time. All sections contain new data, and the release needs a tag for each one. +This makes more sense if we realize that a release is always the "first release" of a contracting (or planning) process for an user that access the data for the first time. All sections contain new data, and the release needs a tag for each one. ## Worked examples diff --git a/docs/guidance/build/hosting.md b/docs/guidance/build/hosting.md index 4acce1e5a..d86a1ef33 100644 --- a/docs/guidance/build/hosting.md +++ b/docs/guidance/build/hosting.md @@ -1,68 +1,150 @@ # Data files and APIs -Different users have different needs when it comes to accessing OCDS data. It also needs to be possible to automate the download of all the OCDS data, in some form. +Different users have different needs when it comes to accessing OCDS data. A common need is to automate the download of all the OCDS data, in some form. -[Data on the Web Best Practices](https://www.w3.org/TR/dwbp/#MultipleFormats) suggests that "Data should be available in multiple data formats" in order to increases the number of different users, tools and applications that can process the data. +The W3C [Data on the Web Best Practices](https://www.w3.org/TR/dwbp/#MultipleFormats) describe ways to increase the number of users, tools and applications that can access and make effective use of a given dataset. -Which formats are most important will depend on the priority use cases for each OCDS implementation, but you are encouraged to consider: +With respect to your OCDS publication, which best practices are most important will depend on the particular needs of your users, but you are encouraged to consider: -* **Bulk downloads** - packaging together multiple releases or multiple records in one or more files for users to download and import into local tools. -* **Individual release and record downloads** - providing a URI at which each release or record can be obtained. -* **CSV and spreadsheet serializations** - providing multiple releases or compiled records for download, enabling users to work with data directly in spreadsheet software or other tools. -* **API access** - enabling interactive access to your data. +* **[Bulk downloads](#bulk-downloads)** - packaging together multiple releases or multiple records in one or more files for users to download and import into local tools. ([Best Practice 17](https://www.w3.org/TR/dwbp/#BulkAccess)) +* **[Individual release and records](#individual-releases-and-records)** - providing a URL at which each release or record can be accessed ([Best Practice 10](https://www.w3.org/TR/dwbp/#identifiersWithinDatasets)). +* **[API access](#api-access)** - enabling interactive access to your data. ([Best Practice 23](https://www.w3.org/TR/dwbp/#useanAPI)) +* **[CSV and spreadsheet serializations](#csv-and-spreadsheet-serializations)** - providing multiple releases or compiled records for download, enabling users to work with data directly in spreadsheet software or other tools. ([Best Practice 14](https://www.w3.org/TR/dwbp/#MultipleFormats)) + +To meet the [basic criteria for data quality](../publish/quality.md#basic-criteria), it ought to be possible for a user to automate the download of all the data, either using an HTML page listing bulk download URLs, or using only machine-readable data as input. ## Bulk downloads -The release package and record package can provide **bulk access** to releases and records, respectively. +The [release package](../../schema/release_package) and [record package](../../schema/record_package) can provide **bulk access** to releases and records, respectively. -However, very large files can be difficult for users to download and process. The following section provides suggested good practices which will assist users in accessing data. These are not requirements of the standard, but are based on experiences of maximizing the number of users able to work with datasets with their existing hardware and software. +However, very large files can be difficult for users to download and process. The following section suggests good practices to assist users in accessing data. These are not requirements of the standard, but are based on experiences of maximizing the number of users able to work with datasets with their existing hardware and software. ### File size limits When generating packages for bulk download, apply the following limits: -* Unzipped OCDS packages ought to not exceed 1Gb each; -* Zipped OCDS packages ought to not exceed 10 Mb each; -* A single OCDS package ought to contain a maximum of 250,000 awards or contracts; +* Unzipped OCDS packages ought to not exceed 1 Gb each. +* Zipped OCDS packages ought to not exceed 10 Mb each. +* A single OCDS package ought to contain a maximum of 250,000 awards or contracts. -When a file is likely to exceed one of these limits, release or records ought to be split across multiple files. Dynamically generated bulk downloads do not have to apply these limits, though publishers ought to consider ways to advise users when a query is likely to generate a very large file. +When a file is likely to exceed one of these limits, release or records ought to be split across multiple files. Dynamically generated bulk downloads do not have to apply these limits, though publishers ought to consider ways to advise users when a query is likely to generate a very large file. ### Segmenting files -When the suggested limits entail publication of multiple files, publishers ought to consider ways to split data across available files. +When the suggested limits entail publication of multiple files, publishers ought to consider ways to split data across available files. For releases, publishers can: -1. Segment by **release date** - placing all the releases from a given day, month or year in the same file; -1. Segment by **open contracting process identifier** - placing all the releases related to a given set of process identifiers together in the same package; +* Segment by **release date** - placing all the releases from a given day, month or year in the same file. +* Segment by **open contracting process identifier** - placing all the releases related to a given set of process identifiers together in the same package. -For records, publishers can segment by the first **release date** associated with a contracting process, or by **open contracting process identifier.** +For records, publishers can segment by the first **release date** associated with a contracting (or planning) process, or by **open contracting process identifier.** -Following these approaches will avoid release and records 'jumping' between files when the bulk files are updated. +Following these approaches will avoid releases and records 'jumping' between files when the bulk files are updated. ### Compression -OCDS packages can be compressed in order to save on disk space and bandwidth. +OCDS packages can be compressed in order to save on disk space and bandwidth. -If compressing packages, publishers ought to use the ZIP file format. +When compressing packages, use ZIP or GZIP, as these are commonly available, often without additional software. Avoid RAR, which requires additional software. ### Serving files -The web server providing access to bulk files ought to correctly report the [HTTP Last-Modified](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.29) header so that consuming applications only need to download updated files. +The web server providing access to bulk files ought to report the [HTTP Last-Modified](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.29) header correctly, so that consuming applications only need to download updated files. + +Also, publishers ought to ensure that the data export is completed successfully, i.e. that no files were truncated. ## Individual releases and records -Each release and record can be made accessible at a permanent URI. This can be achieved by: +Each release and record can be made accessible at a permanent URL. This can be achieved by: + +* Archiving a ‘single-release’ release package for each release to a web accessible file system as it is created, and then regularly merging these releases into records in the same file system. One approach might be to have a directory for each ocid and to put the releases and the record related to that process in that directory. +* Providing access to each release and the merged records via an API. + +Publishers ought to consider how to [ensure that URLs remain stable](https://www.w3.org/Provider/Style/URI.html), even across a change of systems. + +## API access + +API design is a deep topic. As such, the following guidance is not intended to be comprehensive or prescriptive. Wherever possible, publishers ought to carry out their own user research. + +### Discoverability + +Ensure that the API endpoints and documentation are discoverable. For example, add a link to the footer of your procurement portal, and list the API endpoints in your open data portal. + +### Documentation + +Provide API documentation, with at least the lists of endpoints, methods and parameters. Many publishers use [Swagger](https://swagger.io) to document their APIs. + +### Access control and rate limiting + +Avoid adding access controls (like user registration or API keys), in order to maximize the ease of access to the publication. + +If access controls are necessary, do not use access tokens that need to be refreshed regularly. For example, every two hours is too frequent. + +If the API implements rate limits (throttling): + +* Document the rate limits in the API documentation ([example](https://developer.twitter.com/en/docs/twitter-api/rate-limits)). +* When a user exceeds a rate limit, return a [HTTP 429 “Too Many Requests” response status code, ](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/429)and set the [Retry-After](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After) HTTP header to indicate how long to wait before making a new request. + +### Completeness + +Ensure that all the OCDS data can be accessed via the API. For example, if the data source is an Elasticsearch index, either implement pagination using the [search_after](https://www.elastic.co/guide/en/elasticsearch/reference/current/paginate-search-results.html#search-after) parameter, or ensure that [index.max_result_window](https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules.html#index-max-result-window) is large enough to return all results. + +### Endpoints + +Your design choices in this area ought to be informed by user research. That said, you can consider providing: + +* A release package endpoint with [pagination](#pagination), for retrieving multiple releases without providing a specific OCID and release ID +* A record package endpoint with pagination, for retrieving multiple records without providing a specific OCID +* A release endpoint, for retrieving an individual release by OCID and release ID +* A record endpoint, for retrieving an individual record by OCID + +For package endpoints, you can also provide filtering and ordering options. In particular, consider date filters and/or a reverse chronological order option, so that users can retrieve only new or updated data. + +If you choose to provide endpoints for retrieving individual records and/or releases but **not** endpoints for paginating through records and/or releases, then you need to provide a machine-readable list of OCIDs and/or release IDs. Otherwise, it will not be possible to automate the download of all the data, which is a [basic criterion for data quality](../publish/quality.md#basic-criteria). + +### Response format + +* Put the release, record or package at the top-level of the JSON data. For example, do not embed it under a results array. +* Use a JSON library instead of implementing JSON serialization yourself. This also guarantees that the encoding is UTF-8. +* Remove NULL characters (\u0000) from the JSON response. These characters cannot be imported by users into some SQL databases. +* If results cannot be returned, use an appropriate HTTP error code (400-599); do not return a JSON object with an error message and a 200 HTTP status code. That said, if a search request returns no results, it is appropriate to use a 200 HTTP status code, with an empty result set. + +### Pagination + +To support pagination, the top-level `links` object in release packages and record packages has two fields: + +* `next`: A URL to the next sequential package +* `prev`: A URL to the previous sequential package + +Ensure that the API's performance does not degrade on deep pages. For example, if the data source is a SQL database, use the [seek method](https://developer.wordpress.com/2014/02/14/an-efficient-alternative-to-paging-with-sql-offsets/) (also known as keyset pagination) rather than an [OFFSET clause](https://www.postgresql.org/docs/current/queries-limit.html). + +When using the **seek method**, you can use _either_ of these query string parameters to construct the `next` and/or `prev` URLs: + +* `cursor=CURSOR`, to return a page of results that are positioned after the cursor, in sequential order. The cursor might be a row ID or similar. +* `since=TIMESTAMP`, to return a page of results that are modified after the `since` timestamp, in chronological order. + +When using the **offset method**, you can use _either_ of these query string parameters to construct the `next` and/or `prev` URLs: + +* `offset=NUMBER`, to return a page of results that are positioned after the `offset` number, in sequential order. Use `offset=0` for the first offset. +* `page=NUMBER`, to return a page of results that are positioned at the `page` number, in sequential order. Use `page=1` for the first page, not `page=0`. + +In either case: + +* Use `limit=NUMBER`, to limit the number of results returned on each page. +* Include the total number of results across all pages. -(a) Archiving a single-release release package for each release to a web accessible file system as it is created, and then regularly merging these releases to compile individual record files in the same file system. One approach might be to have a folder for each `ocid` and to place the releases and record related to that process into that folder. +In addition to performance reasons, the seek method is preferred to the offset method when results are ordered in reverse chronology, because: -(b) Providing access to releases and records through an API. +* A given page won't return the same results over time. `page=1` will return different results today, next week, and next year. +* Users can receive duplicate results while paginating. For example, if a new release is published to page 1 while users are paginating, then the result at the bottom of each page will be moved to the top of the following page. +* It is harder for users to synchronize with the API. With the seek method, users can retrieve new results by submitting the timestamp or ID of their last request. With `page`, users need to determine which results are new or old. -Note that the second approach needs the API to maintain a full revision history of each contracting process, so that releases from each stage of a contracting process can be provided. +### Monitoring -Publishers ought to consider how to [ensure URIs can remain stable](https://www.w3.org/Provider/Style/URI.html), even across a change of systems. +Set up error monitoring, so that if a request causes an HTTP 500 Internal Server Error, you can investigate. -## Flattened serializations +## CSV and spreadsheet serializations The [serialization](serialization) page provides details of how to generate 'flat' versions of OCDS data for use in spreadsheet software. diff --git a/docs/guidance/build/merging.md b/docs/guidance/build/merging.md index c4310bddd..76921a3fb 100644 --- a/docs/guidance/build/merging.md +++ b/docs/guidance/build/merging.md @@ -4,7 +4,7 @@ # Updates and Deletions -The [merging documentation](../../schema/merging) specifies how individual releases are merged into compiled releases (the latest version of the contracting process) and versioned releases (the change history for each field), which form part of a [record](../../primer/releases_and_records). +The [merging documentation](../../schema/merging) specifies how individual releases are merged into compiled releases (the latest version of the contracting or planning process) and versioned releases (the change history for each field), which form part of a [record](../../primer/releases_and_records). The merge routine also allows a publisher to correct a publication error by deleting a field, object or array entry from the compiled release. To do so, a publisher sets the field's value to `null` in an individual release (more on this below). As such, as a publisher, it is important to **never use a `null` value in an individual release, unless you intend to delete that field**. If you don't have a value to assign to a field, simply omit the field from the JSON. Using `null` values correctly means that publishers and/or users can create compiled releases reliably. @@ -16,7 +16,7 @@ A public procurement agency publishes a release to announce an opportunity on Ja The agency decides to award the opportunity to two of the bidders. On March 1, the agency publishes a release to announce that Company A is awarded a contract of $750. On March 3, the agency publishes a release to announce that Company B is awarded a contract of $750. -Through these individual releases, the agency provides real-time data about the contracting process. +Through these individual releases, the agency provides real-time data about the contracting (or planning) process. In each release, the agency also updates the record, which combines all the releases to date. In the final record: diff --git a/docs/guidance/build/serialization.md b/docs/guidance/build/serialization.md index 9fae8bf69..0160c54c9 100644 --- a/docs/guidance/build/serialization.md +++ b/docs/guidance/build/serialization.md @@ -1,6 +1,6 @@ # Serialization -The Open Contracting Data Standard provides a **structured data model** for capturing in-depth information about all stages of the contracting process. +The Open Contracting Data Standard provides a **structured data model** for capturing in-depth information about all stages of contracting (and planning) processes. The current canonical version of this data model is provided by a **[JSON Schema](../../schema/release)** which describes field names, field definitions and structures for the data. The compliance of data with the Open Contracting Data Standard will be assessed against this schema. diff --git a/docs/guidance/build/system_architectures.md b/docs/guidance/build/system_architectures.md index d024f1c40..1f55d19fb 100644 --- a/docs/guidance/build/system_architectures.md +++ b/docs/guidance/build/system_architectures.md @@ -18,7 +18,7 @@ This guidance describes some design approaches with their advantages and disadva ## On-demand transformation from data sources -In this scenario, data from each source is converted to OCDS format on-demand. OCDS data is not stored, but is created each time a user or third-party invokes the conversion process. This is the easiest path when a single source manages the data for all contracting processes. But it involves adding an OCDS conversion module. +In this scenario, data from each source is converted to OCDS format on-demand. OCDS data is not stored, but is created each time a user or third-party invokes the conversion process. This is the easiest path when a single source manages the data for all contracting (and planning) processes. But it involves adding an OCDS conversion module. An API performs data transformation on the fly each time it receives a request. @@ -38,7 +38,7 @@ In the scenarios that follow, a middleware component converts and stores the dat * It is possible to merge and centralize data from more than one data source in a single datastore. * It can relieve data sources from expensive queries. -* It can enable the generation of the change history for each contracting process. +* It can enable the generation of the change history for each contracting (or planning) process. On the other hand, there is a cost of maintaining a separate datastore. In these scenarios, we assume an API provides access to OCDS data. diff --git a/docs/guidance/design.md b/docs/guidance/design.md index ac5885a0d..72eca8ba2 100644 --- a/docs/guidance/design.md +++ b/docs/guidance/design.md @@ -1,8 +1,15 @@ # Design +```{ifconfig} language != 'es'
+``` +```{ifconfig} language == 'es' +
+ +
+``` This phase is about setting up your OCDS implementation to be a success. diff --git a/docs/guidance/design/user_needs.md b/docs/guidance/design/user_needs.md index ceb55b126..4f32eb148 100644 --- a/docs/guidance/design/user_needs.md +++ b/docs/guidance/design/user_needs.md @@ -19,7 +19,7 @@ As you start implementing OCDS, consider how you will engage with data users, an ## Value for money in procurement -Open contracting data can help officials to get good value for money on the goods and services in the procurement process, and can also help in identifying whether value for money has been achieved in concluded contracts. +Open contracting data can help officials to get good value for money on the goods, services and works in the procurement process, and can also help in identifying whether value for money has been achieved in concluded contracts. These users want to analyze trends in prices and supplier performance, including in terms of quality and duration. @@ -37,7 +37,7 @@ Data that can be linked up using globally unique identifiers for companies is pa ## Competing for public contracts -Open contracting data can be used by private firms to understand the potential pipeline of procurement opportunities. It is a core principle of open contracting that information ought to be made available at the early stages of a contracting process, including information on planned procurement, and invitations for tenders. +Open contracting data can be used by private firms to understand the potential pipeline of procurement opportunities. It is a core principle of open contracting that information ought to be made available at the early stages of contracting (or planning) processes, including information on planned procurement and invitations for tenders. Information on past contracts can allow firms to identify upcoming opportunities for re-contracting, and can support a more competitive marketplace, as transparency creates a level playing field with information on pricing, contract dates and key deliverables. @@ -45,6 +45,6 @@ Forward looking and timely information is particularly important for private sec ## Monitoring service delivery -Monitoring groups want to ensure that public contracting delivers value to citizens in terms of quality of goods, works, and services provided. To monitor contracting effectively involves being able to link budgets and donor data to the contracts and results. It also involves being able to verify whether results are being delivered on the ground. +Monitoring groups want to ensure that public contracting delivers value to citizens in terms of quality of goods, services and works provided. To monitor contracting effectively involves being able to link budgets and donor data to the contracts and results. It also involves being able to verify whether results are being delivered on the ground. Data concerning budgets, delivery location and subcontracting arrangements are particularly useful for those involved in contract monitoring. diff --git a/docs/guidance/map.md b/docs/guidance/map.md index 7b2c45bf0..b738be9ae 100644 --- a/docs/guidance/map.md +++ b/docs/guidance/map.md @@ -15,7 +15,7 @@ This phase is about documenting your sources of contracting data, and documentin When starting out, consider working in parallel on the map and build phases, because the choices you make at the build stage might affect how you need to map your data. For example, your choice of architecture might determine whether you are able to publish a change history using releases and records. -If your contracting processes are managed on paper, using local spreadsheets or via unstructured electronic documents, and you’re reusing one of the existing [tools for collecting OCDS data](build/data_collection_tools), then please [get in touch with the OCDS Helpdesk](../support/index.md#ocds-helpdesk) for guidance on how to identify which OCDS fields match your local concepts. +If your contracting (or planning) processes are managed on paper, using local spreadsheets or via unstructured electronic documents, and you’re reusing one of the existing [tools for collecting OCDS data](build/data_collection_tools), then please [get in touch with the OCDS Helpdesk](../support/index.md#ocds-helpdesk) for guidance on how to identify which OCDS fields match your local concepts. Mapping data to OCDS is not always easy. Before writing any software, this phase is an opportunity to: @@ -37,9 +37,9 @@ As described in the [Field-Level Mapping Template Guidance](https://www.open-con ## Identify your data sources -To implement OCDS you need to first identify which IT systems capture and store contracting data and related documents. You also need to identify how to connect data held in different systems, to get a complete picture of the contracting process. The [Technical Assessment Template](https://www.open-contracting.org/resources/technical-assessment-template/) guides you through this process. +To implement OCDS you need to first identify which IT systems capture and store contracting data and related documents. You also need to identify how to connect data held in different systems, to get a complete picture of the contracting (and planning) processes. The [Technical Assessment Template](https://www.open-contracting.org/resources/technical-assessment-template/) guides you through this process. -If your contracting processes are managed on paper, using local spreadsheets or via unstructured electronic documents, you should use the template to identify those data sources, too. +If your contracting (or planning) processes are managed on paper, using local spreadsheets or via unstructured electronic documents, you should use the template to identify those data sources, too. Once complete, you can: @@ -123,7 +123,7 @@ Before using extensions, double-check whether the data elements can be disclosed * [Worked example: Organization classification](map/organization_classifications) ``` -If you do need to use an extension, consider whether the new fields will affect how users interpret existing fields. If so, you can add information to existing fields, to avoid misinterpretation – in addition to adding the new fields. +If you do need to use an extension, consider whether the new fields will affect how users interpret existing fields. If so, you can add information to existing fields, to avoid misinterpretation – in addition to adding the new fields. For example, you have created an extension to add a new field to indicate whether a contracting process is about the disposal of a state asset (like a vehicle). If the `tender.title` field refers only to the vehicle, then users who are unaware of the new field might misinterpret the contracting process as being about its purchase. To avoid misinterpretation, you can add a "Disposal: " prefix to the `tender.title` field. @@ -143,7 +143,7 @@ map/extensions ## Link OCDS with other standards -Not all information that is related to a contracting process belongs in OCDS. For example, a company's annual filings and incorporation status are typically managed in a company registry, outside the lifecycle of a contracting process. +Not all information that is related to a contracting (or planning) process belongs in OCDS. For example, a company's annual filings and incorporation status are typically managed in a company registry, outside the lifecycle of a contracting process. For guidance on integrating your OCDS data with these related datasets, refer to [Linked standards](map/linked_standards). diff --git a/docs/guidance/map/amendments.md b/docs/guidance/map/amendments.md index f7ca3345e..12ae9c79d 100644 --- a/docs/guidance/map/amendments.md +++ b/docs/guidance/map/amendments.md @@ -4,7 +4,7 @@ # Updates and amendments -Information about a contracting process will often change over time. +Information about a contracting (or planning) process will often change over time. Each time information changes, a new OCDS release ought to be published. The new release can contain information that was previously published, in addition to the new information. diff --git a/docs/guidance/map/awards_contracts.md b/docs/guidance/map/awards_contracts.md index 5221cf663..37896b5c7 100644 --- a/docs/guidance/map/awards_contracts.md +++ b/docs/guidance/map/awards_contracts.md @@ -6,7 +6,7 @@ Contracting processes can take many forms and follow many different types of procedure, from a simple contracting process resulting in a single contract between a buyer and supplier, to a multi-buyer, multi-supplier framework agreement implemented as an electronic catalog. -OCDS defines a common model for disclosing structured data on public contracting processes carried out in any jurisdiction, including data on awards and contracts. The examples in this guidance explain how to model awards and contracts occurring in different types of contracting processes using OCDS. +OCDS defines a common model for disclosing structured data on public contracting (and planning) processes carried out in any jurisdiction, including data on awards and contracts. The examples in this guidance explain how to model awards and contracts occurring in different types of contracting processes using OCDS. ## Definitions @@ -150,7 +150,7 @@ There are no identifiers for the individual supplier/value pairings on the origi ``` ## Purchase orders -A purchase order is a specific type of contract, an official document issued by a buyer committing to pay a supplier for the supply of specific goods, works or services to be delivered in the future. +A purchase order is a specific type of contract, an official document issued by a buyer committing to pay a supplier for the supply of specific goods, services or works to be delivered in the future. Purchase orders can be issued against an existing contract, or if no prior contract exists then acceptance of a purchase order by a supplier forms a contract between buyer and supplier. diff --git a/docs/guidance/map/buyers_suppliers.md b/docs/guidance/map/buyers_suppliers.md index f0f024b4c..a942b5f4c 100644 --- a/docs/guidance/map/buyers_suppliers.md +++ b/docs/guidance/map/buyers_suppliers.md @@ -23,9 +23,9 @@ Elsewhere in the OCDS schema the buyer is described as: There is a proposal to align this description with the above definition. ``` -In OCDS, the **buyer** is modelled as relating to the contracting process as a whole and each contracting process has only a single `buyer` field, i.e. all awards and contracts resulting from the contracting process share the same buyer. +In OCDS, the **buyer** is modelled as relating to the contracting (or planning) process as a whole and each process has only a single `buyer` field, i.e. all awards and contracts resulting from the contracting process share the same buyer. -That said, many organizations can be assigned the 'buyer' role in the `parties` section, making it possible to represent contracting processes with a 'lead' buyer and other buyers. +That said, many organizations can be assigned the 'buyer' role in the `parties` section, making it possible to represent contracting (or planning) processes with a 'lead' buyer and other buyers. ### Suppliers diff --git a/docs/guidance/map/contract_suspension.md b/docs/guidance/map/contract_suspension.md index 19a7e0ec7..46ac9785f 100644 --- a/docs/guidance/map/contract_suspension.md +++ b/docs/guidance/map/contract_suspension.md @@ -26,7 +26,7 @@ If you want to publish structured data about contract suspension, you can contri In the following example, a contract in the [Afghanistan Government Electronic and Open Procurement System](https://ageops.net) is suspended. -```{jsoninclude} ../../examples/suspendedcontract.json +```{jsoninclude} ../../examples/contract_suspension/suspended_contract.json :jsonpointer: :expand: releases, contracts :title: Suspended Contract diff --git a/docs/guidance/map/contracting_planning_processes.md b/docs/guidance/map/contracting_planning_processes.md index 4fe5572fe..1877c393e 100644 --- a/docs/guidance/map/contracting_planning_processes.md +++ b/docs/guidance/map/contracting_planning_processes.md @@ -8,7 +8,7 @@ OCDS recognizes two types of processes: contracting processes and planning proce OCDS defines a contracting process as: -> All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multiple stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process. +> All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multi-stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process. > Procedures that failed and were restarted are considered new processes. diff --git a/docs/guidance/map/extensions.md b/docs/guidance/map/extensions.md index 6b8bfcc9b..70e537d16 100644 --- a/docs/guidance/map/extensions.md +++ b/docs/guidance/map/extensions.md @@ -1,6 +1,6 @@ # Extensions -OCDS provides a common core of [sections](../../schema/reference.md#release-structure) and [building blocks](../../schema/reference.md#building-block-reference) for describing contracting processes. +OCDS provides a common core of [sections](../../schema/reference.md#release-structure) and [building blocks](../../schema/reference.md#building-block-reference) for describing contracting (or planning) processes. Many publishers will have additional data that they could publish. Instead of ignoring this data and leaving it unpublished, OCDS encourages publishers to collaborate on the creation of **extensions** to the standard. @@ -31,7 +31,7 @@ You can find the [extension template](https://github.com/open-contracting/standa ## Profiles -Groups of extensions can be combined into **profiles**. OCDS provides a common core for describing contracting processes, which profiles expand to suit the disclosure requirements and user needs of a particular sector or legal framework. +Groups of extensions can be combined into **profiles**. OCDS provides a common core for describing contracting (or planning) processes, which profiles expand to suit the disclosure requirements and user needs of a particular sector or legal framework. ### OCDS for Public-Private Partnerships diff --git a/docs/guidance/map/framework_agreements.md b/docs/guidance/map/framework_agreements.md index f951b7858..223b669cd 100644 --- a/docs/guidance/map/framework_agreements.md +++ b/docs/guidance/map/framework_agreements.md @@ -62,7 +62,7 @@ In OCDS, a contracting process brings together, under a single identifier, the i * What was the total value of spending that resulted from this award? * Was a renewal of this contract signed? -In some cases, complex contracting processes cannot be represented under a single identifier, because there are multiple stages. For example, this is the case when a framework is set up, and then mini-competitions are used for purchases from the framework. +In some cases, a complex contracting activity cannot be represented as a single contracting process, because there are multiple tender stages. For example, this is the case when a framework is set up, and then mini-competitions are used for purchases from the framework. OCDS models the first and second stages of framework agreement procedures as separate contracting processes, linked together using the `relatedProcesses` array. The `tender.techniques.hasFrameworkAgreement` field, from the [Techniques](https://extensions.open-contracting.org/en/extensions/techniques/master/) extension, is used to identify contracting processes that represent the first stage of a framework agreement procedure. The presence of a related process with a `.relationship` set to 'framework' is used to identify contracting processes that represent the second stage of a framework agreement procedure. diff --git a/docs/guidance/map/linked_standards.md b/docs/guidance/map/linked_standards.md index c9cd32887..654e927f0 100644 --- a/docs/guidance/map/linked_standards.md +++ b/docs/guidance/map/linked_standards.md @@ -1,6 +1,6 @@ # Linked standards -OCDS data often refers to other datasets, like company registers, government budgets and infrastructure projects. These datasets contain information that is managed outside the lifecycle of a contracting process. +OCDS data often refers to other datasets, like company registers, government budgets and infrastructure projects. These datasets contain information that is managed outside the lifecycle of a contracting (or planning) process. ## Open Contracting for Infrastructure Data Standards diff --git a/docs/guidance/map/localization.md b/docs/guidance/map/localization.md index af416ca55..b23147914 100644 --- a/docs/guidance/map/localization.md +++ b/docs/guidance/map/localization.md @@ -56,9 +56,9 @@ When local legislation mandates specific contracting disclosures, it can be usef You can use the [field-level mapping template](https://www.open-contracting.org/resources/ocds-field-level-mapping-template/) to document a mapping to local legislation. If you localized the mapping template, then start with the localized version. -You will need a clear list of the disclosure requirements set out in law. These should be divided up by which stage of the contracting process they apply to and under which circumstances. +You will need a clear list of the disclosure requirements set out in law. These should be divided up by which stage of the contracting (or planning) process they apply to and under which circumstances. -Work through the OCDS tabs (1. - 6.) for each stage of the contracting process and for each field note any related legal requirements. Use column E to note the requirements or add a new column if you prefer. +Work through the OCDS tabs (1. - 6.) for each stage of the contracting (or planning) process and for each field note any related legal requirements. Use column E to note the requirements or add a new column if you prefer. OCDS often breaks down the concepts used in disclosure legislation to make sure the data is useful. For example, the concept of a supplier is broken down into fields for the supplier's name, organization identifier and address. So you may find that one legal requirement maps to many fields. diff --git a/docs/guidance/map/milestones.md b/docs/guidance/map/milestones.md index ab0d2140d..1e0c2a545 100644 --- a/docs/guidance/map/milestones.md +++ b/docs/guidance/map/milestones.md @@ -113,7 +113,7 @@ The example below includes three OCDS releases: In the implementation release: -* Milestones have been set for the delivery and payment of goods and services related to the project. Contract information is released along with the implementation milestones. +* Milestones have been set for the delivery and payment of goods, services and works related to the project. Contract information is released along with the implementation milestones. In the first implementation update release: diff --git a/docs/guidance/map/organization_classifications.md b/docs/guidance/map/organization_classifications.md index 24f37c9ca..7fdb0ee3c 100644 --- a/docs/guidance/map/organization_classifications.md +++ b/docs/guidance/map/organization_classifications.md @@ -4,16 +4,16 @@ # Organization classifications -Many publishers wish to disclose and monitor information about different classifications of organizations involved in contracting processes. Example classifications include organization ownership, incorporation, sector, location, and number of employees. We recognise that publishing information about a variety of organization characteristics, for example women-owned and/or indigenous-owned organizations, is an important part of monitoring participation in public procurement. +Many publishers wish to disclose and monitor information about different classifications of organizations involved in contracting (or planning) processes. Example classifications include organization ownership, incorporation, sector, location, and number of employees. We recognise that publishing information about a variety of organization characteristics, for example women-owned and/or indigenous-owned organizations, is an important part of monitoring participation in public procurement. -Some organization classifications, such as organization scale, can be published using a specific extension in OCDS. Many other classifications are context-specific, and for this case, we provide an organization classification extension that allows publishers to provide their own classifications. +Some organization classifications, such as organization scale, can be published using OCDS fields and codes. Many other classifications are context-specific, and for this case, we provide an organization classification extension that allows publishers to provide their own classifications. There are therefore two options that are encouraged for publishing organization classifications. -1. For classifications that have become standardized, there are specific OCDS extension fields that ought to be used. At present, this only applies to organization scale, which ought to be disclosed using the [party scale extension](https://extensions.open-contracting.org/en/extensions/partyScale/master/). This extension adds a `scale` field to the `parties.details` block, to indicate the size or scale of an organization, in particular commercial enterprises or economic operators. +1. For classifications that have become standardized, there are specific OCDS fields and codes that ought to be used. At present, this only applies to organization scale, which ought to be disclosed using the `parties.details.scale` field, using a code from the [party scale codelist](../../schema/codelists.md#party-scale). 1. For non-standardized options, such as classifying forms of organization ownership, publishers ought to use the [organization classification extension](https://extensions.open-contracting.org/en/extensions/organizationClassification/1.1/). This extension adds a [`classifications`](../../schema/reference.md#classification) array to the `parties.details` block to enable the categorization of organizations. Each `classification.id` field ought to contain a code from the particular scheme given in the `classification.scheme` field. Details about the particular organization characteristic that is being disclosed ought to be provided in the `classification.description` field. The given `classification.scheme` can be an existing scheme (drawn from the open [classificationScheme codelist](../../schema/codelists.md#classification-scheme)), or a local scheme for a particular publisher. In both cases, we encourage publishers to provide details of all schemes and classification codes used in their [publication policy](../publish.md#finalize-your-publication-policy), to help users understand the data. -As fields become standardized through the use of option 2, the information can be migrated to _also_ be published via specific extensions as in option 1. Publishers can continue to publish the information in the organization classification extension to preserve backwards compatibility in data sets. +As fields become standardized through the use of option 2, the information can be migrated to _also_ be published via OCDS fields and codes as in option 1. Publishers can continue to publish the information in the organization classification extension to preserve backwards compatibility in data sets. A third, discouraged, example approach using local extensions is also given below, for situations where neither of the above two approaches apply to a specific use case. @@ -23,7 +23,7 @@ A third, discouraged, example approach using local extensions is also given belo #### Organization scale -In the example below, Moldova has disclosed information about the 'Companie mică' organization using the [party scale extension](https://extensions.open-contracting.org/en/extensions/partyScale/master/). The scale is given as 'micro', from the [partyScale codelist](https://extensions.open-contracting.org/en/extensions/partyScale/master/codelists/). +In the example below, Moldova has disclosed information about the 'Companie mică' organization using the `parties.details.scale` field, to which it has assigned the 'micro' code from the [partyScale codelist](../../schema/codelists.md#party-scale). ```{jsoninclude} ../../examples/organizations/organization_classification/moldova_organization_scale.json :jsonpointer: @@ -31,6 +31,12 @@ In the example below, Moldova has disclosed information about the 'Companie mic :title: party_scale ``` +```{admonition} Party scale extension +:class: note + +This example previously used the [party scale extension](https://extensions.open-contracting.org/en/extensions/partyScale/master/) for OCDS 1.1. That extension has been merged into OCDS 1.2. +``` + ### Option 2: Organization classification extension In the examples below, two different publishers have disclosed information about organizations involved in their contracting processes. An organization classification needs to consist of at least two parts: an identifier for the list (scheme) from which the classification is taken, and an identifier for the category from that list being applied. It is useful to also publish a text label and/or URI that users can draw on to interpret the classification. In the first example below, the publisher re-uses an existing `classification.scheme`. In the second example below, where a publisher wishes to track specific policy-related data, a local list of categories is used in preference to mapping to a generic set. diff --git a/docs/guidance/map/organization_identifiers.md b/docs/guidance/map/organization_identifiers.md index 3384abcf1..05b662ed3 100644 --- a/docs/guidance/map/organization_identifiers.md +++ b/docs/guidance/map/organization_identifiers.md @@ -4,7 +4,7 @@ # Organization identifiers -Publishers regularly collect the *legal identifiers* of the organizations involved in a contracting process. These [organization identifiers](../../schema/identifiers.md#organization-identifiers) can be disclosed using OCDS. An organization identifier is composed of two parts: +Publishers regularly collect the *legal identifiers* of the organizations involved in a contracting (or planning) process. These [organization identifiers](../../schema/identifiers.md#organization-identifiers) can be disclosed using OCDS. An organization identifier is composed of two parts: * A prefix for the organization list (also known as registry or register) from which the identifier is drawn: for example, the company register. * The existing identifier for the organization within that list. @@ -30,4 +30,4 @@ Each of the organizations in the [parties section](../../schema/reference.md#par For organizations with an organization identifier, you ought to construct the local `id` following the pattern `{identifier.scheme}-{identifier.id}`. -For organizations without an organization identifier, you can populate the local `id` with a fixed or sequential value. For example, you can set the buyer's `id` to "1" and set each supplier's `id` sequentially from "2" onwards. Alternatively, you can set the organization's `id` to its `role` and add a sequential number for roles with multiple organizations, e.g. "buyer", "tenderer-1", "tenderer-2", etc. An organization's local `id` needs to be consistent across all releases in a contracting process. For example, if the `id` of an organization is "tenderer-1" in one release, then the `id` of the same organization in another release needs to also be "tenderer-1". +For organizations without an organization identifier, you can populate the local `id` with a fixed or sequential value. For example, you can set the buyer's `id` to "1" and set each supplier's `id` sequentially from "2" onwards. Alternatively, you can set the organization's `id` to its `role` and add a sequential number for roles with multiple organizations, e.g. "buyer", "tenderer-1", "tenderer-2", etc. An organization's local `id` needs to be consistent across all releases in a (contracting or planning) process. For example, if the `id` of an organization is "tenderer-1" in one release, then the `id` of the same organization in another release needs to also be "tenderer-1". diff --git a/docs/guidance/map/organization_reference.md b/docs/guidance/map/organization_reference.md index 7e1dc0a22..9578bd169 100644 --- a/docs/guidance/map/organization_reference.md +++ b/docs/guidance/map/organization_reference.md @@ -4,9 +4,9 @@ # Organization references -Many organizations can be involved in the lifecycle of a contracting process. Sometimes the same organization can have multiple roles. For example, an organization can first be a tenderer and then become a supplier. +Many organizations can be involved in the lifecycle of contracting and planning processes. Sometimes the same organization can have multiple roles. For example, an organization can first be a tenderer and then become a supplier. -To avoid data repetition, OCDS 1.1 introduced a top-level parties array, where the detailed information about all the organizations and other participants involved in a particular contracting process is declared. +To avoid data repetition, OCDS 1.1 introduced a top-level parties array, where the detailed information about all the organizations and other participants involved in a particular contracting (or planning) process is declared. When a **reference** is needed to an entry in the parties array, e.g. to provide a link between a `tenderer` declared in the `tender` section and its organization details, use an `OrganizationReference` object. This object includes just the `name` and `id` of the organization, instead of repeating all its relevant data again. diff --git a/docs/guidance/map/organizational_units.md b/docs/guidance/map/organizational_units.md index 37a95cf40..6aa5cdffc 100644 --- a/docs/guidance/map/organizational_units.md +++ b/docs/guidance/map/organizational_units.md @@ -4,7 +4,7 @@ # Organizational units -For some use cases, publishers might need to disclose the organizational units involved in the contracting process, e.g agency branches or divisions. +For some use cases, publishers might need to disclose the organizational units involved in the contracting (or planning) process, e.g agency branches or divisions. There is more than one approach to model organizational units in OCDS: diff --git a/docs/guidance/map/unsuccessful_processes.md b/docs/guidance/map/unsuccessful_processes.md index 1760bd5c1..f925be2b0 100644 --- a/docs/guidance/map/unsuccessful_processes.md +++ b/docs/guidance/map/unsuccessful_processes.md @@ -24,7 +24,7 @@ The first data disclosed is about the planning process. Planning data includes a Next, the contracting process is disclosed, using a new `ocid`, 'ocds-03ad3f-331547-1'. The `relatedProcess` block links the planning process and the contracting process, with the relationship set to 'planning'. -The tender was unsuccessful, so the tender status is set to ‘unsuccessful’. +The tender was unsuccessful, so the tender's `status` is set to ‘unsuccessful’. ```{jsoninclude} ../../examples/unsuccessful_tender/tender.json :jsonpointer: diff --git a/docs/guidance/publish.md b/docs/guidance/publish.md index fd7e23499..858fa7832 100644 --- a/docs/guidance/publish.md +++ b/docs/guidance/publish.md @@ -21,7 +21,8 @@ In OCDS, a publication policy is an essential data guide for users. Each OCDS pu * How timely or frequent the publication is * Where the data comes from and how it is generated * The formats of the publication and where to access the data -* Any differences in the contracting processes or fields covered by different formats or access methods +* Any differences in terms of which contracting (or planning) processes are covered by different formats or access methods +* Any differences in terms of which fields are covered by different formats or access methods * License information for data reuse * Contact information of the publisher @@ -69,6 +70,4 @@ Once you have published your data, it's time to share it with the world. It is a **Action:** [Request support from OCP](mailto:data@open-contracting.org) to build capacity or tools for key stakeholders to start using the data. -**Resource:** [OCDS Tool Directory](https://www.open-contracting.org/resources/open-contracting-tools-directory/) - **Resource:** [Guidance for using OCDS data](https://www.open-contracting.org/data/data-use/) diff --git a/docs/guidance/publish/quality.md b/docs/guidance/publish/quality.md index be48c478e..16ae13702 100644 --- a/docs/guidance/publish/quality.md +++ b/docs/guidance/publish/quality.md @@ -1,6 +1,6 @@ # Assessing data quality -The Open Contracting Data Standard enables publication of detailed information about all stages of the public contracting process (and extensions can be used for additional information not covered by the core standard). +The Open Contracting Data Standard enables publication of detailed information about all stages of contracting (and planning) processes (and extensions can be used for additional information not covered by the core standard). The limits of what can be published using the OCDS are usually defined by (1) absence of a legal mandate for publication and (2) challenges with data collection. @@ -35,7 +35,7 @@ All OCDS publications ought to meet the following criteria: 1. **Reviewable**: The [OCDS Data Review Tool](https://standard.open-contracting.org/review/) is able to report results on the data. 1. **Appropriate**: Concepts are published in semantic accordance with the rules of the OCDS (or registered extensions) rather than using a non-OCDS field or code. 1. **Active**: For each publisher, there is an OCDS release with a top-level `date` field value within the last 12 months. -1. **Parity**: For each publisher, for the _time period_ and _contracting authorities_ covered by the data, there isn’t another dataset by the same publisher that covers more than 25% more contracting processes. +1. **Parity**: For each publisher, for the _time period_ and _contracting authorities_ covered by the data, there isn’t another dataset by the same publisher that covers more than 25% more contracting (or planning) processes. The OCDS Helpdesk is happy to review draft and newly published OCDS data and can work with publishers with advice to meet the above criteria. A publication that does not meet this minimum threshold will not be listed as a publisher by OCP as part of [OCP’s regular reporting](https://www.open-contracting.org/why-open-contracting/learning/). @@ -45,9 +45,9 @@ From the minimum threshold above, we want to support publishers to continue to i ### Completeness -Improvement on the below indicators demonstrate that the published information is becoming more complete about the contracting processes within the publisher’s jurisdiction. +Improvement on the below indicators demonstrate that the published information is becoming more complete about the contracting (or planning) processes within the publisher’s jurisdiction. -1. Publish subsequent releases per OCID to show how the contracting process is progressing over time +1. Publish subsequent releases per OCID to show how the contracting (or planning) process is progressing over time 1. Increase the publication of historical information (based on a minimal set of date fields that appear across all sources, e.g. `tender.tenderPeriod`, `awards.date`, and `contracts.dateSigned`) 1. Increase the average coverage of fields per compiled release, for example either new fields not previously published in any release, or an increase in the use of a field across releases (e.g. very little data was published about direct awards and now more is being published about direct awards) 1. Increase the number of contracting authorities covered in the publication @@ -79,10 +79,10 @@ The most advanced OCDS publishers will demonstrate that they have achieved the b **Completionist** _Indicates_: Whether the public can get data about all contracts that are disclosable according to local laws and regulations. -_Measures_: The percentage of all contracting processes that are disclosed in OCDS data, by number and by value. +_Measures_: The percentage of all contracting (or planning) processes that are disclosed in OCDS data, by number and by value. **Timely Publisher** -_Indicates_: Whether the public can track the progress of a contracting process. +_Indicates_: Whether the public can track the progress of a contracting (or planning) process. _Measures_: Whether the OCDS publication is updated daily, including information from human-readable notices, that is published within an expected number of days of the notice. **Thorough Publisher** diff --git a/docs/history/changelog.md b/docs/history/changelog.md index 85caa4dee..e2ce93d01 100644 --- a/docs/history/changelog.md +++ b/docs/history/changelog.md @@ -47,6 +47,7 @@ Per the [normative and non-normative content and changes policy](https://docs.go * [#986](https://github.com/open-contracting/standard/pull/986) Merge Registration page into Build page. * [#1150](https://github.com/open-contracting/standard/pull/1150) Align language in Build phase with language in Map phase. * [#1414](https://github.com/open-contracting/standard/pull/1414) Remove the planning section from Easy releases and Change history. + * [#1494](https://github.com/open-contracting/standard/pull/1497) Add guidance on preparing test data to Check your data section. * Publish: * Merge Publication policy and Licensing pages into Publish page [#986](https://github.com/open-contracting/standard/pull/986) [#1012](https://github.com/open-contracting/standard/pull/1012). * Replace guidance on publication levels [#980](https://github.com/open-contracting/standard/pull/980) [#1013](https://github.com/open-contracting/standard/pull/1013) [#1045](https://github.com/open-contracting/standard/pull/1045). @@ -72,6 +73,7 @@ Per the [normative and non-normative content and changes policy](https://docs.go * Add new codelists: * [#1316](https://github.com/open-contracting/standard/pull/1316) `language` * [#1308](https://github.com/open-contracting/standard/pull/1308) `mediaType` + * [#1459](https://github.com/open-contracting/standard/pull/1459) `partyScale` * `classificationScheme.csv`: * [#1319](https://github.com/open-contracting/standard/pull/1319) Rename from `itemClassificationScheme.csv`. @@ -94,9 +96,6 @@ Per the [normative and non-normative content and changes policy](https://docs.go * 'tariffMethod' * 'tariffReview' * 'tariffIllustration' - * [#1225](https://github.com/open-contracting/standard/pull/1225) Add codes from the EU extension: - * 'economicSelectionCriteria' - * 'technicalSelectionCriteria' * [#1186](https://github.com/open-contracting/standard/pull/1186) Deprecate 'contractSchedule' and edit 'contractAnnexe'. * [#1280](https://github.com/open-contracting/standard/pull/1280) Align the description of 'tenderNotice' and 'technicalSpecifications' with GPA. * [#1377](https://github.com/open-contracting/standard/pull/1377) Clarify the description of 'completionCertificate' and align it with the description of 'paymentCertificate' in OC4IDS. @@ -104,6 +103,8 @@ Per the [normative and non-normative content and changes policy](https://docs.go * [#1403](https://github.com/open-contracting/standard/pull/1403) Replace "contract notice" with "contract signature notice", add synonyms to all notice codes ('plannedProcurementNotice', 'tenderNotice', 'awardNotice', 'contractNotice') and standardize the descriptions. * [#1415](https://github.com/open-contracting/standard/pull/1415) Change 'evaluationReports' section from "tender" to "award". * [#1416](https://github.com/open-contracting/standard/pull/1416) Change "interested supplier" to "potential supplier". + * [#1464](https://github.com/open-contracting/standard/pull/1464) Deprecate 'eligibilityCriteria', add 'exclusionGrounds' and 'selectionCriteria'. + * [#1508](https://github.com/open-contracting/standard/pull/1508) Clarify that "evaluation" in 'evaluationCriteria' and 'evaluationReports' covers exclusion grounds, selection criteria and award criteria. Add a document type for 'awardCriteria'. * `method.csv`: * [#1353](https://github.com/open-contracting/standard/pull/1353) Replace "submit a tender" with "submit a bid". @@ -138,19 +139,21 @@ Per the [normative and non-normative content and changes policy](https://docs.go * [#1352](https://github.com/open-contracting/standard/pull/1352) Replace "party", "entity", etc. with "organization". * [#1353](https://github.com/open-contracting/standard/pull/1353) Replace "submit a tender" with "submit a bid". -* `releaseTag`: +* `releaseTag.csv`: * [#1238](https://github.com/open-contracting/standard/pull/1238) Open the `releaseTag` codelist. * [#1415](https://github.com/open-contracting/standard/pull/1415) Align descriptions of 'planning', 'tender', 'award' and 'contract' with the corresponding schema fields. * [#1201](https://github.com/open-contracting/standard/pull/1201) Add 'terminatedEarly' and 'terminatedSuccessfully' codes to the `contractStatus` codelist, to distinguish between successful completion and early termination of the contract. * [#1200](https://github.com/open-contracting/standard/pull/1200) Deprecate the `submissionMethod` codelist, because its codes were either not submission methods, or not supported by use cases. -* [#1209](https://github.com/open-contracting/standard/pull/1209) Replace "electronic goods" with "digital goods" in the description of 'goods' from the `procurementCategory` codelist, to align with the description in the World Trade Organization's Agreement on Government Procurement, and to avoid confusion between electronic goods like computers and digital goods like software. * [#1389](https://github.com/open-contracting/standard/pull/1389) Deprecate the `initiationType` codelist, because the approach to data modelling that it supports was not pursued. +* [#1209](https://github.com/open-contracting/standard/pull/1209) Replace "electronic goods" with "digital goods" in the description of 'goods' from the `procurementCategory` codelist, to align with the description in the World Trade Organization's Agreement on Government Procurement, and to avoid confusion between electronic goods like computers and digital goods like software. +* [#1530](https://github.com/open-contracting/standard/pull/1530) Use consistent wording for "goods, services and/or works" in the `classificationScheme`, `extendedProcurementCategory`, `partyRole` and `procurementCategory` codelists. ### Schema * Clarify core concepts: * [#1216](https://github.com/open-contracting/standard/pull/1216) Define contracting process and planning process in the schema description. Update definition of release, record and ocid. Update references to contracting process so that it takes take the planning process into account. + * [#1513](https://github.com/open-contracting/standard/pull/1513) Update fields' use of "contracting process" and "contracting (or planning) process" to reflect the new definition. Align `budget.project` and `budget.projectID`. * [#1443](https://github.com/open-contracting/standard/pull/1443) `date` * [#1182](https://github.com/open-contracting/standard/pull/1182) `buyer` * [#1163](https://github.com/open-contracting/standard/pull/1163) `tender.procuringEntity` @@ -166,21 +169,23 @@ Per the [normative and non-normative content and changes policy](https://docs.go * [#1335](https://github.com/open-contracting/standard/pull/1335) `planning.id` * [#1324](https://github.com/open-contracting/standard/pull/1324) `tender.datePublished` * [#1421](https://github.com/open-contracting/standard/pull/1421) `tender.standstillPeriod` + * [#1492](https://github.com/open-contracting/standard/pull/1492) `awards.datePublished` * [#1165](https://github.com/open-contracting/standard/pull/1165) `statusDetails` to `Tender`, `Award` and `Contract` - * [#1125](https://github.com/open-contracting/standard/pull/1125) `Item.unit.weight` - * [#1455](https://github.com/open-contracting/standard/pull/1455) `Milestone.dueAfterDate` - * [#1326](https://github.com/open-contracting/standard/pull/1326) [#1431](https://github.com/open-contracting/standard/pull/1431) `links` - * [#1376](https://github.com/open-contracting/standard/pull/1376) `publisher` * [#1208](https://github.com/open-contracting/standard/pull/1326) The estimated and maximum values of framework agreeemnts: * `tender.maximumValue`. Previously, `tender.value` was used for the maximum value. However, this led to double-counting. * `awards.maximumValue`. Previously, `awards.value` was used for the maximum value. However, this led to double-counting. * `awards.estimatedValue` * `contracts.maximumValue` * `contracts.estimatedValue` + * [#1459](https://github.com/open-contracting/standard/pull/1459) `Organization.details.scale` + * [#1326](https://github.com/open-contracting/standard/pull/1326) [#1431](https://github.com/open-contracting/standard/pull/1431) `links` + * [#1376](https://github.com/open-contracting/standard/pull/1376), [#1489](https://github.com/open-contracting/standard/pull/1489) `publisher` * [#1372](https://github.com/open-contracting/standard/pull/1372) `Address.country` * [#1380](https://github.com/open-contracting/standard/pull/1380) [#1440](https://github.com/open-contracting/standard/pull/1440) `Document.languages` - * [#1434](https://github.com/open-contracting/standard/pull/1434) `Milestone.value` * [#1439](https://github.com/open-contracting/standard/pull/1439) `Document.relatedItems` + * [#1455](https://github.com/open-contracting/standard/pull/1455) `Milestone.dueAfterDate` + * [#1434](https://github.com/open-contracting/standard/pull/1434) `Milestone.value` + * [#1490](https://github.com/open-contracting/standard/pull/1490) `SimpleIdentifier` * Deprecate some fields: * [#1200](https://github.com/open-contracting/standard/pull/1200) `tender.submissionMethod`, because all codes from the `submissionMethod` codelist are deprecated. @@ -190,14 +195,20 @@ Per the [normative and non-normative content and changes policy](https://docs.go * [#1380](https://github.com/open-contracting/standard/pull/1380) `Document.language` in favor of the new `Document.languages` field, to support documents in which multiple languages are used. * Update and clarify field descriptions: - * [#1094](https://github.com/open-contracting/standard/pull/1094) `Organization.id`, to clarify its uniqueness. * [#1113](https://github.com/open-contracting/standard/pull/1113) `ocid`, to recommend a hyphen after the ocid prefix. - * [#1167](https://github.com/open-contracting/standard/pull/1167) `Budget`,` Budget.id`, `Budget.description`, `Budget.amount` - * [#1189](https://github.com/open-contracting/standard/pull/1189) `Document.url` + * [#1527](https://github.com/open-contracting/standard/pull/1527) `id`, to clarify use in releases and compiled releases. + * [#1094](https://github.com/open-contracting/standard/pull/1094) `Organization.id`, to clarify its uniqueness. + * [#1510](https://github.com/open-contracting/standard/pull/1510) `Organization.additionalIdentifiers`, to clarify its potential use for organizational units. + * [#1167](https://github.com/open-contracting/standard/pull/1167) `Budget`, `Budget.id`, `Budget.description`, `Budget.amount`, to reduce ambiguity and use consistent wording. + * [#1529](https://github.com/open-contracting/standard/pull/1529) `Budget`, `Budget.id`, `Budget.description`, `Budget.amount`, `Budget.project`, `Budget.uri`, `Budget.source`, `tender.value`, `tender.minValue`, `awards.value`, `Transaction`, to replace "contracting process" with "contract(s)". + * [#1189](https://github.com/open-contracting/standard/pull/1189) `Document.url`, to use precise wording and to describe how to indicate a part of a document. * [#1229](https://github.com/open-contracting/standard/pull/1229) Standardize the descriptions of `planning.documents`, `tender.documents`, `awards.documents`, `contracts.documents`, and `contracts.implementation.documents`. * [#1335](https://github.com/open-contracting/standard/pull/1335) Standardize the descriptions of `planning`, `planning.rationale`, `planning.budget`, `planning.documents`, and `planning.milestones`. + * [#1530](https://github.com/open-contracting/standard/pull/1530) `Buyer`, `tender.items`, `awards.items`, `contracts.items`, `Item`, `Item.description`, `Item.unit`, `Unit`, `transaction.providerOrganization`, `transaction.receiverOrganization` to use consistent wording for "goods, services and/or works". + * [#1528](https://github.com/open-contracting/standard/pull/1528) `tender.id`, `tender.hasEnquiries`, to reduce ambiguity and use consistent wording in the description of procurement stages. * Remove confusing terminology: + * [#1487](https://github.com/open-contracting/standard/pull/1487) `planning.budget.project`, to remove sentence about translation options. * [#1109](https://github.com/open-contracting/standard/pull/1109) `tender.awardCriteriaDetails`, to remove "selection criteria". * [#1352](https://github.com/open-contracting/standard/pull/1352) Replace "party", "entity", etc. with "organization". * [#1353](https://github.com/open-contracting/standard/pull/1353) Replace "tender submissions" with "bid submissions". @@ -208,7 +219,7 @@ Per the [normative and non-normative content and changes policy](https://docs.go * [#1086](https://github.com/open-contracting/standard/pull/1086) Recommend the use of strings rather than integers for identifiers. * [#1112](https://github.com/open-contracting/standard/pull/1112) `Organization.id`: "This field need only be unique within the scope of the contracting process, but **should** be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available" ("may" replaced with "should") * [#1112](https://github.com/open-contracting/standard/pull/1112) `Period.durationInDays`: "If a startDate and endDate are set, this field, if used, **must** be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, **must** be equal to the difference between startDate and maxExtentDate." ("should" replaced with "must") - * [#1112](https://github.com/open-contracting/standard/pull/1112) `Contract.items`: "If the items contracted are identical to the items awarded, this field **should** be omitted." (rephrased) + * [#1112](https://github.com/open-contracting/standard/pull/1112) `contracts.items`: "If the items contracted are identical to the items awarded, this field **should** be omitted." (rephrased) * Clarify merging behavior: * [#1242](https://github.com/open-contracting/standard/pull/1242) Clarify that the releases to merge must use the same version of OCDS. @@ -217,7 +228,7 @@ Per the [normative and non-normative content and changes policy](https://docs.go * Make minor changes to the schema's organization: * [#1240](https://github.com/open-contracting/standard/pull/1240) Move `Unit` from `Item.unit` to the schema definitions. - * [#1354](https://github.com/open-contracting/standard/pull/1354) Switch the positions of `contract.dateSigned` and `contract.period` to correspond with the order in `Award`. + * [#1354](https://github.com/open-contracting/standard/pull/1354) Switch the positions of `contracts.dateSigned` and `contracts.period` to correspond with the order in `Award`. * Make minor changes to the JSON Schema properties: * [#1257](https://github.com/open-contracting/standard/pull/1257) Remove the default value (was `"en"`) for the `language` field. @@ -252,6 +263,7 @@ Per the [normative and non-normative content and changes policy](https://docs.go * [#1344](https://github.com/open-contracting/standard/pull/1344) Add contract suspension worked example. * [#1375](https://github.com/open-contracting/standard/pull/1375) Update guidance for empty fields in the merging documentation. * [#1466](https://github.com/open-contracting/standard/pull/1466) Reference worked examples in release and record reference documentation. +* [#1466](https://github.com/open-contracting/standard/pull/1482) Add examples in release reference documentation. ## [1.1.5] - 2020-08-20 diff --git a/docs/primer/releases_and_records.md b/docs/primer/releases_and_records.md index 76825e3cd..4a1b7b3d3 100644 --- a/docs/primer/releases_and_records.md +++ b/docs/primer/releases_and_records.md @@ -23,20 +23,20 @@ Open Contracting Data Standard (OCDS) data is published and updated over time us The only thing that can be truly called “OCDS data” is JSON data that validates against the OCDS schema. There are two schemas for OCDS data: “releases” and “records.” -OCDS publishers are encouraged to use releases and records to publish data in near real-time and to provide a change history. Tracking change over time is important to users of contracting data because there can be many changes in the life of a contracting process. Knowing how and when certain attributes have changed can help users to understand the process, identify inefficiencies, and spot red flags for corruption. +OCDS publishers are encouraged to use releases and records to publish data in near real-time and to provide a change history. Tracking change over time is important to users of contracting data because there can be many changes in the lifetime of a contracting process. Knowing how and when certain attributes have changed can help users to understand the process, identify inefficiencies, and spot red flags for corruption. -A **release** is JSON data that is published each time there is a change to a contracting process. Releases follow the OCDS [release schema](../schema/reference) and contain an OCID to identify the contracting process they relate to. +A **release** is JSON data that is published each time there is a change to a contracting (or planning) process. Releases follow the OCDS [release schema](../schema/reference) and contain an OCID to identify the contracting (or planning) process they relate to. -Releases are immutable, which means they cannot be changed once published. There can be many releases per contracting process and the collection of releases for a contracting process constitutes its change history. +Releases are immutable, which means they cannot be changed once published. There can be many releases per contracting (or planning) process and the collection of releases for a process constitutes its change history. -A **record** is JSON data that acts as an index of all releases for a single contracting process. While releases are never updated, records are updated each time there is a change to a contracting process by adding a new release to this index. Records follow the OCDS [record schema](../schema/records_reference) and, in addition to the release index, can also contain: +A **record** is JSON data that acts as an index of all releases for a single contracting (or planning) process. While releases are never updated, records are updated each time there is a change to a process by adding a new release to this index. Records follow the OCDS [record schema](../schema/records_reference) and, in addition to the release index, can also contain: -* A **compiled release,** which follows the same structure as a release and provides the latest value of each field. The compiled release makes it easy for users to get the latest version of the data about a contracting process. +* A **compiled release,** which follows the same structure as a release and provides the latest value of each field. The compiled release makes it easy for users to get the latest version of the data about a contracting (or planning) process. * A **versioned release,** which contains a history of changes for each field and allows users to see how a particular field has changed over time. Each time a new release is published it is added to the index, the compiled release is updated with the latest values, and the versioned release is updated with any new changes. -![A contracting process is described by many releases, which are aggregated into a single record](../_static/png/change_history_process_record.png) +![A contracting (or planning) process is described by many releases, which are aggregated into a single record](../_static/png/change_history_process_record.png) Records and releases each contain several fields which can be used in different sections. The OCDS schema sets out the fields that ought to be included in each section (where applicable), aiming to reuse simple structures to represent information. For example, a release may contain information about items being procured. OCDS’ schema sets out standard building blocks for items across releases, including the name of the item, a description, each item’s value, and the currency used. diff --git a/docs/primer/what.md b/docs/primer/what.md index 1c95b652a..63c200041 100644 --- a/docs/primer/what.md +++ b/docs/primer/what.md @@ -21,7 +21,7 @@ This page will: ``` -The Open Contracting Data Standard (OCDS) is a free, non-proprietary open data standard for public contracting, implemented by over 30 governments around the world. It describes how to publish data and documents about contracting processes for goods, works and services. +The Open Contracting Data Standard (OCDS) is a free, non-proprietary open data standard for public contracting, implemented by over 30 governments around the world. It describes how to publish data and documents about contracting processes for goods, services and works. There are three concepts behind the Open Contracting Data Standard: @@ -29,7 +29,7 @@ There are three concepts behind the Open Contracting Data Standard: * **Open Data** is data that can be freely used, modified, and shared by anyone for any purpose. This requires data to be accessible and machine-readable, and for permission to be granted for reuse. * A **Data Standard** defines the structure and meaning of data in order to resolve ambiguity and help systems and people interpret it. -The OCDS builds on all three of these concepts, and the ultimate goal of the OCDS is to **help deliver** open contracting using standardized open data. The OCDS describes how to publish data and documents for the procurement of goods, works, and services. It makes contracting data available for anyone to use, modify, and share, for any purpose. +The OCDS builds on all three of these concepts, and the ultimate goal of the OCDS is to **help deliver** open contracting using standardized open data. The OCDS describes how to publish data and documents for the procurement of goods, services and works. It makes contracting data available for anyone to use, modify, and share, for any purpose. The OCDS can be adapted to meet your needs. Whether purchasing medicines, running a municipal recycling program or building an airport, the OCDS helps you organize and publish all relevant data and documents during the process. @@ -40,7 +40,7 @@ The OCDS helps to increase transparency, enables deeper analysis of contracting To facilitate publication of contracting data to meet a variety of needs, the OCDS provides: * A common structured [data model](../schema/index), including a schema, codelists, and common rules and definitions for data fields and contracting processes; -* [Guidance](../guidance/index) and [tools](https://www.open-contracting.org/resources/open-contracting-tools-directory/) to support implementation and data use; +* [Guidance and tools](../guidance/index) to support implementation and data use; * An [extension](../guidance/map/extensions) mechanism to add additional key information to your OCDS data; and * A free global [helpdesk](../support/index.md#ocds-helpdesk). diff --git a/docs/schema/codelists.md b/docs/schema/codelists.md index fa54c14ec..c6e4a3416 100644 --- a/docs/schema/codelists.md +++ b/docs/schema/codelists.md @@ -20,7 +20,7 @@ Codes are case-sensitive, and are generally provided as English language camelCa ### Release Tag -A contracting process can result in a number of releases of information over time. These must be tagged to indicate the stage of the contracting process they relate to. +A contracting (or planning) process can result in a number of releases of information over time. A release must be tagged to indicate whether it is about a planning process or a contracting process and, if it is about the latter, to indicate the stage of the contracting process to which it relates. Additional codes may be used to label releases, based on user needs: for example, to indicate the notice or form to which a release corresponds. @@ -39,7 +39,7 @@ Added the 'planningUpdate' code. ```{versionadded} 1.1 ``` -The organizations participating in a contracting process are listed in the [parties section](reference.md#parties). A single organization can have one or more roles in the contracting process. +The organizations participating in a contracting (or planning) process are listed in the [parties section](reference.md#parties). In a given process, a single organization can have one or more roles. ```{csv-table-no-translate} :header-rows: 1 @@ -86,7 +86,7 @@ The `organizationIdentifierRegistrationAgency_iati.csv` file was removed. This l The following list describes documents and documentation recommended for publication as part of an open contracting implementation. The codelist indicates the section of an OCDS release they are most likely to be applicable within. -The code descriptions are necessarily broad, to cover their usage in a range of contracting processes, including for goods, works and services, and in other contexts, such as public private partnerships, infrastructure or concession contracts. +The code descriptions are necessarily broad, to cover their usage in a range of contracting (or planning) processes, including for goods, services and works, and in other contexts, such as public private partnerships, infrastructure or concession contracts. Publishers must map their existing document codes to this list, where possible. If using this list within a user interface, publishers can re-write the codelist titles and descriptions appropriately for the context they are being used in. @@ -154,7 +154,7 @@ The related process scheme describes the kind of identifier used to cross-refere ```{versionadded} 1.1 ``` -The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process. The milestone type codelist is used to indicate the nature of each milestone. +The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process. The milestone type codelist is used to indicate the nature of each milestone. ```{csv-table-no-translate} :header-rows: 1 @@ -167,7 +167,7 @@ The milestone block can be used to represent a wide variety of events in the lif ```{versionadded} 1.1 ``` -The extended procurement category codelist is used to provide additional detail about the focus of a contracting process. +The extended procurement category codelist is used to provide additional detail about the focus of a contracting (or planning) process. ```{csv-table-no-translate} :header-rows: 1 @@ -273,7 +273,7 @@ Added the 'direct' code. ```{versionadded} 1.1 ``` -The procurement category codelist is used to indicate the **primary** focus of a contracting process. Where a contracting process covers more than one of the options below, publishers should use the `additionalProcurementCategories` field with an array of entries from the open [extendedProcurementCategory](#extended-procurement-category) codelist. +The procurement category codelist is used to indicate the **primary** focus of a contracting (or planning) process. Where a contracting (or planning) process covers more than one of the options below, publishers should use the `additionalProcurementCategories` field with an array of entries from the open [extendedProcurementCategory](#extended-procurement-category) codelist. ```{csv-table-no-translate} :header-rows: 1 @@ -333,3 +333,27 @@ The currency for each amount must be specified using the uppercase 3-letter curr :widths: auto :file: ../../build/current_lang/codelists/currency.csv ``` + +### Party Scale + +```{versionadded} 1.2 +``` + +The party scale codelist is used to indicate the size or scale of an organization, in particular commercial enterprises or economic operators. + +The codes in the codelist do not have precise definitions. Instead, they defer to local laws and regulations, for example: + +* [OECD: Small and Medium-Sized Enterprises (SMEs) definition](https://stats.oecd.org/glossary/detail.asp?ID=3123) +* [European Commission: What is an SME?](https://ec.europa.eu/growth/smes/sme-definition_en) + +For small and medium-sized enterprises, if you can distinguish between the two sizes, use the 'small' and 'medium' codes. Otherwise, use the 'sme' code. + +For self-employed individuals and sole traders, if you can distinguish them from micro enterprises, use the 'selfEmployed' code. Otherwise, use the 'micro' code. + +For enterprises without employees, use the 'micro' code. + +```{csv-table-no-translate} +:header-rows: 1 +:widths: auto +:file: ../../build/current_lang/codelists/partyScale.csv +``` diff --git a/docs/schema/identifiers.md b/docs/schema/identifiers.md index f8acfae53..95a593cb1 100644 --- a/docs/schema/identifiers.md +++ b/docs/schema/identifiers.md @@ -2,7 +2,7 @@ Consistent identifiers are essential to help join up open contracting data. -* The open contracting process identifier (ocid) is a globally unique identifier used to join up all the data about a single contracting or planning process; +* The open contracting process identifier (ocid) is a globally unique identifier used to join up all the data about a single contracting (or planning) process; * Organization identifiers are important to know who is involved in each contract; * Release, award and contract identifiers are important to help cross-reference information. @@ -104,15 +104,15 @@ The registered prefixes are dumb identifiers. They are not intended to carry any Earlier versions of this documentation imposed a stricter pattern on how internal identifiers ought to be combined with the ocid prefix, including a requirement for local namespaces. This requirement has been relaxed in practice and can be considered deprecated. -However, publishers are encouraged to consider whether there are any risks of clashes in local identifiers (e.g. the possibility that two parts of the publishing body might use the same identifier for different contracting processes) and to plan to mitigate this when establishing their own patterns to generate their `ocid` +However, publishers are encouraged to consider whether there are any risks of clashes in local identifiers (e.g. the possibility that two parts of the publishing body might use the same identifier for different contracting or planning processes) and to plan to mitigate this when establishing their own patterns to generate their `ocid` ## Organization identifiers -Reliably identifying the legal entities involved in a contracting process is vital for transparency and accountability, and for carrying out analysis to improve procurement and contract management. +Reliably identifying the legal entities involved in a contracting (or planning) process is vital for transparency and accountability, and for carrying out analysis to improve procurement and contract management. -Publishers should seek to collect and record the **legal identifier** from an official register of any organization involved in a contracting process (including buyers, tenderers and suppliers), and should include this in their OCDS files. +Publishers should seek to collect and record the **legal identifier** from an official register of any organization involved in a contracting (or planning) process (including buyers, tenderers and suppliers), and should include this in their OCDS files. There are two parts to expressing an **organization identifier** in open contracting data. @@ -154,17 +154,17 @@ If you want to disclose identifiers for natural persons, see the [personal ident ## Local organization IDs -Each of the organizations involved in a contracting process is declared in the [parties section](reference.md#parties). +Each of the organizations involved in a contracting (or planning) process is declared in the [parties section](reference.md#parties). Each organization has a local identifier (`id`) used to reference it from elsewhere in the data. For example, `buyer/id` references the buyer's entry in the parties section at `parties/id`. -An organization's `id` is distinct from its organization identifier and need only be unique within the scope of the contracting process in which it is involved. An organization’s `id` must be consistent across all releases with the same `ocid` value. +An organization's `id` is distinct from its organization identifier and need only be unique within the scope of the (contracting or planning) process in which it is involved. An organization’s `id` must be consistent across all releases with the same `ocid` value. See the [guidance](../guidance/map/organization_identifiers.md#organization-identifiers) for more information on organization identifiers and local IDs. ## Release ID -A release identifier must be unique within the scope of the contracting process of which it is a part. In other words, across all releases with the same `ocid` value, each release identifier refers to exactly one release; no two releases use the same release identifier. +A release identifier must be unique within the scope of the (contracting or planning) process of which it is a part. In other words, across all releases with the same `ocid` value, each release identifier refers to exactly one release; no two releases use the same release identifier. A release identifier must also be consistent within this scope. For example, if the `id` of a release is "12345" in one release package, then the `id` of the same release in another release package must also be "12345". @@ -178,7 +178,7 @@ Contracts must cross-reference a related award (using the `awardID` field), as k ## Item, Document and Milestone IDs -An item, document or milestone identifier must be unique within a given array of items, and must be used consistently across all the releases in a contracting process. +An item, document or milestone identifier must be unique within a given array of items, and must be used consistently across all the releases in a (contracting or planning) process. The same `id` value may be re-used in another array of items within the same release, and no cross-reference between these identifiers is implied. diff --git a/docs/schema/merging.md b/docs/schema/merging.md index 815da6fd8..f622c51b6 100644 --- a/docs/schema/merging.md +++ b/docs/schema/merging.md @@ -1,14 +1,14 @@ # Merging -An OCDS [record](../schema/records_reference) aggregates all the releases available for a contracting process at a given time, and can include: +An OCDS [record](../schema/records_reference) aggregates all the releases available for a contracting (or planning) process at a given time, and can include: -* a compiled release, which expresses the current state of the contracting process, by showing only the most recent field values -* a versioned release, which expresses all historical states of the contracting process, by showing all the field values over time +* a compiled release, which expresses the current state of the contracting (or planning) process, by showing only the most recent field values +* a versioned release, which expresses all historical states of the contracting (or planning) process, by showing all the field values over time **Merging** is the process of combining individual releases with the same OCDS version into a compiled or versioned release, described in more detail below. At a high level: -* A compiled release is created by taking only the most recent values of fields from releases in a given contracting process. -* A versioned release is created by taking all values of fields from releases in a given contracting process, copying metadata about the release from which they are taken, and putting them in chronological order. +* A compiled release is created by taking only the most recent values of fields from releases in a given contracting (or planning) process. +* A versioned release is created by taking all values of fields from releases in a given contracting (or planning) process, copying metadata about the release from which they are taken, and putting them in chronological order. ```{seealso} Guidance: [Updates and deletions](../guidance/build/merging) diff --git a/docs/schema/records_reference.md b/docs/schema/records_reference.md index d65f435d1..d82dd30ec 100644 --- a/docs/schema/records_reference.md +++ b/docs/schema/records_reference.md @@ -42,8 +42,8 @@ The following example demonstrates the package metadata and record fields. A record **must** contain an [ocid](identifiers.md#open-contracting-process-identifier-ocid) and one or more of: -* All [releases](#releases) about the contracting process at the time of the record's publication. -* A [compiledRelease](#compiled-release) object, which represents the state of the contracting process at the time of the record's publication. +* All [releases](#releases) about the contracting (or planning) process at the time of the record's publication. +* A [compiledRelease](#compiled-release) object, which represents the state of the contracting (or planning) process at the time of the record's publication. A record **may** contain a [versionedRelease](#versioned-release) object, which aggregates, into a single object, all values of all fields from all releases up to the time of the record's publication. The versioned release is designed to make it easy to see how values change from one release to another, and will often be generated by data users, rather than by publishers. @@ -71,7 +71,7 @@ The following example demonstrates the use of linked releases. Above, the first linked release has a `url` value of `https://standard.open-contracting.org/examples/releases/ocds-213czf-000-00002-01-award1.json#ocds-213czf-000-00002-01-award1`. The first part (`https://standard.open-contracting.org/examples/releases/ocds-213czf-000-00002-01-award1.json`) is the URL of the release package, and the fragment identifier (`ocds-213czf-000-00002-01-award1`) is the `id` of the release. -Release `id` values are only required to be unique within the scope of a contracting process: that is, within the scope of an `ocid` value. As such, a consuming application needs to use that fragment identifier in combination with the `ocid` of the record in order to identify the matching release within the release package. +Release `id` values are only required to be unique within the scope of a (contracting or planning) process: that is, within the scope of an `ocid` value. As such, a consuming application needs to use that fragment identifier in combination with the `ocid` of the record in order to identify the matching release within the release package. #### Embedded releases @@ -95,7 +95,7 @@ The considerations are: ### Compiled release -The compiled release is the latest version of all the data about a contracting process at the time of the record's publication. In other words, it provides a snapshot of the contracting process at a given point in time. +The compiled release is the latest version of all the data about a contracting (or planning) process at the time of the record's publication. In other words, it provides a snapshot of the process at a given point in time. The compiled release follows the [release schema](reference), with the exception of any fields on which `"omitWhenMerged": true` is declared. diff --git a/docs/schema/reference.md b/docs/schema/reference.md index ef6928418..4b3b75684 100644 --- a/docs/schema/reference.md +++ b/docs/schema/reference.md @@ -2,7 +2,7 @@ The [Release Schema](release) provides a detailed specification of the fields and data structures to use when publishing contracting data. Supplementary schemas show how to combine releases into release packages and how to compile releases into records. -Releases are immutable – presenting information about a particular event in the lifetime of a contracting process. Publishers must not edit a release after publication; a new release can be created by changing the release's `id` and `date`. +Releases are immutable – presenting information about a particular event in the lifetime of a contracting (or planning) process. Publishers must not edit a release after publication; a new release can be created by changing the release's `id` and `date`. **Note: If any conflicts are found between this text, and the text within the schema, the schema takes precedence.** @@ -14,9 +14,9 @@ This page presents the release schema in tables, with additional information in ## Release handling -The full OCDS data model is based on the idea of publishing a new release every time information about a contracting process changes. This way, users can gain a full view of change over time, and third-parties can understand what needs to be updated in any system that is tracking the progress of a contracting process. +The full OCDS data model is based on the idea of publishing a new release every time information about a contracting (or planning) process changes. This way, users can gain a full view of change over time, and third-parties can understand what needs to be updated in any system that is tracking the progress of a contracting (or planning) process. -Publishers will need to choose how to generate new releases, and whether to repeat information in each release, or just to provide changes. This choice ought to be based on an understanding of the [merging process](merging) that is used to generate a snapshot record of a full contracting process. +Publishers will need to choose how to generate new releases, and whether to repeat information in each release, or just to provide changes. This choice ought to be based on an understanding of the [merging process](merging) that is used to generate a snapshot record of a full contracting (or planning) process. In this model, publishers need to to pay careful attention to null values and missing fields. @@ -76,7 +76,7 @@ The majority of OCDS data is held within a release structure. One or more releas * [contract](#contract) * [implementation](#implementation) -Releases are given a [tag](codelists.md#release-tag) to indicate the specific stage of a contracting process they represent. However, there are no formal restrictions on when information about a stage of the contracting process can be provided. +A release has a [tag](codelists.md#release-tag) to indicate whether it is about a planning process or a contracting process and, if it is about the latter, to indicate the stage of the contracting process to which it relates. However, there are no formal restrictions on when information about a stage of the process can be provided. For example, a publisher announcing the signing of a contract with a 'contract' tag might also include information in the award and tender blocks in order to provide a comprehensive picture of the contracting process to date which led to that contract being signed. @@ -84,6 +84,16 @@ For example, a publisher announcing the signing of a contract with a 'contract' Releases must be published within a [release package](release_package). The release package provides metadata about the release(s) that it contains. +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: +:expand: publisher +:title: package +``` +```` + ```{jsonschema} ../../build/current_lang/release-package-schema.json :collapse: releases,publisher ``` @@ -94,7 +104,16 @@ See the [publication policy](../guidance/publish.md#finalize-your-publication-po ### Release -All new information about a contracting process is described within a release. +All new information about a contracting (or planning) process is described within a release. + +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0 +:title: release +``` +```` ```{jsonschema} ../../build/current_lang/release-schema.json :collapse: planning,tender,awards,contracts,parties,buyer,relatedProcesses @@ -118,6 +137,16 @@ In OCDS 1.0, the details (address, contact point, etc.) of the organizations inv Note that the organization references allow, but deprecate, the fields for organization details. ``` +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/parties +:expand: roles +:title: parties +``` +```` + The following details can be provided for each organization. ```{jsonschema} ../../build/current_lang/release-schema.json @@ -141,7 +170,16 @@ Each organization has a `details` object. Through extensions, this can be used t ### Planning -The planning section can be used to describe the background to a contracting process. This can include details of the budget from which funds are drawn, or related projects for this contracting process. Background documents such as a needs assessment, feasibility study and project plan can also be included in this section. +The planning section is used in a planning process. This includes information about, for example, needs identification, budget planning and market research. Background documents such as feasibility studies and project plans can also be included in this section. + +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/planning +:title: planning +``` +```` ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/Planning @@ -158,7 +196,16 @@ The planning section can be used to describe the background to a contracting pro #### Budget -Apart from documents, the majority of planning information is held within the budget block. This is designed to allow both machine-readable linkable data about budgets, cross-referencing to data held in other standards such as the [Fiscal Data Package](https://specs.frictionlessdata.io/fiscal-data-package/) or [International Aid Transparency Initiative Standard](https://iatistandard.org/en/), and human readable description of the related budgets and projects, supporting users to understand the relationship of the contracting process to existing projects and budgets even where linked data is not available. +Apart from documents, the majority of planning information is held within the budget block. This is designed to allow both machine-readable linkable data about budgets, cross-referencing to data held in other standards such as the [Fiscal Data Package](https://specs.frictionlessdata.io/fiscal-data-package/) or [International Aid Transparency Initiative Standard](https://iatistandard.org/en/), and human readable description of the related budgets and projects, supporting users to understand the relationship of the contracting (or planning) process to existing projects and budgets even where linked data is not available. + +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/planning/budget +:title: budget +``` +```` ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/Budget @@ -171,9 +218,18 @@ Apart from documents, the majority of planning information is held within the bu ### Tender -The tender section includes details of the announcement that an organization intends to source some particular goods, works or services, and to establish one or more contract(s) for these. +The tender section includes details of the announcement that an organization intends to source some particular goods, services or works and to establish one or more contract(s) for these. -It can contain details of a forthcoming process to receive and evaluate proposals to supply these goods and services, and can also be used to record details of a completed tender process, including details of bids received. +It can contain details of a forthcoming process to receive and evaluate proposals to supply these goods, services or works and can also be used to record details of a completed tender stage, including details of bids received. + +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/tender +:title: tender +``` +```` ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/Tender @@ -196,6 +252,15 @@ The [Bid statistics and details](https://extensions.open-contracting.org/en/exte The award section is used to announce any awards issued for this tender. There can be multiple awards made. Releases can contain all, or a subset, of these awards. A related award block is required for every contract block, as the award contains information on the suppliers. In particular cases there can be multiple suppliers for a single award: for example, in the case of [consortia](../guidance/map/buyers_suppliers.md#consortia-suppliers) and in [framework agreements](../guidance/map/framework_agreements). +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/awards/0 +:title: award +``` +```` + ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/Award :collapse: items,value,suppliers,contractPeriod,documents,amendment,amendments @@ -213,6 +278,15 @@ The award section is used to announce any awards issued for this tender. There c The contract section is used to provide details of contracts that have been entered into. Every contract must have a related award, linked via the `awardID` field. This is because supplier information is contained within the 'award'. +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/contracts/0 +:title: contract +``` +```` + ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/Contract :collapse: period,value,items,documents,implementation,relatedProcesses,milestones,amendment,amendments @@ -230,6 +304,15 @@ The contract section is used to provide details of contracts that have been ente Implementation information can be updated over the course of a contract. It belongs nested within the contract it relates to. Implementation blocks include the following elements: +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/contracts/0/implementation +:title: implementation +``` +```` + ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/Implementation :collapse: transactions,milestones,documents @@ -247,6 +330,15 @@ Information on subcontracts is not currently included in the core OCDS schema, b #### Transaction +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/contracts/0/implementation/transactions/0 +:title: transaction +``` +```` + ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/Transaction :collapse: providerOrganization,receiverOrganization,amount,payer,payee,value @@ -282,6 +374,15 @@ A release may amend values from a previous release. Whilst the release & record The amendment array in a tender, award or contract block provides the ability to detail the amendments that have taken place with dates, rationale and free-text descriptions of the change, as well as to point to the releases that contain information from before and after the amendment. +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/tender/amendments/0 +:title: amendments +``` +```` + ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/Amendment :collapse: changes @@ -317,6 +418,15 @@ An organization reference consists of two main components: * An `id` used to cross-reference the entry in the [parties](#parties) section that contains full information on this organization; * A `name` field that repeats the name given in the [parties](#parties) section, provided for the convenience of users viewing the data, and to support detection of mistakes in cross-referencing. +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/buyer +:title: organizationReference +``` +```` + ```{workedexamplelist} The following worked examples are available for organization reference :tag: organization_reference ``` @@ -327,22 +437,52 @@ See the [parties](#parties) section. #### Identifier -The identifier block provides a way to [identify the legal entities](identifiers.md#organization-identifiers) involved in a contracting process. +The identifier block provides a way to [identify the legal entities](identifiers.md#organization-identifiers) involved in a contracting (or planning) process. If a contracting process represents a contract arranged by the department or branch of a larger organization, the legal entity (usually the registered organization) should be described in the [identifier](#identifier) section, with details of the branch or department given in the name, [address](#address) and [contact point](#contactpoint) as relevant. +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/parties/0 +:expand: identifier +:title: party +``` +```` + ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/Identifier ``` #### Address +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/parties/0 +:expand: address +:title: party +``` +```` + ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/Address ``` #### ContactPoint +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/parties/0 +:expand: contactPoint +:title: party +``` +```` + ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/ContactPoint ``` @@ -351,7 +491,7 @@ If a contracting process represents a contract arranged by the department or bra Documents can be attached at a number of points within the standard: to planning, tenders, awards, contracts and implementation. Each document block can consist of multiple documents, classified using the [documentType](codelists.md#document-type) codelist. -Documents related to contracting processes should be public by default. For more information, see the Open Contracting Partnership's report [Mythbusting Confidentiality in Public Contracting](https://www.open-contracting.org/resources/mythbusting-confidentiality-public-contracting/) and the Center for Global Development's [Principles on Commercial Transparency in Public Contracts](https://www.cgdev.org/publication/principles-commercial-transparency-public-contracts). +Documents related to contracting (or planning) processes should be public by default. For more information, see the Open Contracting Partnership's report [Mythbusting Confidentiality in Public Contracting](https://www.open-contracting.org/resources/mythbusting-confidentiality-public-contracting/) and the Center for Global Development's [Principles on Commercial Transparency in Public Contracts](https://www.cgdev.org/publication/principles-commercial-transparency-public-contracts). Documents should be published at their own stable URLs, accessible for free and without the need to search or login, and available at the time of publication of the OCDS release that refers to them. @@ -359,6 +499,15 @@ OCDS allows summarizing information in the document's `description` field. Provi If a document contains multiple languages, use the `languages` field to list the languages used in the document. If there are multiple versions of a document, each in a different language, add a separate `Document` object for each version of the document. +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/tender/documents/0 +:title: document +``` +```` + ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/Document ``` @@ -373,6 +522,15 @@ A period has a start date, end date, and/or duration. Start and end dates are re Periods can also include a `maxExtentDate` which indicates the latest possible end date of this period, or the latest date up until which the period could be extended without an amendment. +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/awards/0/contractPeriod +:title: period +``` +```` + ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/Period ``` @@ -405,6 +563,15 @@ In the event that a date field is not bound to a specific time at all, publisher The items block is used to list the line-items associated with a tender, award or contract. +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/tender/items/0 +:title: items +``` +```` + ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/Item :collapse: classification,additionalClassifications,unit @@ -414,11 +581,6 @@ The items block is used to list the line-items associated with a tender, award o :list: item ``` -#### Classification - -```{jsonschema} ../../build/current_lang/release-schema.json -:pointer: /definitions/Classification -``` #### Unit The `unit` block allows detailed specification of the parameters and price of units that make up a line-item. @@ -427,11 +589,36 @@ If the [Quantities, Units, Dimensions and Data Types Ontologies](https://www.qud Other unit classification schemes can be used, including those in the [unitClassificationScheme codelist](codelists.md#unit-classification-scheme). +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/tender/items/0 +:expand: unit +:title: unit +``` +```` + ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/Item/properties/unit :collapse: value ``` +### Classification + +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/tender/items/0/classification +:title: classification +``` +```` + +```{jsonschema} ../../build/current_lang/release-schema.json +:pointer: /definitions/Classification +``` + ### Milestone Milestone information can be included in the [planning](#planning), [tender](#tender), [contract](#contract) and [contract implementation](#implementation) blocks. @@ -444,6 +631,15 @@ The `dateModified` field should be changed whenever the progress towards a miles For delivery milestones, if there is a time frame for delivery, use `.dueAfterDate` for the start date and `.dueDate` for the end date. +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/planning/milestones/0 +:title: milestones +``` +```` + ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/Milestone :collapse: documents @@ -461,6 +657,15 @@ For delivery milestones, if there is a time frame for delivery, use `.dueAfterDa Financial values should be published with a currency attached. +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/awards/0/value +:title: value +``` +```` + ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/Value ``` @@ -469,14 +674,23 @@ Support for exchange rates, and tax information, can be provided using extension ### RelatedProcess -In OCDS each contracting process can have only one planning and tender stage. There are a number of cases where it is important to know about related planning and tendering processes, including: +In OCDS each contracting process can have only one tender stage. There are a number of cases where it is important to know about related contracting processes, including: * When one planning process results in many tenders; -* What a contract is awarded following two distinct, but related, tender processes, such as in national frameworks with locally run mini-competitions; +* When a contract is awarded following two distinct, but related, tender processes, such as in national frameworks with locally run mini-competitions; * When a contract results in the award of sub-contracts - and those sub-contracts are also tracked using OCDS; * When a contract is coming up for renewal or replacement, and there is a contracting process to award the renewal/replacement contract; -In all these cases, the `relatedProcess` block should be used to cross-reference between the relevant open contracting processes using their `ocid`. +In all these cases, the `relatedProcess` block should be used to cross-reference between the relevant contracting processes using their `ocid`. + +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/relatedProcesses +:title: relatedProcesses +``` +```` ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/RelatedProcess @@ -492,7 +706,7 @@ As well as providing this machine-readable link between processes, publishers ma * When recording a `release/relatedProcess` pointing to the ocid of the planning process that resulted in a tender, a `tender/documents` entry with a `documentType` of 'procurementPlan' and a link to web pages about the procurement plan could be provided; * When recording a `contract/relatedProcess` pointing to the ocid of a sub-contracting process, a `contract/documents` entry with a `documentType` of 'subContract' and a title that describes it as the subcontracting process, could be provided; -* When recording a `contract/relatedProcess` pointing to the ocid of a tender process to renew a given contract, a `contract/documents` entry with a `documentType` of 'tenderNotice' and a title that describes it as the successor process, could be provided; +* When recording a `contract/relatedProcess` pointing to the ocid of a contracting process to renew a given contract, a `contract/documents` entry with a `documentType` of 'tenderNotice' and a title that describes it as the successor process, could be provided; ### Location @@ -502,6 +716,15 @@ The [Location](https://extensions.open-contracting.org/en/extensions/location/v1 The publisher block is used in release and record packages to identify the source of a dataset. +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /publisher +:title: publisher +``` +```` + ```{jsonschema} ../../build/current_lang/release-package-schema.json :include: publisher ``` diff --git a/docs/support/index.md b/docs/support/index.md index 9638abb4d..45c2a4ce4 100644 --- a/docs/support/index.md +++ b/docs/support/index.md @@ -22,7 +22,3 @@ Please e-mail [data@open-contracting.org](mailto:data@open-contracting.org) with The Open Contracting community is a great source of input and support. You can ask questions, discuss ideas, and share news on your projects on the [standard-discuss@open-contracting.org](https://groups.google.com/a/open-contracting.org/g/standard-discuss) mailing list. You can also contribute directly to public discussions about implementing the standard and give feedback on its development, via the issue tracker of its [GitHub repository](https://github.com/open-contracting/standard). - -## OCDS Tools - -There are a growing number of tools available to support the publication and use of OCDS data. Please refer to the [Open Contracting Tools Directory](https://www.open-contracting.org/resources/open-contracting-tools-directory/). diff --git a/manage.py b/manage.py index 1d660c5e6..f29cea541 100755 --- a/manage.py +++ b/manage.py @@ -560,8 +560,7 @@ def missing_changelog(ignore_base): # Ignore PRs to unmerged branches. url = 'https://api.github.com/repos/open-contracting/standard/pulls?per_page=100&state=open' - response = requests.get(url) - response.raise_for_status() + response = get(url) ignore.extend(pr['head']['ref'] for pr in response.json()) with open(basedir / 'docs' / 'history' / 'changelog.md') as f: @@ -581,8 +580,7 @@ def missing_changelog(ignore_base): url = 'https://api.github.com/repos/open-contracting/standard/pulls?per_page=100&state=closed' while url: - response = requests.get(url) - response.raise_for_status() + response = get(url) url = response.links.get('next', {}).get('url') for pr in response.json(): @@ -597,16 +595,16 @@ def missing_changelog(ignore_base): # Include merged PRs, not in the "Minor:" or "1.0-RC" milestones, not syncing branches, and not ignored. if not merged_at or milestone_number in (26, 27, 28, 29, 2) or pattern.search(title) or base_ref in ignore: if number in prs: - print(f'WARNING: #{number} should not be in changelog', file=sys.stderr) + click.echo(f'WARNING: #{number} should not be in changelog', file=sys.stderr) continue if number not in prs: count += 1 - print(f"[#{number}](https://github.com/open-contracting/standard/pull/{number}) ({milestone_title}) " - f"{merged_at[:10]}: {title} ({base_ref}:{pr['head']['ref']})") + click.echo(f"[#{number}](https://github.com/open-contracting/standard/pull/{number}) " + f"({milestone_title}) {merged_at[:10]}: {title} ({base_ref}:{pr['head']['ref']})") if count: - print(count) + click.echo(count) @cli.command() @@ -791,7 +789,7 @@ def update_media_type(): template = row['Template'] # All messages are expected to be about deprecation and obsoletion. if message: - logging.warning(f'{message}: {code}') + logging.warning('%s: %s', message, code) # "x-emf" has "image/emf" in its "Template" value (but it is deprecated). elif template and template != code: raise Exception(f"expected {code}, got {template}") @@ -812,6 +810,51 @@ def update(ctx): ctx.invoke(update_media_type) +@cli.command() +@click.pass_context +def check_iso_6523(ctx): + def text(node, xpath): + return re.sub(r'\s+', ' ', node.xpath(xpath)[0]) + + """ + Checks PEPPOL BIS Billing 3.0's ISO 6523 ICD codelist for new codes. + """ + # We use this, because we don't know a better source for the ISO 6523 codelist. + + # As of 2022-04-19, the range is 0002-0213, skipping 0092 0103 0181 0182. + minimum = 2 + maximum = 213 + skipped = {92, 103, 181, 182} + + response = get('https://docs.peppol.eu/poacc/billing/3.0/codelist/ICD/') + + divs = lxml.html.fromstring(response.content).xpath('//dd/div[@id]') + if not divs: + raise click.ClickException('The HTML markup of the data source has changed. Please update the script.') + + rows = [] + for div in divs: + identifier = div.attrib['id'] + number = int(identifier) + if number < minimum or number > maximum or number in skipped: + name = text(div, './strong/text()') + notes = text(div, './p/text()') + issuer = '' + + # "Issuing agency: " appears at the end of the paragraph. The rest of the paragraph contains either a + # purpose ("Intended Purpose/App. Area") or notes ("Notes on Use of Code"), with or without the label. + notes = re.sub(r'(Notes on Use of Code|Intended Purpose/App. Area)[: ]+', '', notes) + if 'Issuing agency: ' in notes: + notes, issuer = notes.split('Issuing agency: ') + + rows.append([identifier, name, issuer, notes]) + + if rows: + csv.writer(sys.stdout, delimiter='\t').writerows(rows) + else: + click.echo('No new codes found.') + + def add_translation_note(path, language, domain): """ Adds a translation note to a file. @@ -824,7 +867,7 @@ def add_translation_note(path, language, domain): translator = gettext.translation('theme', localedir, languages=[language]) _ = translator.gettext - pattern = '{}/{{}}/{}/'.format(base_url, domain) + pattern = f'{base_url}/{{}}/{domain}/' response = requests.get(pattern.format(language)) # If it's a new page, add the note to the current version of the page. @@ -838,7 +881,7 @@ def add_translation_note(path, language, domain): xpath = '//div[@itemprop="articleBody"]' replacement = lxml.html.fromstring(response.content).xpath(xpath)[0] - replacement.make_links_absolute('{}/{}'.format(base_url, language)) + replacement.make_links_absolute(f'{base_url}/{language}') # Remove any existing translation notes. parent = replacement.xpath('//h1')[0].getparent() diff --git a/schema/codelists/classificationScheme.csv b/schema/codelists/classificationScheme.csv index f386c5d7e..ba4a117bd 100644 --- a/schema/codelists/classificationScheme.csv +++ b/schema/codelists/classificationScheme.csv @@ -1,12 +1,12 @@ Code,Title,Description,Source,Category -CPV,EC Common Procurement Vocabulary,"The Common Procurement Vocabulary is a standard adopted by the Commission of the European Community, and consisting of a main vocabulary for defining the subject of a contract, and a supplementary vocabulary for adding further qualitative information. The main vocabulary, identified in OCDS by the code CPV, is based on a tree structure comprising codes of up to 9 digits (an 8 digit code plus a check digit) associated with a wording that describes the type of goods, works or services forming the subject of the contract. Codes may be provided with or without the check digit, and consuming applications ought to be aware of this when processing data with CPV codes.",https://simap.ted.europa.eu/web/simap/cpv,item +CPV,EC Common Procurement Vocabulary,"The Common Procurement Vocabulary is a standard adopted by the Commission of the European Community, and consisting of a main vocabulary for defining the subject of a contract, and a supplementary vocabulary for adding further qualitative information. The main vocabulary, identified in OCDS by the code CPV, is based on a tree structure comprising codes of up to 9 digits (an 8 digit code plus a check digit) associated with a wording that describes the type of goods, services, or works forming the subject of the contract. Codes may be provided with or without the check digit, and consuming applications ought to be aware of this when processing data with CPV codes.",https://simap.ted.europa.eu/web/simap/cpv,item CPVS,EC Common Procurement Vocabulary - Supplementary Codelists,"The Common Procurement Vocabulary is a standard adopted by the Commission of the European Community, and consisting of a main vocabulary for defining the subject of a contract, and a supplementary vocabulary for adding further qualitative information. The supplementary vocabulary, identified in OCDS by the code CPVS, is made up of an alphanumeric code with a corresponding wording allowing further details to be added regarding the specific nature or destination of the goods to be purchased.",https://simap.ted.europa.eu/web/simap/cpv,item GSIN,Goods and Services Identification Number,The Canadian federal government uses Goods and Services Identification Number (GSIN) codes to identify generic product descriptions for its procurement activities. The full list is published and maintained at buyandsell.gc.ca,https://buyandsell.gc.ca/procurement-data/goods-and-services-identification-number,item UNSPSC,United Nations Standard Products and Services Code,The United Nations Standard Products and Services Code (UNSPSC) is a hierarchical convention that is used to classify all products and services.,https://www.unspsc.org/codeset-downloads,item -CPC,Central Product Classification,"The Central Product Classification (CPC) is a product classification for goods and services promulgated by the United Nations Statistical Commission. It is intended to be an international standard for organizing and analyzing data on industrial production, national accounts, trade and prices.",https://unstats.un.org/unsd/classifications/Econ/cpc,item +CPC,Central Product Classification,"The Central Product Classification (CPC) is a product classification for goods, services and works promulgated by the United Nations Statistical Commission. It is intended to be an international standard for organizing and analyzing data on industrial production, national accounts, trade and prices.",https://unstats.un.org/unsd/classifications/Econ/cpc,item OKDP,Russian National Classification of Products by Economic Activity (1994),"Part of the unified system of classification and coding of technical, economic and social information of the Russian Federation, in use for Russian Procurement information until January 1, 2016. Superseded by OKPD.",http://base.consultant.ru/cons/cgi/online.cgi?req=doc;base=LAW;n=143095;fld=134;from=14052-7;rnd=0.33374630799517035,item OKPD,Russian National Classification of Products by Economic Activity (2014),"Part of the national standardization system of the Russian Federation and based on harmonization with the Statistical Classification of Products by Activity in the European Economic Community, 2008. In use from January 1 2014.",http://base.consultant.ru/cons/cgi/online.cgi?req=doc;base=LAW;n=163703;fld=134;from=170864-15;rnd=0.39699640963226557,item -CUCOP,Mexican Single Classifier of Public Procurement,"The Single Classifier of Public Procurement (Clasificador Único de las Contrataciones Públicas) is a national scheme in Mexico for the classification of goods, works, services and leases.",https://sites.google.com/site/cnetcucop/,item +CUCOP,Mexican Single Classifier of Public Procurement,"The Single Classifier of Public Procurement (Clasificador Único de las Contrataciones Públicas) is a national scheme in Mexico for the classification of goods, services, works, and leases.",https://sites.google.com/site/cnetcucop/,item NAICS,North American Industry Classification System,"The North American Industry Classification System (NAICS) is an industry classification system developed by the statistical agencies of Canada, Mexico and the United States. Created against the background of the North American Free Trade Agreement, it is designed to provide common definitions of the industrial structure of the three countries and a common statistical framework to facilitate the analysis of the three economies. NAICS is based on supply-side or production-oriented principles, to ensure that industrial data, classified to NAICS, are suitable for the analysis of production-related issues such as industrial performance.",https://www.census.gov/eos/www/naics/downloadables/downloadables.html,item PSC,Product and Service Codes,"The Product and Service Codes (PSC) Manual provides codes to describe products, services, and research and development (R&D) purchased by the United States federal government. These codes indicate 'WHAT' was bought for each contract action reported in the Federal Procurement Data System (FPDS).",https://www.acquisition.gov/Psc-manual,item HS,Harmonized Commodity Description and Coding System,"The Harmonized System is an international nomenclature for the classification of products. It allows participating countries to classify traded goods on a common basis for customs purposes. At the international level, the Harmonized System (HS) for classifying goods is a six-digit code system.",https://unstats.un.org/unsd/tradekb/Knowledgebase/50018/Harmonized-Commodity-Description-and-Coding-Systems-HS,item diff --git a/schema/codelists/documentType.csv b/schema/codelists/documentType.csv index 92521111f..48264fa4d 100644 --- a/schema/codelists/documentType.csv +++ b/schema/codelists/documentType.csv @@ -1,38 +1,42 @@ Section,Code,Title,Description,Deprecated,Deprecation note planning,plannedProcurementNotice,Notice of planned procurement,"Notice published by the buyer or procuring entity regarding their plans for future procurement. This notice is called a notice of planned procurement (for example, in the WTO's General Procurement Agreement), a future opportunity notice, a planning notice, a prior information notice or a periodic indicative notice (for example, in the EU). In some cases, the buyer or procuring entity can use the notice of planned procurement as a tender notice.",, -planning,marketEngagementNotice,Market engagement notice,"A notice published by the buyer or procuring entity to consult the market with the aim to prepare the contracting process. This type of activity is also called market consultation, early engagement, pre-procurement dialogue and information gathering.",, +planning,marketEngagementNotice,Market engagement notice,"A notice published by the buyer or procuring entity to consult the market with the aim to prepare a future contracting process. This type of activity is also called market consultation, early engagement, pre-procurement dialogue and information gathering.",, tender,tenderNotice,Tender notice,"Notice published by the buyer or procuring entity inviting potential suppliers to submit a bid. This notice is called a tender notice, a notice of intended procurement (for example, in the WTO's General Procurement Agreement), an opportunity notice, a competition notice or a contract notice (for example, in the EU).",, award,awardNotice,Award notice,"Notice published by the buyer or procuring entity giving details of the contract award. This notice is published after a contract has been awarded but before it has been signed: for example, for the purposes of the standstill period. Once the contract has been signed, a contract signature notice is typically published.",, contract,contractNotice,Contract signature notice,"Notice published by the buyer or procuring entity giving details of the contract being concluded (for example, signed). This notice is called a contract signature notice, a result notice, a contract award notice (for example, in the EU), or a contract notice (for example, in Australia).",, implementation,completionCertificate,Completion certificate,A document issued by a relevant authority certifying that the work specified in the contract is complete to a certain level of quality. Completion certificates might only be relevant for particular kinds of contracting processes.,, -planning,procurementPlan,Procurement plan,Documentation that sets out the basis for this particular contracting process.,, +planning,procurementPlan,Procurement plan,Documentation that sets out the basis for a future contracting process.,, tender,biddingDocuments,Bidding documents,"Documentation for potential suppliers, describing the goals of the contract (e.g. goods and services to be procured), and the bidding process.",, tender,technicalSpecifications,Technical specifications,"A document that describes the characteristics of goods or services to be procured, including quality, performance, safety and dimensions, or the processes and methods for their production or provision. Or, a document that addresses terminology, symbols, packaging, marking or labelling requirements, as they apply to a good or service.",, -tender,evaluationCriteria,Evaluation criteria,Documentation on how bids will be evaluated.,, -award,evaluationReports,Evaluation report,"Documentation on the evaluation of the bids and the application of the evaluation criteria, including the justification for the award.",, +tender,exclusionGrounds,Exclusion grounds,"Documentation that describes the criteria regarding the situation of a tenderer that can lead to its exclusion from the contracting process. For example: criminal convictions, bankruptcy, presence on a blacklist or failure to pay taxes.",, +tender,selectionCriteria,Selection criteria,Documentation that describes the minimum requirements for potential suppliers to participate in the contracting process.,, +tender,awardCriteria,Award criteria,Documentation that describes the award criteria used to select the winning bid.,, +tender,evaluationCriteria,Evaluation criteria,"Documentation on how bids will be evaluated. This includes exclusion grounds, selection criteria and award criteria.",, +tender,otherParticipationRequirements,Other participation requirements,Documentation of any other requirements that limit the participation of potential suppliers.,, +tender,procurementMethodRationale,Procurement method rationale,Documentation to justify the use of the procurement method. For example: if the method is limited or direct.,, +tender,noStandstillPeriodJustification,No standstill period justification,Documentation to justify not applying a standstill period.,, +award,evaluationReports,Evaluation report,"Documentation on the evaluation of the bids. This includes the evaluation of exclusion grounds, selection criteria and award criteria.",, "tender, award",contractDraft,Contract draft,A draft or pro-forma copy of the contract.,, contract,contractSigned,Concluded contract,"A copy of the concluded contract. Consider providing both machine-readable (e.g. original PDF, Word or Open Document format files), and a separate document entry for scanned-signed pages where this is needed.",, "tender, award, contract",contractArrangements,Arrangements for ending contract,Documentation of the arrangements for ending the contract(s).,, -"tender, award, contract",contractSchedule,Contract schedules,"Any document which contains additional terms, obligations or information related to the contract, such as a schedule, appendix, annex, attachment or addendum.",1.2,Deprecated in favor of contractAnnexe. implementation,physicalProgressReport,Physical progress reports,"Documentation on the status of implementation, usually against key milestones.",, implementation,financialProgressReport,Financial progress reports,"Documentation providing dates and amounts of stage payments made (against total amount) and the source of those payments, including cost overruns, if any. Structured versions of this information can be provided through contract implementation transactions.",, implementation,finalAudit,Final audit,Documentation of a final audit carried out at the end of contract implementation.,, tender,hearingNotice,Public hearing notice,Documentation of any public hearings that took place as part of the planning for this contracting process.,, -planning,marketStudies,Market studies,Documentation of any market studies that took place as part of the planning for this contracting process.,, -tender,eligibilityCriteria,Eligibility criteria,Detailed documents about the eligibility of bidders.,, +planning,marketStudies,Market studies,Documentation of any market studies that took place as part of the planning for a future contracting process.,, tender,clarifications,Clarifications to bidders questions,Documentation that provides replies to issues raised in pre-bid conferences or an enquiry processes.,, tender,shortlistedFirms,Shortlisted firms,Documentation providing information on shortlisted firms. Structured versions of this information can be provided using the bids extension.,, -"planning, implementation",environmentalImpact,Environmental impact,"Documentation of assessments of the environmental impacts (e.g. impacts on flora, fauna & woodlands, areas of natural beauty, carbon emissions etc.) and mitigation measures (e.g. pollution control, low carbon solutions, sustainable timber etc.) for the contracting process.",, +"planning, implementation",environmentalImpact,Environmental impact,"Documentation of assessments of the environmental impacts (e.g. impacts on flora, fauna & woodlands, areas of natural beauty, carbon emissions etc.) and mitigation measures (e.g. pollution control, low carbon solutions, sustainable timber etc.) of the works, goods or services.",, planning,assetAndLiabilityAssessment,Assessment of government's assets and liabilities,Documentation covering assessments of the government's assets and liabilities related to this contracting process.,, -planning,riskProvisions,Provisions for management of risks and liabilities,Documentation covering how risks will be managed as part of this contracting process.,, +planning,riskProvisions,Provisions for management of risks and liabilities,Documentation covering how risks will be managed as part of a future contracting process.,, award,winningBid,Winning bid,"Documentation of the winning bid, including, wherever applicable, a full copy of the proposal received.",, "tender, award",complaints,Complaints and decisions,"Documentation of any complaints received, or decisions in response to complaints.",, contract,contractAnnexe,Annexes to the contract,"Any document which contains additional terms, obligations or information related to the contract, such as an annex, appendix, schedule, attachment or addendum.",, "tender, contract",contractGuarantees,Guarantees,Documentation of guarantees relating to a contracting process or contract.,, contract,subContract,Subcontracts,"Documentation detailing subcontracts and/or providing a copy of subcontracts themselves. Where OCDS data on the subcontracts exists, this can be declared using the relatedProcess block.",, -planning,needsAssessment,Needs assessment,Documentation of the needs assessments carried out for this contracting process addressing demand for the project or investment from the affected communities or users.,, -planning,feasibilityStudy,Feasibility study,"Documentation of feasibility studies carried out for this contracting process, providing information on net benefits or costs of the proposed goods, works or services.",, -planning,projectPlan,Project plan,"Documentation of project planning for this contracting process, and, where applicable, a copy of the project plan document.",, +planning,needsAssessment,Needs assessment,Documentation of the needs assessments carried out for a future contracting process addressing demand for the project or investment from the affected communities or users.,, +planning,feasibilityStudy,Feasibility study,"Documentation of feasibility studies carried out for a future contracting process, providing information on net benefits or costs of the proposed goods, works or services.",, +planning,projectPlan,Project plan,"Documentation of project planning for a future contracting process, and, where applicable, a copy of the project plan document.",, tender,billOfQuantity,Bill of quantity,"Documentation that provides itemized information on materials, parts and labour, and the terms and conditions for their provision, providing information that would enable bidders to price work effectively. Structured versions of item and quantity information at each of tender, award and contract stage can be provided using units within the items building block.",, "tender, bidder",bidders,Information on bidders,"Documentation on bidders or participants, their validation documents and any procedural exemptions for which they qualify.",, "tender, award, contract, implementation",conflictOfInterest,Conflict of interest,Documentation of conflicts of interest declared or uncovered.,, @@ -42,12 +46,9 @@ implementation,debarments,Debarments,Documentation of any debarments issued.,, contract,contractSummary,Contract summary,Documentation providing an overview of the key terms and sections of the contract. Commonly used for large and complex contracts.,, "tender, award, contract, implementation",cancellationDetails,Cancellation details,"Documentation of the arrangements, or reasons, for cancellation of a contracting process, award or specific contract.",, "tender, award",unsuccessfulDetails,Unsuccessful details,Documentation of the reasons for an unsuccessful award or contracting process.,, -tender,economicSelectionCriteria,Economic selection criteria,Documentation that describes the economic selection criteria.,, -tender,technicalSelectionCriteria,Technical selection criteria,Documentation that describes the technical selection criteria.,, contract,tariffs,Tariffs,For providing tariff and pricing schedules.,, contract,tariffMethod,Tariff method,For summarizing the method by which tariffs are set and linking to detailed documentation of the methods for setting tariffs. This might include written documentation and spreadsheets providing the models used to calculate tariffs.,, contract,tariffReview,Tariff review,For summarizing the arrangements for the review and regulation of tariffs and linking to detailed documentation that covers how tariffs are regulated. This is important to explain to users why they are paying what they are paying and the scope for changes to payment structures.,, contract,tariffIllustration,Tariff illustration,For linking to graphs and reports on the change over time in tariff prices. Use the relevant image media type when linking to PNG or JPEG or GIF graphs to allow applications to directly display this content.,, -tender,otherParticipationRequirements,Other participation requirements,Documentation of any other requirements that limit the participation of potential suppliers.,, -tender,procurementMethodRationale,Procurement method rationale,Documentation to justify the use of the procurement method. For example: if the method is limited or direct.,, -tender,noStandstillPeriodJustification,No standstill period justification,Documentation to justify not applying a standstill period.,, +tender,eligibilityCriteria,Eligibility criteria,Detailed documents about the eligibility of bidders.,1.2,"This code had unclear semantics and used ambiguous terms, and is deprecated in favor of 'exclusionGrounds'." +"tender, award, contract",contractSchedule,Contract schedules,"Any document which contains additional terms, obligations or information related to the contract, such as a schedule, appendix, annex, attachment or addendum.",1.2,Deprecated in favor of contractAnnexe. diff --git a/schema/codelists/extendedProcurementCategory.csv b/schema/codelists/extendedProcurementCategory.csv index 4dbe93d41..40fffcb65 100644 --- a/schema/codelists/extendedProcurementCategory.csv +++ b/schema/codelists/extendedProcurementCategory.csv @@ -1,5 +1,5 @@ Code,Title,Description -goods,Goods and supplies,This contracting process involves physical or electronic goods or supplies. -works,Works,"This contracting process involves construction, repair, rehabilitation, demolition, restoration or maintenance of some asset or infrastructure." -services,Services,"This contracting process involves professional services of some form, generally contracted for on the basis of measurable outputs or deliverables. When the consultingServices code is also available or in use for data from a particular dataset, the service code must only be used for non-consulting services." -consultingServices,Consulting services,This contracting process involves professional services provided on a consultancy basis. +goods,Goods and supplies,The contracting (or planning) process is for physical or electronic goods or supplies. +services,Services,"The contracting (or planning) process is for professional services of some form, generally contracted for on the basis of measurable outputs or deliverables. When the consultingServices code is also available or in use for data from a particular dataset, the service code must only be used for non-consulting services." +works,Works,"The contracting (or planning) process is for construction, repair, rehabilitation, demolition, restoration or maintenance of some asset or infrastructure." +consultingServices,Consulting services,This contracting (or planning) process is for professional services provided on a consultancy basis. diff --git a/schema/codelists/partyRole.csv b/schema/codelists/partyRole.csv index 5bf1799c9..7b16e1609 100644 --- a/schema/codelists/partyRole.csv +++ b/schema/codelists/partyRole.csv @@ -1,6 +1,6 @@ Code,Title,Description,Source,Deprecated -buyer,Buyer,"The organization aiming to conclude a contract with a supplier or to use the goods, works or services resulting from the contract.",, -procuringEntity,Procuring entity,"The organization managing the contracting process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), its roles should include 'buyer', but not 'procuringEntity'.",, +buyer,Buyer,"The organization aiming to conclude a contract with a supplier or to use the goods, services or works resulting from the contract.",, +procuringEntity,Procuring entity,"The organization managing the contracting (or planning) process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), its roles should include 'buyer', but not 'procuringEntity'.",, supplier,Supplier,An organization with which a buyer or a procuring entity decided to conclude a contract.,, tenderer,Tenderer,An organization that submitted a bid.,, funder,Funder,The funder is an organization providing money or finance for this contracting process.,,1.2 @@ -11,11 +11,11 @@ reviewBody,Review body,An organization responsible for the review of this procur interestedParty,Interested party,"An organization that has expressed an interest in the contracting process: for example, by purchasing tender documents or submitting clarification questions.",, contractImplementationManager,Contract implementation manager,The organization responsible for managing the implementation of the contract on behalf of the buyer. (This may be different from the procuring entity that manages the contracting process.),, mediationBody,Mediation body,The organization responsible for mediation procedures.,, -processContactPoint,Process contact point,A contact point dedicated to this contracting process.,, +processContactPoint,Process contact point,A contact point dedicated to this contracting (or planning) process.,, reviewContactPoint,Review contact point,The service from which information about the review procedure can be obtained.,, -informationService,Information service,An organization that can provide information regarding specific aspects of the contracting process.,, +informationService,Information service,An organization that can provide information regarding specific aspects of the contracting (or planning) process.,, privateParty,Private party,"The counter party of the procuring authority in the public-private partnership (PPP) contract. A private organization which has been granted the contract to construct and operate a government asset, and which is usually created under the form of a special purpose vehicle (SPV).",https://ppp-certification.com/ppp-certification-guide/glossary, leadBank,Lead bank,A lead bank is a bank that oversees the arrangement of a loan syndication. This role typically relates to financing a public-private partnership project.,https://www.investopedia.com/terms/l/lead-bank.asp, lender,Lender,"An institution that finances the contracting process through debt financing, like traditional debt or project bonds. This role typically relates to financing a public-private partnership project.",https://ppp-certification.com/ppp-certification-guide/glossary, equityInvestor,Equity investor,"An investor that finances the contracting process through equity financing: that is, capital in exchange for a share of ownership. This role typically relates to financing a public-private partnership project.",https://ppp-certification.com/ppp-certification-guide/glossary, -notifiedPotentialSupplier,Notified potential supplier,"A potential supplier that has been notified about the contracting process: for example, through a non-exclusive invitation to bid.",, +notifiedPotentialSupplier,Notified potential supplier,"A potential supplier that has been notified about the contracting (or planning) process: for example, through a non-exclusive invitation to bid.",, diff --git a/schema/codelists/partyScale.csv b/schema/codelists/partyScale.csv new file mode 100644 index 000000000..b22073eed --- /dev/null +++ b/schema/codelists/partyScale.csv @@ -0,0 +1,7 @@ +Code,Title,Description +micro,Micro,"This a micro enterprise, according to the definitions used by the procuring entity or buyer." +sme,Small or medium enterprise,"This is a Small or Medium Enterprise (SME), according to the definitions used by the procuring entity or buyer." +small,Small,"This is a small enterprise, according to the definitions used by the procuring entity or buyer." +medium,Medium,"This is a medium enterprise, according to the definitions used by the procuring entity or buyer." +large,Large,"This is a large enterprise, according to the definitions used by the procuring entity or buyer." +selfEmployed,Self-employed individual,"This is a self-employed natural person, also known as a sole trader." diff --git a/schema/codelists/procurementCategory.csv b/schema/codelists/procurementCategory.csv index 10910f7eb..cd24ae6f4 100644 --- a/schema/codelists/procurementCategory.csv +++ b/schema/codelists/procurementCategory.csv @@ -1,4 +1,4 @@ Code,Title,Description -goods,Goods and supplies,The primary object of this contracting process involves physical or digital goods or supplies. -works,Works,"The primary object of this contracting process involves construction, repair, rehabilitation, demolition, restoration or maintenance of some asset or infrastructure." -services,Services,"The primary object of this contracting process involves professional services of some form, generally contracted for on the basis of measurable outputs or deliverables." +goods,Goods and supplies,The primary object of the contracting (or planning) process are physical or digital goods or supplies. +services,Services,"The primary object of the contracting (or planning) process are professional services of some form, generally contracted for on the basis of measurable outputs or deliverables." +works,Works,"The primary object of the contracting (or planning) process is the construction, repair, rehabilitation, demolition, restoration or maintenance of some asset or infrastructure." diff --git a/schema/dereferenced-release-schema.json b/schema/dereferenced-release-schema.json index 10ab3ad64..1d7dc314f 100644 --- a/schema/dereferenced-release-schema.json +++ b/schema/dereferenced-release-schema.json @@ -2,25 +2,25 @@ "id": "https://standard.open-contracting.org/schema/1__1__5/release-schema.json", "$schema": "http://json-schema.org/draft-04/schema#", "title": "Schema for an Open Contracting Release", - "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multiple stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\"", + "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multi-stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\"", "type": "object", "properties": { "ocid": { "title": "Open contracting process identifier", - "description": "A globally unique identifier for the contracting process that the release describes. Alternatively, this identifier can refer to a planning process or a single stage of a multiple stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", + "description": "A globally unique identifier for the contracting process that the release describes. Alternatively, this identifier can refer to a planning process or a single stage of a multi-stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", "type": "string", "minLength": 1 }, "id": { "title": "Release ID", - "description": "The identifier of the release. The release ID must be unique within the scope of the contracting process (identified by the ocid), for a given version of OCDS. In other words, a publisher may publish datasets for different versions of OCDS, and repeat releases within each dataset. The release ID must not contain the number sign (#). For a compiled release, the `ocid` and the maximum `date` among the individual releases used to create the compiled release, separated by a hyphen: {ocid}-{date}.", + "description": "The identifier of the individual release or compiled release. For an individual release, the release ID must be unique within the scope of the (contracting or planning) process, for a given version of OCDS. In other words, a publisher may publish datasets for different versions of OCDS, and repeat releases within each dataset. The release ID must not contain the number sign (#). For a compiled release, the release ID should be the `ocid` and the maximum `date` among the individual releases used to create the compiled release, separated by a hyphen: {ocid}-{date}.", "type": "string", "minLength": 1, "omitWhenMerged": true }, "date": { "title": "Release Date", - "description": "The date on which the information contained in the release was first recorded in, or published by, any system. For a compiled release, the maximum `date` among the individual releases used to create the compiled release. The release date should be unique within the scope of the contracting process identified by the Open Contracting ID (ocid), for a given version of OCDS.", + "description": "The date on which the information contained in the release was first recorded in, or published by, any system. For a compiled release, the maximum `date` among the individual releases used to create the compiled release. The release date should be unique within the scope of the (contracting or planning) process, for a given version of OCDS.", "type": "string", "format": "date-time", "omitWhenMerged": true @@ -72,11 +72,12 @@ "null" ] } - } + }, + "omitWhenMerged": true }, "tag": { "title": "Release Tag", - "description": "A tag labeling the release (for example, as corresponding to a stage of the contracting process), using the the open [releaseTag](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#release-tag) codelist. Codes outside the releaseTag codelist might indicate, for example, the notice or form to which the release corresponds, or the event that triggered the publication of the release. Planning processes must not use the 'tender' code, even if they use `tender` fields.", + "description": "A tag labeling the release, using the the open [releaseTag](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#release-tag) codelist. Tags distinguish, for example, planning and contracting processes and the stages of contracting processes. Codes outside the releaseTag codelist might indicate, for example, the notice or form to which the release corresponds, or the event that triggered the publication of the release. Planning processes must not use the 'tender' code, even if they use `tender` fields.", "type": "array", "items": { "type": "string" @@ -102,7 +103,7 @@ }, "parties": { "title": "Parties", - "description": "Information on the organizations who are involved in the contracting process and their roles, e.g. buyer, procuring entity, supplier etc. Organization references elsewhere in the schema are used to refer back to this entries in this list.", + "description": "Information on the organizations who are involved in the contracting (or planning) process and their roles, e.g. buyer, procuring entity, supplier etc. Organization references elsewhere in the schema are used to refer back to this entries in this list.", "type": "array", "items": { "title": "Organization", @@ -111,7 +112,7 @@ "properties": { "name": { "title": "Common name", - "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting process.", + "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting (or planning) process.", "type": [ "string", "null" @@ -119,7 +120,7 @@ }, "id": { "type": "string", - "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the contracting process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", + "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the (contracting or planning) process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", "title": "ID" }, "identifier": { @@ -173,7 +174,7 @@ }, "additionalIdentifiers": { "title": "Additional identifiers", - "description": "A list of additional / supplemental identifiers for the organization or participant, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "description": "Additional identifiers for this organization, following the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This field can also be used to provide an identifier for an organizational unit (for example, an agency, branch or division).", "type": "array", "items": { "title": "Identifier", @@ -229,7 +230,7 @@ }, "address": { "title": "Address", - "description": "An address. This may be the legally registered address of the organization, or may be a correspondence address for this particular contracting process.", + "description": "An address. This may be the legally registered address of the organization, or may be a correspondence address for this particular contracting (or planning) process.", "type": "object", "properties": { "streetAddress": { @@ -564,7 +565,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process." }, "email": { "title": "Email", @@ -611,7 +612,7 @@ }, "roles": { "title": "Roles", - "description": "The organization's role(s) in the contracting process, using the open [partyRole](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#party-role) codelist.", + "description": "The organization's role(s) in the contracting (or planning) process, using the open [partyRole](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#party-role) codelist.", "type": [ "array", "null" @@ -628,7 +629,28 @@ "null" ], "description": "Additional classification information about organizations can be provided using organization details extensions that define particular fields and classification schemes.", - "title": "Details" + "title": "Details", + "properties": { + "scale": { + "title": "Scale", + "description": "The size or scale of the organization.", + "type": [ + "string", + "null" + ], + "enum": [ + "micro", + "sme", + "small", + "medium", + "large", + "selfEmployed", + null + ], + "codelist": "partyScale.csv", + "openCodelist": false + } + } } }, "patternProperties": { @@ -1115,7 +1137,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process." }, "email": { "title": "Email", @@ -1166,7 +1188,7 @@ } }, "type": "object", - "description": "The organization aiming to conclude a contract with a supplier or to use the goods, works or services resulting from the contract.", + "description": "The organization aiming to conclude a contract with a supplier or to use the goods, services or works resulting from the contract.", "title": "Buyer" }, "planning": { @@ -1193,11 +1215,11 @@ "budget": { "type": "object", "title": "Budget", - "description": "Details of the budget that funds the planned contracting process.", + "description": "Details of the budget that will fund the future contract(s)", "properties": { "id": { "title": "ID", - "description": "An identifier for the budget line item which provides funds for this contracting process. This identifier should be possible to cross-reference against formal budget documents.", + "description": "An identifier of the budget that will fund the future contract(s). This identifier should be possible to cross-reference against formal budget documents.", "type": [ "string", "integer", @@ -1206,7 +1228,7 @@ }, "description": { "title": "Budget Source", - "description": "A short free-text description of the budget allocation for this contracting process. This may be used to provide human-readable information on the budget category allocated to this contracting process, and/or, information about the nature and source of the allocation (e.g. conditional, confirmed; any official authorizations given to the budget allocation).", + "description": "A short free-text description of the budget that will fund the future contract(s). This may be used to provide human-readable information on: the budget category for the future contract(s) and/or the nature and source of the budget allocation (e.g. conditional, confirmed, or any official authorizations given to the budget allocation).", "type": [ "string", "null" @@ -1214,7 +1236,7 @@ }, "amount": { "title": "Amount", - "description": "The value reserved in the budget for this contracting process. A negative value indicates anticipated income to the budget as a result of this contracting process, rather than expenditure. Where the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line funding this contracting process.", + "description": "The value reserved for the future contract(s), within the budget. A negative value indicates income to the budget as a result of the future contract(s), rather than expenditure. If the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line that will fund the future contract(s).", "type": "object", "properties": { "amount": { @@ -1544,7 +1566,7 @@ }, "project": { "title": "Project title", - "description": "The name of the project through which this contracting process is funded (if applicable). Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry. No translation option is offered for this string, as translated values can be provided in third-party data, linked from the data source above.", + "description": "The name of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry.", "type": [ "string", "null" @@ -1552,7 +1574,7 @@ }, "projectID": { "title": "Project identifier", - "description": "An external identifier for the project that this contracting process forms part of, or is funded via (if applicable). Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", + "description": "The identifier of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", "integer", @@ -1561,7 +1583,7 @@ }, "uri": { "title": "Linked budget information", - "description": "A URI pointing directly to a machine-readable record about the budget line-item or line-items that fund this contracting process. Information can be provided in a range of formats, including using IATI, the Open Fiscal Data Standard or any other standard which provides structured data on budget sources. Human readable documents can be included using the planning.documents block.", + "description": "The URL of a machine-readable resource about the budget that will fund the future contract(s). For human-readable documents, see the `planning.documents` array.", "type": [ "string", "null" @@ -1750,7 +1772,7 @@ "type": "array", "items": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -1793,7 +1815,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -2365,13 +2387,44 @@ "properties": { "id": { "title": "Tender ID", - "description": "An identifier for this tender process. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", + "description": "An identifier for this tender. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", "integer" ], "minLength": 1 }, + "identifiers": { + "title": "Additional tender identifiers", + "description": "Additional identifiers for this tender. This field can be used to provide local identifiers for the tender.", + "type": "array", + "items": { + "title": "Simple identifier", + "description": "An unambiguous reference to a resource within a given context.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list, register or system from which the identifier is taken.", + "type": [ + "string", + "null" + ] + }, + "id": { + "title": "ID", + "description": "The identifier taken from the scheme.", + "type": [ + "string", + "null" + ], + "versionId": true + } + } + }, + "uniqueItems": true, + "wholeListMerge": true + }, "title": { "title": "Tender title", "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement. The title should be less than 150 characters in length.", @@ -2889,7 +2942,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process." }, "email": { "title": "Email", @@ -2940,17 +2993,17 @@ } }, "type": "object", - "description": "The organization managing the contracting process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", + "description": "The organization managing the contracting (or planning) process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", "title": "Procuring entity" }, "items": { "title": "Items to be procured", - "description": "The goods and services to be purchased, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", + "description": "The goods, services or works to be purchased, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", "type": "array", "items": { "title": "Item", "type": "object", - "description": "A good, service, or work to be contracted.", + "description": "A line-item of the goods, services, or works to be contracted.", "required": [ "id" ], @@ -2966,7 +3019,7 @@ }, "description": { "title": "Description", - "description": "A description of the goods, services to be provided.", + "description": "A description of the goods, services or works to be provided.", "type": [ "string", "null" @@ -3091,7 +3144,7 @@ }, "unit": { "title": "Unit", - "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", "type": "object", "properties": { "scheme": { @@ -3458,46 +3511,6 @@ "string", "null" ] - }, - "weight": { - "title": "Weight", - "description": "The weight of one item unit.", - "type": "object", - "properties": { - "unit": { - "title": "Unit", - "description": "The code and scheme for the unit in which the weight is specified.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ] - } - } - }, - "quantity": { - "title": "Quantity", - "description": "The number of units.", - "type": [ - "number", - "null" - ] - } - } } }, "patternProperties": { @@ -3523,7 +3536,7 @@ }, "value": { "title": "Value", - "description": "The estimated value of the procurement, as estimated when publishing the tender information. A negative value indicates that the contracting process may involve payments from the supplier to the buyer (commonly used in concession contracts).", + "description": "The estimated value of the procurement, as estimated when publishing the tender information. A negative value indicates that the future contract(s) may involve payments from the supplier to the buyer (commonly used in concession contracts).", "type": "object", "properties": { "amount": { @@ -3853,7 +3866,7 @@ }, "minValue": { "title": "Minimum value", - "description": "The estimated minimum value of the procurement. A negative value indicates that the contracting process may involve payments from the supplier to the buyer (commonly used in concession contracts).", + "description": "The estimated minimum value of the procurement. A negative value indicates that the future contract(s) may involve payments from the supplier to the buyer (commonly used in concession contracts).", "type": "object", "properties": { "amount": { @@ -4546,7 +4559,7 @@ }, "mainProcurementCategory": { "title": "Main procurement category", - "description": "The primary category describing the main object of this contracting process, from the closed [procurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#procurement-category) codelist.", + "description": "The primary category describing the main object of this contracting (or planning) process, from the closed [procurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#procurement-category) codelist.", "type": [ "string", "null" @@ -4555,14 +4568,14 @@ "openCodelist": false, "enum": [ "goods", - "works", "services", + "works", null ] }, "additionalProcurementCategories": { "title": "Additional procurement categories", - "description": "Any additional categories describing the objects of this contracting process, using the open [extendedProcurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#extended-procurement-category) codelist.", + "description": "Any additional categories describing the objects of this contracting (or planning) process, using the open [extendedProcurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#extended-procurement-category) codelist.", "type": [ "array", "null" @@ -4711,7 +4724,7 @@ }, "hasEnquiries": { "title": "Has enquiries?", - "description": "A true/false field to indicate whether any enquiries were received during the tender process. Structured information on enquiries that were received, and responses to them, can be provided using the enquiries extension.", + "description": "A true/false field to indicate whether any enquiries were received during the tender stage. Structured information on enquiries that were received, and responses to them, can be provided using the enquiries extension.", "type": [ "boolean", "null" @@ -4739,7 +4752,7 @@ }, "selectionCriteria": { "title": "Selection criteria", - "description": "The minimum requirements for tenderers to participate in the contracting process. Selection criteria ensure that a tenderer has the legal and financial capacities and the technical and professional abilities to perform the contract to be awarded. More structured information can be provided using the selection criteria extension.", + "description": "The minimum requirements for potential suppliers to participate in the contracting process. Selection criteria ensure that a potential supplier has the legal and financial capacities and the technical and professional abilities to perform the contract. More structured information can be provided using the selection criteria extension.", "type": [ "string", "null" @@ -5356,7 +5369,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process." }, "email": { "title": "Email", @@ -5559,7 +5572,7 @@ "type": "array", "items": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -5602,7 +5615,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -6197,7 +6210,7 @@ "title": "Description" }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -6205,7 +6218,7 @@ "title": "Amended release (identifier)" }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -6293,7 +6306,7 @@ "title": "Description" }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -6301,7 +6314,7 @@ "title": "Amended release (identifier)" }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -6413,7 +6426,7 @@ "properties": { "id": { "title": "Award ID", - "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", + "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the contracting process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", "type": [ "string", "integer" @@ -6470,9 +6483,18 @@ ], "format": "date-time" }, + "datePublished": { + "title": "Date published", + "description": "The date on which the award was published.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "value": { "title": "Value", - "description": "The value of this award. There may be more than one award per procurement. A negative value indicates that the award may involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", + "description": "The value of this award. There may be more than one award per procurement. A negative value indicates that the contract(s) resulting from this award may involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", "type": "object", "properties": { "amount": { @@ -7937,7 +7959,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process." }, "email": { "title": "Email", @@ -7995,13 +8017,13 @@ }, "items": { "title": "Items awarded", - "description": "The goods and services awarded in this award, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", + "description": "The goods, services or works awarded in this award, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", "type": "array", "minItems": 1, "items": { "title": "Item", "type": "object", - "description": "A good, service, or work to be contracted.", + "description": "A line-item of the goods, services, or works to be contracted.", "required": [ "id" ], @@ -8017,7 +8039,7 @@ }, "description": { "title": "Description", - "description": "A description of the goods, services to be provided.", + "description": "A description of the goods, services or works to be provided.", "type": [ "string", "null" @@ -8142,7 +8164,7 @@ }, "unit": { "title": "Unit", - "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", "type": "object", "properties": { "scheme": { @@ -8509,46 +8531,6 @@ "string", "null" ] - }, - "weight": { - "title": "Weight", - "description": "The weight of one item unit.", - "type": "object", - "properties": { - "unit": { - "title": "Unit", - "description": "The code and scheme for the unit in which the weight is specified.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ] - } - } - }, - "quantity": { - "title": "Quantity", - "description": "The number of units.", - "type": [ - "number", - "null" - ] - } - } } }, "patternProperties": { @@ -8799,7 +8781,7 @@ "title": "Description" }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -8807,7 +8789,7 @@ "title": "Amended release (identifier)" }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -8895,7 +8877,7 @@ "title": "Description" }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -8903,7 +8885,7 @@ "title": "Amended release (identifier)" }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -8988,13 +8970,44 @@ "properties": { "id": { "title": "Contract ID", - "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", + "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the contracting process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", "type": [ "string", "integer" ], "minLength": 1 }, + "identifiers": { + "title": "Additional contract identifiers", + "description": "Additional identifiers for this contract. This field can be used to provide local identifiers for the contract.", + "type": "array", + "items": { + "title": "Simple identifier", + "description": "An unambiguous reference to a resource within a given context.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list, register or system from which the identifier is taken.", + "type": [ + "string", + "null" + ] + }, + "id": { + "title": "ID", + "description": "The identifier taken from the scheme.", + "type": [ + "string", + "null" + ], + "versionId": true + } + } + }, + "uniqueItems": true, + "wholeListMerge": true + }, "awardID": { "title": "Award ID", "description": "The award.id against which this contract is being issued.", @@ -10048,13 +10061,13 @@ }, "items": { "title": "Items contracted", - "description": "The goods, services, and any intangible outcomes in this contract. If the items contracted are identical to the items awarded, this field should be omitted.", + "description": "The goods, services or works in this contract. If the items contracted are identical to the items awarded, this field should be omitted.", "type": "array", "minItems": 1, "items": { "title": "Item", "type": "object", - "description": "A good, service, or work to be contracted.", + "description": "A line-item of the goods, services, or works to be contracted.", "required": [ "id" ], @@ -10070,7 +10083,7 @@ }, "description": { "title": "Description", - "description": "A description of the goods, services to be provided.", + "description": "A description of the goods, services or works to be provided.", "type": [ "string", "null" @@ -10195,7 +10208,7 @@ }, "unit": { "title": "Unit", - "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", "type": "object", "properties": { "scheme": { @@ -10562,46 +10575,6 @@ "string", "null" ] - }, - "weight": { - "title": "Weight", - "description": "The weight of one item unit.", - "type": "object", - "properties": { - "unit": { - "title": "Unit", - "description": "The code and scheme for the unit in which the weight is specified.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ] - } - } - }, - "quantity": { - "title": "Quantity", - "description": "The number of units.", - "type": [ - "number", - "null" - ] - } - } } }, "patternProperties": { @@ -10821,7 +10794,7 @@ "items": { "type": "object", "title": "Transaction information", - "description": "A spending transaction related to the contracting process. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", + "description": "A spending transaction related to the contract. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", "required": [ "id" ], @@ -11656,7 +11629,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process." }, "email": { "title": "Email", @@ -12183,7 +12156,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process." }, "email": { "title": "Email", @@ -12629,7 +12602,7 @@ } }, "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.", + "description": "This field has been replaced by the `transaction.payer` field to resolve ambiguity arising from 'provider' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } }, @@ -12682,7 +12655,7 @@ } }, "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.", + "description": "This field has been replaced by the `transaction.payee` field to resolve ambiguity arising from 'receiver' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } } @@ -12696,7 +12669,7 @@ "type": "array", "items": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -12739,7 +12712,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -13439,7 +13412,7 @@ "relatedProcesses": { "uniqueItems": true, "items": { - "description": "A reference to a related contracting process: generally one preceding or following on from the current process.", + "description": "A reference to a related contracting (or planning) process: generally one preceding or following on from the current process.", "type": "object", "title": "Related Process", "properties": { @@ -13462,7 +13435,7 @@ "openCodelist": true }, "title": { - "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", + "description": "The title of the related process, where referencing a contracting (or planning) process, this field should match the tender/title field in the related process.", "title": "Related process title", "type": [ "string", @@ -13508,7 +13481,7 @@ "type": "array", "items": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -13551,7 +13524,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -14146,7 +14119,7 @@ "title": "Description" }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -14154,7 +14127,7 @@ "title": "Amended release (identifier)" }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -14242,7 +14215,7 @@ "title": "Description" }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -14250,7 +14223,7 @@ "title": "Amended release (identifier)" }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -14333,7 +14306,7 @@ "relatedProcesses": { "uniqueItems": true, "items": { - "description": "A reference to a related contracting process: generally one preceding or following on from the current process.", + "description": "A reference to a related contracting (or planning) process: generally one preceding or following on from the current process.", "type": "object", "title": "Related Process", "properties": { @@ -14356,7 +14329,7 @@ "openCodelist": true }, "title": { - "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", + "description": "The title of the related process, where referencing a contracting (or planning) process, this field should match the tender/title field in the related process.", "title": "Related process title", "type": [ "string", @@ -14398,7 +14371,7 @@ }, "links": { "title": "Links", - "description": "Links to related resources. In a release, links relate to the individual release: for example, a link to a canonical version of the release in another OCDS publication. In a compiled release, links relate to the entire contracting process: for example, a link to a resource in a non-OCDS publication that represents the entire contracting process. For references to related processes, see the `relatedProcesses` array.", + "description": "Links to related resources. In a release, links relate to the individual release: for example, a link to a canonical version of the release in another OCDS publication. In a compiled release, links relate to the entire contracting (or planning) process: for example, a link to a resource in a non-OCDS publication that represents the entire contracting process. For references to related processes, see the `relatedProcesses` array.", "type": "array", "items": { "title": "Link", @@ -14456,11 +14429,11 @@ "budget": { "type": "object", "title": "Budget", - "description": "Details of the budget that funds the planned contracting process.", + "description": "Details of the budget that will fund the future contract(s)", "properties": { "id": { "title": "ID", - "description": "An identifier for the budget line item which provides funds for this contracting process. This identifier should be possible to cross-reference against formal budget documents.", + "description": "An identifier of the budget that will fund the future contract(s). This identifier should be possible to cross-reference against formal budget documents.", "type": [ "string", "integer", @@ -14469,7 +14442,7 @@ }, "description": { "title": "Budget Source", - "description": "A short free-text description of the budget allocation for this contracting process. This may be used to provide human-readable information on the budget category allocated to this contracting process, and/or, information about the nature and source of the allocation (e.g. conditional, confirmed; any official authorizations given to the budget allocation).", + "description": "A short free-text description of the budget that will fund the future contract(s). This may be used to provide human-readable information on: the budget category for the future contract(s) and/or the nature and source of the budget allocation (e.g. conditional, confirmed, or any official authorizations given to the budget allocation).", "type": [ "string", "null" @@ -14477,7 +14450,7 @@ }, "amount": { "title": "Amount", - "description": "The value reserved in the budget for this contracting process. A negative value indicates anticipated income to the budget as a result of this contracting process, rather than expenditure. Where the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line funding this contracting process.", + "description": "The value reserved for the future contract(s), within the budget. A negative value indicates income to the budget as a result of the future contract(s), rather than expenditure. If the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line that will fund the future contract(s).", "type": "object", "properties": { "amount": { @@ -14807,7 +14780,7 @@ }, "project": { "title": "Project title", - "description": "The name of the project through which this contracting process is funded (if applicable). Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry. No translation option is offered for this string, as translated values can be provided in third-party data, linked from the data source above.", + "description": "The name of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry.", "type": [ "string", "null" @@ -14815,7 +14788,7 @@ }, "projectID": { "title": "Project identifier", - "description": "An external identifier for the project that this contracting process forms part of, or is funded via (if applicable). Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", + "description": "The identifier of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", "integer", @@ -14824,7 +14797,7 @@ }, "uri": { "title": "Linked budget information", - "description": "A URI pointing directly to a machine-readable record about the budget line-item or line-items that fund this contracting process. Information can be provided in a range of formats, including using IATI, the Open Fiscal Data Standard or any other standard which provides structured data on budget sources. Human readable documents can be included using the planning.documents block.", + "description": "The URL of a machine-readable resource about the budget that will fund the future contract(s). For human-readable documents, see the `planning.documents` array.", "type": [ "string", "null" @@ -15013,7 +14986,7 @@ "type": "array", "items": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -15056,7 +15029,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -15628,13 +15601,44 @@ "properties": { "id": { "title": "Tender ID", - "description": "An identifier for this tender process. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", + "description": "An identifier for this tender. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", "integer" ], "minLength": 1 }, + "identifiers": { + "title": "Additional tender identifiers", + "description": "Additional identifiers for this tender. This field can be used to provide local identifiers for the tender.", + "type": "array", + "items": { + "title": "Simple identifier", + "description": "An unambiguous reference to a resource within a given context.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list, register or system from which the identifier is taken.", + "type": [ + "string", + "null" + ] + }, + "id": { + "title": "ID", + "description": "The identifier taken from the scheme.", + "type": [ + "string", + "null" + ], + "versionId": true + } + } + }, + "uniqueItems": true, + "wholeListMerge": true + }, "title": { "title": "Tender title", "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement. The title should be less than 150 characters in length.", @@ -16152,7 +16156,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process." }, "email": { "title": "Email", @@ -16203,17 +16207,17 @@ } }, "type": "object", - "description": "The organization managing the contracting process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", + "description": "The organization managing the contracting (or planning) process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", "title": "Procuring entity" }, "items": { "title": "Items to be procured", - "description": "The goods and services to be purchased, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", + "description": "The goods, services or works to be purchased, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", "type": "array", "items": { "title": "Item", "type": "object", - "description": "A good, service, or work to be contracted.", + "description": "A line-item of the goods, services, or works to be contracted.", "required": [ "id" ], @@ -16229,7 +16233,7 @@ }, "description": { "title": "Description", - "description": "A description of the goods, services to be provided.", + "description": "A description of the goods, services or works to be provided.", "type": [ "string", "null" @@ -16354,7 +16358,7 @@ }, "unit": { "title": "Unit", - "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", "type": "object", "properties": { "scheme": { @@ -16721,46 +16725,6 @@ "string", "null" ] - }, - "weight": { - "title": "Weight", - "description": "The weight of one item unit.", - "type": "object", - "properties": { - "unit": { - "title": "Unit", - "description": "The code and scheme for the unit in which the weight is specified.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ] - } - } - }, - "quantity": { - "title": "Quantity", - "description": "The number of units.", - "type": [ - "number", - "null" - ] - } - } } }, "patternProperties": { @@ -16786,7 +16750,7 @@ }, "value": { "title": "Value", - "description": "The estimated value of the procurement, as estimated when publishing the tender information. A negative value indicates that the contracting process may involve payments from the supplier to the buyer (commonly used in concession contracts).", + "description": "The estimated value of the procurement, as estimated when publishing the tender information. A negative value indicates that the future contract(s) may involve payments from the supplier to the buyer (commonly used in concession contracts).", "type": "object", "properties": { "amount": { @@ -17116,7 +17080,7 @@ }, "minValue": { "title": "Minimum value", - "description": "The estimated minimum value of the procurement. A negative value indicates that the contracting process may involve payments from the supplier to the buyer (commonly used in concession contracts).", + "description": "The estimated minimum value of the procurement. A negative value indicates that the future contract(s) may involve payments from the supplier to the buyer (commonly used in concession contracts).", "type": "object", "properties": { "amount": { @@ -17809,7 +17773,7 @@ }, "mainProcurementCategory": { "title": "Main procurement category", - "description": "The primary category describing the main object of this contracting process, from the closed [procurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#procurement-category) codelist.", + "description": "The primary category describing the main object of this contracting (or planning) process, from the closed [procurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#procurement-category) codelist.", "type": [ "string", "null" @@ -17818,14 +17782,14 @@ "openCodelist": false, "enum": [ "goods", - "works", "services", + "works", null ] }, "additionalProcurementCategories": { "title": "Additional procurement categories", - "description": "Any additional categories describing the objects of this contracting process, using the open [extendedProcurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#extended-procurement-category) codelist.", + "description": "Any additional categories describing the objects of this contracting (or planning) process, using the open [extendedProcurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#extended-procurement-category) codelist.", "type": [ "array", "null" @@ -17974,7 +17938,7 @@ }, "hasEnquiries": { "title": "Has enquiries?", - "description": "A true/false field to indicate whether any enquiries were received during the tender process. Structured information on enquiries that were received, and responses to them, can be provided using the enquiries extension.", + "description": "A true/false field to indicate whether any enquiries were received during the tender stage. Structured information on enquiries that were received, and responses to them, can be provided using the enquiries extension.", "type": [ "boolean", "null" @@ -18002,7 +17966,7 @@ }, "selectionCriteria": { "title": "Selection criteria", - "description": "The minimum requirements for tenderers to participate in the contracting process. Selection criteria ensure that a tenderer has the legal and financial capacities and the technical and professional abilities to perform the contract to be awarded. More structured information can be provided using the selection criteria extension.", + "description": "The minimum requirements for potential suppliers to participate in the contracting process. Selection criteria ensure that a potential supplier has the legal and financial capacities and the technical and professional abilities to perform the contract. More structured information can be provided using the selection criteria extension.", "type": [ "string", "null" @@ -18619,7 +18583,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process." }, "email": { "title": "Email", @@ -18822,7 +18786,7 @@ "type": "array", "items": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -18865,7 +18829,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -19460,7 +19424,7 @@ "title": "Description" }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -19468,7 +19432,7 @@ "title": "Amended release (identifier)" }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -19556,7 +19520,7 @@ "title": "Description" }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -19564,7 +19528,7 @@ "title": "Amended release (identifier)" }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -19672,7 +19636,7 @@ "properties": { "id": { "title": "Award ID", - "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", + "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the contracting process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", "type": [ "string", "integer" @@ -19729,9 +19693,18 @@ ], "format": "date-time" }, + "datePublished": { + "title": "Date published", + "description": "The date on which the award was published.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "value": { "title": "Value", - "description": "The value of this award. There may be more than one award per procurement. A negative value indicates that the award may involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", + "description": "The value of this award. There may be more than one award per procurement. A negative value indicates that the contract(s) resulting from this award may involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", "type": "object", "properties": { "amount": { @@ -21196,7 +21169,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process." }, "email": { "title": "Email", @@ -21254,13 +21227,13 @@ }, "items": { "title": "Items awarded", - "description": "The goods and services awarded in this award, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", + "description": "The goods, services or works awarded in this award, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", "type": "array", "minItems": 1, "items": { "title": "Item", "type": "object", - "description": "A good, service, or work to be contracted.", + "description": "A line-item of the goods, services, or works to be contracted.", "required": [ "id" ], @@ -21276,7 +21249,7 @@ }, "description": { "title": "Description", - "description": "A description of the goods, services to be provided.", + "description": "A description of the goods, services or works to be provided.", "type": [ "string", "null" @@ -21401,7 +21374,7 @@ }, "unit": { "title": "Unit", - "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", "type": "object", "properties": { "scheme": { @@ -21768,46 +21741,6 @@ "string", "null" ] - }, - "weight": { - "title": "Weight", - "description": "The weight of one item unit.", - "type": "object", - "properties": { - "unit": { - "title": "Unit", - "description": "The code and scheme for the unit in which the weight is specified.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ] - } - } - }, - "quantity": { - "title": "Quantity", - "description": "The number of units.", - "type": [ - "number", - "null" - ] - } - } } }, "patternProperties": { @@ -22058,7 +21991,7 @@ "title": "Description" }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -22066,7 +21999,7 @@ "title": "Amended release (identifier)" }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -22154,7 +22087,7 @@ "title": "Description" }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -22162,7 +22095,7 @@ "title": "Amended release (identifier)" }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -22241,13 +22174,44 @@ "properties": { "id": { "title": "Contract ID", - "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", + "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the contracting process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", "type": [ "string", "integer" ], "minLength": 1 }, + "identifiers": { + "title": "Additional contract identifiers", + "description": "Additional identifiers for this contract. This field can be used to provide local identifiers for the contract.", + "type": "array", + "items": { + "title": "Simple identifier", + "description": "An unambiguous reference to a resource within a given context.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list, register or system from which the identifier is taken.", + "type": [ + "string", + "null" + ] + }, + "id": { + "title": "ID", + "description": "The identifier taken from the scheme.", + "type": [ + "string", + "null" + ], + "versionId": true + } + } + }, + "uniqueItems": true, + "wholeListMerge": true + }, "awardID": { "title": "Award ID", "description": "The award.id against which this contract is being issued.", @@ -23301,13 +23265,13 @@ }, "items": { "title": "Items contracted", - "description": "The goods, services, and any intangible outcomes in this contract. If the items contracted are identical to the items awarded, this field should be omitted.", + "description": "The goods, services or works in this contract. If the items contracted are identical to the items awarded, this field should be omitted.", "type": "array", "minItems": 1, "items": { "title": "Item", "type": "object", - "description": "A good, service, or work to be contracted.", + "description": "A line-item of the goods, services, or works to be contracted.", "required": [ "id" ], @@ -23323,7 +23287,7 @@ }, "description": { "title": "Description", - "description": "A description of the goods, services to be provided.", + "description": "A description of the goods, services or works to be provided.", "type": [ "string", "null" @@ -23448,7 +23412,7 @@ }, "unit": { "title": "Unit", - "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", "type": "object", "properties": { "scheme": { @@ -23815,46 +23779,6 @@ "string", "null" ] - }, - "weight": { - "title": "Weight", - "description": "The weight of one item unit.", - "type": "object", - "properties": { - "unit": { - "title": "Unit", - "description": "The code and scheme for the unit in which the weight is specified.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ] - } - } - }, - "quantity": { - "title": "Quantity", - "description": "The number of units.", - "type": [ - "number", - "null" - ] - } - } } }, "patternProperties": { @@ -24074,7 +23998,7 @@ "items": { "type": "object", "title": "Transaction information", - "description": "A spending transaction related to the contracting process. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", + "description": "A spending transaction related to the contract. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", "required": [ "id" ], @@ -24909,7 +24833,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process." }, "email": { "title": "Email", @@ -25436,7 +25360,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process." }, "email": { "title": "Email", @@ -25882,7 +25806,7 @@ } }, "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.", + "description": "This field has been replaced by the `transaction.payer` field to resolve ambiguity arising from 'provider' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } }, @@ -25935,7 +25859,7 @@ } }, "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.", + "description": "This field has been replaced by the `transaction.payee` field to resolve ambiguity arising from 'receiver' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } } @@ -25949,7 +25873,7 @@ "type": "array", "items": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -25992,7 +25916,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -26692,7 +26616,7 @@ "relatedProcesses": { "uniqueItems": true, "items": { - "description": "A reference to a related contracting process: generally one preceding or following on from the current process.", + "description": "A reference to a related contracting (or planning) process: generally one preceding or following on from the current process.", "type": "object", "title": "Related Process", "properties": { @@ -26715,7 +26639,7 @@ "openCodelist": true }, "title": { - "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", + "description": "The title of the related process, where referencing a contracting (or planning) process, this field should match the tender/title field in the related process.", "title": "Related process title", "type": [ "string", @@ -26761,7 +26685,7 @@ "type": "array", "items": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -26804,7 +26728,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -27399,7 +27323,7 @@ "title": "Description" }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -27407,7 +27331,7 @@ "title": "Amended release (identifier)" }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -27495,7 +27419,7 @@ "title": "Description" }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -27503,7 +27427,7 @@ "title": "Amended release (identifier)" }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -27583,7 +27507,7 @@ "items": { "type": "object", "title": "Transaction information", - "description": "A spending transaction related to the contracting process. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", + "description": "A spending transaction related to the contract. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", "required": [ "id" ], @@ -28418,7 +28342,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process." }, "email": { "title": "Email", @@ -28945,7 +28869,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process." }, "email": { "title": "Email", @@ -29391,7 +29315,7 @@ } }, "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.", + "description": "This field has been replaced by the `transaction.payer` field to resolve ambiguity arising from 'provider' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } }, @@ -29444,7 +29368,7 @@ } }, "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.", + "description": "This field has been replaced by the `transaction.payee` field to resolve ambiguity arising from 'receiver' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } } @@ -29458,7 +29382,7 @@ "type": "array", "items": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -29501,7 +29425,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -30200,7 +30124,7 @@ }, "Milestone": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -30243,7 +30167,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -30933,11 +30857,11 @@ "Budget": { "type": "object", "title": "Budget information", - "description": "This section contains basic information about the budget estimated for, or allocated to, this contracting process at the present time. Further documentation and data about how budgets have been allocated to a contracting process should be published outside of OCDS data, according to the best available standards.", + "description": "This section contains basic information about the budget that will fund the future contract(s). Further documentation and data about how budgets have been allocated should be published outside of OCDS data, according to the best available standards.", "properties": { "id": { "title": "ID", - "description": "An identifier for the budget line item which provides funds for this contracting process. This identifier should be possible to cross-reference against formal budget documents.", + "description": "An identifier of the budget that will fund the future contract(s). This identifier should be possible to cross-reference against formal budget documents.", "type": [ "string", "integer", @@ -30946,7 +30870,7 @@ }, "description": { "title": "Budget Source", - "description": "A short free-text description of the budget allocation for this contracting process. This may be used to provide human-readable information on the budget category allocated to this contracting process, and/or, information about the nature and source of the allocation (e.g. conditional, confirmed; any official authorizations given to the budget allocation).", + "description": "A short free-text description of the budget that will fund the future contract(s). This may be used to provide human-readable information on: the budget category for the future contract(s) and/or the nature and source of the budget allocation (e.g. conditional, confirmed, or any official authorizations given to the budget allocation).", "type": [ "string", "null" @@ -30954,7 +30878,7 @@ }, "amount": { "title": "Amount", - "description": "The value reserved in the budget for this contracting process. A negative value indicates anticipated income to the budget as a result of this contracting process, rather than expenditure. Where the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line funding this contracting process.", + "description": "The value reserved for the future contract(s), within the budget. A negative value indicates income to the budget as a result of the future contract(s), rather than expenditure. If the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line that will fund the future contract(s).", "type": "object", "properties": { "amount": { @@ -31284,7 +31208,7 @@ }, "project": { "title": "Project title", - "description": "The name of the project through which this contracting process is funded (if applicable). Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry. No translation option is offered for this string, as translated values can be provided in third-party data, linked from the data source above.", + "description": "The name of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry.", "type": [ "string", "null" @@ -31292,7 +31216,7 @@ }, "projectID": { "title": "Project identifier", - "description": "An external identifier for the project that this contracting process forms part of, or is funded via (if applicable). Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", + "description": "The identifier of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", "integer", @@ -31301,7 +31225,7 @@ }, "uri": { "title": "Linked budget information", - "description": "A URI pointing directly to a machine-readable record about the budget line-item or line-items that fund this contracting process. Information can be provided in a range of formats, including using IATI, the Open Fiscal Data Standard or any other standard which provides structured data on budget sources. Human readable documents can be included using the planning.documents block.", + "description": "The URL of a machine-readable resource about the budget that will fund the future contract(s). For human-readable documents, see the `planning.documents` array.", "type": [ "string", "null" @@ -31346,7 +31270,7 @@ "Transaction": { "type": "object", "title": "Transaction information", - "description": "A spending transaction related to the contracting process. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", + "description": "A spending transaction related to the contract. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", "required": [ "id" ], @@ -32181,7 +32105,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process." }, "email": { "title": "Email", @@ -32708,7 +32632,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process." }, "email": { "title": "Email", @@ -33154,7 +33078,7 @@ } }, "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.", + "description": "This field has been replaced by the `transaction.payer` field to resolve ambiguity arising from 'provider' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } }, @@ -33207,7 +33131,7 @@ } }, "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.", + "description": "This field has been replaced by the `transaction.payee` field to resolve ambiguity arising from 'receiver' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } } @@ -33686,7 +33610,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process." }, "email": { "title": "Email", @@ -33747,7 +33671,7 @@ "properties": { "name": { "title": "Common name", - "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting process.", + "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting (or planning) process.", "type": [ "string", "null" @@ -33755,7 +33679,7 @@ }, "id": { "type": "string", - "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the contracting process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", + "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the (contracting or planning) process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", "title": "ID" }, "identifier": { @@ -33809,7 +33733,7 @@ }, "additionalIdentifiers": { "title": "Additional identifiers", - "description": "A list of additional / supplemental identifiers for the organization or participant, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "description": "Additional identifiers for this organization, following the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This field can also be used to provide an identifier for an organizational unit (for example, an agency, branch or division).", "type": "array", "items": { "title": "Identifier", @@ -33865,7 +33789,7 @@ }, "address": { "title": "Address", - "description": "An address. This may be the legally registered address of the organization, or may be a correspondence address for this particular contracting process.", + "description": "An address. This may be the legally registered address of the organization, or may be a correspondence address for this particular contracting (or planning) process.", "type": "object", "properties": { "streetAddress": { @@ -34200,7 +34124,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process." }, "email": { "title": "Email", @@ -34247,7 +34171,7 @@ }, "roles": { "title": "Roles", - "description": "The organization's role(s) in the contracting process, using the open [partyRole](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#party-role) codelist.", + "description": "The organization's role(s) in the contracting (or planning) process, using the open [partyRole](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#party-role) codelist.", "type": [ "array", "null" @@ -34264,7 +34188,28 @@ "null" ], "description": "Additional classification information about organizations can be provided using organization details extensions that define particular fields and classification schemes.", - "title": "Details" + "title": "Details", + "properties": { + "scale": { + "title": "Scale", + "description": "The size or scale of the organization.", + "type": [ + "string", + "null" + ], + "enum": [ + "micro", + "sme", + "small", + "medium", + "large", + "selfEmployed", + null + ], + "codelist": "partyScale.csv", + "openCodelist": false + } + } } }, "patternProperties": { @@ -34279,7 +34224,7 @@ "Item": { "title": "Item", "type": "object", - "description": "A good, service, or work to be contracted.", + "description": "A line-item of the goods, services, or works to be contracted.", "required": [ "id" ], @@ -34295,7 +34240,7 @@ }, "description": { "title": "Description", - "description": "A description of the goods, services to be provided.", + "description": "A description of the goods, services or works to be provided.", "type": [ "string", "null" @@ -34420,7 +34365,7 @@ }, "unit": { "title": "Unit", - "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", "type": "object", "properties": { "scheme": { @@ -34787,46 +34732,6 @@ "string", "null" ] - }, - "weight": { - "title": "Weight", - "description": "The weight of one item unit.", - "type": "object", - "properties": { - "unit": { - "title": "Unit", - "description": "The code and scheme for the unit in which the weight is specified.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ] - } - } - }, - "quantity": { - "title": "Quantity", - "description": "The number of units.", - "type": [ - "number", - "null" - ] - } - } } }, "patternProperties": { @@ -34887,7 +34792,7 @@ "title": "Description" }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -34895,7 +34800,7 @@ "title": "Amended release (identifier)" }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -35372,7 +35277,7 @@ "ContactPoint": { "title": "Contact point", "type": "object", - "description": "A person, contact point or department to contact in relation to this contracting process.", + "description": "A person, contact point or department to contact in relation to this contracting (or planning) process.", "properties": { "name": { "title": "Name", @@ -35380,7 +35285,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process." }, "email": { "title": "Email", @@ -35757,7 +35662,7 @@ }, "Period": { "title": "Period", - "description": "Key events during a contracting process may have a known start date, end date, duration, or maximum extent (the latest date the period can extend to). In some cases, not all of these fields will have known or relevant values.", + "description": "Key events during a contracting (or planning) process may have a known start date, end date, duration, or maximum extent (the latest date the period can extend to). In some cases, not all of these fields will have known or relevant values.", "type": "object", "properties": { "startDate": { @@ -35797,33 +35702,8 @@ } } }, - "SimpleUnit": { - "title": "Simple Unit", - "description": "A simple unit of measure, consisting of: an identifier for the list (scheme) from which the unit is taken, and an identifier for the unit from that list.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ] - } - } - }, "RelatedProcess": { - "description": "A reference to a related contracting process: generally one preceding or following on from the current process.", + "description": "A reference to a related contracting (or planning) process: generally one preceding or following on from the current process.", "type": "object", "title": "Related Process", "properties": { @@ -35846,7 +35726,7 @@ "openCodelist": true }, "title": { - "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", + "description": "The title of the related process, where referencing a contracting (or planning) process, this field should match the tender/title field in the related process.", "title": "Related process title", "type": [ "string", @@ -35884,7 +35764,7 @@ }, "Unit": { "title": "Unit", - "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", "type": "object", "properties": { "scheme": { @@ -36251,46 +36131,6 @@ "string", "null" ] - }, - "weight": { - "title": "Weight", - "description": "The weight of one item unit.", - "type": "object", - "properties": { - "unit": { - "title": "Unit", - "description": "The code and scheme for the unit in which the weight is specified.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ] - } - } - }, - "quantity": { - "title": "Quantity", - "description": "The number of units.", - "type": [ - "number", - "null" - ] - } - } } }, "patternProperties": { @@ -36653,6 +36493,30 @@ } }, "minProperties": 1 + }, + "SimpleIdentifier": { + "title": "Simple identifier", + "description": "An unambiguous reference to a resource within a given context.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list, register or system from which the identifier is taken.", + "type": [ + "string", + "null" + ] + }, + "id": { + "title": "ID", + "description": "The identifier taken from the scheme.", + "type": [ + "string", + "null" + ], + "versionId": true + } + } } } } diff --git a/schema/record-package-schema.json b/schema/record-package-schema.json index ace4d1954..fe1e846f0 100644 --- a/schema/record-package-schema.json +++ b/schema/record-package-schema.json @@ -130,12 +130,12 @@ "properties": { "ocid": { "title": "Open contracting process identifier", - "description": "A globally unique identifier for the contracting process that the record describes. Alternatively, this identifier can refer to a planning process or a single stage of a multiple stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", + "description": "A globally unique identifier for the contracting process that the record describes. Alternatively, this identifier can refer to a planning process or a single stage of a multi-stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", "type": "string" }, "releases": { "title": "Releases", - "description": "All the releases about the contracting process at the time of the record's publication. The releases must be sorted in date order, from oldest to newest.", + "description": "All the releases about the contracting (or planning) process at the time of the record's publication. The releases must be sorted in date order, from oldest to newest.", "oneOf": [ { "title": "Linked releases", diff --git a/schema/release-schema.json b/schema/release-schema.json index 2d15a4f9d..e3472c35f 100644 --- a/schema/release-schema.json +++ b/schema/release-schema.json @@ -2,25 +2,25 @@ "id": "https://standard.open-contracting.org/schema/1__1__5/release-schema.json", "$schema": "http://json-schema.org/draft-04/schema#", "title": "Schema for an Open Contracting Release", - "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multiple stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\"", + "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multi-stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\"", "type": "object", "properties": { "ocid": { "title": "Open contracting process identifier", - "description": "A globally unique identifier for the contracting process that the release describes. Alternatively, this identifier can refer to a planning process or a single stage of a multiple stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", + "description": "A globally unique identifier for the contracting process that the release describes. Alternatively, this identifier can refer to a planning process or a single stage of a multi-stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", "type": "string", "minLength": 1 }, "id": { "title": "Release ID", - "description": "The identifier of the release. The release ID must be unique within the scope of the contracting process (identified by the ocid), for a given version of OCDS. In other words, a publisher may publish datasets for different versions of OCDS, and repeat releases within each dataset. The release ID must not contain the number sign (#). For a compiled release, the `ocid` and the maximum `date` among the individual releases used to create the compiled release, separated by a hyphen: {ocid}-{date}.", + "description": "The identifier of the individual release or compiled release. For an individual release, the release ID must be unique within the scope of the (contracting or planning) process, for a given version of OCDS. In other words, a publisher may publish datasets for different versions of OCDS, and repeat releases within each dataset. The release ID must not contain the number sign (#). For a compiled release, the release ID should be the `ocid` and the maximum `date` among the individual releases used to create the compiled release, separated by a hyphen: {ocid}-{date}.", "type": "string", "minLength": 1, "omitWhenMerged": true }, "date": { "title": "Release Date", - "description": "The date on which the information contained in the release was first recorded in, or published by, any system. For a compiled release, the maximum `date` among the individual releases used to create the compiled release. The release date should be unique within the scope of the contracting process identified by the Open Contracting ID (ocid), for a given version of OCDS.", + "description": "The date on which the information contained in the release was first recorded in, or published by, any system. For a compiled release, the maximum `date` among the individual releases used to create the compiled release. The release date should be unique within the scope of the (contracting or planning) process, for a given version of OCDS.", "type": "string", "format": "date-time", "omitWhenMerged": true @@ -28,11 +28,12 @@ "publisher": { "title": "Publisher", "description": "The original publisher of this release.", + "omitWhenMerged": true, "$ref": "#/definitions/Identifier" }, "tag": { "title": "Release Tag", - "description": "A tag labeling the release (for example, as corresponding to a stage of the contracting process), using the the open [releaseTag](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#release-tag) codelist. Codes outside the releaseTag codelist might indicate, for example, the notice or form to which the release corresponds, or the event that triggered the publication of the release. Planning processes must not use the 'tender' code, even if they use `tender` fields.", + "description": "A tag labeling the release, using the the open [releaseTag](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#release-tag) codelist. Tags distinguish, for example, planning and contracting processes and the stages of contracting processes. Codes outside the releaseTag codelist might indicate, for example, the notice or form to which the release corresponds, or the event that triggered the publication of the release. Planning processes must not use the 'tender' code, even if they use `tender` fields.", "type": "array", "items": { "type": "string" @@ -58,7 +59,7 @@ }, "parties": { "title": "Parties", - "description": "Information on the organizations who are involved in the contracting process and their roles, e.g. buyer, procuring entity, supplier etc. Organization references elsewhere in the schema are used to refer back to this entries in this list.", + "description": "Information on the organizations who are involved in the contracting (or planning) process and their roles, e.g. buyer, procuring entity, supplier etc. Organization references elsewhere in the schema are used to refer back to this entries in this list.", "type": "array", "items": { "$ref": "#/definitions/Organization" @@ -67,7 +68,7 @@ }, "buyer": { "title": "Buyer", - "description": "The organization aiming to conclude a contract with a supplier or to use the goods, works or services resulting from the contract.", + "description": "The organization aiming to conclude a contract with a supplier or to use the goods, services or works resulting from the contract.", "$ref": "#/definitions/OrganizationReference" }, "planning": { @@ -119,7 +120,7 @@ }, "links": { "title": "Links", - "description": "Links to related resources. In a release, links relate to the individual release: for example, a link to a canonical version of the release in another OCDS publication. In a compiled release, links relate to the entire contracting process: for example, a link to a resource in a non-OCDS publication that represents the entire contracting process. For references to related processes, see the `relatedProcesses` array.", + "description": "Links to related resources. In a release, links relate to the individual release: for example, a link to a canonical version of the release in another OCDS publication. In a compiled release, links relate to the entire contracting (or planning) process: for example, a link to a resource in a non-OCDS publication that represents the entire contracting process. For references to related processes, see the `relatedProcesses` array.", "type": "array", "items": { "$ref": "#/definitions/Link" @@ -159,7 +160,7 @@ }, "budget": { "title": "Budget", - "description": "Details of the budget that funds the planned contracting process.", + "description": "Details of the budget that will fund the future contract(s)", "$ref": "#/definitions/Budget" }, "documents": { @@ -198,13 +199,23 @@ "properties": { "id": { "title": "Tender ID", - "description": "An identifier for this tender process. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", + "description": "An identifier for this tender. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", "integer" ], "minLength": 1 }, + "identifiers": { + "title": "Additional tender identifiers", + "description": "Additional identifiers for this tender. This field can be used to provide local identifiers for the tender.", + "type": "array", + "items": { + "$ref": "#/definitions/SimpleIdentifier" + }, + "uniqueItems": true, + "wholeListMerge": true + }, "title": { "title": "Tender title", "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement. The title should be less than 150 characters in length.", @@ -251,12 +262,12 @@ }, "procuringEntity": { "title": "Procuring entity", - "description": "The organization managing the contracting process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", + "description": "The organization managing the contracting (or planning) process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", "$ref": "#/definitions/OrganizationReference" }, "items": { "title": "Items to be procured", - "description": "The goods and services to be purchased, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", + "description": "The goods, services or works to be purchased, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", "type": "array", "items": { "$ref": "#/definitions/Item" @@ -265,12 +276,12 @@ }, "value": { "title": "Value", - "description": "The estimated value of the procurement, as estimated when publishing the tender information. A negative value indicates that the contracting process may involve payments from the supplier to the buyer (commonly used in concession contracts).", + "description": "The estimated value of the procurement, as estimated when publishing the tender information. A negative value indicates that the future contract(s) may involve payments from the supplier to the buyer (commonly used in concession contracts).", "$ref": "#/definitions/Value" }, "minValue": { "title": "Minimum value", - "description": "The estimated minimum value of the procurement. A negative value indicates that the contracting process may involve payments from the supplier to the buyer (commonly used in concession contracts).", + "description": "The estimated minimum value of the procurement. A negative value indicates that the future contract(s) may involve payments from the supplier to the buyer (commonly used in concession contracts).", "$ref": "#/definitions/Value" }, "maximumValue": { @@ -313,7 +324,7 @@ }, "mainProcurementCategory": { "title": "Main procurement category", - "description": "The primary category describing the main object of this contracting process, from the closed [procurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#procurement-category) codelist.", + "description": "The primary category describing the main object of this contracting (or planning) process, from the closed [procurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#procurement-category) codelist.", "type": [ "string", "null" @@ -322,14 +333,14 @@ "openCodelist": false, "enum": [ "goods", - "works", "services", + "works", null ] }, "additionalProcurementCategories": { "title": "Additional procurement categories", - "description": "Any additional categories describing the objects of this contracting process, using the open [extendedProcurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#extended-procurement-category) codelist.", + "description": "Any additional categories describing the objects of this contracting (or planning) process, using the open [extendedProcurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#extended-procurement-category) codelist.", "type": [ "array", "null" @@ -404,7 +415,7 @@ }, "hasEnquiries": { "title": "Has enquiries?", - "description": "A true/false field to indicate whether any enquiries were received during the tender process. Structured information on enquiries that were received, and responses to them, can be provided using the enquiries extension.", + "description": "A true/false field to indicate whether any enquiries were received during the tender stage. Structured information on enquiries that were received, and responses to them, can be provided using the enquiries extension.", "type": [ "boolean", "null" @@ -432,7 +443,7 @@ }, "selectionCriteria": { "title": "Selection criteria", - "description": "The minimum requirements for tenderers to participate in the contracting process. Selection criteria ensure that a tenderer has the legal and financial capacities and the technical and professional abilities to perform the contract to be awarded. More structured information can be provided using the selection criteria extension.", + "description": "The minimum requirements for potential suppliers to participate in the contracting process. Selection criteria ensure that a potential supplier has the legal and financial capacities and the technical and professional abilities to perform the contract. More structured information can be provided using the selection criteria extension.", "type": [ "string", "null" @@ -559,7 +570,7 @@ "properties": { "id": { "title": "Award ID", - "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", + "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the contracting process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", "type": [ "string", "integer" @@ -616,9 +627,18 @@ ], "format": "date-time" }, + "datePublished": { + "title": "Date published", + "description": "The date on which the award was published.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "value": { "title": "Value", - "description": "The value of this award. There may be more than one award per procurement. A negative value indicates that the award may involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", + "description": "The value of this award. There may be more than one award per procurement. A negative value indicates that the contract(s) resulting from this award may involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", "$ref": "#/definitions/Value" }, "maximumValue": { @@ -642,7 +662,7 @@ }, "items": { "title": "Items awarded", - "description": "The goods and services awarded in this award, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", + "description": "The goods, services or works awarded in this award, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", "type": "array", "minItems": 1, "items": { @@ -708,13 +728,23 @@ "properties": { "id": { "title": "Contract ID", - "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", + "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the contracting process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", "type": [ "string", "integer" ], "minLength": 1 }, + "identifiers": { + "title": "Additional contract identifiers", + "description": "Additional identifiers for this contract. This field can be used to provide local identifiers for the contract.", + "type": "array", + "items": { + "$ref": "#/definitions/SimpleIdentifier" + }, + "uniqueItems": true, + "wholeListMerge": true + }, "awardID": { "title": "Award ID", "description": "The award.id against which this contract is being issued.", @@ -793,7 +823,7 @@ }, "items": { "title": "Items contracted", - "description": "The goods, services, and any intangible outcomes in this contract. If the items contracted are identical to the items awarded, this field should be omitted.", + "description": "The goods, services or works in this contract. If the items contracted are identical to the items awarded, this field should be omitted.", "type": "array", "minItems": 1, "items": { @@ -906,7 +936,7 @@ }, "Milestone": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -949,7 +979,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -1181,11 +1211,11 @@ "Budget": { "type": "object", "title": "Budget information", - "description": "This section contains basic information about the budget estimated for, or allocated to, this contracting process at the present time. Further documentation and data about how budgets have been allocated to a contracting process should be published outside of OCDS data, according to the best available standards.", + "description": "This section contains basic information about the budget that will fund the future contract(s). Further documentation and data about how budgets have been allocated should be published outside of OCDS data, according to the best available standards.", "properties": { "id": { "title": "ID", - "description": "An identifier for the budget line item which provides funds for this contracting process. This identifier should be possible to cross-reference against formal budget documents.", + "description": "An identifier of the budget that will fund the future contract(s). This identifier should be possible to cross-reference against formal budget documents.", "type": [ "string", "integer", @@ -1194,7 +1224,7 @@ }, "description": { "title": "Budget Source", - "description": "A short free-text description of the budget allocation for this contracting process. This may be used to provide human-readable information on the budget category allocated to this contracting process, and/or, information about the nature and source of the allocation (e.g. conditional, confirmed; any official authorizations given to the budget allocation).", + "description": "A short free-text description of the budget that will fund the future contract(s). This may be used to provide human-readable information on: the budget category for the future contract(s) and/or the nature and source of the budget allocation (e.g. conditional, confirmed, or any official authorizations given to the budget allocation).", "type": [ "string", "null" @@ -1202,12 +1232,12 @@ }, "amount": { "title": "Amount", - "description": "The value reserved in the budget for this contracting process. A negative value indicates anticipated income to the budget as a result of this contracting process, rather than expenditure. Where the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line funding this contracting process.", + "description": "The value reserved for the future contract(s), within the budget. A negative value indicates income to the budget as a result of the future contract(s), rather than expenditure. If the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line that will fund the future contract(s).", "$ref": "#/definitions/Value" }, "project": { "title": "Project title", - "description": "The name of the project through which this contracting process is funded (if applicable). Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry. No translation option is offered for this string, as translated values can be provided in third-party data, linked from the data source above.", + "description": "The name of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry.", "type": [ "string", "null" @@ -1215,7 +1245,7 @@ }, "projectID": { "title": "Project identifier", - "description": "An external identifier for the project that this contracting process forms part of, or is funded via (if applicable). Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", + "description": "The identifier of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", "integer", @@ -1224,7 +1254,7 @@ }, "uri": { "title": "Linked budget information", - "description": "A URI pointing directly to a machine-readable record about the budget line-item or line-items that fund this contracting process. Information can be provided in a range of formats, including using IATI, the Open Fiscal Data Standard or any other standard which provides structured data on budget sources. Human readable documents can be included using the planning.documents block.", + "description": "The URL of a machine-readable resource about the budget that will fund the future contract(s). For human-readable documents, see the `planning.documents` array.", "type": [ "string", "null" @@ -1269,7 +1299,7 @@ "Transaction": { "type": "object", "title": "Transaction information", - "description": "A spending transaction related to the contracting process. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", + "description": "A spending transaction related to the contract. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", "required": [ "id" ], @@ -1339,7 +1369,7 @@ "description": "(Deprecated in 1.1. Use transaction.payer instead.) The Organization Identifier for the organization from which the funds in this transaction originate. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", "$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.", + "description": "This field has been replaced by the `transaction.payer` field to resolve ambiguity arising from 'provider' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } }, @@ -1348,7 +1378,7 @@ "description": "(Deprecated in 1.1. Use transaction.payee instead). The Organization Identifier for the organization which receives the funds in this transaction. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", "$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.", + "description": "This field has been replaced by the `transaction.payee` field to resolve ambiguity arising from 'receiver' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } } @@ -1426,7 +1456,7 @@ "properties": { "name": { "title": "Common name", - "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting process.", + "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting (or planning) process.", "type": [ "string", "null" @@ -1434,7 +1464,7 @@ }, "id": { "type": "string", - "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the contracting process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", + "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the (contracting or planning) process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", "title": "ID" }, "identifier": { @@ -1444,7 +1474,7 @@ }, "additionalIdentifiers": { "title": "Additional identifiers", - "description": "A list of additional / supplemental identifiers for the organization or participant, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "description": "Additional identifiers for this organization, following the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This field can also be used to provide an identifier for an organizational unit (for example, an agency, branch or division).", "type": "array", "items": { "$ref": "#/definitions/Identifier" @@ -1454,7 +1484,7 @@ }, "address": { "title": "Address", - "description": "An address. This may be the legally registered address of the organization, or may be a correspondence address for this particular contracting process.", + "description": "An address. This may be the legally registered address of the organization, or may be a correspondence address for this particular contracting (or planning) process.", "$ref": "#/definitions/Address" }, "contactPoint": { @@ -1464,7 +1494,7 @@ }, "roles": { "title": "Roles", - "description": "The organization's role(s) in the contracting process, using the open [partyRole](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#party-role) codelist.", + "description": "The organization's role(s) in the contracting (or planning) process, using the open [partyRole](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#party-role) codelist.", "type": [ "array", "null" @@ -1481,7 +1511,28 @@ "null" ], "description": "Additional classification information about organizations can be provided using organization details extensions that define particular fields and classification schemes.", - "title": "Details" + "title": "Details", + "properties": { + "scale": { + "title": "Scale", + "description": "The size or scale of the organization.", + "type": [ + "string", + "null" + ], + "enum": [ + "micro", + "sme", + "small", + "medium", + "large", + "selfEmployed", + null + ], + "codelist": "partyScale.csv", + "openCodelist": false + } + } } }, "patternProperties": { @@ -1496,7 +1547,7 @@ "Item": { "title": "Item", "type": "object", - "description": "A good, service, or work to be contracted.", + "description": "A line-item of the goods, services, or works to be contracted.", "required": [ "id" ], @@ -1512,7 +1563,7 @@ }, "description": { "title": "Description", - "description": "A description of the goods, services to be provided.", + "description": "A description of the goods, services or works to be provided.", "type": [ "string", "null" @@ -1543,7 +1594,7 @@ }, "unit": { "title": "Unit", - "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", "$ref": "#/definitions/Unit" } }, @@ -1595,7 +1646,7 @@ "title": "Description" }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -1603,7 +1654,7 @@ "title": "Amended release (identifier)" }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -2080,7 +2131,7 @@ "ContactPoint": { "title": "Contact point", "type": "object", - "description": "A person, contact point or department to contact in relation to this contracting process.", + "description": "A person, contact point or department to contact in relation to this contracting (or planning) process.", "properties": { "name": { "title": "Name", @@ -2088,7 +2139,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process." + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process." }, "email": { "title": "Email", @@ -2465,7 +2516,7 @@ }, "Period": { "title": "Period", - "description": "Key events during a contracting process may have a known start date, end date, duration, or maximum extent (the latest date the period can extend to). In some cases, not all of these fields will have known or relevant values.", + "description": "Key events during a contracting (or planning) process may have a known start date, end date, duration, or maximum extent (the latest date the period can extend to). In some cases, not all of these fields will have known or relevant values.", "type": "object", "properties": { "startDate": { @@ -2505,33 +2556,8 @@ } } }, - "SimpleUnit": { - "title": "Simple Unit", - "description": "A simple unit of measure, consisting of: an identifier for the list (scheme) from which the unit is taken, and an identifier for the unit from that list.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ] - } - } - }, "RelatedProcess": { - "description": "A reference to a related contracting process: generally one preceding or following on from the current process.", + "description": "A reference to a related contracting (or planning) process: generally one preceding or following on from the current process.", "type": "object", "title": "Related Process", "properties": { @@ -2554,7 +2580,7 @@ "openCodelist": true }, "title": { - "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", + "description": "The title of the related process, where referencing a contracting (or planning) process, this field should match the tender/title field in the related process.", "title": "Related process title", "type": [ "string", @@ -2592,7 +2618,7 @@ }, "Unit": { "title": "Unit", - "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", "type": "object", "properties": { "scheme": { @@ -2634,26 +2660,6 @@ "string", "null" ] - }, - "weight": { - "title": "Weight", - "description": "The weight of one item unit.", - "type": "object", - "properties": { - "unit": { - "title": "Unit", - "description": "The code and scheme for the unit in which the weight is specified.", - "$ref": "#/definitions/SimpleUnit" - }, - "quantity": { - "title": "Quantity", - "description": "The number of units.", - "type": [ - "number", - "null" - ] - } - } } }, "patternProperties": { @@ -3016,6 +3022,30 @@ } }, "minProperties": 1 + }, + "SimpleIdentifier": { + "title": "Simple identifier", + "description": "An unambiguous reference to a resource within a given context.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list, register or system from which the identifier is taken.", + "type": [ + "string", + "null" + ] + }, + "id": { + "title": "ID", + "description": "The identifier taken from the scheme.", + "type": [ + "string", + "null" + ], + "versionId": true + } + } } } } diff --git a/schema/strict/dereferenced-release-schema.json b/schema/strict/dereferenced-release-schema.json index 6e271e1df..5ca342682 100644 --- a/schema/strict/dereferenced-release-schema.json +++ b/schema/strict/dereferenced-release-schema.json @@ -2,25 +2,25 @@ "id": "https://standard.open-contracting.org/schema/1__1__5/strict/release-schema.json", "$schema": "http://json-schema.org/draft-04/schema#", "title": "Strict schema for an Open Contracting Release", - "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multiple stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\" The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.", + "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multi-stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\" The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.", "type": "object", "properties": { "ocid": { "title": "Open contracting process identifier", - "description": "A globally unique identifier for the contracting process that the release describes. Alternatively, this identifier can refer to a planning process or a single stage of a multiple stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", + "description": "A globally unique identifier for the contracting process that the release describes. Alternatively, this identifier can refer to a planning process or a single stage of a multi-stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", "type": "string", "minLength": 1 }, "id": { "title": "Release ID", - "description": "The identifier of the release. The release ID must be unique within the scope of the contracting process (identified by the ocid), for a given version of OCDS. In other words, a publisher may publish datasets for different versions of OCDS, and repeat releases within each dataset. The release ID must not contain the number sign (#). For a compiled release, the `ocid` and the maximum `date` among the individual releases used to create the compiled release, separated by a hyphen: {ocid}-{date}.", + "description": "The identifier of the individual release or compiled release. For an individual release, the release ID must be unique within the scope of the (contracting or planning) process, for a given version of OCDS. In other words, a publisher may publish datasets for different versions of OCDS, and repeat releases within each dataset. The release ID must not contain the number sign (#). For a compiled release, the release ID should be the `ocid` and the maximum `date` among the individual releases used to create the compiled release, separated by a hyphen: {ocid}-{date}.", "type": "string", "minLength": 1, "omitWhenMerged": true }, "date": { "title": "Release Date", - "description": "The date on which the information contained in the release was first recorded in, or published by, any system. For a compiled release, the maximum `date` among the individual releases used to create the compiled release. The release date should be unique within the scope of the contracting process identified by the Open Contracting ID (ocid), for a given version of OCDS.", + "description": "The date on which the information contained in the release was first recorded in, or published by, any system. For a compiled release, the maximum `date` among the individual releases used to create the compiled release. The release date should be unique within the scope of the (contracting or planning) process, for a given version of OCDS.", "type": "string", "format": "date-time", "omitWhenMerged": true @@ -76,11 +76,12 @@ "minLength": 1 } }, - "minProperties": 1 + "minProperties": 1, + "omitWhenMerged": true }, "tag": { "title": "Release Tag", - "description": "A tag labeling the release (for example, as corresponding to a stage of the contracting process), using the the open [releaseTag](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#release-tag) codelist. Codes outside the releaseTag codelist might indicate, for example, the notice or form to which the release corresponds, or the event that triggered the publication of the release. Planning processes must not use the 'tender' code, even if they use `tender` fields.", + "description": "A tag labeling the release, using the the open [releaseTag](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#release-tag) codelist. Tags distinguish, for example, planning and contracting processes and the stages of contracting processes. Codes outside the releaseTag codelist might indicate, for example, the notice or form to which the release corresponds, or the event that triggered the publication of the release. Planning processes must not use the 'tender' code, even if they use `tender` fields.", "type": "array", "items": { "type": "string", @@ -108,7 +109,7 @@ }, "parties": { "title": "Parties", - "description": "Information on the organizations who are involved in the contracting process and their roles, e.g. buyer, procuring entity, supplier etc. Organization references elsewhere in the schema are used to refer back to this entries in this list.", + "description": "Information on the organizations who are involved in the contracting (or planning) process and their roles, e.g. buyer, procuring entity, supplier etc. Organization references elsewhere in the schema are used to refer back to this entries in this list.", "type": "array", "items": { "title": "Organization", @@ -117,13 +118,13 @@ "properties": { "name": { "title": "Common name", - "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting process.", + "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting (or planning) process.", "type": "string", "minLength": 1 }, "id": { "type": "string", - "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the contracting process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", + "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the (contracting or planning) process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", "title": "ID", "minLength": 1 }, @@ -182,7 +183,7 @@ }, "additionalIdentifiers": { "title": "Additional identifiers", - "description": "A list of additional / supplemental identifiers for the organization or participant, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "description": "Additional identifiers for this organization, following the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This field can also be used to provide an identifier for an organizational unit (for example, an agency, branch or division).", "type": "array", "items": { "title": "Identifier", @@ -243,7 +244,7 @@ }, "address": { "title": "Address", - "description": "An address. This may be the legally registered address of the organization, or may be a correspondence address for this particular contracting process.", + "description": "An address. This may be the legally registered address of the organization, or may be a correspondence address for this particular contracting (or planning) process.", "type": "object", "properties": { "streetAddress": { @@ -585,7 +586,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", "minLength": 1 }, "email": { @@ -639,7 +640,7 @@ }, "roles": { "title": "Roles", - "description": "The organization's role(s) in the contracting process, using the open [partyRole](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#party-role) codelist.", + "description": "The organization's role(s) in the contracting (or planning) process, using the open [partyRole](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#party-role) codelist.", "type": [ "array", "null" @@ -660,6 +661,27 @@ ], "description": "Additional classification information about organizations can be provided using organization details extensions that define particular fields and classification schemes.", "title": "Details", + "properties": { + "scale": { + "title": "Scale", + "description": "The size or scale of the organization.", + "type": [ + "string", + "null" + ], + "enum": [ + "micro", + "sme", + "small", + "medium", + "large", + "selfEmployed", + null + ], + "codelist": "partyScale.csv", + "openCodelist": false + } + }, "minProperties": 1 } }, @@ -1165,7 +1187,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", "minLength": 1 }, "email": { @@ -1223,7 +1245,7 @@ } }, "type": "object", - "description": "The organization aiming to conclude a contract with a supplier or to use the goods, works or services resulting from the contract.", + "description": "The organization aiming to conclude a contract with a supplier or to use the goods, services or works resulting from the contract.", "title": "Buyer", "minProperties": 1, "required": [ @@ -1257,11 +1279,11 @@ "budget": { "type": "object", "title": "Budget", - "description": "Details of the budget that funds the planned contracting process.", + "description": "Details of the budget that will fund the future contract(s)", "properties": { "id": { "title": "ID", - "description": "An identifier for the budget line item which provides funds for this contracting process. This identifier should be possible to cross-reference against formal budget documents.", + "description": "An identifier of the budget that will fund the future contract(s). This identifier should be possible to cross-reference against formal budget documents.", "type": [ "string", "null" @@ -1270,7 +1292,7 @@ }, "description": { "title": "Budget Source", - "description": "A short free-text description of the budget allocation for this contracting process. This may be used to provide human-readable information on the budget category allocated to this contracting process, and/or, information about the nature and source of the allocation (e.g. conditional, confirmed; any official authorizations given to the budget allocation).", + "description": "A short free-text description of the budget that will fund the future contract(s). This may be used to provide human-readable information on: the budget category for the future contract(s) and/or the nature and source of the budget allocation (e.g. conditional, confirmed, or any official authorizations given to the budget allocation).", "type": [ "string", "null" @@ -1279,7 +1301,7 @@ }, "amount": { "title": "Amount", - "description": "The value reserved in the budget for this contracting process. A negative value indicates anticipated income to the budget as a result of this contracting process, rather than expenditure. Where the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line funding this contracting process.", + "description": "The value reserved for the future contract(s), within the budget. A negative value indicates income to the budget as a result of the future contract(s), rather than expenditure. If the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line that will fund the future contract(s).", "type": "object", "properties": { "amount": { @@ -1610,7 +1632,7 @@ }, "project": { "title": "Project title", - "description": "The name of the project through which this contracting process is funded (if applicable). Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry. No translation option is offered for this string, as translated values can be provided in third-party data, linked from the data source above.", + "description": "The name of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry.", "type": [ "string", "null" @@ -1619,7 +1641,7 @@ }, "projectID": { "title": "Project identifier", - "description": "An external identifier for the project that this contracting process forms part of, or is funded via (if applicable). Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", + "description": "The identifier of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", "null" @@ -1628,7 +1650,7 @@ }, "uri": { "title": "Linked budget information", - "description": "A URI pointing directly to a machine-readable record about the budget line-item or line-items that fund this contracting process. Information can be provided in a range of formats, including using IATI, the Open Fiscal Data Standard or any other standard which provides structured data on budget sources. Human readable documents can be included using the planning.documents block.", + "description": "The URL of a machine-readable resource about the budget that will fund the future contract(s). For human-readable documents, see the `planning.documents` array.", "type": [ "string", "null" @@ -1836,7 +1858,7 @@ "type": "array", "items": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -1881,7 +1903,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -2476,12 +2498,47 @@ "properties": { "id": { "title": "Tender ID", - "description": "An identifier for this tender process. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", + "description": "An identifier for this tender. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", "type": [ "string" ], "minLength": 1 }, + "identifiers": { + "title": "Additional tender identifiers", + "description": "Additional identifiers for this tender. This field can be used to provide local identifiers for the tender.", + "type": "array", + "items": { + "title": "Simple identifier", + "description": "An unambiguous reference to a resource within a given context.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list, register or system from which the identifier is taken.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier taken from the scheme.", + "type": [ + "string", + "null" + ], + "versionId": true, + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "wholeListMerge": true, + "minItems": 1 + }, "title": { "title": "Tender title", "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement. The title should be less than 150 characters in length.", @@ -3013,7 +3070,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", "minLength": 1 }, "email": { @@ -3071,7 +3128,7 @@ } }, "type": "object", - "description": "The organization managing the contracting process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", + "description": "The organization managing the contracting (or planning) process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", "title": "Procuring entity", "minProperties": 1, "required": [ @@ -3081,12 +3138,12 @@ }, "items": { "title": "Items to be procured", - "description": "The goods and services to be purchased, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", + "description": "The goods, services or works to be purchased, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", "type": "array", "items": { "title": "Item", "type": "object", - "description": "A good, service, or work to be contracted.", + "description": "A line-item of the goods, services, or works to be contracted.", "required": [ "id" ], @@ -3101,7 +3158,7 @@ }, "description": { "title": "Description", - "description": "A description of the goods, services to be provided.", + "description": "A description of the goods, services or works to be provided.", "type": [ "string", "null" @@ -3237,7 +3294,7 @@ }, "unit": { "title": "Unit", - "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", "type": "object", "properties": { "scheme": { @@ -3609,51 +3666,6 @@ "string", "null" ] - }, - "weight": { - "title": "Weight", - "description": "The weight of one item unit.", - "type": "object", - "properties": { - "unit": { - "title": "Unit", - "description": "The code and scheme for the unit in which the weight is specified.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "quantity": { - "title": "Quantity", - "description": "The number of units.", - "type": [ - "number", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 } }, "patternProperties": { @@ -3684,7 +3696,7 @@ }, "value": { "title": "Value", - "description": "The estimated value of the procurement, as estimated when publishing the tender information. A negative value indicates that the contracting process may involve payments from the supplier to the buyer (commonly used in concession contracts).", + "description": "The estimated value of the procurement, as estimated when publishing the tender information. A negative value indicates that the future contract(s) may involve payments from the supplier to the buyer (commonly used in concession contracts).", "type": "object", "properties": { "amount": { @@ -4015,7 +4027,7 @@ }, "minValue": { "title": "Minimum value", - "description": "The estimated minimum value of the procurement. A negative value indicates that the contracting process may involve payments from the supplier to the buyer (commonly used in concession contracts).", + "description": "The estimated minimum value of the procurement. A negative value indicates that the future contract(s) may involve payments from the supplier to the buyer (commonly used in concession contracts).", "type": "object", "properties": { "amount": { @@ -4712,7 +4724,7 @@ }, "mainProcurementCategory": { "title": "Main procurement category", - "description": "The primary category describing the main object of this contracting process, from the closed [procurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#procurement-category) codelist.", + "description": "The primary category describing the main object of this contracting (or planning) process, from the closed [procurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#procurement-category) codelist.", "type": [ "string", "null" @@ -4721,14 +4733,14 @@ "openCodelist": false, "enum": [ "goods", - "works", "services", + "works", null ] }, "additionalProcurementCategories": { "title": "Additional procurement categories", - "description": "Any additional categories describing the objects of this contracting process, using the open [extendedProcurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#extended-procurement-category) codelist.", + "description": "Any additional categories describing the objects of this contracting (or planning) process, using the open [extendedProcurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#extended-procurement-category) codelist.", "type": [ "array", "null" @@ -4890,7 +4902,7 @@ }, "hasEnquiries": { "title": "Has enquiries?", - "description": "A true/false field to indicate whether any enquiries were received during the tender process. Structured information on enquiries that were received, and responses to them, can be provided using the enquiries extension.", + "description": "A true/false field to indicate whether any enquiries were received during the tender stage. Structured information on enquiries that were received, and responses to them, can be provided using the enquiries extension.", "type": [ "boolean", "null" @@ -4920,7 +4932,7 @@ }, "selectionCriteria": { "title": "Selection criteria", - "description": "The minimum requirements for tenderers to participate in the contracting process. Selection criteria ensure that a tenderer has the legal and financial capacities and the technical and professional abilities to perform the contract to be awarded. More structured information can be provided using the selection criteria extension.", + "description": "The minimum requirements for potential suppliers to participate in the contracting process. Selection criteria ensure that a potential supplier has the legal and financial capacities and the technical and professional abilities to perform the contract. More structured information can be provided using the selection criteria extension.", "type": [ "string", "null" @@ -5556,7 +5568,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", "minLength": 1 }, "email": { @@ -5787,7 +5799,7 @@ "type": "array", "items": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -5832,7 +5844,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -6448,7 +6460,7 @@ "minLength": 1 }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -6457,7 +6469,7 @@ "minLength": 1 }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -6561,7 +6573,7 @@ "minLength": 1 }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -6570,7 +6582,7 @@ "minLength": 1 }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -6704,7 +6716,7 @@ "properties": { "id": { "title": "Award ID", - "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", + "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the contracting process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", "type": [ "string" ], @@ -6763,9 +6775,18 @@ ], "format": "date-time" }, + "datePublished": { + "title": "Date published", + "description": "The date on which the award was published.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "value": { "title": "Value", - "description": "The value of this award. There may be more than one award per procurement. A negative value indicates that the award may involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", + "description": "The value of this award. There may be more than one award per procurement. A negative value indicates that the contract(s) resulting from this award may involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", "type": "object", "properties": { "amount": { @@ -8244,7 +8265,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", "minLength": 1 }, "email": { @@ -8315,13 +8336,13 @@ }, "items": { "title": "Items awarded", - "description": "The goods and services awarded in this award, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", + "description": "The goods, services or works awarded in this award, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", "type": "array", "minItems": 1, "items": { "title": "Item", "type": "object", - "description": "A good, service, or work to be contracted.", + "description": "A line-item of the goods, services, or works to be contracted.", "required": [ "id" ], @@ -8336,7 +8357,7 @@ }, "description": { "title": "Description", - "description": "A description of the goods, services to be provided.", + "description": "A description of the goods, services or works to be provided.", "type": [ "string", "null" @@ -8472,7 +8493,7 @@ }, "unit": { "title": "Unit", - "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", "type": "object", "properties": { "scheme": { @@ -8844,51 +8865,6 @@ "string", "null" ] - }, - "weight": { - "title": "Weight", - "description": "The weight of one item unit.", - "type": "object", - "properties": { - "unit": { - "title": "Unit", - "description": "The code and scheme for the unit in which the weight is specified.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "quantity": { - "title": "Quantity", - "description": "The number of units.", - "type": [ - "number", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 } }, "patternProperties": { @@ -9159,7 +9135,7 @@ "minLength": 1 }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -9168,7 +9144,7 @@ "minLength": 1 }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -9272,7 +9248,7 @@ "minLength": 1 }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -9281,7 +9257,7 @@ "minLength": 1 }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -9384,12 +9360,47 @@ "properties": { "id": { "title": "Contract ID", - "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", + "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the contracting process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", "type": [ "string" ], "minLength": 1 }, + "identifiers": { + "title": "Additional contract identifiers", + "description": "Additional identifiers for this contract. This field can be used to provide local identifiers for the contract.", + "type": "array", + "items": { + "title": "Simple identifier", + "description": "An unambiguous reference to a resource within a given context.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list, register or system from which the identifier is taken.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier taken from the scheme.", + "type": [ + "string", + "null" + ], + "versionId": true, + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "wholeListMerge": true, + "minItems": 1 + }, "awardID": { "title": "Award ID", "description": "The award.id against which this contract is being issued.", @@ -10449,13 +10460,13 @@ }, "items": { "title": "Items contracted", - "description": "The goods, services, and any intangible outcomes in this contract. If the items contracted are identical to the items awarded, this field should be omitted.", + "description": "The goods, services or works in this contract. If the items contracted are identical to the items awarded, this field should be omitted.", "type": "array", "minItems": 1, "items": { "title": "Item", "type": "object", - "description": "A good, service, or work to be contracted.", + "description": "A line-item of the goods, services, or works to be contracted.", "required": [ "id" ], @@ -10470,7 +10481,7 @@ }, "description": { "title": "Description", - "description": "A description of the goods, services to be provided.", + "description": "A description of the goods, services or works to be provided.", "type": [ "string", "null" @@ -10606,7 +10617,7 @@ }, "unit": { "title": "Unit", - "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", "type": "object", "properties": { "scheme": { @@ -10978,51 +10989,6 @@ "string", "null" ] - }, - "weight": { - "title": "Weight", - "description": "The weight of one item unit.", - "type": "object", - "properties": { - "unit": { - "title": "Unit", - "description": "The code and scheme for the unit in which the weight is specified.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "quantity": { - "title": "Quantity", - "description": "The number of units.", - "type": [ - "number", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 } }, "patternProperties": { @@ -11262,7 +11228,7 @@ "items": { "type": "object", "title": "Transaction information", - "description": "A spending transaction related to the contracting process. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", + "description": "A spending transaction related to the contract. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", "required": [ "id" ], @@ -12108,7 +12074,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", "minLength": 1 }, "email": { @@ -12658,7 +12624,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", "minLength": 1 }, "email": { @@ -13121,7 +13087,7 @@ }, "minProperties": 1, "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.", + "description": "This field has been replaced by the `transaction.payer` field to resolve ambiguity arising from 'provider' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } }, @@ -13178,7 +13144,7 @@ }, "minProperties": 1, "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.", + "description": "This field has been replaced by the `transaction.payee` field to resolve ambiguity arising from 'receiver' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } } @@ -13194,7 +13160,7 @@ "type": "array", "items": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -13239,7 +13205,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -13974,7 +13940,7 @@ "relatedProcesses": { "uniqueItems": true, "items": { - "description": "A reference to a related contracting process: generally one preceding or following on from the current process.", + "description": "A reference to a related contracting (or planning) process: generally one preceding or following on from the current process.", "type": "object", "title": "Related Process", "properties": { @@ -14001,7 +13967,7 @@ "uniqueItems": true }, "title": { - "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", + "description": "The title of the related process, where referencing a contracting (or planning) process, this field should match the tender/title field in the related process.", "title": "Related process title", "type": [ "string", @@ -14055,7 +14021,7 @@ "type": "array", "items": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -14100,7 +14066,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -14716,7 +14682,7 @@ "minLength": 1 }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -14725,7 +14691,7 @@ "minLength": 1 }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -14829,7 +14795,7 @@ "minLength": 1 }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -14838,7 +14804,7 @@ "minLength": 1 }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -14940,7 +14906,7 @@ "relatedProcesses": { "uniqueItems": true, "items": { - "description": "A reference to a related contracting process: generally one preceding or following on from the current process.", + "description": "A reference to a related contracting (or planning) process: generally one preceding or following on from the current process.", "type": "object", "title": "Related Process", "properties": { @@ -14967,7 +14933,7 @@ "uniqueItems": true }, "title": { - "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", + "description": "The title of the related process, where referencing a contracting (or planning) process, this field should match the tender/title field in the related process.", "title": "Related process title", "type": [ "string", @@ -15017,7 +14983,7 @@ }, "links": { "title": "Links", - "description": "Links to related resources. In a release, links relate to the individual release: for example, a link to a canonical version of the release in another OCDS publication. In a compiled release, links relate to the entire contracting process: for example, a link to a resource in a non-OCDS publication that represents the entire contracting process. For references to related processes, see the `relatedProcesses` array.", + "description": "Links to related resources. In a release, links relate to the individual release: for example, a link to a canonical version of the release in another OCDS publication. In a compiled release, links relate to the entire contracting (or planning) process: for example, a link to a resource in a non-OCDS publication that represents the entire contracting process. For references to related processes, see the `relatedProcesses` array.", "type": "array", "items": { "title": "Link", @@ -15080,11 +15046,11 @@ "budget": { "type": "object", "title": "Budget", - "description": "Details of the budget that funds the planned contracting process.", + "description": "Details of the budget that will fund the future contract(s)", "properties": { "id": { "title": "ID", - "description": "An identifier for the budget line item which provides funds for this contracting process. This identifier should be possible to cross-reference against formal budget documents.", + "description": "An identifier of the budget that will fund the future contract(s). This identifier should be possible to cross-reference against formal budget documents.", "type": [ "string", "null" @@ -15093,7 +15059,7 @@ }, "description": { "title": "Budget Source", - "description": "A short free-text description of the budget allocation for this contracting process. This may be used to provide human-readable information on the budget category allocated to this contracting process, and/or, information about the nature and source of the allocation (e.g. conditional, confirmed; any official authorizations given to the budget allocation).", + "description": "A short free-text description of the budget that will fund the future contract(s). This may be used to provide human-readable information on: the budget category for the future contract(s) and/or the nature and source of the budget allocation (e.g. conditional, confirmed, or any official authorizations given to the budget allocation).", "type": [ "string", "null" @@ -15102,7 +15068,7 @@ }, "amount": { "title": "Amount", - "description": "The value reserved in the budget for this contracting process. A negative value indicates anticipated income to the budget as a result of this contracting process, rather than expenditure. Where the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line funding this contracting process.", + "description": "The value reserved for the future contract(s), within the budget. A negative value indicates income to the budget as a result of the future contract(s), rather than expenditure. If the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line that will fund the future contract(s).", "type": "object", "properties": { "amount": { @@ -15433,7 +15399,7 @@ }, "project": { "title": "Project title", - "description": "The name of the project through which this contracting process is funded (if applicable). Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry. No translation option is offered for this string, as translated values can be provided in third-party data, linked from the data source above.", + "description": "The name of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry.", "type": [ "string", "null" @@ -15442,7 +15408,7 @@ }, "projectID": { "title": "Project identifier", - "description": "An external identifier for the project that this contracting process forms part of, or is funded via (if applicable). Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", + "description": "The identifier of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", "null" @@ -15451,7 +15417,7 @@ }, "uri": { "title": "Linked budget information", - "description": "A URI pointing directly to a machine-readable record about the budget line-item or line-items that fund this contracting process. Information can be provided in a range of formats, including using IATI, the Open Fiscal Data Standard or any other standard which provides structured data on budget sources. Human readable documents can be included using the planning.documents block.", + "description": "The URL of a machine-readable resource about the budget that will fund the future contract(s). For human-readable documents, see the `planning.documents` array.", "type": [ "string", "null" @@ -15659,7 +15625,7 @@ "type": "array", "items": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -15704,7 +15670,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -16299,12 +16265,47 @@ "properties": { "id": { "title": "Tender ID", - "description": "An identifier for this tender process. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", + "description": "An identifier for this tender. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", "type": [ "string" ], "minLength": 1 }, + "identifiers": { + "title": "Additional tender identifiers", + "description": "Additional identifiers for this tender. This field can be used to provide local identifiers for the tender.", + "type": "array", + "items": { + "title": "Simple identifier", + "description": "An unambiguous reference to a resource within a given context.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list, register or system from which the identifier is taken.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier taken from the scheme.", + "type": [ + "string", + "null" + ], + "versionId": true, + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "wholeListMerge": true, + "minItems": 1 + }, "title": { "title": "Tender title", "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement. The title should be less than 150 characters in length.", @@ -16836,7 +16837,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", "minLength": 1 }, "email": { @@ -16894,7 +16895,7 @@ } }, "type": "object", - "description": "The organization managing the contracting process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", + "description": "The organization managing the contracting (or planning) process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", "title": "Procuring entity", "minProperties": 1, "required": [ @@ -16904,12 +16905,12 @@ }, "items": { "title": "Items to be procured", - "description": "The goods and services to be purchased, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", + "description": "The goods, services or works to be purchased, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", "type": "array", "items": { "title": "Item", "type": "object", - "description": "A good, service, or work to be contracted.", + "description": "A line-item of the goods, services, or works to be contracted.", "required": [ "id" ], @@ -16924,7 +16925,7 @@ }, "description": { "title": "Description", - "description": "A description of the goods, services to be provided.", + "description": "A description of the goods, services or works to be provided.", "type": [ "string", "null" @@ -17060,7 +17061,7 @@ }, "unit": { "title": "Unit", - "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", "type": "object", "properties": { "scheme": { @@ -17432,51 +17433,6 @@ "string", "null" ] - }, - "weight": { - "title": "Weight", - "description": "The weight of one item unit.", - "type": "object", - "properties": { - "unit": { - "title": "Unit", - "description": "The code and scheme for the unit in which the weight is specified.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "quantity": { - "title": "Quantity", - "description": "The number of units.", - "type": [ - "number", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 } }, "patternProperties": { @@ -17507,7 +17463,7 @@ }, "value": { "title": "Value", - "description": "The estimated value of the procurement, as estimated when publishing the tender information. A negative value indicates that the contracting process may involve payments from the supplier to the buyer (commonly used in concession contracts).", + "description": "The estimated value of the procurement, as estimated when publishing the tender information. A negative value indicates that the future contract(s) may involve payments from the supplier to the buyer (commonly used in concession contracts).", "type": "object", "properties": { "amount": { @@ -17838,7 +17794,7 @@ }, "minValue": { "title": "Minimum value", - "description": "The estimated minimum value of the procurement. A negative value indicates that the contracting process may involve payments from the supplier to the buyer (commonly used in concession contracts).", + "description": "The estimated minimum value of the procurement. A negative value indicates that the future contract(s) may involve payments from the supplier to the buyer (commonly used in concession contracts).", "type": "object", "properties": { "amount": { @@ -18535,7 +18491,7 @@ }, "mainProcurementCategory": { "title": "Main procurement category", - "description": "The primary category describing the main object of this contracting process, from the closed [procurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#procurement-category) codelist.", + "description": "The primary category describing the main object of this contracting (or planning) process, from the closed [procurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#procurement-category) codelist.", "type": [ "string", "null" @@ -18544,14 +18500,14 @@ "openCodelist": false, "enum": [ "goods", - "works", "services", + "works", null ] }, "additionalProcurementCategories": { "title": "Additional procurement categories", - "description": "Any additional categories describing the objects of this contracting process, using the open [extendedProcurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#extended-procurement-category) codelist.", + "description": "Any additional categories describing the objects of this contracting (or planning) process, using the open [extendedProcurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#extended-procurement-category) codelist.", "type": [ "array", "null" @@ -18713,7 +18669,7 @@ }, "hasEnquiries": { "title": "Has enquiries?", - "description": "A true/false field to indicate whether any enquiries were received during the tender process. Structured information on enquiries that were received, and responses to them, can be provided using the enquiries extension.", + "description": "A true/false field to indicate whether any enquiries were received during the tender stage. Structured information on enquiries that were received, and responses to them, can be provided using the enquiries extension.", "type": [ "boolean", "null" @@ -18743,7 +18699,7 @@ }, "selectionCriteria": { "title": "Selection criteria", - "description": "The minimum requirements for tenderers to participate in the contracting process. Selection criteria ensure that a tenderer has the legal and financial capacities and the technical and professional abilities to perform the contract to be awarded. More structured information can be provided using the selection criteria extension.", + "description": "The minimum requirements for potential suppliers to participate in the contracting process. Selection criteria ensure that a potential supplier has the legal and financial capacities and the technical and professional abilities to perform the contract. More structured information can be provided using the selection criteria extension.", "type": [ "string", "null" @@ -19379,7 +19335,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", "minLength": 1 }, "email": { @@ -19610,7 +19566,7 @@ "type": "array", "items": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -19655,7 +19611,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -20271,7 +20227,7 @@ "minLength": 1 }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -20280,7 +20236,7 @@ "minLength": 1 }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -20384,7 +20340,7 @@ "minLength": 1 }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -20393,7 +20349,7 @@ "minLength": 1 }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -20523,7 +20479,7 @@ "properties": { "id": { "title": "Award ID", - "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", + "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the contracting process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", "type": [ "string" ], @@ -20582,9 +20538,18 @@ ], "format": "date-time" }, + "datePublished": { + "title": "Date published", + "description": "The date on which the award was published.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "value": { "title": "Value", - "description": "The value of this award. There may be more than one award per procurement. A negative value indicates that the award may involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", + "description": "The value of this award. There may be more than one award per procurement. A negative value indicates that the contract(s) resulting from this award may involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", "type": "object", "properties": { "amount": { @@ -22063,7 +22028,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", "minLength": 1 }, "email": { @@ -22134,13 +22099,13 @@ }, "items": { "title": "Items awarded", - "description": "The goods and services awarded in this award, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", + "description": "The goods, services or works awarded in this award, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", "type": "array", "minItems": 1, "items": { "title": "Item", "type": "object", - "description": "A good, service, or work to be contracted.", + "description": "A line-item of the goods, services, or works to be contracted.", "required": [ "id" ], @@ -22155,7 +22120,7 @@ }, "description": { "title": "Description", - "description": "A description of the goods, services to be provided.", + "description": "A description of the goods, services or works to be provided.", "type": [ "string", "null" @@ -22291,7 +22256,7 @@ }, "unit": { "title": "Unit", - "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", "type": "object", "properties": { "scheme": { @@ -22663,51 +22628,6 @@ "string", "null" ] - }, - "weight": { - "title": "Weight", - "description": "The weight of one item unit.", - "type": "object", - "properties": { - "unit": { - "title": "Unit", - "description": "The code and scheme for the unit in which the weight is specified.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "quantity": { - "title": "Quantity", - "description": "The number of units.", - "type": [ - "number", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 } }, "patternProperties": { @@ -22978,7 +22898,7 @@ "minLength": 1 }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -22987,7 +22907,7 @@ "minLength": 1 }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -23091,7 +23011,7 @@ "minLength": 1 }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -23100,7 +23020,7 @@ "minLength": 1 }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -23196,12 +23116,47 @@ "properties": { "id": { "title": "Contract ID", - "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", + "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the contracting process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", "type": [ "string" ], "minLength": 1 }, + "identifiers": { + "title": "Additional contract identifiers", + "description": "Additional identifiers for this contract. This field can be used to provide local identifiers for the contract.", + "type": "array", + "items": { + "title": "Simple identifier", + "description": "An unambiguous reference to a resource within a given context.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list, register or system from which the identifier is taken.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier taken from the scheme.", + "type": [ + "string", + "null" + ], + "versionId": true, + "minLength": 1 + } + }, + "minProperties": 1 + }, + "uniqueItems": true, + "wholeListMerge": true, + "minItems": 1 + }, "awardID": { "title": "Award ID", "description": "The award.id against which this contract is being issued.", @@ -24261,13 +24216,13 @@ }, "items": { "title": "Items contracted", - "description": "The goods, services, and any intangible outcomes in this contract. If the items contracted are identical to the items awarded, this field should be omitted.", + "description": "The goods, services or works in this contract. If the items contracted are identical to the items awarded, this field should be omitted.", "type": "array", "minItems": 1, "items": { "title": "Item", "type": "object", - "description": "A good, service, or work to be contracted.", + "description": "A line-item of the goods, services, or works to be contracted.", "required": [ "id" ], @@ -24282,7 +24237,7 @@ }, "description": { "title": "Description", - "description": "A description of the goods, services to be provided.", + "description": "A description of the goods, services or works to be provided.", "type": [ "string", "null" @@ -24418,7 +24373,7 @@ }, "unit": { "title": "Unit", - "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", "type": "object", "properties": { "scheme": { @@ -24790,51 +24745,6 @@ "string", "null" ] - }, - "weight": { - "title": "Weight", - "description": "The weight of one item unit.", - "type": "object", - "properties": { - "unit": { - "title": "Unit", - "description": "The code and scheme for the unit in which the weight is specified.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "quantity": { - "title": "Quantity", - "description": "The number of units.", - "type": [ - "number", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 } }, "patternProperties": { @@ -25074,7 +24984,7 @@ "items": { "type": "object", "title": "Transaction information", - "description": "A spending transaction related to the contracting process. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", + "description": "A spending transaction related to the contract. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", "required": [ "id" ], @@ -25920,7 +25830,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", "minLength": 1 }, "email": { @@ -26470,7 +26380,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", "minLength": 1 }, "email": { @@ -26933,7 +26843,7 @@ }, "minProperties": 1, "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.", + "description": "This field has been replaced by the `transaction.payer` field to resolve ambiguity arising from 'provider' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } }, @@ -26990,7 +26900,7 @@ }, "minProperties": 1, "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.", + "description": "This field has been replaced by the `transaction.payee` field to resolve ambiguity arising from 'receiver' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } } @@ -27006,7 +26916,7 @@ "type": "array", "items": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -27051,7 +26961,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -27786,7 +27696,7 @@ "relatedProcesses": { "uniqueItems": true, "items": { - "description": "A reference to a related contracting process: generally one preceding or following on from the current process.", + "description": "A reference to a related contracting (or planning) process: generally one preceding or following on from the current process.", "type": "object", "title": "Related Process", "properties": { @@ -27813,7 +27723,7 @@ "uniqueItems": true }, "title": { - "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", + "description": "The title of the related process, where referencing a contracting (or planning) process, this field should match the tender/title field in the related process.", "title": "Related process title", "type": [ "string", @@ -27867,7 +27777,7 @@ "type": "array", "items": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -27912,7 +27822,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -28528,7 +28438,7 @@ "minLength": 1 }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -28537,7 +28447,7 @@ "minLength": 1 }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -28641,7 +28551,7 @@ "minLength": 1 }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -28650,7 +28560,7 @@ "minLength": 1 }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -28747,7 +28657,7 @@ "items": { "type": "object", "title": "Transaction information", - "description": "A spending transaction related to the contracting process. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", + "description": "A spending transaction related to the contract. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", "required": [ "id" ], @@ -29593,7 +29503,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", "minLength": 1 }, "email": { @@ -30143,7 +30053,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", "minLength": 1 }, "email": { @@ -30606,7 +30516,7 @@ }, "minProperties": 1, "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.", + "description": "This field has been replaced by the `transaction.payer` field to resolve ambiguity arising from 'provider' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } }, @@ -30663,7 +30573,7 @@ }, "minProperties": 1, "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.", + "description": "This field has been replaced by the `transaction.payee` field to resolve ambiguity arising from 'receiver' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } } @@ -30679,7 +30589,7 @@ "type": "array", "items": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -30724,7 +30634,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -31458,7 +31368,7 @@ }, "Milestone": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -31503,7 +31413,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -32225,11 +32135,11 @@ "Budget": { "type": "object", "title": "Budget information", - "description": "This section contains basic information about the budget estimated for, or allocated to, this contracting process at the present time. Further documentation and data about how budgets have been allocated to a contracting process should be published outside of OCDS data, according to the best available standards.", + "description": "This section contains basic information about the budget that will fund the future contract(s). Further documentation and data about how budgets have been allocated should be published outside of OCDS data, according to the best available standards.", "properties": { "id": { "title": "ID", - "description": "An identifier for the budget line item which provides funds for this contracting process. This identifier should be possible to cross-reference against formal budget documents.", + "description": "An identifier of the budget that will fund the future contract(s). This identifier should be possible to cross-reference against formal budget documents.", "type": [ "string", "null" @@ -32238,7 +32148,7 @@ }, "description": { "title": "Budget Source", - "description": "A short free-text description of the budget allocation for this contracting process. This may be used to provide human-readable information on the budget category allocated to this contracting process, and/or, information about the nature and source of the allocation (e.g. conditional, confirmed; any official authorizations given to the budget allocation).", + "description": "A short free-text description of the budget that will fund the future contract(s). This may be used to provide human-readable information on: the budget category for the future contract(s) and/or the nature and source of the budget allocation (e.g. conditional, confirmed, or any official authorizations given to the budget allocation).", "type": [ "string", "null" @@ -32247,7 +32157,7 @@ }, "amount": { "title": "Amount", - "description": "The value reserved in the budget for this contracting process. A negative value indicates anticipated income to the budget as a result of this contracting process, rather than expenditure. Where the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line funding this contracting process.", + "description": "The value reserved for the future contract(s), within the budget. A negative value indicates income to the budget as a result of the future contract(s), rather than expenditure. If the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line that will fund the future contract(s).", "type": "object", "properties": { "amount": { @@ -32578,7 +32488,7 @@ }, "project": { "title": "Project title", - "description": "The name of the project through which this contracting process is funded (if applicable). Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry. No translation option is offered for this string, as translated values can be provided in third-party data, linked from the data source above.", + "description": "The name of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry.", "type": [ "string", "null" @@ -32587,7 +32497,7 @@ }, "projectID": { "title": "Project identifier", - "description": "An external identifier for the project that this contracting process forms part of, or is funded via (if applicable). Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", + "description": "The identifier of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", "null" @@ -32596,7 +32506,7 @@ }, "uri": { "title": "Linked budget information", - "description": "A URI pointing directly to a machine-readable record about the budget line-item or line-items that fund this contracting process. Information can be provided in a range of formats, including using IATI, the Open Fiscal Data Standard or any other standard which provides structured data on budget sources. Human readable documents can be included using the planning.documents block.", + "description": "The URL of a machine-readable resource about the budget that will fund the future contract(s). For human-readable documents, see the `planning.documents` array.", "type": [ "string", "null" @@ -32645,7 +32555,7 @@ "Transaction": { "type": "object", "title": "Transaction information", - "description": "A spending transaction related to the contracting process. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", + "description": "A spending transaction related to the contract. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", "required": [ "id" ], @@ -33491,7 +33401,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", "minLength": 1 }, "email": { @@ -34041,7 +33951,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", "minLength": 1 }, "email": { @@ -34504,7 +34414,7 @@ }, "minProperties": 1, "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.", + "description": "This field has been replaced by the `transaction.payer` field to resolve ambiguity arising from 'provider' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } }, @@ -34561,7 +34471,7 @@ }, "minProperties": 1, "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.", + "description": "This field has been replaced by the `transaction.payee` field to resolve ambiguity arising from 'receiver' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } } @@ -35052,7 +34962,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", "minLength": 1 }, "email": { @@ -35125,13 +35035,13 @@ "properties": { "name": { "title": "Common name", - "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting process.", + "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting (or planning) process.", "type": "string", "minLength": 1 }, "id": { "type": "string", - "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the contracting process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", + "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the (contracting or planning) process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", "title": "ID", "minLength": 1 }, @@ -35190,7 +35100,7 @@ }, "additionalIdentifiers": { "title": "Additional identifiers", - "description": "A list of additional / supplemental identifiers for the organization or participant, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "description": "Additional identifiers for this organization, following the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This field can also be used to provide an identifier for an organizational unit (for example, an agency, branch or division).", "type": "array", "items": { "title": "Identifier", @@ -35251,7 +35161,7 @@ }, "address": { "title": "Address", - "description": "An address. This may be the legally registered address of the organization, or may be a correspondence address for this particular contracting process.", + "description": "An address. This may be the legally registered address of the organization, or may be a correspondence address for this particular contracting (or planning) process.", "type": "object", "properties": { "streetAddress": { @@ -35593,7 +35503,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", "minLength": 1 }, "email": { @@ -35647,7 +35557,7 @@ }, "roles": { "title": "Roles", - "description": "The organization's role(s) in the contracting process, using the open [partyRole](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#party-role) codelist.", + "description": "The organization's role(s) in the contracting (or planning) process, using the open [partyRole](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#party-role) codelist.", "type": [ "array", "null" @@ -35668,6 +35578,27 @@ ], "description": "Additional classification information about organizations can be provided using organization details extensions that define particular fields and classification schemes.", "title": "Details", + "properties": { + "scale": { + "title": "Scale", + "description": "The size or scale of the organization.", + "type": [ + "string", + "null" + ], + "enum": [ + "micro", + "sme", + "small", + "medium", + "large", + "selfEmployed", + null + ], + "codelist": "partyScale.csv", + "openCodelist": false + } + }, "minProperties": 1 } }, @@ -35689,7 +35620,7 @@ "Item": { "title": "Item", "type": "object", - "description": "A good, service, or work to be contracted.", + "description": "A line-item of the goods, services, or works to be contracted.", "required": [ "id" ], @@ -35704,7 +35635,7 @@ }, "description": { "title": "Description", - "description": "A description of the goods, services to be provided.", + "description": "A description of the goods, services or works to be provided.", "type": [ "string", "null" @@ -35840,7 +35771,7 @@ }, "unit": { "title": "Unit", - "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", "type": "object", "properties": { "scheme": { @@ -36212,51 +36143,6 @@ "string", "null" ] - }, - "weight": { - "title": "Weight", - "description": "The weight of one item unit.", - "type": "object", - "properties": { - "unit": { - "title": "Unit", - "description": "The code and scheme for the unit in which the weight is specified.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "quantity": { - "title": "Quantity", - "description": "The number of units.", - "type": [ - "number", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 } }, "patternProperties": { @@ -36321,7 +36207,7 @@ "minLength": 1 }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -36330,7 +36216,7 @@ "minLength": 1 }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -36836,7 +36722,7 @@ "ContactPoint": { "title": "Contact point", "type": "object", - "description": "A person, contact point or department to contact in relation to this contracting process.", + "description": "A person, contact point or department to contact in relation to this contracting (or planning) process.", "properties": { "name": { "title": "Name", @@ -36844,7 +36730,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", "minLength": 1 }, "email": { @@ -37229,7 +37115,7 @@ }, "Period": { "title": "Period", - "description": "Key events during a contracting process may have a known start date, end date, duration, or maximum extent (the latest date the period can extend to). In some cases, not all of these fields will have known or relevant values.", + "description": "Key events during a contracting (or planning) process may have a known start date, end date, duration, or maximum extent (the latest date the period can extend to). In some cases, not all of these fields will have known or relevant values.", "type": "object", "properties": { "startDate": { @@ -37271,36 +37157,8 @@ }, "minProperties": 1 }, - "SimpleUnit": { - "title": "Simple Unit", - "description": "A simple unit of measure, consisting of: an identifier for the list (scheme) from which the unit is taken, and an identifier for the unit from that list.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, "RelatedProcess": { - "description": "A reference to a related contracting process: generally one preceding or following on from the current process.", + "description": "A reference to a related contracting (or planning) process: generally one preceding or following on from the current process.", "type": "object", "title": "Related Process", "properties": { @@ -37327,7 +37185,7 @@ "uniqueItems": true }, "title": { - "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", + "description": "The title of the related process, where referencing a contracting (or planning) process, this field should match the tender/title field in the related process.", "title": "Related process title", "type": [ "string", @@ -37372,7 +37230,7 @@ }, "Unit": { "title": "Unit", - "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", "type": "object", "properties": { "scheme": { @@ -37744,51 +37602,6 @@ "string", "null" ] - }, - "weight": { - "title": "Weight", - "description": "The weight of one item unit.", - "type": "object", - "properties": { - "unit": { - "title": "Unit", - "description": "The code and scheme for the unit in which the weight is specified.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "quantity": { - "title": "Quantity", - "description": "The number of units.", - "type": [ - "number", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 } }, "patternProperties": { @@ -38155,6 +37968,33 @@ } }, "minProperties": 1 + }, + "SimpleIdentifier": { + "title": "Simple identifier", + "description": "An unambiguous reference to a resource within a given context.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list, register or system from which the identifier is taken.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier taken from the scheme.", + "type": [ + "string", + "null" + ], + "versionId": true, + "minLength": 1 + } + }, + "minProperties": 1 } }, "minProperties": 1 diff --git a/schema/strict/record-package-schema.json b/schema/strict/record-package-schema.json index 9dcbc7d85..3fb683c54 100644 --- a/schema/strict/record-package-schema.json +++ b/schema/strict/record-package-schema.json @@ -132,13 +132,13 @@ "properties": { "ocid": { "title": "Open contracting process identifier", - "description": "A globally unique identifier for the contracting process that the record describes. Alternatively, this identifier can refer to a planning process or a single stage of a multiple stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", + "description": "A globally unique identifier for the contracting process that the record describes. Alternatively, this identifier can refer to a planning process or a single stage of a multi-stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", "type": "string", "minLength": 1 }, "releases": { "title": "Releases", - "description": "All the releases about the contracting process at the time of the record's publication. The releases must be sorted in date order, from oldest to newest.", + "description": "All the releases about the contracting (or planning) process at the time of the record's publication. The releases must be sorted in date order, from oldest to newest.", "oneOf": [ { "title": "Linked releases", diff --git a/schema/strict/release-schema.json b/schema/strict/release-schema.json index d5b3e8e3a..bbdac0d7f 100644 --- a/schema/strict/release-schema.json +++ b/schema/strict/release-schema.json @@ -2,25 +2,25 @@ "id": "https://standard.open-contracting.org/schema/1__1__5/strict/release-schema.json", "$schema": "http://json-schema.org/draft-04/schema#", "title": "Strict schema for an Open Contracting Release", - "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multiple stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\" The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.", + "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multi-stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\" The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.", "type": "object", "properties": { "ocid": { "title": "Open contracting process identifier", - "description": "A globally unique identifier for the contracting process that the release describes. Alternatively, this identifier can refer to a planning process or a single stage of a multiple stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", + "description": "A globally unique identifier for the contracting process that the release describes. Alternatively, this identifier can refer to a planning process or a single stage of a multi-stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", "type": "string", "minLength": 1 }, "id": { "title": "Release ID", - "description": "The identifier of the release. The release ID must be unique within the scope of the contracting process (identified by the ocid), for a given version of OCDS. In other words, a publisher may publish datasets for different versions of OCDS, and repeat releases within each dataset. The release ID must not contain the number sign (#). For a compiled release, the `ocid` and the maximum `date` among the individual releases used to create the compiled release, separated by a hyphen: {ocid}-{date}.", + "description": "The identifier of the individual release or compiled release. For an individual release, the release ID must be unique within the scope of the (contracting or planning) process, for a given version of OCDS. In other words, a publisher may publish datasets for different versions of OCDS, and repeat releases within each dataset. The release ID must not contain the number sign (#). For a compiled release, the release ID should be the `ocid` and the maximum `date` among the individual releases used to create the compiled release, separated by a hyphen: {ocid}-{date}.", "type": "string", "minLength": 1, "omitWhenMerged": true }, "date": { "title": "Release Date", - "description": "The date on which the information contained in the release was first recorded in, or published by, any system. For a compiled release, the maximum `date` among the individual releases used to create the compiled release. The release date should be unique within the scope of the contracting process identified by the Open Contracting ID (ocid), for a given version of OCDS.", + "description": "The date on which the information contained in the release was first recorded in, or published by, any system. For a compiled release, the maximum `date` among the individual releases used to create the compiled release. The release date should be unique within the scope of the (contracting or planning) process, for a given version of OCDS.", "type": "string", "format": "date-time", "omitWhenMerged": true @@ -28,11 +28,12 @@ "publisher": { "title": "Publisher", "description": "The original publisher of this release.", + "omitWhenMerged": true, "$ref": "#/definitions/Identifier" }, "tag": { "title": "Release Tag", - "description": "A tag labeling the release (for example, as corresponding to a stage of the contracting process), using the the open [releaseTag](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#release-tag) codelist. Codes outside the releaseTag codelist might indicate, for example, the notice or form to which the release corresponds, or the event that triggered the publication of the release. Planning processes must not use the 'tender' code, even if they use `tender` fields.", + "description": "A tag labeling the release, using the the open [releaseTag](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#release-tag) codelist. Tags distinguish, for example, planning and contracting processes and the stages of contracting processes. Codes outside the releaseTag codelist might indicate, for example, the notice or form to which the release corresponds, or the event that triggered the publication of the release. Planning processes must not use the 'tender' code, even if they use `tender` fields.", "type": "array", "items": { "type": "string", @@ -60,7 +61,7 @@ }, "parties": { "title": "Parties", - "description": "Information on the organizations who are involved in the contracting process and their roles, e.g. buyer, procuring entity, supplier etc. Organization references elsewhere in the schema are used to refer back to this entries in this list.", + "description": "Information on the organizations who are involved in the contracting (or planning) process and their roles, e.g. buyer, procuring entity, supplier etc. Organization references elsewhere in the schema are used to refer back to this entries in this list.", "type": "array", "items": { "$ref": "#/definitions/Organization" @@ -70,7 +71,7 @@ }, "buyer": { "title": "Buyer", - "description": "The organization aiming to conclude a contract with a supplier or to use the goods, works or services resulting from the contract.", + "description": "The organization aiming to conclude a contract with a supplier or to use the goods, services or works resulting from the contract.", "$ref": "#/definitions/OrganizationReference" }, "planning": { @@ -126,7 +127,7 @@ }, "links": { "title": "Links", - "description": "Links to related resources. In a release, links relate to the individual release: for example, a link to a canonical version of the release in another OCDS publication. In a compiled release, links relate to the entire contracting process: for example, a link to a resource in a non-OCDS publication that represents the entire contracting process. For references to related processes, see the `relatedProcesses` array.", + "description": "Links to related resources. In a release, links relate to the individual release: for example, a link to a canonical version of the release in another OCDS publication. In a compiled release, links relate to the entire contracting (or planning) process: for example, a link to a resource in a non-OCDS publication that represents the entire contracting process. For references to related processes, see the `relatedProcesses` array.", "type": "array", "items": { "$ref": "#/definitions/Link" @@ -169,7 +170,7 @@ }, "budget": { "title": "Budget", - "description": "Details of the budget that funds the planned contracting process.", + "description": "Details of the budget that will fund the future contract(s)", "$ref": "#/definitions/Budget" }, "documents": { @@ -214,12 +215,23 @@ "properties": { "id": { "title": "Tender ID", - "description": "An identifier for this tender process. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", + "description": "An identifier for this tender. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", "type": [ "string" ], "minLength": 1 }, + "identifiers": { + "title": "Additional tender identifiers", + "description": "Additional identifiers for this tender. This field can be used to provide local identifiers for the tender.", + "type": "array", + "items": { + "$ref": "#/definitions/SimpleIdentifier" + }, + "uniqueItems": true, + "wholeListMerge": true, + "minItems": 1 + }, "title": { "title": "Tender title", "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement. The title should be less than 150 characters in length.", @@ -269,12 +281,12 @@ }, "procuringEntity": { "title": "Procuring entity", - "description": "The organization managing the contracting process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", + "description": "The organization managing the contracting (or planning) process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", "$ref": "#/definitions/OrganizationReference" }, "items": { "title": "Items to be procured", - "description": "The goods and services to be purchased, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", + "description": "The goods, services or works to be purchased, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", "type": "array", "items": { "$ref": "#/definitions/Item" @@ -284,12 +296,12 @@ }, "value": { "title": "Value", - "description": "The estimated value of the procurement, as estimated when publishing the tender information. A negative value indicates that the contracting process may involve payments from the supplier to the buyer (commonly used in concession contracts).", + "description": "The estimated value of the procurement, as estimated when publishing the tender information. A negative value indicates that the future contract(s) may involve payments from the supplier to the buyer (commonly used in concession contracts).", "$ref": "#/definitions/Value" }, "minValue": { "title": "Minimum value", - "description": "The estimated minimum value of the procurement. A negative value indicates that the contracting process may involve payments from the supplier to the buyer (commonly used in concession contracts).", + "description": "The estimated minimum value of the procurement. A negative value indicates that the future contract(s) may involve payments from the supplier to the buyer (commonly used in concession contracts).", "$ref": "#/definitions/Value" }, "maximumValue": { @@ -334,7 +346,7 @@ }, "mainProcurementCategory": { "title": "Main procurement category", - "description": "The primary category describing the main object of this contracting process, from the closed [procurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#procurement-category) codelist.", + "description": "The primary category describing the main object of this contracting (or planning) process, from the closed [procurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#procurement-category) codelist.", "type": [ "string", "null" @@ -343,14 +355,14 @@ "openCodelist": false, "enum": [ "goods", - "works", "services", + "works", null ] }, "additionalProcurementCategories": { "title": "Additional procurement categories", - "description": "Any additional categories describing the objects of this contracting process, using the open [extendedProcurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#extended-procurement-category) codelist.", + "description": "Any additional categories describing the objects of this contracting (or planning) process, using the open [extendedProcurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#extended-procurement-category) codelist.", "type": [ "array", "null" @@ -434,7 +446,7 @@ }, "hasEnquiries": { "title": "Has enquiries?", - "description": "A true/false field to indicate whether any enquiries were received during the tender process. Structured information on enquiries that were received, and responses to them, can be provided using the enquiries extension.", + "description": "A true/false field to indicate whether any enquiries were received during the tender stage. Structured information on enquiries that were received, and responses to them, can be provided using the enquiries extension.", "type": [ "boolean", "null" @@ -464,7 +476,7 @@ }, "selectionCriteria": { "title": "Selection criteria", - "description": "The minimum requirements for tenderers to participate in the contracting process. Selection criteria ensure that a tenderer has the legal and financial capacities and the technical and professional abilities to perform the contract to be awarded. More structured information can be provided using the selection criteria extension.", + "description": "The minimum requirements for potential suppliers to participate in the contracting process. Selection criteria ensure that a potential supplier has the legal and financial capacities and the technical and professional abilities to perform the contract. More structured information can be provided using the selection criteria extension.", "type": [ "string", "null" @@ -608,7 +620,7 @@ "properties": { "id": { "title": "Award ID", - "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", + "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the contracting process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", "type": [ "string" ], @@ -667,9 +679,18 @@ ], "format": "date-time" }, + "datePublished": { + "title": "Date published", + "description": "The date on which the award was published.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "value": { "title": "Value", - "description": "The value of this award. There may be more than one award per procurement. A negative value indicates that the award may involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", + "description": "The value of this award. There may be more than one award per procurement. A negative value indicates that the contract(s) resulting from this award may involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", "$ref": "#/definitions/Value" }, "maximumValue": { @@ -694,7 +715,7 @@ }, "items": { "title": "Items awarded", - "description": "The goods and services awarded in this award, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", + "description": "The goods, services or works awarded in this award, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", "type": "array", "minItems": 1, "items": { @@ -766,12 +787,23 @@ "properties": { "id": { "title": "Contract ID", - "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the Open Contracting Process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", + "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the contracting process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", "type": [ "string" ], "minLength": 1 }, + "identifiers": { + "title": "Additional contract identifiers", + "description": "Additional identifiers for this contract. This field can be used to provide local identifiers for the contract.", + "type": "array", + "items": { + "$ref": "#/definitions/SimpleIdentifier" + }, + "uniqueItems": true, + "wholeListMerge": true, + "minItems": 1 + }, "awardID": { "title": "Award ID", "description": "The award.id against which this contract is being issued.", @@ -853,7 +885,7 @@ }, "items": { "title": "Items contracted", - "description": "The goods, services, and any intangible outcomes in this contract. If the items contracted are identical to the items awarded, this field should be omitted.", + "description": "The goods, services or works in this contract. If the items contracted are identical to the items awarded, this field should be omitted.", "type": "array", "minItems": 1, "items": { @@ -979,7 +1011,7 @@ }, "Milestone": { "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting process.", + "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", "type": "object", "required": [ "id" @@ -1024,7 +1056,7 @@ }, "code": { "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", + "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", "type": [ "string", "null" @@ -1274,11 +1306,11 @@ "Budget": { "type": "object", "title": "Budget information", - "description": "This section contains basic information about the budget estimated for, or allocated to, this contracting process at the present time. Further documentation and data about how budgets have been allocated to a contracting process should be published outside of OCDS data, according to the best available standards.", + "description": "This section contains basic information about the budget that will fund the future contract(s). Further documentation and data about how budgets have been allocated should be published outside of OCDS data, according to the best available standards.", "properties": { "id": { "title": "ID", - "description": "An identifier for the budget line item which provides funds for this contracting process. This identifier should be possible to cross-reference against formal budget documents.", + "description": "An identifier of the budget that will fund the future contract(s). This identifier should be possible to cross-reference against formal budget documents.", "type": [ "string", "null" @@ -1287,7 +1319,7 @@ }, "description": { "title": "Budget Source", - "description": "A short free-text description of the budget allocation for this contracting process. This may be used to provide human-readable information on the budget category allocated to this contracting process, and/or, information about the nature and source of the allocation (e.g. conditional, confirmed; any official authorizations given to the budget allocation).", + "description": "A short free-text description of the budget that will fund the future contract(s). This may be used to provide human-readable information on: the budget category for the future contract(s) and/or the nature and source of the budget allocation (e.g. conditional, confirmed, or any official authorizations given to the budget allocation).", "type": [ "string", "null" @@ -1296,12 +1328,12 @@ }, "amount": { "title": "Amount", - "description": "The value reserved in the budget for this contracting process. A negative value indicates anticipated income to the budget as a result of this contracting process, rather than expenditure. Where the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line funding this contracting process.", + "description": "The value reserved for the future contract(s), within the budget. A negative value indicates income to the budget as a result of the future contract(s), rather than expenditure. If the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line that will fund the future contract(s).", "$ref": "#/definitions/Value" }, "project": { "title": "Project title", - "description": "The name of the project through which this contracting process is funded (if applicable). Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry. No translation option is offered for this string, as translated values can be provided in third-party data, linked from the data source above.", + "description": "The name of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry.", "type": [ "string", "null" @@ -1310,7 +1342,7 @@ }, "projectID": { "title": "Project identifier", - "description": "An external identifier for the project that this contracting process forms part of, or is funded via (if applicable). Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", + "description": "The identifier of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", "null" @@ -1319,7 +1351,7 @@ }, "uri": { "title": "Linked budget information", - "description": "A URI pointing directly to a machine-readable record about the budget line-item or line-items that fund this contracting process. Information can be provided in a range of formats, including using IATI, the Open Fiscal Data Standard or any other standard which provides structured data on budget sources. Human readable documents can be included using the planning.documents block.", + "description": "The URL of a machine-readable resource about the budget that will fund the future contract(s). For human-readable documents, see the `planning.documents` array.", "type": [ "string", "null" @@ -1368,7 +1400,7 @@ "Transaction": { "type": "object", "title": "Transaction information", - "description": "A spending transaction related to the contracting process. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", + "description": "A spending transaction related to the contract. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", "required": [ "id" ], @@ -1437,7 +1469,7 @@ "description": "(Deprecated in 1.1. Use transaction.payer instead.) The Organization Identifier for the organization from which the funds in this transaction originate. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", "$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.", + "description": "This field has been replaced by the `transaction.payer` field to resolve ambiguity arising from 'provider' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } }, @@ -1446,7 +1478,7 @@ "description": "(Deprecated in 1.1. Use transaction.payee instead). The Organization Identifier for the organization which receives the funds in this transaction. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", "$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.", + "description": "This field has been replaced by the `transaction.payee` field to resolve ambiguity arising from 'receiver' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } } @@ -1526,13 +1558,13 @@ "properties": { "name": { "title": "Common name", - "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting process.", + "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting (or planning) process.", "type": "string", "minLength": 1 }, "id": { "type": "string", - "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the contracting process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", + "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the (contracting or planning) process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", "title": "ID", "minLength": 1 }, @@ -1543,7 +1575,7 @@ }, "additionalIdentifiers": { "title": "Additional identifiers", - "description": "A list of additional / supplemental identifiers for the organization or participant, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", + "description": "Additional identifiers for this organization, following the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This field can also be used to provide an identifier for an organizational unit (for example, an agency, branch or division).", "type": "array", "items": { "$ref": "#/definitions/Identifier" @@ -1554,7 +1586,7 @@ }, "address": { "title": "Address", - "description": "An address. This may be the legally registered address of the organization, or may be a correspondence address for this particular contracting process.", + "description": "An address. This may be the legally registered address of the organization, or may be a correspondence address for this particular contracting (or planning) process.", "$ref": "#/definitions/Address" }, "contactPoint": { @@ -1564,7 +1596,7 @@ }, "roles": { "title": "Roles", - "description": "The organization's role(s) in the contracting process, using the open [partyRole](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#party-role) codelist.", + "description": "The organization's role(s) in the contracting (or planning) process, using the open [partyRole](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#party-role) codelist.", "type": [ "array", "null" @@ -1585,6 +1617,27 @@ ], "description": "Additional classification information about organizations can be provided using organization details extensions that define particular fields and classification schemes.", "title": "Details", + "properties": { + "scale": { + "title": "Scale", + "description": "The size or scale of the organization.", + "type": [ + "string", + "null" + ], + "enum": [ + "micro", + "sme", + "small", + "medium", + "large", + "selfEmployed", + null + ], + "codelist": "partyScale.csv", + "openCodelist": false + } + }, "minProperties": 1 } }, @@ -1606,7 +1659,7 @@ "Item": { "title": "Item", "type": "object", - "description": "A good, service, or work to be contracted.", + "description": "A line-item of the goods, services, or works to be contracted.", "required": [ "id" ], @@ -1621,7 +1674,7 @@ }, "description": { "title": "Description", - "description": "A description of the goods, services to be provided.", + "description": "A description of the goods, services or works to be provided.", "type": [ "string", "null" @@ -1655,7 +1708,7 @@ }, "unit": { "title": "Unit", - "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", "$ref": "#/definitions/Unit" } }, @@ -1709,7 +1762,7 @@ "minLength": 1 }, "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **before** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", "type": [ "string", "null" @@ -1718,7 +1771,7 @@ "minLength": 1 }, "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting process) that provides the values for this contracting process **after** the amendment was made.", + "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", "type": [ "string", "null" @@ -2224,7 +2277,7 @@ "ContactPoint": { "title": "Contact point", "type": "object", - "description": "A person, contact point or department to contact in relation to this contracting process.", + "description": "A person, contact point or department to contact in relation to this contracting (or planning) process.", "properties": { "name": { "title": "Name", @@ -2232,7 +2285,7 @@ "string", "null" ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting process.", + "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", "minLength": 1 }, "email": { @@ -2617,7 +2670,7 @@ }, "Period": { "title": "Period", - "description": "Key events during a contracting process may have a known start date, end date, duration, or maximum extent (the latest date the period can extend to). In some cases, not all of these fields will have known or relevant values.", + "description": "Key events during a contracting (or planning) process may have a known start date, end date, duration, or maximum extent (the latest date the period can extend to). In some cases, not all of these fields will have known or relevant values.", "type": "object", "properties": { "startDate": { @@ -2659,36 +2712,8 @@ }, "minProperties": 1 }, - "SimpleUnit": { - "title": "Simple Unit", - "description": "A simple unit of measure, consisting of: an identifier for the list (scheme) from which the unit is taken, and an identifier for the unit from that list.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, "RelatedProcess": { - "description": "A reference to a related contracting process: generally one preceding or following on from the current process.", + "description": "A reference to a related contracting (or planning) process: generally one preceding or following on from the current process.", "type": "object", "title": "Related Process", "properties": { @@ -2715,7 +2740,7 @@ "uniqueItems": true }, "title": { - "description": "The title of the related process, where referencing an open contracting process, this field should match the tender/title field in the related process.", + "description": "The title of the related process, where referencing a contracting (or planning) process, this field should match the tender/title field in the related process.", "title": "Related process title", "type": [ "string", @@ -2760,7 +2785,7 @@ }, "Unit": { "title": "Unit", - "description": "A description of the unit in which the supplies, services or works are provided (e.g. hours, kilograms) and the unit-price.", + "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", "type": "object", "properties": { "scheme": { @@ -2805,28 +2830,6 @@ "string", "null" ] - }, - "weight": { - "title": "Weight", - "description": "The weight of one item unit.", - "type": "object", - "properties": { - "unit": { - "title": "Unit", - "description": "The code and scheme for the unit in which the weight is specified.", - "$ref": "#/definitions/SimpleUnit" - }, - "quantity": { - "title": "Quantity", - "description": "The number of units.", - "type": [ - "number", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 } }, "patternProperties": { @@ -3193,6 +3196,33 @@ } }, "minProperties": 1 + }, + "SimpleIdentifier": { + "title": "Simple identifier", + "description": "An unambiguous reference to a resource within a given context.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The list, register or system from which the identifier is taken.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "title": "ID", + "description": "The identifier taken from the scheme.", + "type": [ + "string", + "null" + ], + "versionId": true, + "minLength": 1 + } + }, + "minProperties": 1 } }, "minProperties": 1 diff --git a/schema/strict/versioned-release-validation-schema.json b/schema/strict/versioned-release-validation-schema.json index 74035747f..ef9f6aeb3 100644 --- a/schema/strict/versioned-release-validation-schema.json +++ b/schema/strict/versioned-release-validation-schema.json @@ -2,12 +2,9 @@ "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": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multiple stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\" The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.", + "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multi-stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\" The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.", "type": "object", "properties": { - "publisher": { - "$ref": "#/definitions/Identifier" - }, "initiationType": { "type": "array", "items": { @@ -245,6 +242,35 @@ } } }, + "identifiers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/SimpleIdentifierUnversioned" + }, + "uniqueItems": true, + "minItems": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, "title": { "type": "array", "items": { @@ -501,8 +527,8 @@ "openCodelist": false, "enum": [ "goods", - "works", "services", + "works", null ] }, @@ -1064,6 +1090,9 @@ "date": { "$ref": "#/definitions/StringNullDateTimeVersioned" }, + "datePublished": { + "$ref": "#/definitions/StringNullDateTimeVersioned" + }, "value": { "$ref": "#/definitions/Value" }, @@ -1147,6 +1176,35 @@ ], "minLength": 1 }, + "identifiers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/SimpleIdentifierUnversioned" + }, + "uniqueItems": true, + "minItems": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, "awardID": { "type": "array", "items": { @@ -2098,14 +2156,14 @@ "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.", + "description": "This field has been replaced by the `transaction.payer` field to resolve ambiguity arising from 'provider' being interpreted as relating to the goods, services or works 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.", + "description": "This field has been replaced by the `transaction.payee` field to resolve ambiguity arising from 'receiver' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } } @@ -2327,6 +2385,25 @@ "object", "null" ], + "properties": { + "scale": { + "type": [ + "string", + "null" + ], + "enum": [ + "micro", + "sme", + "small", + "medium", + "large", + "selfEmployed", + null + ], + "codelist": "partyScale.csv", + "openCodelist": false + } + }, "minProperties": 1 }, "releaseTag": { @@ -3831,70 +3908,6 @@ }, "minProperties": 1 }, - "SimpleUnit": { - "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, - "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", - "null" - ], - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "minProperties": 1 - }, "RelatedProcess": { "type": "object", "properties": { @@ -4126,43 +4139,6 @@ }, "uri": { "$ref": "#/definitions/StringNullUriVersioned" - }, - "weight": { - "type": "object", - "properties": { - "unit": { - "$ref": "#/definitions/SimpleUnit" - }, - "quantity": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "minProperties": 1 } }, "patternProperties": { @@ -4602,6 +4578,69 @@ }, "minProperties": 1 }, + "SimpleIdentifier": { + "type": "object", + "properties": { + "scheme": { + "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", + "null" + ], + "versionId": true, + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "minProperties": 1 + }, "StringNullUriVersioned": { "type": "array", "items": { @@ -4842,6 +4881,27 @@ "name" ] }, + "SimpleIdentifierUnversioned": { + "type": "object", + "properties": { + "scheme": { + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "id": { + "type": [ + "string", + "null" + ], + "versionId": true, + "minLength": 1 + } + }, + "minProperties": 1 + }, "ClassificationUnversioned": { "type": "object", "properties": { diff --git a/schema/versioned-release-validation-schema.json b/schema/versioned-release-validation-schema.json index 77c0ea22c..a81f1ff79 100644 --- a/schema/versioned-release-validation-schema.json +++ b/schema/versioned-release-validation-schema.json @@ -2,12 +2,9 @@ "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": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multiple stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\"", + "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multi-stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\"", "type": "object", "properties": { - "publisher": { - "$ref": "#/definitions/Identifier" - }, "initiationType": { "type": "array", "items": { @@ -185,6 +182,34 @@ } } }, + "identifiers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/SimpleIdentifierUnversioned" + }, + "uniqueItems": true + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, "title": { "$ref": "#/definitions/StringNullVersioned" }, @@ -315,8 +340,8 @@ "openCodelist": false, "enum": [ "goods", - "works", "services", + "works", null ] }, @@ -680,6 +705,9 @@ "date": { "$ref": "#/definitions/StringNullDateTimeVersioned" }, + "datePublished": { + "$ref": "#/definitions/StringNullDateTimeVersioned" + }, "value": { "$ref": "#/definitions/Value" }, @@ -757,6 +785,34 @@ ], "minLength": 1 }, + "identifiers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/SimpleIdentifierUnversioned" + }, + "uniqueItems": true + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, "awardID": { "type": "array", "items": { @@ -1427,14 +1483,14 @@ "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.", + "description": "This field has been replaced by the `transaction.payer` field to resolve ambiguity arising from 'provider' being interpreted as relating to the goods, services or works 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.", + "description": "This field has been replaced by the `transaction.payee` field to resolve ambiguity arising from 'receiver' being interpreted as relating to the goods, services or works procured rather than the flow of funds between the parties.", "deprecatedVersion": "1.1" } } @@ -1626,7 +1682,26 @@ "type": [ "object", "null" - ] + ], + "properties": { + "scale": { + "type": [ + "string", + "null" + ], + "enum": [ + "micro", + "sme", + "small", + "medium", + "large", + "selfEmployed", + null + ], + "codelist": "partyScale.csv", + "openCodelist": false + } + } }, "releaseTag": { "type": "array", @@ -2696,43 +2771,6 @@ } } }, - "SimpleUnit": { - "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": { - "$ref": "#/definitions/StringNullVersioned" - } - } - }, "RelatedProcess": { "type": "object", "properties": { @@ -2854,41 +2892,6 @@ }, "uri": { "$ref": "#/definitions/StringNullUriVersioned" - }, - "weight": { - "type": "object", - "properties": { - "unit": { - "$ref": "#/definitions/SimpleUnit" - }, - "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" - } - } - } - } - } - } } }, "patternProperties": { @@ -3324,6 +3327,42 @@ }, "minProperties": 1 }, + "SimpleIdentifier": { + "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", + "null" + ], + "versionId": true + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, "StringNullUriVersioned": { "type": "array", "items": { @@ -3559,6 +3598,24 @@ }, "type": "object" }, + "SimpleIdentifierUnversioned": { + "type": "object", + "properties": { + "scheme": { + "type": [ + "string", + "null" + ] + }, + "id": { + "type": [ + "string", + "null" + ], + "versionId": true + } + } + }, "ClassificationUnversioned": { "type": "object", "properties": { diff --git a/script/update b/script/update index 5c3fc5987..5c9d03fc6 100755 --- a/script/update +++ b/script/update @@ -4,7 +4,7 @@ set -euo pipefail function main { mkdir -p script include tests - for f in Makefile common-requirements.in common-requirements.txt .github/workflows/lint.yml docs/_static/favicon-16x16.ico include/common.mk include/prologue.mk include/header.html script/diff script/update tests/conftest.py tests/test_common.py; do + for f in Makefile common-requirements.in common-requirements.txt .github/workflows/lint.yml .github/workflows/shell.yml docs/_static/favicon-16x16.ico include/common.mk include/prologue.mk include/header.html script/diff script/update tests/conftest.py tests/test_common.py; do curl -sS -o $f https://raw.githubusercontent.com/open-contracting/standard_profile_template/latest/$f done diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 419f5c252..000000000 --- a/setup.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[isort] -known_local_folder = helper diff --git a/tests/conftest.py b/tests/conftest.py index 3ba3e8151..1a96b5cdc 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,6 +1,6 @@ -import os +import threading +from functools import partial from http.server import HTTPServer, SimpleHTTPRequestHandler -from multiprocessing import Process import pytest from selenium import webdriver @@ -9,15 +9,16 @@ @pytest.fixture(scope='module') def browser(request): - chrome_options = Options() - chrome_options.add_argument('--headless') - chrome_options.add_argument('--no-sandbox') + options = Options() + options.add_argument('--headless') + options.add_argument('--no-sandbox') - browser = webdriver.Chrome(chrome_options=chrome_options) + browser = webdriver.Chrome(options=options) browser.implicitly_wait(3) - request.addfinalizer(lambda: browser.quit()) - return browser + yield browser + + browser.quit() @pytest.fixture(scope='module') @@ -25,15 +26,12 @@ def server(request): host = 'localhost' port_number = 8331 - def run(): - os.chdir('build') - HTTPServer((host, port_number), SimpleHTTPRequestHandler).serve_forever() + server = HTTPServer((host, port_number), partial(SimpleHTTPRequestHandler, directory='build')) - p = Process(target=run) - p.start() + thread = threading.Thread(target=server.serve_forever) + thread.start() - def stop(): - p.terminate() - request.addfinalizer(stop) + yield f'http://{host}:{port_number}/' - return 'http://{}:{}/'.format(host, port_number) + server.shutdown() + thread.join() diff --git a/tests/test_common.py b/tests/test_common.py index 818b92fd7..803bb96a9 100644 --- a/tests/test_common.py +++ b/tests/test_common.py @@ -1,46 +1,38 @@ -import os import re import time -import warnings import pytest +from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import Select from tests import languages, test_basic_params, test_search_params -cwd = os.getcwd() - - -def custom_warning_formatter(message, category, filename, lineno, line=None): - return str(message).replace(cwd + os.sep, '') - - -warnings.formatwarning = custom_warning_formatter - @pytest.mark.parametrize('lang,text', test_basic_params.items()) def test_basic(browser, server, lang, text): - browser.get('{}{}'.format(server, lang)) - assert text in browser.find_element_by_tag_name('body').text + browser.get(f'{server}{lang}') + assert text in browser.find_element(By.TAG_NAME, 'body').text @pytest.mark.parametrize('lang,regex', test_search_params) def test_search(browser, server, lang, regex): - browser.get('{}{}'.format(server, lang)) - search_box = browser.find_element_by_id('rtd-search-form').find_element_by_tag_name('input') + browser.get(f'{server}{lang}') + search_box = browser.find_element(By.ID, 'rtd-search-form').find_element(By.TAG_NAME, 'input') search_box.send_keys('tender\n') - time.sleep(2) - assert re.search(regex, browser.find_element_by_tag_name('body').text) + time.sleep(3) + assert re.search(regex, browser.find_element(By.TAG_NAME, 'body').text) +# This seems to be an issue in Selenium and/or ChromeDriver. +@pytest.mark.filterwarnings("ignore:unclosed Date: Mon, 1 Aug 2022 10:11:30 +1200 Subject: [PATCH 19/29] Update changelog --- docs/history/changelog.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/history/changelog.md b/docs/history/changelog.md index e2ce93d01..c832d68de 100644 --- a/docs/history/changelog.md +++ b/docs/history/changelog.md @@ -250,6 +250,8 @@ Per the [normative and non-normative content and changes policy](https://docs.go * [#1450](https://github.com/open-contracting/standard/pull/1450) Replace a repeated example in schema/merging/ with a link to guidance/build/merging/. +* [#1480](https://github.com/open-contracting/standard/pull/1480) Add a voluntary, "strict" schema that adds in missing JSON Schema validation keywords, removes deprecated fields and codes, removes deprecated types, etc. + ### Documentation * [#1094](https://github.com/open-contracting/standard/pull/1094) Add guidance on populating `Organization.id` for parties without an organization identifier. From 747171d674ec4bf9f13d0d667fcd0327eb165981 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Tue, 17 Oct 2023 00:40:16 -0400 Subject: [PATCH 20/29] manage: Update strict code to use merge_props=True --- manage.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/manage.py b/manage.py index 93a31d2bd..25f1af876 100755 --- a/manage.py +++ b/manage.py @@ -597,24 +597,24 @@ def pre_commit(): - strict-dereferenced-release-schema.json - strict-versioned-release-validation-schema.json """ + json_dump('meta-schema.json', get_metaschema()) release_schema = json_load('release-schema.json') - release_package_schema = json_load('release-package-schema.json') - record_package_schema = json_load('record-package-schema.json') - jsonref_release_schema = json_load('release-schema.json', jsonref, merge_props=True) + dereferenced_release_schema = json_load('release-schema.json', jsonref, merge_props=True) + json_dump('dereferenced-release-schema.json', dereferenced_release_schema) + json_dump('versioned-release-validation-schema.json', get_versioned_release_schema(release_schema)) + + # Strict schemas. + directory = Path('strict') strict_release_schema = get_strict_schema(deepcopy(release_schema)) + json_dump(directory / 'release-schema.json', strict_release_schema) - json_dump('meta-schema.json', get_metaschema()) - json_dump('dereferenced-release-schema.json', jsonref_release_schema) - json_dump('versioned-release-validation-schema.json', get_versioned_release_schema(release_schema)) + strict_dereferenced_release_schema = json_load(directory / 'release-schema.json', jsonref, merge_props=True) + json_dump(directory / 'dereferenced-release-schema.json', strict_dereferenced_release_schema) + json_dump(directory / 'versioned-release-validation-schema.json', get_versioned_release_schema(strict_release_schema)) - json_dump('strict/release-schema.json', strict_release_schema) - json_dump('strict/release-package-schema.json', get_strict_schema(release_package_schema)) - json_dump('strict/record-package-schema.json', get_strict_schema(record_package_schema)) - strict_jsonref_release_schema = json_load('strict/release-schema.json', jsonref) - json_dump('strict/dereferenced-release-schema.json', - get_dereferenced_release_schema(strict_jsonref_release_schema)) - json_dump('strict/versioned-release-validation-schema.json', get_versioned_release_schema(strict_release_schema)) + json_dump(directory / 'release-package-schema.json', get_strict_schema(json_load('release-package-schema.json'))) + json_dump(directory / 'record-package-schema.json', get_strict_schema(json_load('record-package-schema.json'))) @cli.command() From 51d5d724c7d0ce9e36e2d3ce00e91ecaf4eec23e Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Tue, 17 Oct 2023 00:54:27 -0400 Subject: [PATCH 21/29] chore: flake8 --- manage.py | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/manage.py b/manage.py index 25f1af876..042b8c127 100755 --- a/manage.py +++ b/manage.py @@ -116,19 +116,19 @@ def custom_warning_formatter(message, category, filename, lineno, line=None): ) -def json_load(filename, library=json, **kwargs): +def json_load(basename, library=json, **kwargs): """ - Loads JSON data from the given filename. + Loads JSON data from the given basename. """ - with (schemadir / filename).open() as f: + with (schemadir / f"{basename}.json").open() as f: return library.load(f, **kwargs) -def json_dump(filename, data): +def json_dump(basename, data): """ - Writes JSON data to the given filename. + Writes JSON data to the given basename. """ - with (schemadir / filename).open('w') as f: + with (schemadir / f"{basename}.json").open('w') as f: json.dump(data, f, indent=2) f.write('\n') @@ -178,8 +178,8 @@ def get_metaschema(): """ Patches and returns the JSON Schema Draft 4 metaschema. """ - return json_merge_patch.merge(json_load('metaschema/json-schema-draft-4.json'), - json_load('metaschema/meta-schema-patch.json')) + return json_merge_patch.merge(json_load('metaschema/json-schema-draft-4'), + json_load('metaschema/meta-schema-patch')) def get_common_definition_ref(item): @@ -597,24 +597,24 @@ def pre_commit(): - strict-dereferenced-release-schema.json - strict-versioned-release-validation-schema.json """ - json_dump('meta-schema.json', get_metaschema()) - release_schema = json_load('release-schema.json') + json_dump('meta-schema', get_metaschema()) + release_schema = json_load('release-schema') - dereferenced_release_schema = json_load('release-schema.json', jsonref, merge_props=True) - json_dump('dereferenced-release-schema.json', dereferenced_release_schema) - json_dump('versioned-release-validation-schema.json', get_versioned_release_schema(release_schema)) + dereferenced_release_schema = json_load('release-schema', jsonref, merge_props=True) + json_dump('dereferenced-release-schema', dereferenced_release_schema) + json_dump('versioned-release-validation-schema', get_versioned_release_schema(release_schema)) # Strict schemas. directory = Path('strict') strict_release_schema = get_strict_schema(deepcopy(release_schema)) - json_dump(directory / 'release-schema.json', strict_release_schema) + json_dump(directory / 'release-schema', strict_release_schema) - strict_dereferenced_release_schema = json_load(directory / 'release-schema.json', jsonref, merge_props=True) - json_dump(directory / 'dereferenced-release-schema.json', strict_dereferenced_release_schema) - json_dump(directory / 'versioned-release-validation-schema.json', get_versioned_release_schema(strict_release_schema)) + strict_dereferenced_release_schema = json_load(directory / 'release-schema', jsonref, merge_props=True) + json_dump(directory / 'dereferenced-release-schema', strict_dereferenced_release_schema) + json_dump(directory / 'versioned-release-validation-schema', get_versioned_release_schema(strict_release_schema)) - json_dump(directory / 'release-package-schema.json', get_strict_schema(json_load('release-package-schema.json'))) - json_dump(directory / 'record-package-schema.json', get_strict_schema(json_load('record-package-schema.json'))) + json_dump(directory / 'release-package-schema', get_strict_schema(json_load('release-package-schema'))) + json_dump(directory / 'record-package-schema', get_strict_schema(json_load('record-package-schema'))) @cli.command() @@ -702,11 +702,11 @@ def update_currency(): for code in sorted(historic_codes): writer.writerow([code, historic_codes[code]['Title'], historic_codes[code]['Valid Until']]) - release_schema = json_load('release-schema.json') + release_schema = json_load('release-schema') codes = sorted(list(current_codes) + list(historic_codes)) release_schema['definitions']['Value']['properties']['currency']['enum'] = codes + [None] - json_dump('release-schema.json', release_schema) + json_dump('release-schema', release_schema) @cli.command() From a90d3784651a5da1a636ef6c8cb6c7d91bdedca9 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 28 Mar 2024 14:02:56 +1300 Subject: [PATCH 22/29] manage.py: Sort imports --- manage.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/manage.py b/manage.py index 7369ac5c0..08734a120 100755 --- a/manage.py +++ b/manage.py @@ -23,8 +23,7 @@ from babel.messages.pofile import read_po from docutils.utils import relative_path from lxml import etree -from ocdskit.schema import add_validation_properties -from ocdskit.schema import get_schema_fields +from ocdskit.schema import add_validation_properties, get_schema_fields basedir = Path(__file__).resolve().parent schemadir = basedir / 'schema' From e5a409b8e4af7936924b5d262709ef8ffbb0e7f9 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 28 Mar 2024 14:05:48 +1300 Subject: [PATCH 23/29] schema: Remove strict files --- .../strict/dereferenced-release-schema.json | 38001 ---------------- schema/strict/record-package-schema.json | 239 - schema/strict/release-package-schema.json | 113 - schema/strict/release-schema.json | 3229 -- .../versioned-release-validation-schema.json | 4952 -- 5 files changed, 46534 deletions(-) delete mode 100644 schema/strict/dereferenced-release-schema.json delete mode 100644 schema/strict/record-package-schema.json delete mode 100644 schema/strict/release-package-schema.json delete mode 100644 schema/strict/release-schema.json delete mode 100644 schema/strict/versioned-release-validation-schema.json diff --git a/schema/strict/dereferenced-release-schema.json b/schema/strict/dereferenced-release-schema.json deleted file mode 100644 index 5ca342682..000000000 --- a/schema/strict/dereferenced-release-schema.json +++ /dev/null @@ -1,38001 +0,0 @@ -{ - "id": "https://standard.open-contracting.org/schema/1__1__5/strict/release-schema.json", - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Strict schema for an Open Contracting Release", - "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multi-stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\" The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.", - "type": "object", - "properties": { - "ocid": { - "title": "Open contracting process identifier", - "description": "A globally unique identifier for the contracting process that the release describes. Alternatively, this identifier can refer to a planning process or a single stage of a multi-stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", - "type": "string", - "minLength": 1 - }, - "id": { - "title": "Release ID", - "description": "The identifier of the individual release or compiled release. For an individual release, the release ID must be unique within the scope of the (contracting or planning) process, for a given version of OCDS. In other words, a publisher may publish datasets for different versions of OCDS, and repeat releases within each dataset. The release ID must not contain the number sign (#). For a compiled release, the release ID should be the `ocid` and the maximum `date` among the individual releases used to create the compiled release, separated by a hyphen: {ocid}-{date}.", - "type": "string", - "minLength": 1, - "omitWhenMerged": true - }, - "date": { - "title": "Release Date", - "description": "The date on which the information contained in the release was first recorded in, or published by, any system. For a compiled release, the maximum `date` among the individual releases used to create the compiled release. The release date should be unique within the scope of the (contracting or planning) process, for a given version of OCDS.", - "type": "string", - "format": "date-time", - "omitWhenMerged": true - }, - "publisher": { - "title": "Publisher", - "description": "The original publisher of this release.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "omitWhenMerged": true - }, - "tag": { - "title": "Release Tag", - "description": "A tag labeling the release, using the the open [releaseTag](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#release-tag) codelist. Tags distinguish, for example, planning and contracting processes and the stages of contracting processes. Codes outside the releaseTag codelist might indicate, for example, the notice or form to which the release corresponds, or the event that triggered the publication of the release. Planning processes must not use the 'tender' code, even if they use `tender` fields.", - "type": "array", - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "releaseTag.csv", - "openCodelist": true, - "minItems": 1, - "omitWhenMerged": true, - "uniqueItems": true - }, - "initiationType": { - "title": "Initiation type", - "description": "The type of initiation process used for this contract, from the closed [initiationType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#initiation-type) codelist.", - "type": "string", - "enum": [ - "tender" - ], - "codelist": "initiationType.csv", - "openCodelist": false, - "deprecated": { - "description": "This field is deprecated, because the approach to data modelling that it supports was not pursued.", - "deprecatedVersion": "1.2" - } - }, - "parties": { - "title": "Parties", - "description": "Information on the organizations who are involved in the contracting (or planning) process and their roles, e.g. buyer, procuring entity, supplier etc. Organization references elsewhere in the schema are used to refer back to this entries in this list.", - "type": "array", - "items": { - "title": "Organization", - "description": "An organization", - "type": "object", - "properties": { - "name": { - "title": "Common name", - "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting (or planning) process.", - "type": "string", - "minLength": 1 - }, - "id": { - "type": "string", - "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the (contracting or planning) process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "additionalIdentifiers": { - "title": "Additional identifiers", - "description": "Additional identifiers for this organization, following the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This field can also be used to provide an identifier for an organizational unit (for example, an agency, branch or division).", - "type": "array", - "items": { - "title": "Identifier", - "description": "A unique identifier for an organization.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 - }, - "address": { - "title": "Address", - "description": "An address. This may be the legally registered address of the organization, or may be a correspondence address for this particular contracting (or planning) process.", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "countryName": { - "title": "Country name", - "type": [ - "string", - "null" - ], - "description": "The country name. For example, United States.", - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1 - }, - "contactPoint": { - "title": "Contact point", - "type": "object", - "description": "Contact details that can be used for this organization.", - "properties": { - "name": { - "title": "Name", - "type": [ - "string", - "null" - ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", - "minLength": 1 - }, - "email": { - "title": "Email", - "type": [ - "string", - "null" - ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" - }, - "telephone": { - "title": "Telephone", - "type": [ - "string", - "null" - ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "faxNumber": { - "title": "Fax number", - "type": [ - "string", - "null" - ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "url": { - "title": "URL", - "type": [ - "string", - "null" - ], - "description": "A web address for the contact point/person.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "roles": { - "title": "Roles", - "description": "The organization's role(s) in the contracting (or planning) process, using the open [partyRole](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#party-role) codelist.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "partyRole.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "details": { - "type": [ - "object", - "null" - ], - "description": "Additional classification information about organizations can be provided using organization details extensions that define particular fields and classification schemes.", - "title": "Details", - "properties": { - "scale": { - "title": "Scale", - "description": "The size or scale of the organization.", - "type": [ - "string", - "null" - ], - "enum": [ - "micro", - "sme", - "small", - "medium", - "large", - "selfEmployed", - null - ], - "codelist": "partyScale.csv", - "openCodelist": false - } - }, - "minProperties": 1 - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "uniqueItems": true, - "minItems": 1 - }, - "buyer": { - "properties": { - "name": { - "type": "string", - "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", - "title": "Organization name", - "minLength": 1 - }, - "id": { - "type": "string", - "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "address": { - "title": "Address", - "description": "(Deprecated outside the parties section)", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "countryName": { - "title": "Country name", - "type": [ - "string", - "null" - ], - "description": "The country name. For example, United States.", - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "additionalIdentifiers": { - "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": { - "title": "Identifier", - "description": "A unique identifier for an organization.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "title": "Additional identifiers", - "uniqueItems": true, - "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 - }, - "contactPoint": { - "title": "Contact point", - "type": "object", - "description": "(Deprecated outside the parties section)", - "properties": { - "name": { - "title": "Name", - "type": [ - "string", - "null" - ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", - "minLength": 1 - }, - "email": { - "title": "Email", - "type": [ - "string", - "null" - ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" - }, - "telephone": { - "title": "Telephone", - "type": [ - "string", - "null" - ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "faxNumber": { - "title": "Fax number", - "type": [ - "string", - "null" - ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "url": { - "title": "URL", - "type": [ - "string", - "null" - ], - "description": "A web address for the contact point/person.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - } - }, - "type": "object", - "description": "The organization aiming to conclude a contract with a supplier or to use the goods, services or works resulting from the contract.", - "title": "Buyer", - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "planning": { - "title": "Planning", - "description": "Information about, for example, needs identification, budget planning and market research. This information concerns the planning process. This information typically concerns the period before the publication of procurement documents.", - "type": "object", - "properties": { - "id": { - "title": "Planning ID", - "description": "An identifier for this planning process.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "rationale": { - "title": "Rationale", - "description": "The rationale for the planned procurement provided in free text. More detail can be provided in an attached document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "budget": { - "type": "object", - "title": "Budget", - "description": "Details of the budget that will fund the future contract(s)", - "properties": { - "id": { - "title": "ID", - "description": "An identifier of the budget that will fund the future contract(s). This identifier should be possible to cross-reference against formal budget documents.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Budget Source", - "description": "A short free-text description of the budget that will fund the future contract(s). This may be used to provide human-readable information on: the budget category for the future contract(s) and/or the nature and source of the budget allocation (e.g. conditional, confirmed, or any official authorizations given to the budget allocation).", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "amount": { - "title": "Amount", - "description": "The value reserved for the future contract(s), within the budget. A negative value indicates income to the budget as a result of the future contract(s), rather than expenditure. If the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line that will fund the future contract(s).", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "project": { - "title": "Project title", - "description": "The name of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "projectID": { - "title": "Project identifier", - "description": "The identifier of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "Linked budget information", - "description": "The URL of a machine-readable resource about the budget that will fund the future contract(s). For human-readable documents, see the `planning.documents` array.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "source": { - "title": "Data Source", - "description": "(Deprecated in 1.1) Used to point either to a corresponding Budget Data Package, or to a machine or human-readable source where users can find further information on the budget line item identifiers, or project identifiers, provided here.", - "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" - } - }, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "documents": { - "title": "Documents", - "description": "Documents related to the planning process (for example, notices, needs assessments and market studies).", - "type": "array", - "items": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true - }, - "milestones": { - "title": "Planning milestones", - "description": "A list of milestones associated with the planning process.", - "type": "array", - "items": { - "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "Milestone title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "type": { - "title": "Milestone type", - "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the milestone.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "code": { - "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "dueAfterDate": { - "title": "Due after date", - "description": "The date after which the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dueDate": { - "title": "Due date", - "description": "The date the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateMet": { - "format": "date-time", - "title": "Date met", - "description": "The date on which the milestone was met.", - "type": [ - "string", - "null" - ] - }, - "dateModified": { - "title": "Date modified", - "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "status": { - "title": "Status", - "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", - "type": [ - "string", - "null" - ], - "enum": [ - "scheduled", - "met", - "notMet", - "partiallyMet", - null - ], - "codelist": "milestoneStatus.csv", - "openCodelist": false - }, - "documents": { - "title": "Documents", - "description": "List of documents associated with this milestone (Deprecated in 1.1).", - "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": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "value": { - "title": "Value", - "description": "The payment's value, if the milestone represents a planned payment.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "tender": { - "title": "Tender", - "description": "Information about, for example, the needed items and their estimated value, procurement method, award criteria, and various deadlines. This information concerns either the contracting process or the planning process. For a contracting process, this information typically concerns the period starting with the publication of procurement documents and ending with the bid submission deadline. For a planning process, this information typically concerns the period before the publication of procurement documents.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "Tender ID", - "description": "An identifier for this tender. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "identifiers": { - "title": "Additional tender identifiers", - "description": "Additional identifiers for this tender. This field can be used to provide local identifiers for the tender.", - "type": "array", - "items": { - "title": "Simple identifier", - "description": "An unambiguous reference to a resource within a given context.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list, register or system from which the identifier is taken.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier taken from the scheme.", - "type": [ - "string", - "null" - ], - "versionId": true, - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 - }, - "title": { - "title": "Tender title", - "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement. The title should be less than 150 characters in length.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Tender description", - "description": "A summary description of the tender. This complements any structured information provided using the items array. Descriptions should be short and easy to read. Avoid using ALL CAPS.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "status": { - "title": "Tender status", - "description": "The current status of the tender, from the closed [tenderStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#tender-status) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "tenderStatus.csv", - "openCodelist": false, - "enum": [ - "planning", - "planned", - "active", - "cancelled", - "unsuccessful", - "complete", - "withdrawn", - null - ] - }, - "statusDetails": { - "title": "Status details", - "description": "Additional details on the status of the tender. This field can be used to provide the local name of the status.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "procuringEntity": { - "properties": { - "name": { - "type": "string", - "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", - "title": "Organization name", - "minLength": 1 - }, - "id": { - "type": "string", - "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "address": { - "title": "Address", - "description": "(Deprecated outside the parties section)", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "countryName": { - "title": "Country name", - "type": [ - "string", - "null" - ], - "description": "The country name. For example, United States.", - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "additionalIdentifiers": { - "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": { - "title": "Identifier", - "description": "A unique identifier for an organization.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "title": "Additional identifiers", - "uniqueItems": true, - "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 - }, - "contactPoint": { - "title": "Contact point", - "type": "object", - "description": "(Deprecated outside the parties section)", - "properties": { - "name": { - "title": "Name", - "type": [ - "string", - "null" - ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", - "minLength": 1 - }, - "email": { - "title": "Email", - "type": [ - "string", - "null" - ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" - }, - "telephone": { - "title": "Telephone", - "type": [ - "string", - "null" - ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "faxNumber": { - "title": "Fax number", - "type": [ - "string", - "null" - ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "url": { - "title": "URL", - "type": [ - "string", - "null" - ], - "description": "A web address for the contact point/person.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - } - }, - "type": "object", - "description": "The organization managing the contracting (or planning) process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", - "title": "Procuring entity", - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "items": { - "title": "Items to be procured", - "description": "The goods, services or works to be purchased, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", - "type": "array", - "items": { - "title": "Item", - "type": "object", - "description": "A line-item of the goods, services, or works to be contracted.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the goods, services or works to be provided.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "classification": { - "title": "Classification", - "description": "The primary classification for the item.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A textual description or title for the classification code.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to uniquely identify the classification code.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "additionalClassifications": { - "title": "Additional classifications", - "description": "An array of additional classifications for the item.", - "type": "array", - "items": { - "title": "Classification", - "description": "A classification consists of at least two parts: an identifier for the list (scheme) from which the classification is taken, and an identifier for the category from that list being applied. It is useful to also publish a text label and/or URI that users can draw on to interpret the classification.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A textual description or title for the classification code.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to uniquely identify the classification code.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 - }, - "quantity": { - "title": "Quantity", - "description": "The number of units to be provided.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "unit": { - "title": "Unit", - "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "Name of the unit.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "value": { - "title": "Value", - "description": "The monetary value of a single unit.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "uri": { - "title": "URI", - "description": "The machine-readable URI for the unit of measure, provided by the scheme.", - "format": "uri", - "type": [ - "string", - "null" - ] - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "value": { - "title": "Value", - "description": "The estimated value of the procurement, as estimated when publishing the tender information. A negative value indicates that the future contract(s) may involve payments from the supplier to the buyer (commonly used in concession contracts).", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "minValue": { - "title": "Minimum value", - "description": "The estimated minimum value of the procurement. A negative value indicates that the future contract(s) may involve payments from the supplier to the buyer (commonly used in concession contracts).", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "maximumValue": { - "title": "Maximum value", - "description": "The estimated maximum value of the framework agreement, as estimated when publishing the tender information.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "procurementMethod": { - "title": "Procurement method", - "description": "The method describing which organizations can submit a bid, using the closed [method](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#method) codelist. In releases concerning second stages (e.g. in framework agreements) or other subsequent stages, the procurement method always refers to the first stage of the contracting process.", - "type": [ - "string", - "null" - ], - "codelist": "method.csv", - "openCodelist": false, - "enum": [ - "open", - "selective", - "limited", - "direct", - null - ] - }, - "procurementMethodDetails": { - "title": "Procurement method details", - "description": "Additional detail on the procurement method used. This field can be used to provide the local name of the particular procurement method used.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "procurementMethodRationale": { - "title": "Procurement method rationale", - "description": "Rationale for the chosen procurement method. This is especially important to provide a justification in the case of limited tenders or direct awards.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "mainProcurementCategory": { - "title": "Main procurement category", - "description": "The primary category describing the main object of this contracting (or planning) process, from the closed [procurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#procurement-category) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "procurementCategory.csv", - "openCodelist": false, - "enum": [ - "goods", - "services", - "works", - null - ] - }, - "additionalProcurementCategories": { - "title": "Additional procurement categories", - "description": "Any additional categories describing the objects of this contracting (or planning) process, using the open [extendedProcurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#extended-procurement-category) codelist.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "extendedProcurementCategory.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "awardCriteria": { - "title": "Award criteria", - "description": "The award criteria for the procurement, using the open [awardCriteria](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#award-criteria) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "awardCriteria.csv", - "openCodelist": true, - "minLength": 1 - }, - "awardCriteriaDetails": { - "title": "Award criteria details", - "description": "Any detailed or further information on the award criteria.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "submissionMethod": { - "title": "Submission method", - "description": "The methods by which bids are submitted, using the open [submissionMethod](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#submission-method) codelist.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "submissionMethod.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated, because all codes from the submissionMethod codelist are deprecated. Refer to the Deprecation note of individual codes.", - "deprecatedVersion": "1.2" - }, - "minItems": 1, - "uniqueItems": true - }, - "submissionMethodDetails": { - "title": "Submission method details", - "description": "Information about the methods by which bids are submitted. This can include the address, e-mail address or online service to which bids are submitted, and any special requirements to be followed for submissions. More structured information can be provided using the submission terms extension.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "datePublished": { - "description": "The date on which the tender was published.", - "format": "date-time", - "title": "Date published", - "type": [ - "string", - "null" - ] - }, - "tenderPeriod": { - "title": "Tender period", - "description": "The period when the tender is open for submissions. The end date is the closing date for bid submissions.", - "type": "object", - "properties": { - "startDate": { - "title": "Start date", - "description": "The start date for the period. When known, a precise start date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "endDate": { - "title": "End date", - "description": "The end date for the period. When known, a precise end date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "maxExtentDate": { - "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", - "format": "date-time", - "title": "Maximum extent", - "type": [ - "string", - "null" - ] - }, - "durationInDays": { - "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", - "title": "Duration (days)", - "type": [ - "integer", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 - }, - "enquiryPeriod": { - "title": "Enquiry period", - "description": "The period during which potential bidders may submit questions and requests for clarification to the buyer or the procuring entity. Details of how to submit enquiries should be provided in attached notices, or in submissionMethodDetails. Structured dates for when responses to questions will be made can be provided using tender milestones.", - "type": "object", - "properties": { - "startDate": { - "title": "Start date", - "description": "The start date for the period. When known, a precise start date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "endDate": { - "title": "End date", - "description": "The end date for the period. When known, a precise end date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "maxExtentDate": { - "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", - "format": "date-time", - "title": "Maximum extent", - "type": [ - "string", - "null" - ] - }, - "durationInDays": { - "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", - "title": "Duration (days)", - "type": [ - "integer", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 - }, - "hasEnquiries": { - "title": "Has enquiries?", - "description": "A true/false field to indicate whether any enquiries were received during the tender stage. Structured information on enquiries that were received, and responses to them, can be provided using the enquiries extension.", - "type": [ - "boolean", - "null" - ] - }, - "eligibilityCriteria": { - "title": "Eligibility criteria", - "description": "A description of any eligibility criteria for potential suppliers.", - "type": [ - "string", - "null" - ], - "deprecated": { - "description": "This field had unclear semantics and used ambiguous terms, and is deprecated in favor of exclusionGrounds.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "exclusionGrounds": { - "title": "Exclusion grounds", - "description": "The criteria regarding the situation of a tenderer that can lead to its exclusion from the contracting process. For example: criminal convictions, bankruptcy, presence on a blacklist or failure to pay taxes.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "selectionCriteria": { - "title": "Selection criteria", - "description": "The minimum requirements for potential suppliers to participate in the contracting process. Selection criteria ensure that a potential supplier has the legal and financial capacities and the technical and professional abilities to perform the contract. More structured information can be provided using the selection criteria extension.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "awardPeriod": { - "title": "Evaluation and award period", - "description": "The period for decision making regarding the contract award. The end date should be the date on which an award decision is due to be finalized. The start date may be used to indicate the start of an evaluation period.", - "type": "object", - "properties": { - "startDate": { - "title": "Start date", - "description": "The start date for the period. When known, a precise start date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "endDate": { - "title": "End date", - "description": "The end date for the period. When known, a precise end date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "maxExtentDate": { - "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", - "format": "date-time", - "title": "Maximum extent", - "type": [ - "string", - "null" - ] - }, - "durationInDays": { - "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", - "title": "Duration (days)", - "type": [ - "integer", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 - }, - "standstillPeriod": { - "title": "Standstill period", - "description": "The period before the contract signature during which the award decision can be challenged. This period typically starts on the date on which the tenderers are informed about the award decision.", - "type": "object", - "properties": { - "startDate": { - "title": "Start date", - "description": "The start date for the period. When known, a precise start date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "endDate": { - "title": "End date", - "description": "The end date for the period. When known, a precise end date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "maxExtentDate": { - "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", - "format": "date-time", - "title": "Maximum extent", - "type": [ - "string", - "null" - ] - }, - "durationInDays": { - "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", - "title": "Duration (days)", - "type": [ - "integer", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 - }, - "contractPeriod": { - "title": "Contract period", - "description": "The period over which the contract is estimated or required to be active. If the tender does not specify explicit dates, the duration field may be used.", - "type": "object", - "properties": { - "startDate": { - "title": "Start date", - "description": "The start date for the period. When known, a precise start date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "endDate": { - "title": "End date", - "description": "The end date for the period. When known, a precise end date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "maxExtentDate": { - "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", - "format": "date-time", - "title": "Maximum extent", - "type": [ - "string", - "null" - ] - }, - "durationInDays": { - "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", - "title": "Duration (days)", - "type": [ - "integer", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 - }, - "numberOfTenderers": { - "title": "Number of tenderers", - "description": "The number of tenderers that submit a bid.", - "type": [ - "integer", - "null" - ], - "minimum": 0 - }, - "tenderers": { - "title": "Tenderers", - "description": "All organizations that submit a bid. More detailed information on bids and the bidding organization can be provided using the bid extension.", - "type": "array", - "items": { - "properties": { - "name": { - "type": "string", - "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", - "title": "Organization name", - "minLength": 1 - }, - "id": { - "type": "string", - "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "address": { - "title": "Address", - "description": "(Deprecated outside the parties section)", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "countryName": { - "title": "Country name", - "type": [ - "string", - "null" - ], - "description": "The country name. For example, United States.", - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "additionalIdentifiers": { - "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": { - "title": "Identifier", - "description": "A unique identifier for an organization.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "title": "Additional identifiers", - "uniqueItems": true, - "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 - }, - "contactPoint": { - "title": "Contact point", - "type": "object", - "description": "(Deprecated outside the parties section)", - "properties": { - "name": { - "title": "Name", - "type": [ - "string", - "null" - ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", - "minLength": 1 - }, - "email": { - "title": "Email", - "type": [ - "string", - "null" - ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" - }, - "telephone": { - "title": "Telephone", - "type": [ - "string", - "null" - ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "faxNumber": { - "title": "Fax number", - "type": [ - "string", - "null" - ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "url": { - "title": "URL", - "type": [ - "string", - "null" - ], - "description": "A web address for the contact point/person.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - } - }, - "type": "object", - "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", - "title": "Organization reference", - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "uniqueItems": true, - "minItems": 1 - }, - "documents": { - "title": "Documents", - "description": "Documents related to the tender stage (for example, notices, technical specifications, evaluation criteria, questions and clarifications).", - "type": "array", - "items": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true - }, - "milestones": { - "title": "Milestones", - "description": "A list of milestones associated with the tender.", - "type": "array", - "items": { - "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "Milestone title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "type": { - "title": "Milestone type", - "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the milestone.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "code": { - "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "dueAfterDate": { - "title": "Due after date", - "description": "The date after which the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dueDate": { - "title": "Due date", - "description": "The date the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateMet": { - "format": "date-time", - "title": "Date met", - "description": "The date on which the milestone was met.", - "type": [ - "string", - "null" - ] - }, - "dateModified": { - "title": "Date modified", - "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "status": { - "title": "Status", - "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", - "type": [ - "string", - "null" - ], - "enum": [ - "scheduled", - "met", - "notMet", - "partiallyMet", - null - ], - "codelist": "milestoneStatus.csv", - "openCodelist": false - }, - "documents": { - "title": "Documents", - "description": "List of documents associated with this milestone (Deprecated in 1.1).", - "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": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "value": { - "title": "Value", - "description": "The payment's value, if the milestone represents a planned payment.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true - }, - "amendments": { - "description": "A tender amendment is a formal change to the tender, and generally involves the publication of a new tender notice/release. The rationale and a description of the changes made can be provided here.", - "type": "array", - "title": "Amendments", - "items": { - "title": "Amendment", - "type": "object", - "description": "Amendment information", - "properties": { - "date": { - "title": "Amendment date", - "description": "The date of this amendment.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "rationale": { - "title": "Rationale", - "description": "An explanation for the amendment.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "description": "An identifier for this amendment: often the amendment number", - "type": "string", - "title": "ID", - "minLength": 1 - }, - "description": { - "description": "A free text, or semi-structured, description of the changes made in this amendment.", - "type": [ - "string", - "null" - ], - "title": "Description", - "minLength": 1 - }, - "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amended release (identifier)", - "minLength": 1 - }, - "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amending release (identifier)", - "minLength": 1 - }, - "changes": { - "title": "Amended fields", - "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", - "type": "array", - "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 - }, - "former_value": { - "title": "Former Value", - "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", - "type": [ - "string", - "number", - "integer", - "array", - "object", - "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 - } - }, - "minProperties": 1 - }, - "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" - }, - "minItems": 1, - "uniqueItems": true - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "minItems": 1, - "uniqueItems": true - }, - "amendment": { - "title": "Amendment", - "type": "object", - "description": "The use of individual amendment objects has been deprecated. From OCDS 1.1 information should be provided in the amendments array.", - "properties": { - "date": { - "title": "Amendment date", - "description": "The date of this amendment.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "rationale": { - "title": "Rationale", - "description": "An explanation for the amendment.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "description": "An identifier for this amendment: often the amendment number", - "type": "string", - "title": "ID", - "minLength": 1 - }, - "description": { - "description": "A free text, or semi-structured, description of the changes made in this amendment.", - "type": [ - "string", - "null" - ], - "title": "Description", - "minLength": 1 - }, - "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amended release (identifier)", - "minLength": 1 - }, - "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amending release (identifier)", - "minLength": 1 - }, - "changes": { - "title": "Amended fields", - "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", - "type": "array", - "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 - }, - "former_value": { - "title": "Former Value", - "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", - "type": [ - "string", - "number", - "integer", - "array", - "object", - "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 - } - }, - "minProperties": 1 - }, - "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" - }, - "minItems": 1, - "uniqueItems": true - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "required": [ - "id" - ], - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(selectionCriteria_(((([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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "awards": { - "title": "Awards", - "description": "Information about the awards. This information concerns the contracting process. This information typically concerns the period after the bid submission deadline and ending with the award or, if there is a standstill period, the end of the standstill period.", - "type": "array", - "items": { - "title": "Award", - "description": "Decision by the buyer or the procuring entity on the supplier with whom it intends to conclude a contract, including the items to be supplied and their value. Typically, this decision leads to one or more contracts, but not always (for example, the award is appealed at court or the supplier refuses to sign the contract). Depending on the jurisdiction, a single decision may concern a single supplier, item and value; or batches of suppliers and/or items and/or values. Similarly, sometimes the award is published as soon as it is made and sometimes only together with a contract.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "Award ID", - "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the contracting process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", - "type": [ - "string" - ], - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "Award title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "Award description", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "status": { - "title": "Award status", - "description": "The current status of the award, from the closed [awardStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#award-status) codelist.", - "type": [ - "string", - "null" - ], - "enum": [ - "pending", - "active", - "cancelled", - "unsuccessful", - null - ], - "codelist": "awardStatus.csv", - "openCodelist": false - }, - "statusDetails": { - "title": "Status details", - "description": "Additional details on the status of the award. This field can be used to provide the local name of the status.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "date": { - "title": "Award date", - "description": "The date of the contract award. This is usually the date on which a decision to award was made.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the award was published.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "value": { - "title": "Value", - "description": "The value of this award. There may be more than one award per procurement. A negative value indicates that the contract(s) resulting from this award may involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "maximumValue": { - "title": "Maximum value", - "description": "The estimated maximum value of the framework agreement, as a whole, as estimated when making the award.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "estimatedValue": { - "title": "Estimated value", - "description": "The estimated value of the framework agreement, as a whole, as estimated when making the award.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "suppliers": { - "title": "Suppliers", - "description": "Organizations with which a buyer or a procuring entity decided to conclude a contract.", - "type": "array", - "items": { - "properties": { - "name": { - "type": "string", - "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", - "title": "Organization name", - "minLength": 1 - }, - "id": { - "type": "string", - "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "address": { - "title": "Address", - "description": "(Deprecated outside the parties section)", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "countryName": { - "title": "Country name", - "type": [ - "string", - "null" - ], - "description": "The country name. For example, United States.", - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "additionalIdentifiers": { - "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": { - "title": "Identifier", - "description": "A unique identifier for an organization.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "title": "Additional identifiers", - "uniqueItems": true, - "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 - }, - "contactPoint": { - "title": "Contact point", - "type": "object", - "description": "(Deprecated outside the parties section)", - "properties": { - "name": { - "title": "Name", - "type": [ - "string", - "null" - ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", - "minLength": 1 - }, - "email": { - "title": "Email", - "type": [ - "string", - "null" - ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" - }, - "telephone": { - "title": "Telephone", - "type": [ - "string", - "null" - ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "faxNumber": { - "title": "Fax number", - "type": [ - "string", - "null" - ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "url": { - "title": "URL", - "type": [ - "string", - "null" - ], - "description": "A web address for the contact point/person.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - } - }, - "type": "object", - "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", - "title": "Organization reference", - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "uniqueItems": true, - "minItems": 1 - }, - "items": { - "title": "Items awarded", - "description": "The goods, services or works awarded in this award, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", - "type": "array", - "minItems": 1, - "items": { - "title": "Item", - "type": "object", - "description": "A line-item of the goods, services, or works to be contracted.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the goods, services or works to be provided.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "classification": { - "title": "Classification", - "description": "The primary classification for the item.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A textual description or title for the classification code.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to uniquely identify the classification code.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "additionalClassifications": { - "title": "Additional classifications", - "description": "An array of additional classifications for the item.", - "type": "array", - "items": { - "title": "Classification", - "description": "A classification consists of at least two parts: an identifier for the list (scheme) from which the classification is taken, and an identifier for the category from that list being applied. It is useful to also publish a text label and/or URI that users can draw on to interpret the classification.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A textual description or title for the classification code.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to uniquely identify the classification code.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 - }, - "quantity": { - "title": "Quantity", - "description": "The number of units to be provided.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "unit": { - "title": "Unit", - "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "Name of the unit.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "value": { - "title": "Value", - "description": "The monetary value of a single unit.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "uri": { - "title": "URI", - "description": "The machine-readable URI for the unit of measure, provided by the scheme.", - "format": "uri", - "type": [ - "string", - "null" - ] - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true - }, - "contractPeriod": { - "title": "Contract period", - "description": "The period for which the contract has been awarded.", - "type": "object", - "properties": { - "startDate": { - "title": "Start date", - "description": "The start date for the period. When known, a precise start date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "endDate": { - "title": "End date", - "description": "The end date for the period. When known, a precise end date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "maxExtentDate": { - "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", - "format": "date-time", - "title": "Maximum extent", - "type": [ - "string", - "null" - ] - }, - "durationInDays": { - "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", - "title": "Duration (days)", - "type": [ - "integer", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 - }, - "documents": { - "title": "Documents", - "description": "Documents related to the award (for example, notices, bids, evaluation reports).", - "type": "array", - "items": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "amendments": { - "description": "An award amendment is a formal change to the details of the award, and generally involves the publication of a new award notice/release. The rationale and a description of the changes made can be provided here.", - "type": "array", - "title": "Amendments", - "items": { - "title": "Amendment", - "type": "object", - "description": "Amendment information", - "properties": { - "date": { - "title": "Amendment date", - "description": "The date of this amendment.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "rationale": { - "title": "Rationale", - "description": "An explanation for the amendment.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "description": "An identifier for this amendment: often the amendment number", - "type": "string", - "title": "ID", - "minLength": 1 - }, - "description": { - "description": "A free text, or semi-structured, description of the changes made in this amendment.", - "type": [ - "string", - "null" - ], - "title": "Description", - "minLength": 1 - }, - "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amended release (identifier)", - "minLength": 1 - }, - "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amending release (identifier)", - "minLength": 1 - }, - "changes": { - "title": "Amended fields", - "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", - "type": "array", - "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 - }, - "former_value": { - "title": "Former Value", - "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", - "type": [ - "string", - "number", - "integer", - "array", - "object", - "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 - } - }, - "minProperties": 1 - }, - "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" - }, - "minItems": 1, - "uniqueItems": true - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "minItems": 1, - "uniqueItems": true - }, - "amendment": { - "title": "Amendment", - "type": "object", - "description": "The use of individual amendment objects has been deprecated. From OCDS 1.1 information should be provided in the amendments array.", - "properties": { - "date": { - "title": "Amendment date", - "description": "The date of this amendment.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "rationale": { - "title": "Rationale", - "description": "An explanation for the amendment.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "description": "An identifier for this amendment: often the amendment number", - "type": "string", - "title": "ID", - "minLength": 1 - }, - "description": { - "description": "A free text, or semi-structured, description of the changes made in this amendment.", - "type": [ - "string", - "null" - ], - "title": "Description", - "minLength": 1 - }, - "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amended release (identifier)", - "minLength": 1 - }, - "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amending release (identifier)", - "minLength": 1 - }, - "changes": { - "title": "Amended fields", - "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", - "type": "array", - "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 - }, - "former_value": { - "title": "Former Value", - "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", - "type": [ - "string", - "number", - "integer", - "array", - "object", - "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 - } - }, - "minProperties": 1 - }, - "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" - }, - "minItems": 1, - "uniqueItems": true - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "required": [ - "id" - ], - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "contracts": { - "title": "Contracts", - "description": "Information about the contracts and their implementation. This information concerns the contracting process. This information typically concerns the period after the award or, if there was a standstill period, after the end of the standstill period.", - "type": "array", - "items": { - "type": "object", - "title": "Contract", - "description": "Information regarding the contract, typically between the buyer and supplier. This includes contracts describing all the contractual conditions (e.g. item, quantity, price, payment terms, time and place of delivery), as well as contracts only describing the general contractual conditions (such as a framework agreement) and those only describing the specific contractual conditions (such as a contract within a framework agreement). Communication between contractual parties that consists of minor specifications of conditions agreed previously (e.g. specifying the time or place of delivery) is not considered a contract. Amendments are considered as part of the contract that is being amended. Contracts are also used when giving prizes or other rewards (e.g. a follow-up contract) resulting from a design contest.", - "required": [ - "id", - "awardID" - ], - "properties": { - "id": { - "title": "Contract ID", - "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the contracting process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", - "type": [ - "string" - ], - "minLength": 1 - }, - "identifiers": { - "title": "Additional contract identifiers", - "description": "Additional identifiers for this contract. This field can be used to provide local identifiers for the contract.", - "type": "array", - "items": { - "title": "Simple identifier", - "description": "An unambiguous reference to a resource within a given context.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list, register or system from which the identifier is taken.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier taken from the scheme.", - "type": [ - "string", - "null" - ], - "versionId": true, - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 - }, - "awardID": { - "title": "Award ID", - "description": "The award.id against which this contract is being issued.", - "type": [ - "string", - "integer" - ], - "minLength": 1 - }, - "title": { - "title": "Contract title", - "description": "Contract title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Contract description", - "description": "Contract description", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "status": { - "title": "Contract status", - "description": "The current status of the contract, from the closed [contractStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#contract-status) codelist.", - "type": [ - "string", - "null" - ], - "enum": [ - "pending", - "active", - "cancelled", - "terminated", - "terminatedEarly", - "terminatedSuccessfully", - null - ], - "codelist": "contractStatus.csv", - "openCodelist": false - }, - "statusDetails": { - "title": "Status details", - "description": "Additional details on the status of the contract. This field can be used to provide the local name of the status.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "dateSigned": { - "title": "Date concluded", - "description": "The date the contract was concluded. Typically, this is the date when the last buyer or supplier signed the contract. However, if no contract is signed, then the date of contract conclusion may correspond to other dates (e.g. the date when the buyer notified the supplier, which had the legal effect of concluding the contract).", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "value": { - "title": "Value", - "description": "The value of this contract. A negative value indicates that the contract will involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "maximumValue": { - "title": "Maximum value", - "description": "The maximum value of the framework agreement, as a whole.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "estimatedValue": { - "title": "Estimated value", - "description": "The estimated value of the framework agreement, as a whole, as estimated when the framework agreement is concluded (e.g. signed).", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "items": { - "title": "Items contracted", - "description": "The goods, services or works in this contract. If the items contracted are identical to the items awarded, this field should be omitted.", - "type": "array", - "minItems": 1, - "items": { - "title": "Item", - "type": "object", - "description": "A line-item of the goods, services, or works to be contracted.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the goods, services or works to be provided.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "classification": { - "title": "Classification", - "description": "The primary classification for the item.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A textual description or title for the classification code.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to uniquely identify the classification code.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "additionalClassifications": { - "title": "Additional classifications", - "description": "An array of additional classifications for the item.", - "type": "array", - "items": { - "title": "Classification", - "description": "A classification consists of at least two parts: an identifier for the list (scheme) from which the classification is taken, and an identifier for the category from that list being applied. It is useful to also publish a text label and/or URI that users can draw on to interpret the classification.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A textual description or title for the classification code.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to uniquely identify the classification code.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 - }, - "quantity": { - "title": "Quantity", - "description": "The number of units to be provided.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "unit": { - "title": "Unit", - "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "Name of the unit.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "value": { - "title": "Value", - "description": "The monetary value of a single unit.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "uri": { - "title": "URI", - "description": "The machine-readable URI for the unit of measure, provided by the scheme.", - "format": "uri", - "type": [ - "string", - "null" - ] - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true - }, - "period": { - "title": "Period", - "description": "The start and end date for the contract.", - "type": "object", - "properties": { - "startDate": { - "title": "Start date", - "description": "The start date for the period. When known, a precise start date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "endDate": { - "title": "End date", - "description": "The end date for the period. When known, a precise end date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "maxExtentDate": { - "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", - "format": "date-time", - "title": "Maximum extent", - "type": [ - "string", - "null" - ] - }, - "durationInDays": { - "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", - "title": "Duration (days)", - "type": [ - "integer", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 - }, - "documents": { - "title": "Documents", - "description": "Documents related to the contract (for example, notices, signed contracts).", - "type": "array", - "items": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "implementation": { - "type": "object", - "title": "Implementation", - "description": "Information related to the implementation of the contract in accordance with the obligations laid out therein.", - "properties": { - "transactions": { - "title": "Transactions", - "description": "A list of the spending transactions made against this contract", - "type": "array", - "items": { - "type": "object", - "title": "Transaction information", - "description": "A spending transaction related to the contract. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A unique identifier for this transaction. This identifier should be possible to cross-reference against the provided data source. For IATI this is the transaction reference. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "source": { - "title": "Data source", - "description": "Used to point either to a corresponding Fiscal Data Package, IATI file, or machine or human-readable source where users can find further information on the budget line item identifiers, or project identifiers, provided here.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "date": { - "title": "Date", - "description": "The date of the transaction", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "value": { - "title": "Value", - "description": "The value of the transaction.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "payer": { - "properties": { - "name": { - "type": "string", - "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", - "title": "Organization name", - "minLength": 1 - }, - "id": { - "type": "string", - "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "address": { - "title": "Address", - "description": "(Deprecated outside the parties section)", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "countryName": { - "title": "Country name", - "type": [ - "string", - "null" - ], - "description": "The country name. For example, United States.", - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "additionalIdentifiers": { - "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": { - "title": "Identifier", - "description": "A unique identifier for an organization.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "title": "Additional identifiers", - "uniqueItems": true, - "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 - }, - "contactPoint": { - "title": "Contact point", - "type": "object", - "description": "(Deprecated outside the parties section)", - "properties": { - "name": { - "title": "Name", - "type": [ - "string", - "null" - ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", - "minLength": 1 - }, - "email": { - "title": "Email", - "type": [ - "string", - "null" - ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" - }, - "telephone": { - "title": "Telephone", - "type": [ - "string", - "null" - ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "faxNumber": { - "title": "Fax number", - "type": [ - "string", - "null" - ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "url": { - "title": "URL", - "type": [ - "string", - "null" - ], - "description": "A web address for the contact point/person.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - } - }, - "type": "object", - "description": "An organization reference for the organization from which the funds in this transaction originate.", - "title": "Payer", - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "payee": { - "properties": { - "name": { - "type": "string", - "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", - "title": "Organization name", - "minLength": 1 - }, - "id": { - "type": "string", - "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "address": { - "title": "Address", - "description": "(Deprecated outside the parties section)", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "countryName": { - "title": "Country name", - "type": [ - "string", - "null" - ], - "description": "The country name. For example, United States.", - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "additionalIdentifiers": { - "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": { - "title": "Identifier", - "description": "A unique identifier for an organization.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "title": "Additional identifiers", - "uniqueItems": true, - "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 - }, - "contactPoint": { - "title": "Contact point", - "type": "object", - "description": "(Deprecated outside the parties section)", - "properties": { - "name": { - "title": "Name", - "type": [ - "string", - "null" - ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", - "minLength": 1 - }, - "email": { - "title": "Email", - "type": [ - "string", - "null" - ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" - }, - "telephone": { - "title": "Telephone", - "type": [ - "string", - "null" - ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "faxNumber": { - "title": "Fax number", - "type": [ - "string", - "null" - ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "url": { - "title": "URL", - "type": [ - "string", - "null" - ], - "description": "A web address for the contact point/person.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - } - }, - "type": "object", - "description": "An organization reference for the organization which receives the funds in this transaction.", - "title": "Payee", - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "uri": { - "title": "Linked spending information", - "description": "A URI pointing directly to a machine-readable record about this spending transaction.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "amount": { - "title": "Amount", - "description": "(Deprecated in 1.1. Use transaction.value instead) The value of the transaction. A negative value indicates a refund or correction.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1, - "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": { - "title": "Provider organization", - "description": "(Deprecated in 1.1. Use transaction.payer instead.) The Organization Identifier for the organization from which the funds in this transaction originate. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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, services or works procured rather than the flow of funds between the parties.", - "deprecatedVersion": "1.1" - } - }, - "receiverOrganization": { - "title": "Receiver organization", - "description": "(Deprecated in 1.1. Use transaction.payee instead). The Organization Identifier for the organization which receives the funds in this transaction. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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, services or works procured rather than the flow of funds between the parties.", - "deprecatedVersion": "1.1" - } - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "milestones": { - "title": "Milestones", - "description": "As milestones are completed, the milestone's status and dates should be updated.", - "type": "array", - "items": { - "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "Milestone title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "type": { - "title": "Milestone type", - "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the milestone.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "code": { - "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "dueAfterDate": { - "title": "Due after date", - "description": "The date after which the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dueDate": { - "title": "Due date", - "description": "The date the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateMet": { - "format": "date-time", - "title": "Date met", - "description": "The date on which the milestone was met.", - "type": [ - "string", - "null" - ] - }, - "dateModified": { - "title": "Date modified", - "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "status": { - "title": "Status", - "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", - "type": [ - "string", - "null" - ], - "enum": [ - "scheduled", - "met", - "notMet", - "partiallyMet", - null - ], - "codelist": "milestoneStatus.csv", - "openCodelist": false - }, - "documents": { - "title": "Documents", - "description": "List of documents associated with this milestone (Deprecated in 1.1).", - "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": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "value": { - "title": "Value", - "description": "The payment's value, if the milestone represents a planned payment.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "documents": { - "title": "Documents", - "description": "Documents related to the implementation of the contract (for example, completion certificates, audits).", - "type": "array", - "items": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - } - }, - "minProperties": 1 - }, - "relatedProcesses": { - "uniqueItems": true, - "items": { - "description": "A reference to a related contracting (or planning) process: generally one preceding or following on from the current process.", - "type": "object", - "title": "Related Process", - "properties": { - "id": { - "title": "Relationship ID", - "description": "A local identifier for this relationship, unique within this array.", - "type": "string", - "minLength": 1 - }, - "relationship": { - "items": { - "type": "string", - "minLength": 1 - }, - "description": "The type of relationship, using the open [relatedProcess](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process) codelist.", - "title": "Relationship", - "type": [ - "array", - "null" - ], - "codelist": "relatedProcess.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "title": { - "description": "The title of the related process, where referencing a contracting (or planning) process, this field should match the tender/title field in the related process.", - "title": "Related process title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "scheme": { - "title": "Scheme", - "description": "The identification scheme used by this cross-reference, using the open [relatedProcessScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "relatedProcessScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "identifier": { - "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", - "title": "Identifier", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "format": "uri", - "description": "A URI pointing to a machine-readable document, release or record package containing the identified related process.", - "title": "Related process URI", - "type": [ - "string", - "null" - ] - } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "description": "The details of related processes: for example, if this process is followed by one or more contracting processes, represented under a separate ocid. This is commonly used to refer to subcontracts and to renewal or replacement processes for this contract.", - "title": "Related processes", - "type": "array", - "minItems": 1 - }, - "milestones": { - "title": "Contract milestones", - "description": "A list of milestones associated with the finalization of this contract.", - "type": "array", - "items": { - "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "Milestone title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "type": { - "title": "Milestone type", - "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the milestone.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "code": { - "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "dueAfterDate": { - "title": "Due after date", - "description": "The date after which the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dueDate": { - "title": "Due date", - "description": "The date the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateMet": { - "format": "date-time", - "title": "Date met", - "description": "The date on which the milestone was met.", - "type": [ - "string", - "null" - ] - }, - "dateModified": { - "title": "Date modified", - "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "status": { - "title": "Status", - "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", - "type": [ - "string", - "null" - ], - "enum": [ - "scheduled", - "met", - "notMet", - "partiallyMet", - null - ], - "codelist": "milestoneStatus.csv", - "openCodelist": false - }, - "documents": { - "title": "Documents", - "description": "List of documents associated with this milestone (Deprecated in 1.1).", - "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": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "value": { - "title": "Value", - "description": "The payment's value, if the milestone represents a planned payment.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true - }, - "amendments": { - "description": "A contract amendment is a formal change to, or extension of, a contract, and generally involves the publication of a new contract signature notice/release, or some other documents detailing the change. The rationale and a description of the changes made can be provided here.", - "type": "array", - "title": "Amendments", - "items": { - "title": "Amendment", - "type": "object", - "description": "Amendment information", - "properties": { - "date": { - "title": "Amendment date", - "description": "The date of this amendment.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "rationale": { - "title": "Rationale", - "description": "An explanation for the amendment.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "description": "An identifier for this amendment: often the amendment number", - "type": "string", - "title": "ID", - "minLength": 1 - }, - "description": { - "description": "A free text, or semi-structured, description of the changes made in this amendment.", - "type": [ - "string", - "null" - ], - "title": "Description", - "minLength": 1 - }, - "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amended release (identifier)", - "minLength": 1 - }, - "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amending release (identifier)", - "minLength": 1 - }, - "changes": { - "title": "Amended fields", - "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", - "type": "array", - "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 - }, - "former_value": { - "title": "Former Value", - "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", - "type": [ - "string", - "number", - "integer", - "array", - "object", - "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 - } - }, - "minProperties": 1 - }, - "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" - }, - "minItems": 1, - "uniqueItems": true - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "minItems": 1, - "uniqueItems": true - }, - "amendment": { - "title": "Amendment", - "type": "object", - "description": "The use of individual amendment objects has been deprecated. From OCDS 1.1 information should be provided in the amendments array.", - "properties": { - "date": { - "title": "Amendment date", - "description": "The date of this amendment.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "rationale": { - "title": "Rationale", - "description": "An explanation for the amendment.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "description": "An identifier for this amendment: often the amendment number", - "type": "string", - "title": "ID", - "minLength": 1 - }, - "description": { - "description": "A free text, or semi-structured, description of the changes made in this amendment.", - "type": [ - "string", - "null" - ], - "title": "Description", - "minLength": 1 - }, - "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amended release (identifier)", - "minLength": 1 - }, - "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amending release (identifier)", - "minLength": 1 - }, - "changes": { - "title": "Amended fields", - "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", - "type": "array", - "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 - }, - "former_value": { - "title": "Former Value", - "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", - "type": [ - "string", - "number", - "integer", - "array", - "object", - "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 - } - }, - "minProperties": 1 - }, - "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" - }, - "minItems": 1, - "uniqueItems": true - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "required": [ - "id" - ], - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "language": { - "title": "Release language", - "description": "The default language of the data, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "minLength": 1 - }, - "relatedProcesses": { - "uniqueItems": true, - "items": { - "description": "A reference to a related contracting (or planning) process: generally one preceding or following on from the current process.", - "type": "object", - "title": "Related Process", - "properties": { - "id": { - "title": "Relationship ID", - "description": "A local identifier for this relationship, unique within this array.", - "type": "string", - "minLength": 1 - }, - "relationship": { - "items": { - "type": "string", - "minLength": 1 - }, - "description": "The type of relationship, using the open [relatedProcess](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process) codelist.", - "title": "Relationship", - "type": [ - "array", - "null" - ], - "codelist": "relatedProcess.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "title": { - "description": "The title of the related process, where referencing a contracting (or planning) process, this field should match the tender/title field in the related process.", - "title": "Related process title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "scheme": { - "title": "Scheme", - "description": "The identification scheme used by this cross-reference, using the open [relatedProcessScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "relatedProcessScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "identifier": { - "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", - "title": "Identifier", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "format": "uri", - "description": "A URI pointing to a machine-readable document, release or record package containing the identified related process.", - "title": "Related process URI", - "type": [ - "string", - "null" - ] - } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "description": "The details of related processes: for example, if this process follows on from one or more other processes, represented under a separate ocid. This is commonly used to relate mini-competitions to their parent frameworks or individual tenders to a broader planning process.", - "title": "Related processes", - "type": "array", - "minItems": 1 - }, - "links": { - "title": "Links", - "description": "Links to related resources. In a release, links relate to the individual release: for example, a link to a canonical version of the release in another OCDS publication. In a compiled release, links relate to the entire contracting (or planning) process: for example, a link to a resource in a non-OCDS publication that represents the entire contracting process. For references to related processes, see the `relatedProcesses` array.", - "type": "array", - "items": { - "title": "Link", - "description": "A reference to a related resource.", - "type": "object", - "properties": { - "rel": { - "title": "Link relation type", - "description": "The relationship with the related resource, using the open [link relation type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#link-relation-type) codelist.", - "type": "string", - "codelist": "linkRelationType.csv", - "openCodelist": true, - "minLength": 1 - }, - "href": { - "title": "Link target", - "description": "The URL of the related resource.", - "type": "string", - "format": "uri" - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "omitWhenMerged": true, - "minItems": 1 - } - }, - "required": [ - "ocid", - "id", - "date", - "tag", - "initiationType" - ], - "definitions": { - "Planning": { - "title": "Planning", - "description": "Information about, for example, needs identification, budget planning and market research. This information concerns the planning process. This information typically concerns the period before the publication of procurement documents.", - "type": "object", - "properties": { - "id": { - "title": "Planning ID", - "description": "An identifier for this planning process.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "rationale": { - "title": "Rationale", - "description": "The rationale for the planned procurement provided in free text. More detail can be provided in an attached document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "budget": { - "type": "object", - "title": "Budget", - "description": "Details of the budget that will fund the future contract(s)", - "properties": { - "id": { - "title": "ID", - "description": "An identifier of the budget that will fund the future contract(s). This identifier should be possible to cross-reference against formal budget documents.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Budget Source", - "description": "A short free-text description of the budget that will fund the future contract(s). This may be used to provide human-readable information on: the budget category for the future contract(s) and/or the nature and source of the budget allocation (e.g. conditional, confirmed, or any official authorizations given to the budget allocation).", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "amount": { - "title": "Amount", - "description": "The value reserved for the future contract(s), within the budget. A negative value indicates income to the budget as a result of the future contract(s), rather than expenditure. If the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line that will fund the future contract(s).", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "project": { - "title": "Project title", - "description": "The name of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "projectID": { - "title": "Project identifier", - "description": "The identifier of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "Linked budget information", - "description": "The URL of a machine-readable resource about the budget that will fund the future contract(s). For human-readable documents, see the `planning.documents` array.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "source": { - "title": "Data Source", - "description": "(Deprecated in 1.1) Used to point either to a corresponding Budget Data Package, or to a machine or human-readable source where users can find further information on the budget line item identifiers, or project identifiers, provided here.", - "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" - } - }, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "documents": { - "title": "Documents", - "description": "Documents related to the planning process (for example, notices, needs assessments and market studies).", - "type": "array", - "items": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true - }, - "milestones": { - "title": "Planning milestones", - "description": "A list of milestones associated with the planning process.", - "type": "array", - "items": { - "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "Milestone title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "type": { - "title": "Milestone type", - "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the milestone.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "code": { - "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "dueAfterDate": { - "title": "Due after date", - "description": "The date after which the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dueDate": { - "title": "Due date", - "description": "The date the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateMet": { - "format": "date-time", - "title": "Date met", - "description": "The date on which the milestone was met.", - "type": [ - "string", - "null" - ] - }, - "dateModified": { - "title": "Date modified", - "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "status": { - "title": "Status", - "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", - "type": [ - "string", - "null" - ], - "enum": [ - "scheduled", - "met", - "notMet", - "partiallyMet", - null - ], - "codelist": "milestoneStatus.csv", - "openCodelist": false - }, - "documents": { - "title": "Documents", - "description": "List of documents associated with this milestone (Deprecated in 1.1).", - "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": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "value": { - "title": "Value", - "description": "The payment's value, if the milestone represents a planned payment.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Tender": { - "title": "Tender", - "description": "Information about, for example, the needed items and their estimated value, procurement method, award criteria, and various deadlines. This information concerns either the contracting process or the planning process. For a contracting process, this information typically concerns the period starting with the publication of procurement documents and ending with the bid submission deadline. For a planning process, this information typically concerns the period before the publication of procurement documents.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "Tender ID", - "description": "An identifier for this tender. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "identifiers": { - "title": "Additional tender identifiers", - "description": "Additional identifiers for this tender. This field can be used to provide local identifiers for the tender.", - "type": "array", - "items": { - "title": "Simple identifier", - "description": "An unambiguous reference to a resource within a given context.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list, register or system from which the identifier is taken.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier taken from the scheme.", - "type": [ - "string", - "null" - ], - "versionId": true, - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 - }, - "title": { - "title": "Tender title", - "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement. The title should be less than 150 characters in length.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Tender description", - "description": "A summary description of the tender. This complements any structured information provided using the items array. Descriptions should be short and easy to read. Avoid using ALL CAPS.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "status": { - "title": "Tender status", - "description": "The current status of the tender, from the closed [tenderStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#tender-status) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "tenderStatus.csv", - "openCodelist": false, - "enum": [ - "planning", - "planned", - "active", - "cancelled", - "unsuccessful", - "complete", - "withdrawn", - null - ] - }, - "statusDetails": { - "title": "Status details", - "description": "Additional details on the status of the tender. This field can be used to provide the local name of the status.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "procuringEntity": { - "properties": { - "name": { - "type": "string", - "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", - "title": "Organization name", - "minLength": 1 - }, - "id": { - "type": "string", - "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "address": { - "title": "Address", - "description": "(Deprecated outside the parties section)", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "countryName": { - "title": "Country name", - "type": [ - "string", - "null" - ], - "description": "The country name. For example, United States.", - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "additionalIdentifiers": { - "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": { - "title": "Identifier", - "description": "A unique identifier for an organization.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "title": "Additional identifiers", - "uniqueItems": true, - "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 - }, - "contactPoint": { - "title": "Contact point", - "type": "object", - "description": "(Deprecated outside the parties section)", - "properties": { - "name": { - "title": "Name", - "type": [ - "string", - "null" - ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", - "minLength": 1 - }, - "email": { - "title": "Email", - "type": [ - "string", - "null" - ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" - }, - "telephone": { - "title": "Telephone", - "type": [ - "string", - "null" - ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "faxNumber": { - "title": "Fax number", - "type": [ - "string", - "null" - ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "url": { - "title": "URL", - "type": [ - "string", - "null" - ], - "description": "A web address for the contact point/person.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - } - }, - "type": "object", - "description": "The organization managing the contracting (or planning) process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", - "title": "Procuring entity", - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "items": { - "title": "Items to be procured", - "description": "The goods, services or works to be purchased, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", - "type": "array", - "items": { - "title": "Item", - "type": "object", - "description": "A line-item of the goods, services, or works to be contracted.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the goods, services or works to be provided.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "classification": { - "title": "Classification", - "description": "The primary classification for the item.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A textual description or title for the classification code.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to uniquely identify the classification code.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "additionalClassifications": { - "title": "Additional classifications", - "description": "An array of additional classifications for the item.", - "type": "array", - "items": { - "title": "Classification", - "description": "A classification consists of at least two parts: an identifier for the list (scheme) from which the classification is taken, and an identifier for the category from that list being applied. It is useful to also publish a text label and/or URI that users can draw on to interpret the classification.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A textual description or title for the classification code.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to uniquely identify the classification code.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 - }, - "quantity": { - "title": "Quantity", - "description": "The number of units to be provided.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "unit": { - "title": "Unit", - "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "Name of the unit.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "value": { - "title": "Value", - "description": "The monetary value of a single unit.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "uri": { - "title": "URI", - "description": "The machine-readable URI for the unit of measure, provided by the scheme.", - "format": "uri", - "type": [ - "string", - "null" - ] - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "value": { - "title": "Value", - "description": "The estimated value of the procurement, as estimated when publishing the tender information. A negative value indicates that the future contract(s) may involve payments from the supplier to the buyer (commonly used in concession contracts).", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "minValue": { - "title": "Minimum value", - "description": "The estimated minimum value of the procurement. A negative value indicates that the future contract(s) may involve payments from the supplier to the buyer (commonly used in concession contracts).", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "maximumValue": { - "title": "Maximum value", - "description": "The estimated maximum value of the framework agreement, as estimated when publishing the tender information.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "procurementMethod": { - "title": "Procurement method", - "description": "The method describing which organizations can submit a bid, using the closed [method](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#method) codelist. In releases concerning second stages (e.g. in framework agreements) or other subsequent stages, the procurement method always refers to the first stage of the contracting process.", - "type": [ - "string", - "null" - ], - "codelist": "method.csv", - "openCodelist": false, - "enum": [ - "open", - "selective", - "limited", - "direct", - null - ] - }, - "procurementMethodDetails": { - "title": "Procurement method details", - "description": "Additional detail on the procurement method used. This field can be used to provide the local name of the particular procurement method used.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "procurementMethodRationale": { - "title": "Procurement method rationale", - "description": "Rationale for the chosen procurement method. This is especially important to provide a justification in the case of limited tenders or direct awards.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "mainProcurementCategory": { - "title": "Main procurement category", - "description": "The primary category describing the main object of this contracting (or planning) process, from the closed [procurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#procurement-category) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "procurementCategory.csv", - "openCodelist": false, - "enum": [ - "goods", - "services", - "works", - null - ] - }, - "additionalProcurementCategories": { - "title": "Additional procurement categories", - "description": "Any additional categories describing the objects of this contracting (or planning) process, using the open [extendedProcurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#extended-procurement-category) codelist.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "extendedProcurementCategory.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "awardCriteria": { - "title": "Award criteria", - "description": "The award criteria for the procurement, using the open [awardCriteria](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#award-criteria) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "awardCriteria.csv", - "openCodelist": true, - "minLength": 1 - }, - "awardCriteriaDetails": { - "title": "Award criteria details", - "description": "Any detailed or further information on the award criteria.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "submissionMethod": { - "title": "Submission method", - "description": "The methods by which bids are submitted, using the open [submissionMethod](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#submission-method) codelist.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "submissionMethod.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated, because all codes from the submissionMethod codelist are deprecated. Refer to the Deprecation note of individual codes.", - "deprecatedVersion": "1.2" - }, - "minItems": 1, - "uniqueItems": true - }, - "submissionMethodDetails": { - "title": "Submission method details", - "description": "Information about the methods by which bids are submitted. This can include the address, e-mail address or online service to which bids are submitted, and any special requirements to be followed for submissions. More structured information can be provided using the submission terms extension.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "datePublished": { - "description": "The date on which the tender was published.", - "format": "date-time", - "title": "Date published", - "type": [ - "string", - "null" - ] - }, - "tenderPeriod": { - "title": "Tender period", - "description": "The period when the tender is open for submissions. The end date is the closing date for bid submissions.", - "type": "object", - "properties": { - "startDate": { - "title": "Start date", - "description": "The start date for the period. When known, a precise start date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "endDate": { - "title": "End date", - "description": "The end date for the period. When known, a precise end date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "maxExtentDate": { - "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", - "format": "date-time", - "title": "Maximum extent", - "type": [ - "string", - "null" - ] - }, - "durationInDays": { - "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", - "title": "Duration (days)", - "type": [ - "integer", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 - }, - "enquiryPeriod": { - "title": "Enquiry period", - "description": "The period during which potential bidders may submit questions and requests for clarification to the buyer or the procuring entity. Details of how to submit enquiries should be provided in attached notices, or in submissionMethodDetails. Structured dates for when responses to questions will be made can be provided using tender milestones.", - "type": "object", - "properties": { - "startDate": { - "title": "Start date", - "description": "The start date for the period. When known, a precise start date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "endDate": { - "title": "End date", - "description": "The end date for the period. When known, a precise end date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "maxExtentDate": { - "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", - "format": "date-time", - "title": "Maximum extent", - "type": [ - "string", - "null" - ] - }, - "durationInDays": { - "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", - "title": "Duration (days)", - "type": [ - "integer", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 - }, - "hasEnquiries": { - "title": "Has enquiries?", - "description": "A true/false field to indicate whether any enquiries were received during the tender stage. Structured information on enquiries that were received, and responses to them, can be provided using the enquiries extension.", - "type": [ - "boolean", - "null" - ] - }, - "eligibilityCriteria": { - "title": "Eligibility criteria", - "description": "A description of any eligibility criteria for potential suppliers.", - "type": [ - "string", - "null" - ], - "deprecated": { - "description": "This field had unclear semantics and used ambiguous terms, and is deprecated in favor of exclusionGrounds.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "exclusionGrounds": { - "title": "Exclusion grounds", - "description": "The criteria regarding the situation of a tenderer that can lead to its exclusion from the contracting process. For example: criminal convictions, bankruptcy, presence on a blacklist or failure to pay taxes.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "selectionCriteria": { - "title": "Selection criteria", - "description": "The minimum requirements for potential suppliers to participate in the contracting process. Selection criteria ensure that a potential supplier has the legal and financial capacities and the technical and professional abilities to perform the contract. More structured information can be provided using the selection criteria extension.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "awardPeriod": { - "title": "Evaluation and award period", - "description": "The period for decision making regarding the contract award. The end date should be the date on which an award decision is due to be finalized. The start date may be used to indicate the start of an evaluation period.", - "type": "object", - "properties": { - "startDate": { - "title": "Start date", - "description": "The start date for the period. When known, a precise start date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "endDate": { - "title": "End date", - "description": "The end date for the period. When known, a precise end date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "maxExtentDate": { - "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", - "format": "date-time", - "title": "Maximum extent", - "type": [ - "string", - "null" - ] - }, - "durationInDays": { - "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", - "title": "Duration (days)", - "type": [ - "integer", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 - }, - "standstillPeriod": { - "title": "Standstill period", - "description": "The period before the contract signature during which the award decision can be challenged. This period typically starts on the date on which the tenderers are informed about the award decision.", - "type": "object", - "properties": { - "startDate": { - "title": "Start date", - "description": "The start date for the period. When known, a precise start date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "endDate": { - "title": "End date", - "description": "The end date for the period. When known, a precise end date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "maxExtentDate": { - "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", - "format": "date-time", - "title": "Maximum extent", - "type": [ - "string", - "null" - ] - }, - "durationInDays": { - "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", - "title": "Duration (days)", - "type": [ - "integer", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 - }, - "contractPeriod": { - "title": "Contract period", - "description": "The period over which the contract is estimated or required to be active. If the tender does not specify explicit dates, the duration field may be used.", - "type": "object", - "properties": { - "startDate": { - "title": "Start date", - "description": "The start date for the period. When known, a precise start date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "endDate": { - "title": "End date", - "description": "The end date for the period. When known, a precise end date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "maxExtentDate": { - "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", - "format": "date-time", - "title": "Maximum extent", - "type": [ - "string", - "null" - ] - }, - "durationInDays": { - "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", - "title": "Duration (days)", - "type": [ - "integer", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 - }, - "numberOfTenderers": { - "title": "Number of tenderers", - "description": "The number of tenderers that submit a bid.", - "type": [ - "integer", - "null" - ], - "minimum": 0 - }, - "tenderers": { - "title": "Tenderers", - "description": "All organizations that submit a bid. More detailed information on bids and the bidding organization can be provided using the bid extension.", - "type": "array", - "items": { - "properties": { - "name": { - "type": "string", - "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", - "title": "Organization name", - "minLength": 1 - }, - "id": { - "type": "string", - "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "address": { - "title": "Address", - "description": "(Deprecated outside the parties section)", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "countryName": { - "title": "Country name", - "type": [ - "string", - "null" - ], - "description": "The country name. For example, United States.", - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "additionalIdentifiers": { - "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": { - "title": "Identifier", - "description": "A unique identifier for an organization.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "title": "Additional identifiers", - "uniqueItems": true, - "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 - }, - "contactPoint": { - "title": "Contact point", - "type": "object", - "description": "(Deprecated outside the parties section)", - "properties": { - "name": { - "title": "Name", - "type": [ - "string", - "null" - ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", - "minLength": 1 - }, - "email": { - "title": "Email", - "type": [ - "string", - "null" - ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" - }, - "telephone": { - "title": "Telephone", - "type": [ - "string", - "null" - ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "faxNumber": { - "title": "Fax number", - "type": [ - "string", - "null" - ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "url": { - "title": "URL", - "type": [ - "string", - "null" - ], - "description": "A web address for the contact point/person.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - } - }, - "type": "object", - "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", - "title": "Organization reference", - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "uniqueItems": true, - "minItems": 1 - }, - "documents": { - "title": "Documents", - "description": "Documents related to the tender stage (for example, notices, technical specifications, evaluation criteria, questions and clarifications).", - "type": "array", - "items": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true - }, - "milestones": { - "title": "Milestones", - "description": "A list of milestones associated with the tender.", - "type": "array", - "items": { - "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "Milestone title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "type": { - "title": "Milestone type", - "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the milestone.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "code": { - "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "dueAfterDate": { - "title": "Due after date", - "description": "The date after which the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dueDate": { - "title": "Due date", - "description": "The date the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateMet": { - "format": "date-time", - "title": "Date met", - "description": "The date on which the milestone was met.", - "type": [ - "string", - "null" - ] - }, - "dateModified": { - "title": "Date modified", - "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "status": { - "title": "Status", - "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", - "type": [ - "string", - "null" - ], - "enum": [ - "scheduled", - "met", - "notMet", - "partiallyMet", - null - ], - "codelist": "milestoneStatus.csv", - "openCodelist": false - }, - "documents": { - "title": "Documents", - "description": "List of documents associated with this milestone (Deprecated in 1.1).", - "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": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "value": { - "title": "Value", - "description": "The payment's value, if the milestone represents a planned payment.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true - }, - "amendments": { - "description": "A tender amendment is a formal change to the tender, and generally involves the publication of a new tender notice/release. The rationale and a description of the changes made can be provided here.", - "type": "array", - "title": "Amendments", - "items": { - "title": "Amendment", - "type": "object", - "description": "Amendment information", - "properties": { - "date": { - "title": "Amendment date", - "description": "The date of this amendment.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "rationale": { - "title": "Rationale", - "description": "An explanation for the amendment.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "description": "An identifier for this amendment: often the amendment number", - "type": "string", - "title": "ID", - "minLength": 1 - }, - "description": { - "description": "A free text, or semi-structured, description of the changes made in this amendment.", - "type": [ - "string", - "null" - ], - "title": "Description", - "minLength": 1 - }, - "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amended release (identifier)", - "minLength": 1 - }, - "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amending release (identifier)", - "minLength": 1 - }, - "changes": { - "title": "Amended fields", - "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", - "type": "array", - "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 - }, - "former_value": { - "title": "Former Value", - "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", - "type": [ - "string", - "number", - "integer", - "array", - "object", - "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 - } - }, - "minProperties": 1 - }, - "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" - }, - "minItems": 1, - "uniqueItems": true - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "minItems": 1, - "uniqueItems": true - }, - "amendment": { - "title": "Amendment", - "type": "object", - "description": "The use of individual amendment objects has been deprecated. From OCDS 1.1 information should be provided in the amendments array.", - "properties": { - "date": { - "title": "Amendment date", - "description": "The date of this amendment.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "rationale": { - "title": "Rationale", - "description": "An explanation for the amendment.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "description": "An identifier for this amendment: often the amendment number", - "type": "string", - "title": "ID", - "minLength": 1 - }, - "description": { - "description": "A free text, or semi-structured, description of the changes made in this amendment.", - "type": [ - "string", - "null" - ], - "title": "Description", - "minLength": 1 - }, - "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amended release (identifier)", - "minLength": 1 - }, - "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amending release (identifier)", - "minLength": 1 - }, - "changes": { - "title": "Amended fields", - "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", - "type": "array", - "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 - }, - "former_value": { - "title": "Former Value", - "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", - "type": [ - "string", - "number", - "integer", - "array", - "object", - "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 - } - }, - "minProperties": 1 - }, - "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" - }, - "minItems": 1, - "uniqueItems": true - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "required": [ - "id" - ], - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(selectionCriteria_(((([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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Award": { - "title": "Award", - "description": "Decision by the buyer or the procuring entity on the supplier with whom it intends to conclude a contract, including the items to be supplied and their value. Typically, this decision leads to one or more contracts, but not always (for example, the award is appealed at court or the supplier refuses to sign the contract). Depending on the jurisdiction, a single decision may concern a single supplier, item and value; or batches of suppliers and/or items and/or values. Similarly, sometimes the award is published as soon as it is made and sometimes only together with a contract.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "Award ID", - "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the contracting process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", - "type": [ - "string" - ], - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "Award title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "Award description", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "status": { - "title": "Award status", - "description": "The current status of the award, from the closed [awardStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#award-status) codelist.", - "type": [ - "string", - "null" - ], - "enum": [ - "pending", - "active", - "cancelled", - "unsuccessful", - null - ], - "codelist": "awardStatus.csv", - "openCodelist": false - }, - "statusDetails": { - "title": "Status details", - "description": "Additional details on the status of the award. This field can be used to provide the local name of the status.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "date": { - "title": "Award date", - "description": "The date of the contract award. This is usually the date on which a decision to award was made.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the award was published.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "value": { - "title": "Value", - "description": "The value of this award. There may be more than one award per procurement. A negative value indicates that the contract(s) resulting from this award may involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "maximumValue": { - "title": "Maximum value", - "description": "The estimated maximum value of the framework agreement, as a whole, as estimated when making the award.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "estimatedValue": { - "title": "Estimated value", - "description": "The estimated value of the framework agreement, as a whole, as estimated when making the award.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "suppliers": { - "title": "Suppliers", - "description": "Organizations with which a buyer or a procuring entity decided to conclude a contract.", - "type": "array", - "items": { - "properties": { - "name": { - "type": "string", - "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", - "title": "Organization name", - "minLength": 1 - }, - "id": { - "type": "string", - "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "address": { - "title": "Address", - "description": "(Deprecated outside the parties section)", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "countryName": { - "title": "Country name", - "type": [ - "string", - "null" - ], - "description": "The country name. For example, United States.", - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "additionalIdentifiers": { - "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": { - "title": "Identifier", - "description": "A unique identifier for an organization.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "title": "Additional identifiers", - "uniqueItems": true, - "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 - }, - "contactPoint": { - "title": "Contact point", - "type": "object", - "description": "(Deprecated outside the parties section)", - "properties": { - "name": { - "title": "Name", - "type": [ - "string", - "null" - ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", - "minLength": 1 - }, - "email": { - "title": "Email", - "type": [ - "string", - "null" - ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" - }, - "telephone": { - "title": "Telephone", - "type": [ - "string", - "null" - ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "faxNumber": { - "title": "Fax number", - "type": [ - "string", - "null" - ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "url": { - "title": "URL", - "type": [ - "string", - "null" - ], - "description": "A web address for the contact point/person.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - } - }, - "type": "object", - "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", - "title": "Organization reference", - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "uniqueItems": true, - "minItems": 1 - }, - "items": { - "title": "Items awarded", - "description": "The goods, services or works awarded in this award, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", - "type": "array", - "minItems": 1, - "items": { - "title": "Item", - "type": "object", - "description": "A line-item of the goods, services, or works to be contracted.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the goods, services or works to be provided.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "classification": { - "title": "Classification", - "description": "The primary classification for the item.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A textual description or title for the classification code.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to uniquely identify the classification code.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "additionalClassifications": { - "title": "Additional classifications", - "description": "An array of additional classifications for the item.", - "type": "array", - "items": { - "title": "Classification", - "description": "A classification consists of at least two parts: an identifier for the list (scheme) from which the classification is taken, and an identifier for the category from that list being applied. It is useful to also publish a text label and/or URI that users can draw on to interpret the classification.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A textual description or title for the classification code.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to uniquely identify the classification code.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 - }, - "quantity": { - "title": "Quantity", - "description": "The number of units to be provided.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "unit": { - "title": "Unit", - "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "Name of the unit.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "value": { - "title": "Value", - "description": "The monetary value of a single unit.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "uri": { - "title": "URI", - "description": "The machine-readable URI for the unit of measure, provided by the scheme.", - "format": "uri", - "type": [ - "string", - "null" - ] - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true - }, - "contractPeriod": { - "title": "Contract period", - "description": "The period for which the contract has been awarded.", - "type": "object", - "properties": { - "startDate": { - "title": "Start date", - "description": "The start date for the period. When known, a precise start date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "endDate": { - "title": "End date", - "description": "The end date for the period. When known, a precise end date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "maxExtentDate": { - "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", - "format": "date-time", - "title": "Maximum extent", - "type": [ - "string", - "null" - ] - }, - "durationInDays": { - "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", - "title": "Duration (days)", - "type": [ - "integer", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 - }, - "documents": { - "title": "Documents", - "description": "Documents related to the award (for example, notices, bids, evaluation reports).", - "type": "array", - "items": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "amendments": { - "description": "An award amendment is a formal change to the details of the award, and generally involves the publication of a new award notice/release. The rationale and a description of the changes made can be provided here.", - "type": "array", - "title": "Amendments", - "items": { - "title": "Amendment", - "type": "object", - "description": "Amendment information", - "properties": { - "date": { - "title": "Amendment date", - "description": "The date of this amendment.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "rationale": { - "title": "Rationale", - "description": "An explanation for the amendment.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "description": "An identifier for this amendment: often the amendment number", - "type": "string", - "title": "ID", - "minLength": 1 - }, - "description": { - "description": "A free text, or semi-structured, description of the changes made in this amendment.", - "type": [ - "string", - "null" - ], - "title": "Description", - "minLength": 1 - }, - "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amended release (identifier)", - "minLength": 1 - }, - "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amending release (identifier)", - "minLength": 1 - }, - "changes": { - "title": "Amended fields", - "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", - "type": "array", - "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 - }, - "former_value": { - "title": "Former Value", - "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", - "type": [ - "string", - "number", - "integer", - "array", - "object", - "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 - } - }, - "minProperties": 1 - }, - "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" - }, - "minItems": 1, - "uniqueItems": true - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "minItems": 1, - "uniqueItems": true - }, - "amendment": { - "title": "Amendment", - "type": "object", - "description": "The use of individual amendment objects has been deprecated. From OCDS 1.1 information should be provided in the amendments array.", - "properties": { - "date": { - "title": "Amendment date", - "description": "The date of this amendment.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "rationale": { - "title": "Rationale", - "description": "An explanation for the amendment.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "description": "An identifier for this amendment: often the amendment number", - "type": "string", - "title": "ID", - "minLength": 1 - }, - "description": { - "description": "A free text, or semi-structured, description of the changes made in this amendment.", - "type": [ - "string", - "null" - ], - "title": "Description", - "minLength": 1 - }, - "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amended release (identifier)", - "minLength": 1 - }, - "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amending release (identifier)", - "minLength": 1 - }, - "changes": { - "title": "Amended fields", - "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", - "type": "array", - "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 - }, - "former_value": { - "title": "Former Value", - "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", - "type": [ - "string", - "number", - "integer", - "array", - "object", - "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 - } - }, - "minProperties": 1 - }, - "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" - }, - "minItems": 1, - "uniqueItems": true - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "required": [ - "id" - ], - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Contract": { - "type": "object", - "title": "Contract", - "description": "Information regarding the contract, typically between the buyer and supplier. This includes contracts describing all the contractual conditions (e.g. item, quantity, price, payment terms, time and place of delivery), as well as contracts only describing the general contractual conditions (such as a framework agreement) and those only describing the specific contractual conditions (such as a contract within a framework agreement). Communication between contractual parties that consists of minor specifications of conditions agreed previously (e.g. specifying the time or place of delivery) is not considered a contract. Amendments are considered as part of the contract that is being amended. Contracts are also used when giving prizes or other rewards (e.g. a follow-up contract) resulting from a design contest.", - "required": [ - "id", - "awardID" - ], - "properties": { - "id": { - "title": "Contract ID", - "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the contracting process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", - "type": [ - "string" - ], - "minLength": 1 - }, - "identifiers": { - "title": "Additional contract identifiers", - "description": "Additional identifiers for this contract. This field can be used to provide local identifiers for the contract.", - "type": "array", - "items": { - "title": "Simple identifier", - "description": "An unambiguous reference to a resource within a given context.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list, register or system from which the identifier is taken.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier taken from the scheme.", - "type": [ - "string", - "null" - ], - "versionId": true, - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 - }, - "awardID": { - "title": "Award ID", - "description": "The award.id against which this contract is being issued.", - "type": [ - "string", - "integer" - ], - "minLength": 1 - }, - "title": { - "title": "Contract title", - "description": "Contract title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Contract description", - "description": "Contract description", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "status": { - "title": "Contract status", - "description": "The current status of the contract, from the closed [contractStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#contract-status) codelist.", - "type": [ - "string", - "null" - ], - "enum": [ - "pending", - "active", - "cancelled", - "terminated", - "terminatedEarly", - "terminatedSuccessfully", - null - ], - "codelist": "contractStatus.csv", - "openCodelist": false - }, - "statusDetails": { - "title": "Status details", - "description": "Additional details on the status of the contract. This field can be used to provide the local name of the status.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "dateSigned": { - "title": "Date concluded", - "description": "The date the contract was concluded. Typically, this is the date when the last buyer or supplier signed the contract. However, if no contract is signed, then the date of contract conclusion may correspond to other dates (e.g. the date when the buyer notified the supplier, which had the legal effect of concluding the contract).", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "value": { - "title": "Value", - "description": "The value of this contract. A negative value indicates that the contract will involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "maximumValue": { - "title": "Maximum value", - "description": "The maximum value of the framework agreement, as a whole.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "estimatedValue": { - "title": "Estimated value", - "description": "The estimated value of the framework agreement, as a whole, as estimated when the framework agreement is concluded (e.g. signed).", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "items": { - "title": "Items contracted", - "description": "The goods, services or works in this contract. If the items contracted are identical to the items awarded, this field should be omitted.", - "type": "array", - "minItems": 1, - "items": { - "title": "Item", - "type": "object", - "description": "A line-item of the goods, services, or works to be contracted.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the goods, services or works to be provided.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "classification": { - "title": "Classification", - "description": "The primary classification for the item.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A textual description or title for the classification code.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to uniquely identify the classification code.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "additionalClassifications": { - "title": "Additional classifications", - "description": "An array of additional classifications for the item.", - "type": "array", - "items": { - "title": "Classification", - "description": "A classification consists of at least two parts: an identifier for the list (scheme) from which the classification is taken, and an identifier for the category from that list being applied. It is useful to also publish a text label and/or URI that users can draw on to interpret the classification.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A textual description or title for the classification code.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to uniquely identify the classification code.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 - }, - "quantity": { - "title": "Quantity", - "description": "The number of units to be provided.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "unit": { - "title": "Unit", - "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "Name of the unit.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "value": { - "title": "Value", - "description": "The monetary value of a single unit.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "uri": { - "title": "URI", - "description": "The machine-readable URI for the unit of measure, provided by the scheme.", - "format": "uri", - "type": [ - "string", - "null" - ] - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true - }, - "period": { - "title": "Period", - "description": "The start and end date for the contract.", - "type": "object", - "properties": { - "startDate": { - "title": "Start date", - "description": "The start date for the period. When known, a precise start date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "endDate": { - "title": "End date", - "description": "The end date for the period. When known, a precise end date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "maxExtentDate": { - "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", - "format": "date-time", - "title": "Maximum extent", - "type": [ - "string", - "null" - ] - }, - "durationInDays": { - "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", - "title": "Duration (days)", - "type": [ - "integer", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 - }, - "documents": { - "title": "Documents", - "description": "Documents related to the contract (for example, notices, signed contracts).", - "type": "array", - "items": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "implementation": { - "type": "object", - "title": "Implementation", - "description": "Information related to the implementation of the contract in accordance with the obligations laid out therein.", - "properties": { - "transactions": { - "title": "Transactions", - "description": "A list of the spending transactions made against this contract", - "type": "array", - "items": { - "type": "object", - "title": "Transaction information", - "description": "A spending transaction related to the contract. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A unique identifier for this transaction. This identifier should be possible to cross-reference against the provided data source. For IATI this is the transaction reference. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "source": { - "title": "Data source", - "description": "Used to point either to a corresponding Fiscal Data Package, IATI file, or machine or human-readable source where users can find further information on the budget line item identifiers, or project identifiers, provided here.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "date": { - "title": "Date", - "description": "The date of the transaction", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "value": { - "title": "Value", - "description": "The value of the transaction.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "payer": { - "properties": { - "name": { - "type": "string", - "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", - "title": "Organization name", - "minLength": 1 - }, - "id": { - "type": "string", - "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "address": { - "title": "Address", - "description": "(Deprecated outside the parties section)", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "countryName": { - "title": "Country name", - "type": [ - "string", - "null" - ], - "description": "The country name. For example, United States.", - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "additionalIdentifiers": { - "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": { - "title": "Identifier", - "description": "A unique identifier for an organization.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "title": "Additional identifiers", - "uniqueItems": true, - "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 - }, - "contactPoint": { - "title": "Contact point", - "type": "object", - "description": "(Deprecated outside the parties section)", - "properties": { - "name": { - "title": "Name", - "type": [ - "string", - "null" - ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", - "minLength": 1 - }, - "email": { - "title": "Email", - "type": [ - "string", - "null" - ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" - }, - "telephone": { - "title": "Telephone", - "type": [ - "string", - "null" - ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "faxNumber": { - "title": "Fax number", - "type": [ - "string", - "null" - ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "url": { - "title": "URL", - "type": [ - "string", - "null" - ], - "description": "A web address for the contact point/person.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - } - }, - "type": "object", - "description": "An organization reference for the organization from which the funds in this transaction originate.", - "title": "Payer", - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "payee": { - "properties": { - "name": { - "type": "string", - "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", - "title": "Organization name", - "minLength": 1 - }, - "id": { - "type": "string", - "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "address": { - "title": "Address", - "description": "(Deprecated outside the parties section)", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "countryName": { - "title": "Country name", - "type": [ - "string", - "null" - ], - "description": "The country name. For example, United States.", - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "additionalIdentifiers": { - "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": { - "title": "Identifier", - "description": "A unique identifier for an organization.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "title": "Additional identifiers", - "uniqueItems": true, - "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 - }, - "contactPoint": { - "title": "Contact point", - "type": "object", - "description": "(Deprecated outside the parties section)", - "properties": { - "name": { - "title": "Name", - "type": [ - "string", - "null" - ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", - "minLength": 1 - }, - "email": { - "title": "Email", - "type": [ - "string", - "null" - ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" - }, - "telephone": { - "title": "Telephone", - "type": [ - "string", - "null" - ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "faxNumber": { - "title": "Fax number", - "type": [ - "string", - "null" - ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "url": { - "title": "URL", - "type": [ - "string", - "null" - ], - "description": "A web address for the contact point/person.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - } - }, - "type": "object", - "description": "An organization reference for the organization which receives the funds in this transaction.", - "title": "Payee", - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "uri": { - "title": "Linked spending information", - "description": "A URI pointing directly to a machine-readable record about this spending transaction.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "amount": { - "title": "Amount", - "description": "(Deprecated in 1.1. Use transaction.value instead) The value of the transaction. A negative value indicates a refund or correction.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1, - "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": { - "title": "Provider organization", - "description": "(Deprecated in 1.1. Use transaction.payer instead.) The Organization Identifier for the organization from which the funds in this transaction originate. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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, services or works procured rather than the flow of funds between the parties.", - "deprecatedVersion": "1.1" - } - }, - "receiverOrganization": { - "title": "Receiver organization", - "description": "(Deprecated in 1.1. Use transaction.payee instead). The Organization Identifier for the organization which receives the funds in this transaction. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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, services or works procured rather than the flow of funds between the parties.", - "deprecatedVersion": "1.1" - } - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "milestones": { - "title": "Milestones", - "description": "As milestones are completed, the milestone's status and dates should be updated.", - "type": "array", - "items": { - "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "Milestone title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "type": { - "title": "Milestone type", - "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the milestone.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "code": { - "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "dueAfterDate": { - "title": "Due after date", - "description": "The date after which the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dueDate": { - "title": "Due date", - "description": "The date the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateMet": { - "format": "date-time", - "title": "Date met", - "description": "The date on which the milestone was met.", - "type": [ - "string", - "null" - ] - }, - "dateModified": { - "title": "Date modified", - "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "status": { - "title": "Status", - "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", - "type": [ - "string", - "null" - ], - "enum": [ - "scheduled", - "met", - "notMet", - "partiallyMet", - null - ], - "codelist": "milestoneStatus.csv", - "openCodelist": false - }, - "documents": { - "title": "Documents", - "description": "List of documents associated with this milestone (Deprecated in 1.1).", - "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": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "value": { - "title": "Value", - "description": "The payment's value, if the milestone represents a planned payment.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "documents": { - "title": "Documents", - "description": "Documents related to the implementation of the contract (for example, completion certificates, audits).", - "type": "array", - "items": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - } - }, - "minProperties": 1 - }, - "relatedProcesses": { - "uniqueItems": true, - "items": { - "description": "A reference to a related contracting (or planning) process: generally one preceding or following on from the current process.", - "type": "object", - "title": "Related Process", - "properties": { - "id": { - "title": "Relationship ID", - "description": "A local identifier for this relationship, unique within this array.", - "type": "string", - "minLength": 1 - }, - "relationship": { - "items": { - "type": "string", - "minLength": 1 - }, - "description": "The type of relationship, using the open [relatedProcess](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process) codelist.", - "title": "Relationship", - "type": [ - "array", - "null" - ], - "codelist": "relatedProcess.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "title": { - "description": "The title of the related process, where referencing a contracting (or planning) process, this field should match the tender/title field in the related process.", - "title": "Related process title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "scheme": { - "title": "Scheme", - "description": "The identification scheme used by this cross-reference, using the open [relatedProcessScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "relatedProcessScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "identifier": { - "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", - "title": "Identifier", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "format": "uri", - "description": "A URI pointing to a machine-readable document, release or record package containing the identified related process.", - "title": "Related process URI", - "type": [ - "string", - "null" - ] - } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "description": "The details of related processes: for example, if this process is followed by one or more contracting processes, represented under a separate ocid. This is commonly used to refer to subcontracts and to renewal or replacement processes for this contract.", - "title": "Related processes", - "type": "array", - "minItems": 1 - }, - "milestones": { - "title": "Contract milestones", - "description": "A list of milestones associated with the finalization of this contract.", - "type": "array", - "items": { - "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "Milestone title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "type": { - "title": "Milestone type", - "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the milestone.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "code": { - "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "dueAfterDate": { - "title": "Due after date", - "description": "The date after which the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dueDate": { - "title": "Due date", - "description": "The date the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateMet": { - "format": "date-time", - "title": "Date met", - "description": "The date on which the milestone was met.", - "type": [ - "string", - "null" - ] - }, - "dateModified": { - "title": "Date modified", - "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "status": { - "title": "Status", - "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", - "type": [ - "string", - "null" - ], - "enum": [ - "scheduled", - "met", - "notMet", - "partiallyMet", - null - ], - "codelist": "milestoneStatus.csv", - "openCodelist": false - }, - "documents": { - "title": "Documents", - "description": "List of documents associated with this milestone (Deprecated in 1.1).", - "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": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "value": { - "title": "Value", - "description": "The payment's value, if the milestone represents a planned payment.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "minItems": 1, - "uniqueItems": true - }, - "amendments": { - "description": "A contract amendment is a formal change to, or extension of, a contract, and generally involves the publication of a new contract signature notice/release, or some other documents detailing the change. The rationale and a description of the changes made can be provided here.", - "type": "array", - "title": "Amendments", - "items": { - "title": "Amendment", - "type": "object", - "description": "Amendment information", - "properties": { - "date": { - "title": "Amendment date", - "description": "The date of this amendment.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "rationale": { - "title": "Rationale", - "description": "An explanation for the amendment.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "description": "An identifier for this amendment: often the amendment number", - "type": "string", - "title": "ID", - "minLength": 1 - }, - "description": { - "description": "A free text, or semi-structured, description of the changes made in this amendment.", - "type": [ - "string", - "null" - ], - "title": "Description", - "minLength": 1 - }, - "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amended release (identifier)", - "minLength": 1 - }, - "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amending release (identifier)", - "minLength": 1 - }, - "changes": { - "title": "Amended fields", - "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", - "type": "array", - "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 - }, - "former_value": { - "title": "Former Value", - "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", - "type": [ - "string", - "number", - "integer", - "array", - "object", - "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 - } - }, - "minProperties": 1 - }, - "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" - }, - "minItems": 1, - "uniqueItems": true - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "minItems": 1, - "uniqueItems": true - }, - "amendment": { - "title": "Amendment", - "type": "object", - "description": "The use of individual amendment objects has been deprecated. From OCDS 1.1 information should be provided in the amendments array.", - "properties": { - "date": { - "title": "Amendment date", - "description": "The date of this amendment.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "rationale": { - "title": "Rationale", - "description": "An explanation for the amendment.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "description": "An identifier for this amendment: often the amendment number", - "type": "string", - "title": "ID", - "minLength": 1 - }, - "description": { - "description": "A free text, or semi-structured, description of the changes made in this amendment.", - "type": [ - "string", - "null" - ], - "title": "Description", - "minLength": 1 - }, - "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amended release (identifier)", - "minLength": 1 - }, - "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amending release (identifier)", - "minLength": 1 - }, - "changes": { - "title": "Amended fields", - "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", - "type": "array", - "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 - }, - "former_value": { - "title": "Former Value", - "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", - "type": [ - "string", - "number", - "integer", - "array", - "object", - "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 - } - }, - "minProperties": 1 - }, - "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" - }, - "minItems": 1, - "uniqueItems": true - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "required": [ - "id" - ], - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Implementation": { - "type": "object", - "title": "Implementation", - "description": "Information during the performance / implementation stage of the contract.", - "properties": { - "transactions": { - "title": "Transactions", - "description": "A list of the spending transactions made against this contract", - "type": "array", - "items": { - "type": "object", - "title": "Transaction information", - "description": "A spending transaction related to the contract. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A unique identifier for this transaction. This identifier should be possible to cross-reference against the provided data source. For IATI this is the transaction reference. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "source": { - "title": "Data source", - "description": "Used to point either to a corresponding Fiscal Data Package, IATI file, or machine or human-readable source where users can find further information on the budget line item identifiers, or project identifiers, provided here.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "date": { - "title": "Date", - "description": "The date of the transaction", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "value": { - "title": "Value", - "description": "The value of the transaction.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "payer": { - "properties": { - "name": { - "type": "string", - "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", - "title": "Organization name", - "minLength": 1 - }, - "id": { - "type": "string", - "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "address": { - "title": "Address", - "description": "(Deprecated outside the parties section)", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "countryName": { - "title": "Country name", - "type": [ - "string", - "null" - ], - "description": "The country name. For example, United States.", - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "additionalIdentifiers": { - "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": { - "title": "Identifier", - "description": "A unique identifier for an organization.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "title": "Additional identifiers", - "uniqueItems": true, - "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 - }, - "contactPoint": { - "title": "Contact point", - "type": "object", - "description": "(Deprecated outside the parties section)", - "properties": { - "name": { - "title": "Name", - "type": [ - "string", - "null" - ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", - "minLength": 1 - }, - "email": { - "title": "Email", - "type": [ - "string", - "null" - ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" - }, - "telephone": { - "title": "Telephone", - "type": [ - "string", - "null" - ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "faxNumber": { - "title": "Fax number", - "type": [ - "string", - "null" - ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "url": { - "title": "URL", - "type": [ - "string", - "null" - ], - "description": "A web address for the contact point/person.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - } - }, - "type": "object", - "description": "An organization reference for the organization from which the funds in this transaction originate.", - "title": "Payer", - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "payee": { - "properties": { - "name": { - "type": "string", - "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", - "title": "Organization name", - "minLength": 1 - }, - "id": { - "type": "string", - "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "address": { - "title": "Address", - "description": "(Deprecated outside the parties section)", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "countryName": { - "title": "Country name", - "type": [ - "string", - "null" - ], - "description": "The country name. For example, United States.", - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "additionalIdentifiers": { - "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": { - "title": "Identifier", - "description": "A unique identifier for an organization.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "title": "Additional identifiers", - "uniqueItems": true, - "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 - }, - "contactPoint": { - "title": "Contact point", - "type": "object", - "description": "(Deprecated outside the parties section)", - "properties": { - "name": { - "title": "Name", - "type": [ - "string", - "null" - ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", - "minLength": 1 - }, - "email": { - "title": "Email", - "type": [ - "string", - "null" - ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" - }, - "telephone": { - "title": "Telephone", - "type": [ - "string", - "null" - ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "faxNumber": { - "title": "Fax number", - "type": [ - "string", - "null" - ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "url": { - "title": "URL", - "type": [ - "string", - "null" - ], - "description": "A web address for the contact point/person.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - } - }, - "type": "object", - "description": "An organization reference for the organization which receives the funds in this transaction.", - "title": "Payee", - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "uri": { - "title": "Linked spending information", - "description": "A URI pointing directly to a machine-readable record about this spending transaction.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "amount": { - "title": "Amount", - "description": "(Deprecated in 1.1. Use transaction.value instead) The value of the transaction. A negative value indicates a refund or correction.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1, - "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": { - "title": "Provider organization", - "description": "(Deprecated in 1.1. Use transaction.payer instead.) The Organization Identifier for the organization from which the funds in this transaction originate. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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, services or works procured rather than the flow of funds between the parties.", - "deprecatedVersion": "1.1" - } - }, - "receiverOrganization": { - "title": "Receiver organization", - "description": "(Deprecated in 1.1. Use transaction.payee instead). The Organization Identifier for the organization which receives the funds in this transaction. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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, services or works procured rather than the flow of funds between the parties.", - "deprecatedVersion": "1.1" - } - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "milestones": { - "title": "Milestones", - "description": "As milestones are completed, the milestone's status and dates should be updated.", - "type": "array", - "items": { - "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "Milestone title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "type": { - "title": "Milestone type", - "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the milestone.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "code": { - "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "dueAfterDate": { - "title": "Due after date", - "description": "The date after which the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dueDate": { - "title": "Due date", - "description": "The date the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateMet": { - "format": "date-time", - "title": "Date met", - "description": "The date on which the milestone was met.", - "type": [ - "string", - "null" - ] - }, - "dateModified": { - "title": "Date modified", - "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "status": { - "title": "Status", - "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", - "type": [ - "string", - "null" - ], - "enum": [ - "scheduled", - "met", - "notMet", - "partiallyMet", - null - ], - "codelist": "milestoneStatus.csv", - "openCodelist": false - }, - "documents": { - "title": "Documents", - "description": "List of documents associated with this milestone (Deprecated in 1.1).", - "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": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "value": { - "title": "Value", - "description": "The payment's value, if the milestone represents a planned payment.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "documents": { - "title": "Documents", - "description": "Documents related to the implementation of the contract (for example, completion certificates, audits).", - "type": "array", - "items": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - } - }, - "minProperties": 1 - }, - "Milestone": { - "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "Milestone title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "type": { - "title": "Milestone type", - "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the milestone.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "code": { - "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "dueAfterDate": { - "title": "Due after date", - "description": "The date after which the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dueDate": { - "title": "Due date", - "description": "The date the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateMet": { - "format": "date-time", - "title": "Date met", - "description": "The date on which the milestone was met.", - "type": [ - "string", - "null" - ] - }, - "dateModified": { - "title": "Date modified", - "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "status": { - "title": "Status", - "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", - "type": [ - "string", - "null" - ], - "enum": [ - "scheduled", - "met", - "notMet", - "partiallyMet", - null - ], - "codelist": "milestoneStatus.csv", - "openCodelist": false - }, - "documents": { - "title": "Documents", - "description": "List of documents associated with this milestone (Deprecated in 1.1).", - "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": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "minItems": 1 - }, - "value": { - "title": "Value", - "description": "The payment's value, if the milestone represents a planned payment.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Document": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Budget": { - "type": "object", - "title": "Budget information", - "description": "This section contains basic information about the budget that will fund the future contract(s). Further documentation and data about how budgets have been allocated should be published outside of OCDS data, according to the best available standards.", - "properties": { - "id": { - "title": "ID", - "description": "An identifier of the budget that will fund the future contract(s). This identifier should be possible to cross-reference against formal budget documents.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Budget Source", - "description": "A short free-text description of the budget that will fund the future contract(s). This may be used to provide human-readable information on: the budget category for the future contract(s) and/or the nature and source of the budget allocation (e.g. conditional, confirmed, or any official authorizations given to the budget allocation).", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "amount": { - "title": "Amount", - "description": "The value reserved for the future contract(s), within the budget. A negative value indicates income to the budget as a result of the future contract(s), rather than expenditure. If the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line that will fund the future contract(s).", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "project": { - "title": "Project title", - "description": "The name of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "projectID": { - "title": "Project identifier", - "description": "The identifier of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "Linked budget information", - "description": "The URL of a machine-readable resource about the budget that will fund the future contract(s). For human-readable documents, see the `planning.documents` array.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "source": { - "title": "Data Source", - "description": "(Deprecated in 1.1) Used to point either to a corresponding Budget Data Package, or to a machine or human-readable source where users can find further information on the budget line item identifiers, or project identifiers, provided here.", - "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" - } - }, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Transaction": { - "type": "object", - "title": "Transaction information", - "description": "A spending transaction related to the contract. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A unique identifier for this transaction. This identifier should be possible to cross-reference against the provided data source. For IATI this is the transaction reference. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "source": { - "title": "Data source", - "description": "Used to point either to a corresponding Fiscal Data Package, IATI file, or machine or human-readable source where users can find further information on the budget line item identifiers, or project identifiers, provided here.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "date": { - "title": "Date", - "description": "The date of the transaction", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "value": { - "title": "Value", - "description": "The value of the transaction.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "payer": { - "properties": { - "name": { - "type": "string", - "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", - "title": "Organization name", - "minLength": 1 - }, - "id": { - "type": "string", - "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "address": { - "title": "Address", - "description": "(Deprecated outside the parties section)", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "countryName": { - "title": "Country name", - "type": [ - "string", - "null" - ], - "description": "The country name. For example, United States.", - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "additionalIdentifiers": { - "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": { - "title": "Identifier", - "description": "A unique identifier for an organization.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "title": "Additional identifiers", - "uniqueItems": true, - "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 - }, - "contactPoint": { - "title": "Contact point", - "type": "object", - "description": "(Deprecated outside the parties section)", - "properties": { - "name": { - "title": "Name", - "type": [ - "string", - "null" - ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", - "minLength": 1 - }, - "email": { - "title": "Email", - "type": [ - "string", - "null" - ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" - }, - "telephone": { - "title": "Telephone", - "type": [ - "string", - "null" - ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "faxNumber": { - "title": "Fax number", - "type": [ - "string", - "null" - ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "url": { - "title": "URL", - "type": [ - "string", - "null" - ], - "description": "A web address for the contact point/person.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - } - }, - "type": "object", - "description": "An organization reference for the organization from which the funds in this transaction originate.", - "title": "Payer", - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "payee": { - "properties": { - "name": { - "type": "string", - "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", - "title": "Organization name", - "minLength": 1 - }, - "id": { - "type": "string", - "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "address": { - "title": "Address", - "description": "(Deprecated outside the parties section)", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "countryName": { - "title": "Country name", - "type": [ - "string", - "null" - ], - "description": "The country name. For example, United States.", - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "additionalIdentifiers": { - "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": { - "title": "Identifier", - "description": "A unique identifier for an organization.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "title": "Additional identifiers", - "uniqueItems": true, - "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 - }, - "contactPoint": { - "title": "Contact point", - "type": "object", - "description": "(Deprecated outside the parties section)", - "properties": { - "name": { - "title": "Name", - "type": [ - "string", - "null" - ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", - "minLength": 1 - }, - "email": { - "title": "Email", - "type": [ - "string", - "null" - ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" - }, - "telephone": { - "title": "Telephone", - "type": [ - "string", - "null" - ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "faxNumber": { - "title": "Fax number", - "type": [ - "string", - "null" - ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "url": { - "title": "URL", - "type": [ - "string", - "null" - ], - "description": "A web address for the contact point/person.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - } - }, - "type": "object", - "description": "An organization reference for the organization which receives the funds in this transaction.", - "title": "Payee", - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "uri": { - "title": "Linked spending information", - "description": "A URI pointing directly to a machine-readable record about this spending transaction.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "amount": { - "title": "Amount", - "description": "(Deprecated in 1.1. Use transaction.value instead) The value of the transaction. A negative value indicates a refund or correction.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1, - "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": { - "title": "Provider organization", - "description": "(Deprecated in 1.1. Use transaction.payer instead.) The Organization Identifier for the organization from which the funds in this transaction originate. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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, services or works procured rather than the flow of funds between the parties.", - "deprecatedVersion": "1.1" - } - }, - "receiverOrganization": { - "title": "Receiver organization", - "description": "(Deprecated in 1.1. Use transaction.payee instead). The Organization Identifier for the organization which receives the funds in this transaction. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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, services or works procured rather than the flow of funds between the parties.", - "deprecatedVersion": "1.1" - } - } - }, - "minProperties": 1 - }, - "OrganizationReference": { - "properties": { - "name": { - "type": "string", - "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", - "title": "Organization name", - "minLength": 1 - }, - "id": { - "type": "string", - "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "address": { - "title": "Address", - "description": "(Deprecated outside the parties section)", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "countryName": { - "title": "Country name", - "type": [ - "string", - "null" - ], - "description": "The country name. For example, United States.", - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - }, - "additionalIdentifiers": { - "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": { - "title": "Identifier", - "description": "A unique identifier for an organization.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "title": "Additional identifiers", - "uniqueItems": true, - "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 - }, - "contactPoint": { - "title": "Contact point", - "type": "object", - "description": "(Deprecated outside the parties section)", - "properties": { - "name": { - "title": "Name", - "type": [ - "string", - "null" - ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", - "minLength": 1 - }, - "email": { - "title": "Email", - "type": [ - "string", - "null" - ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" - }, - "telephone": { - "title": "Telephone", - "type": [ - "string", - "null" - ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "faxNumber": { - "title": "Fax number", - "type": [ - "string", - "null" - ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "url": { - "title": "URL", - "type": [ - "string", - "null" - ], - "description": "A web address for the contact point/person.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "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." - } - } - }, - "type": "object", - "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", - "title": "Organization reference", - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "Organization": { - "title": "Organization", - "description": "An organization", - "type": "object", - "properties": { - "name": { - "title": "Common name", - "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting (or planning) process.", - "type": "string", - "minLength": 1 - }, - "id": { - "type": "string", - "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the (contracting or planning) process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "additionalIdentifiers": { - "title": "Additional identifiers", - "description": "Additional identifiers for this organization, following the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This field can also be used to provide an identifier for an organizational unit (for example, an agency, branch or division).", - "type": "array", - "items": { - "title": "Identifier", - "description": "A unique identifier for an organization.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 - }, - "address": { - "title": "Address", - "description": "An address. This may be the legally registered address of the organization, or may be a correspondence address for this particular contracting (or planning) process.", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "countryName": { - "title": "Country name", - "type": [ - "string", - "null" - ], - "description": "The country name. For example, United States.", - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1 - }, - "contactPoint": { - "title": "Contact point", - "type": "object", - "description": "Contact details that can be used for this organization.", - "properties": { - "name": { - "title": "Name", - "type": [ - "string", - "null" - ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", - "minLength": 1 - }, - "email": { - "title": "Email", - "type": [ - "string", - "null" - ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" - }, - "telephone": { - "title": "Telephone", - "type": [ - "string", - "null" - ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "faxNumber": { - "title": "Fax number", - "type": [ - "string", - "null" - ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "url": { - "title": "URL", - "type": [ - "string", - "null" - ], - "description": "A web address for the contact point/person.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "roles": { - "title": "Roles", - "description": "The organization's role(s) in the contracting (or planning) process, using the open [partyRole](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#party-role) codelist.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "partyRole.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "details": { - "type": [ - "object", - "null" - ], - "description": "Additional classification information about organizations can be provided using organization details extensions that define particular fields and classification schemes.", - "title": "Details", - "properties": { - "scale": { - "title": "Scale", - "description": "The size or scale of the organization.", - "type": [ - "string", - "null" - ], - "enum": [ - "micro", - "sme", - "small", - "medium", - "large", - "selfEmployed", - null - ], - "codelist": "partyScale.csv", - "openCodelist": false - } - }, - "minProperties": 1 - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "Item": { - "title": "Item", - "type": "object", - "description": "A line-item of the goods, services, or works to be contracted.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the goods, services or works to be provided.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "classification": { - "title": "Classification", - "description": "The primary classification for the item.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A textual description or title for the classification code.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to uniquely identify the classification code.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "additionalClassifications": { - "title": "Additional classifications", - "description": "An array of additional classifications for the item.", - "type": "array", - "items": { - "title": "Classification", - "description": "A classification consists of at least two parts: an identifier for the list (scheme) from which the classification is taken, and an identifier for the category from that list being applied. It is useful to also publish a text label and/or URI that users can draw on to interpret the classification.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A textual description or title for the classification code.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to uniquely identify the classification code.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 - }, - "quantity": { - "title": "Quantity", - "description": "The number of units to be provided.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "unit": { - "title": "Unit", - "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "Name of the unit.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "value": { - "title": "Value", - "description": "The monetary value of a single unit.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "uri": { - "title": "URI", - "description": "The machine-readable URI for the unit of measure, provided by the scheme.", - "format": "uri", - "type": [ - "string", - "null" - ] - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Amendment": { - "title": "Amendment", - "type": "object", - "description": "Amendment information", - "properties": { - "date": { - "title": "Amendment date", - "description": "The date of this amendment.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "rationale": { - "title": "Rationale", - "description": "An explanation for the amendment.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "description": "An identifier for this amendment: often the amendment number", - "type": "string", - "title": "ID", - "minLength": 1 - }, - "description": { - "description": "A free text, or semi-structured, description of the changes made in this amendment.", - "type": [ - "string", - "null" - ], - "title": "Description", - "minLength": 1 - }, - "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amended release (identifier)", - "minLength": 1 - }, - "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amending release (identifier)", - "minLength": 1 - }, - "changes": { - "title": "Amended fields", - "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", - "type": "array", - "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 - }, - "former_value": { - "title": "Former Value", - "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", - "type": [ - "string", - "number", - "integer", - "array", - "object", - "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 - } - }, - "minProperties": 1 - }, - "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" - }, - "minItems": 1, - "uniqueItems": true - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "Classification": { - "title": "Classification", - "description": "A classification consists of at least two parts: an identifier for the list (scheme) from which the classification is taken, and an identifier for the category from that list being applied. It is useful to also publish a text label and/or URI that users can draw on to interpret the classification.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A textual description or title for the classification code.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to uniquely identify the classification code.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Identifier": { - "title": "Identifier", - "description": "A unique identifier for an organization.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Address": { - "title": "Address", - "description": "An address.", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "countryName": { - "title": "Country name", - "type": [ - "string", - "null" - ], - "description": "The country name. For example, United States.", - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1 - }, - "ContactPoint": { - "title": "Contact point", - "type": "object", - "description": "A person, contact point or department to contact in relation to this contracting (or planning) process.", - "properties": { - "name": { - "title": "Name", - "type": [ - "string", - "null" - ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", - "minLength": 1 - }, - "email": { - "title": "Email", - "type": [ - "string", - "null" - ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" - }, - "telephone": { - "title": "Telephone", - "type": [ - "string", - "null" - ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "faxNumber": { - "title": "Fax number", - "type": [ - "string", - "null" - ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "url": { - "title": "URL", - "type": [ - "string", - "null" - ], - "description": "A web address for the contact point/person.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Value": { - "title": "Value", - "description": "Financial values should be published with a currency attached.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "Period": { - "title": "Period", - "description": "Key events during a contracting (or planning) process may have a known start date, end date, duration, or maximum extent (the latest date the period can extend to). In some cases, not all of these fields will have known or relevant values.", - "type": "object", - "properties": { - "startDate": { - "title": "Start date", - "description": "The start date for the period. When known, a precise start date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "endDate": { - "title": "End date", - "description": "The end date for the period. When known, a precise end date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "maxExtentDate": { - "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", - "format": "date-time", - "title": "Maximum extent", - "type": [ - "string", - "null" - ] - }, - "durationInDays": { - "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", - "title": "Duration (days)", - "type": [ - "integer", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 - }, - "RelatedProcess": { - "description": "A reference to a related contracting (or planning) process: generally one preceding or following on from the current process.", - "type": "object", - "title": "Related Process", - "properties": { - "id": { - "title": "Relationship ID", - "description": "A local identifier for this relationship, unique within this array.", - "type": "string", - "minLength": 1 - }, - "relationship": { - "items": { - "type": "string", - "minLength": 1 - }, - "description": "The type of relationship, using the open [relatedProcess](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process) codelist.", - "title": "Relationship", - "type": [ - "array", - "null" - ], - "codelist": "relatedProcess.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "title": { - "description": "The title of the related process, where referencing a contracting (or planning) process, this field should match the tender/title field in the related process.", - "title": "Related process title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "scheme": { - "title": "Scheme", - "description": "The identification scheme used by this cross-reference, using the open [relatedProcessScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "relatedProcessScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "identifier": { - "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", - "title": "Identifier", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "format": "uri", - "description": "A URI pointing to a machine-readable document, release or record package containing the identified related process.", - "title": "Related process URI", - "type": [ - "string", - "null" - ] - } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "Unit": { - "title": "Unit", - "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "Name of the unit.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "value": { - "title": "Value", - "description": "The monetary value of a single unit.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "uri": { - "title": "URI", - "description": "The machine-readable URI for the unit of measure, provided by the scheme.", - "format": "uri", - "type": [ - "string", - "null" - ] - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Link": { - "title": "Link", - "description": "A reference to a related resource.", - "type": "object", - "properties": { - "rel": { - "title": "Link relation type", - "description": "The relationship with the related resource, using the open [link relation type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#link-relation-type) codelist.", - "type": "string", - "codelist": "linkRelationType.csv", - "openCodelist": true, - "minLength": 1 - }, - "href": { - "title": "Link target", - "description": "The URL of the related resource.", - "type": "string", - "format": "uri" - } - }, - "minProperties": 1 - }, - "UnitValue": { - "title": "Unit value", - "description": "The monetary value of a single unit.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "SimpleIdentifier": { - "title": "Simple identifier", - "description": "An unambiguous reference to a resource within a given context.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list, register or system from which the identifier is taken.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier taken from the scheme.", - "type": [ - "string", - "null" - ], - "versionId": true, - "minLength": 1 - } - }, - "minProperties": 1 - } - }, - "minProperties": 1 -} diff --git a/schema/strict/record-package-schema.json b/schema/strict/record-package-schema.json deleted file mode 100644 index 3fb683c54..000000000 --- a/schema/strict/record-package-schema.json +++ /dev/null @@ -1,239 +0,0 @@ -{ - "id": "https://standard.open-contracting.org/schema/1__1__5/strict/record-package-schema.json", - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Strict schema for an Open Contracting Record package", - "description": "The record package contains a list of records along with some publishing metadata. The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.", - "type": "object", - "properties": { - "uri": { - "title": "Package identifier", - "description": "The URI of this package that identifies it uniquely in the world.", - "type": "string", - "format": "uri" - }, - "version": { - "title": "OCDS schema version", - "description": "The version of the OCDS schema used in this package, expressed as major.minor For example: 1.0 or 1.1", - "type": "string", - "pattern": "^(\\d+\\.)(\\d+)$" - }, - "extensions": { - "title": "OCDS extensions", - "description": "An array of OCDS extensions used in this package, in which each array item is the URL of an extension.json file.", - "type": "array", - "items": { - "type": "string", - "format": "uri" - }, - "minItems": 1, - "uniqueItems": true - }, - "publisher": { - "title": "Publisher", - "description": "Information to uniquely identify the publisher of this package.", - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "The name of the organization or department responsible for publishing this OCDS data.", - "type": "string", - "minLength": 1 - }, - "scheme": { - "title": "Scheme", - "description": "The scheme that holds the unique identifiers used to identify the item being identified.", - "type": [ - "string" - ], - "minLength": 1 - }, - "uid": { - "title": "uid", - "description": "The unique ID for this entity under the given ID scheme.", - "type": [ - "string" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the publisher.", - "type": [ - "string" - ], - "format": "uri" - } - }, - "required": [ - "name" - ], - "minProperties": 1 - }, - "license": { - "title": "License", - "description": "A link to the license that applies to the data in this package. A Public Domain Dedication or [Open Definition Conformant](https://opendefinition.org/licenses/) license is recommended. The canonical URI of the license should be used. Documents linked from this file may be under other license conditions.", - "type": [ - "string" - ], - "format": "uri" - }, - "publicationPolicy": { - "title": "Publication policy", - "description": "A link to a document describing the publishers publication policy.", - "type": [ - "string" - ], - "format": "uri" - }, - "publishedDate": { - "title": "Published date", - "description": "The date that this package was published. If this package is generated 'on demand', this date should reflect the date of the last change to the underlying contents of the package.", - "type": "string", - "format": "date-time" - }, - "packages": { - "title": "Packages", - "description": "A list of URIs of all the release packages that were used to create this record package.", - "type": "array", - "minItems": 1, - "items": { - "type": "string", - "format": "uri" - }, - "uniqueItems": true, - "deprecated": { - "description": "This field is deprecated, because it is rarely implemented, is rarely used, and depends on a publication pattern in which release packages are published at stable URLs.", - "deprecatedVersion": "1.2" - } - }, - "records": { - "title": "Records", - "description": "The records for this data package.", - "type": "array", - "items": { - "$ref": "#/definitions/Record" - }, - "uniqueItems": true, - "minItems": 1 - } - }, - "required": [ - "uri", - "publisher", - "publishedDate", - "records", - "version" - ], - "definitions": { - "Record": { - "title": "Record", - "description": "A record aggregates releases with the same open contracting process identifier (ocid). There should be a single record per ocid per [distribution](https://www.w3.org/TR/vocab-dcat-2/#Class:Distribution), where a distribution might be a specific API endpoint or a specific bulk download file.", - "type": "object", - "properties": { - "ocid": { - "title": "Open contracting process identifier", - "description": "A globally unique identifier for the contracting process that the record describes. Alternatively, this identifier can refer to a planning process or a single stage of a multi-stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", - "type": "string", - "minLength": 1 - }, - "releases": { - "title": "Releases", - "description": "All the releases about the contracting (or planning) process at the time of the record's publication. The releases must be sorted in date order, from oldest to newest.", - "oneOf": [ - { - "title": "Linked releases", - "description": "A list of references to releases.", - "type": "array", - "items": { - "$ref": "#/definitions/LinkedRelease" - }, - "minItems": 1, - "uniqueItems": true - }, - { - "title": "Embedded releases", - "description": "A list of releases, with all the data.", - "type": "array", - "items": { - "$ref": "https://standard.open-contracting.org/schema/1__1__5/release-schema.json" - }, - "minItems": 1, - "uniqueItems": true - } - ] - }, - "compiledRelease": { - "title": "Compiled release", - "description": "The latest value of each field at the time of the record's publication. It follows the same schema as a release. A record should contain a compiled release.", - "$ref": "https://standard.open-contracting.org/schema/1__1__5/release-schema.json" - }, - "versionedRelease": { - "title": "Versioned release", - "description": "The history of values of each field up to the time of the record's publication.", - "$ref": "https://standard.open-contracting.org/schema/1__1__5/versioned-release-validation-schema.json" - } - }, - "required": [ - "ocid" - ], - "minProperties": 1 - }, - "LinkedRelease": { - "title": "Linked release", - "description": "A reference to a release.", - "type": "object", - "properties": { - "url": { - "title": "Release URL", - "description": "The URL of the release which contains the URL of the package with the release `id` appended using a fragment identifier e.g. https://standard.open-contracting.org/{{version}}/{{lang}}/examples/tender.json#ocds-213czf-000-00001", - "type": [ - "string" - ], - "format": "uri" - }, - "date": { - "title": "Release Date", - "description": "The date of the release. It should match the value of the `date` field of the release. This is used to sort the releases in the list in chronological order.", - "type": "string", - "format": "date-time" - }, - "tag": { - "title": "Release Tag", - "description": "The tags of the release. It should match the value of the `tag` field of the release. This provides additional context when reviewing a record to see what types of releases are included for this ocid.", - "type": "array", - "items": { - "type": "string", - "enum": [ - "planning", - "planningUpdate", - "tender", - "tenderAmendment", - "tenderUpdate", - "tenderCancellation", - "award", - "awardUpdate", - "awardCancellation", - "contract", - "contractUpdate", - "contractAmendment", - "implementation", - "implementationUpdate", - "contractTermination", - "compiled" - ] - }, - "codelist": "releaseTag.csv", - "openCodelist": false, - "minItems": 1, - "uniqueItems": true - } - }, - "required": [ - "url", - "date" - ], - "minProperties": 1 - } - }, - "minProperties": 1 -} diff --git a/schema/strict/release-package-schema.json b/schema/strict/release-package-schema.json deleted file mode 100644 index 08d309d11..000000000 --- a/schema/strict/release-package-schema.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "id": "https://standard.open-contracting.org/schema/1__1__5/strict/release-package-schema.json", - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Strict schema for an Open Contracting Release Package", - "description": "The release package contains a list of releases along with some publishing metadata. The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.", - "type": "object", - "required": [ - "uri", - "publisher", - "publishedDate", - "releases", - "version" - ], - "properties": { - "uri": { - "title": "Package identifier", - "description": "The URI of this package that identifies it uniquely in the world. Recommended practice is to use a dereferenceable URI, where a persistent copy of this package is available.", - "type": "string", - "format": "uri" - }, - "version": { - "title": "OCDS schema version", - "description": "The version of the OCDS schema used in this package, expressed as major.minor For example: 1.0 or 1.1", - "type": "string", - "pattern": "^(\\d+\\.)(\\d+)$" - }, - "extensions": { - "title": "OCDS extensions", - "description": "An array of OCDS extensions used in this package, in which each array item is the URL of an extension.json file.", - "type": "array", - "items": { - "type": "string", - "format": "uri" - }, - "minItems": 1, - "uniqueItems": true - }, - "publishedDate": { - "title": "Published date", - "description": "The date that this package was published. If this package is generated 'on demand', this date should reflect the date of the last change to the underlying contents of the package.", - "type": "string", - "format": "date-time" - }, - "releases": { - "title": "Releases", - "description": "An array of one or more OCDS releases.", - "type": "array", - "items": { - "$ref": "https://standard.open-contracting.org/schema/1__1__5/release-schema.json" - }, - "uniqueItems": true, - "minItems": 1 - }, - "publisher": { - "title": "Publisher", - "description": "Information to uniquely identify the publisher of this package.", - "type": "object", - "properties": { - "name": { - "title": "Name", - "description": "The name of the organization or department responsible for publishing this OCDS data.", - "type": "string", - "minLength": 1 - }, - "scheme": { - "title": "Scheme", - "description": "The scheme that holds the unique identifiers used to identify the item being identified.", - "type": [ - "string" - ], - "minLength": 1 - }, - "uid": { - "title": "uid", - "description": "The unique ID for this entity under the given ID scheme.", - "type": [ - "string" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the publisher.", - "type": [ - "string" - ], - "format": "uri" - } - }, - "required": [ - "name" - ], - "minProperties": 1 - }, - "license": { - "title": "License", - "description": "A link to the license that applies to the data in this package. A Public Domain Dedication or [Open Definition Conformant](https://opendefinition.org/licenses/) license is recommended. The canonical URI of the license should be used. Documents linked from this file may be under other license conditions.", - "type": [ - "string" - ], - "format": "uri" - }, - "publicationPolicy": { - "title": "Publication policy", - "description": "A link to a document describing the publishers [publication policy](https://standard.open-contracting.org/{{version}}/{{lang}}/guidance/publish/#finalize-your-publication-policy).", - "type": [ - "string" - ], - "format": "uri" - } - }, - "minProperties": 1 -} diff --git a/schema/strict/release-schema.json b/schema/strict/release-schema.json deleted file mode 100644 index bbdac0d7f..000000000 --- a/schema/strict/release-schema.json +++ /dev/null @@ -1,3229 +0,0 @@ -{ - "id": "https://standard.open-contracting.org/schema/1__1__5/strict/release-schema.json", - "$schema": "http://json-schema.org/draft-04/schema#", - "title": "Strict schema for an Open Contracting Release", - "description": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multi-stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\" The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.", - "type": "object", - "properties": { - "ocid": { - "title": "Open contracting process identifier", - "description": "A globally unique identifier for the contracting process that the release describes. Alternatively, this identifier can refer to a planning process or a single stage of a multi-stage procedure. It is composed of an ocid prefix and an internal identifier. It is encouraged to separate the ocds prefix and the internal identifier with a hyphen (`-`). For more information, see the [identifiers](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) reference.", - "type": "string", - "minLength": 1 - }, - "id": { - "title": "Release ID", - "description": "The identifier of the individual release or compiled release. For an individual release, the release ID must be unique within the scope of the (contracting or planning) process, for a given version of OCDS. In other words, a publisher may publish datasets for different versions of OCDS, and repeat releases within each dataset. The release ID must not contain the number sign (#). For a compiled release, the release ID should be the `ocid` and the maximum `date` among the individual releases used to create the compiled release, separated by a hyphen: {ocid}-{date}.", - "type": "string", - "minLength": 1, - "omitWhenMerged": true - }, - "date": { - "title": "Release Date", - "description": "The date on which the information contained in the release was first recorded in, or published by, any system. For a compiled release, the maximum `date` among the individual releases used to create the compiled release. The release date should be unique within the scope of the (contracting or planning) process, for a given version of OCDS.", - "type": "string", - "format": "date-time", - "omitWhenMerged": true - }, - "publisher": { - "title": "Publisher", - "description": "The original publisher of this release.", - "omitWhenMerged": true, - "$ref": "#/definitions/Identifier" - }, - "tag": { - "title": "Release Tag", - "description": "A tag labeling the release, using the the open [releaseTag](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#release-tag) codelist. Tags distinguish, for example, planning and contracting processes and the stages of contracting processes. Codes outside the releaseTag codelist might indicate, for example, the notice or form to which the release corresponds, or the event that triggered the publication of the release. Planning processes must not use the 'tender' code, even if they use `tender` fields.", - "type": "array", - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "releaseTag.csv", - "openCodelist": true, - "minItems": 1, - "omitWhenMerged": true, - "uniqueItems": true - }, - "initiationType": { - "title": "Initiation type", - "description": "The type of initiation process used for this contract, from the closed [initiationType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#initiation-type) codelist.", - "type": "string", - "enum": [ - "tender" - ], - "codelist": "initiationType.csv", - "openCodelist": false, - "deprecated": { - "description": "This field is deprecated, because the approach to data modelling that it supports was not pursued.", - "deprecatedVersion": "1.2" - } - }, - "parties": { - "title": "Parties", - "description": "Information on the organizations who are involved in the contracting (or planning) process and their roles, e.g. buyer, procuring entity, supplier etc. Organization references elsewhere in the schema are used to refer back to this entries in this list.", - "type": "array", - "items": { - "$ref": "#/definitions/Organization" - }, - "uniqueItems": true, - "minItems": 1 - }, - "buyer": { - "title": "Buyer", - "description": "The organization aiming to conclude a contract with a supplier or to use the goods, services or works resulting from the contract.", - "$ref": "#/definitions/OrganizationReference" - }, - "planning": { - "title": "Planning", - "description": "Information about, for example, needs identification, budget planning and market research. This information concerns the planning process. This information typically concerns the period before the publication of procurement documents.", - "$ref": "#/definitions/Planning" - }, - "tender": { - "title": "Tender", - "description": "Information about, for example, the needed items and their estimated value, procurement method, award criteria, and various deadlines. This information concerns either the contracting process or the planning process. For a contracting process, this information typically concerns the period starting with the publication of procurement documents and ending with the bid submission deadline. For a planning process, this information typically concerns the period before the publication of procurement documents.", - "$ref": "#/definitions/Tender" - }, - "awards": { - "title": "Awards", - "description": "Information about the awards. This information concerns the contracting process. This information typically concerns the period after the bid submission deadline and ending with the award or, if there is a standstill period, the end of the standstill period.", - "type": "array", - "items": { - "$ref": "#/definitions/Award" - }, - "uniqueItems": true, - "minItems": 1 - }, - "contracts": { - "title": "Contracts", - "description": "Information about the contracts and their implementation. This information concerns the contracting process. This information typically concerns the period after the award or, if there was a standstill period, after the end of the standstill period.", - "type": "array", - "items": { - "$ref": "#/definitions/Contract" - }, - "uniqueItems": true, - "minItems": 1 - }, - "language": { - "title": "Release language", - "description": "The default language of the data, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "minLength": 1 - }, - "relatedProcesses": { - "uniqueItems": true, - "items": { - "$ref": "#/definitions/RelatedProcess" - }, - "description": "The details of related processes: for example, if this process follows on from one or more other processes, represented under a separate ocid. This is commonly used to relate mini-competitions to their parent frameworks or individual tenders to a broader planning process.", - "title": "Related processes", - "type": "array", - "minItems": 1 - }, - "links": { - "title": "Links", - "description": "Links to related resources. In a release, links relate to the individual release: for example, a link to a canonical version of the release in another OCDS publication. In a compiled release, links relate to the entire contracting (or planning) process: for example, a link to a resource in a non-OCDS publication that represents the entire contracting process. For references to related processes, see the `relatedProcesses` array.", - "type": "array", - "items": { - "$ref": "#/definitions/Link" - }, - "uniqueItems": true, - "omitWhenMerged": true, - "minItems": 1 - } - }, - "required": [ - "ocid", - "id", - "date", - "tag", - "initiationType" - ], - "definitions": { - "Planning": { - "title": "Planning", - "description": "Information about, for example, needs identification, budget planning and market research. This information concerns the planning process. This information typically concerns the period before the publication of procurement documents.", - "type": "object", - "properties": { - "id": { - "title": "Planning ID", - "description": "An identifier for this planning process.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "rationale": { - "title": "Rationale", - "description": "The rationale for the planned procurement provided in free text. More detail can be provided in an attached document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "budget": { - "title": "Budget", - "description": "Details of the budget that will fund the future contract(s)", - "$ref": "#/definitions/Budget" - }, - "documents": { - "title": "Documents", - "description": "Documents related to the planning process (for example, notices, needs assessments and market studies).", - "type": "array", - "items": { - "$ref": "#/definitions/Document" - }, - "minItems": 1, - "uniqueItems": true - }, - "milestones": { - "title": "Planning milestones", - "description": "A list of milestones associated with the planning process.", - "type": "array", - "items": { - "$ref": "#/definitions/Milestone" - }, - "minItems": 1, - "uniqueItems": true - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Tender": { - "title": "Tender", - "description": "Information about, for example, the needed items and their estimated value, procurement method, award criteria, and various deadlines. This information concerns either the contracting process or the planning process. For a contracting process, this information typically concerns the period starting with the publication of procurement documents and ending with the bid submission deadline. For a planning process, this information typically concerns the period before the publication of procurement documents.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "Tender ID", - "description": "An identifier for this tender. This may be the same as the ocid, or may be an internal identifier for this tender. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "identifiers": { - "title": "Additional tender identifiers", - "description": "Additional identifiers for this tender. This field can be used to provide local identifiers for the tender.", - "type": "array", - "items": { - "$ref": "#/definitions/SimpleIdentifier" - }, - "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 - }, - "title": { - "title": "Tender title", - "description": "A title for this tender. This will often be used by applications as a headline to attract interest, and to help analysts understand the nature of this procurement. The title should be less than 150 characters in length.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Tender description", - "description": "A summary description of the tender. This complements any structured information provided using the items array. Descriptions should be short and easy to read. Avoid using ALL CAPS.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "status": { - "title": "Tender status", - "description": "The current status of the tender, from the closed [tenderStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#tender-status) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "tenderStatus.csv", - "openCodelist": false, - "enum": [ - "planning", - "planned", - "active", - "cancelled", - "unsuccessful", - "complete", - "withdrawn", - null - ] - }, - "statusDetails": { - "title": "Status details", - "description": "Additional details on the status of the tender. This field can be used to provide the local name of the status.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "procuringEntity": { - "title": "Procuring entity", - "description": "The organization managing the contracting (or planning) process. If an organization is both a buyer and a procuring entity (as can be the case in simple contracting processes), it should be disclosed using the buyer field, but not this field.", - "$ref": "#/definitions/OrganizationReference" - }, - "items": { - "title": "Items to be procured", - "description": "The goods, services or works to be purchased, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", - "type": "array", - "items": { - "$ref": "#/definitions/Item" - }, - "uniqueItems": true, - "minItems": 1 - }, - "value": { - "title": "Value", - "description": "The estimated value of the procurement, as estimated when publishing the tender information. A negative value indicates that the future contract(s) may involve payments from the supplier to the buyer (commonly used in concession contracts).", - "$ref": "#/definitions/Value" - }, - "minValue": { - "title": "Minimum value", - "description": "The estimated minimum value of the procurement. A negative value indicates that the future contract(s) may involve payments from the supplier to the buyer (commonly used in concession contracts).", - "$ref": "#/definitions/Value" - }, - "maximumValue": { - "title": "Maximum value", - "description": "The estimated maximum value of the framework agreement, as estimated when publishing the tender information.", - "$ref": "#/definitions/Value" - }, - "procurementMethod": { - "title": "Procurement method", - "description": "The method describing which organizations can submit a bid, using the closed [method](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#method) codelist. In releases concerning second stages (e.g. in framework agreements) or other subsequent stages, the procurement method always refers to the first stage of the contracting process.", - "type": [ - "string", - "null" - ], - "codelist": "method.csv", - "openCodelist": false, - "enum": [ - "open", - "selective", - "limited", - "direct", - null - ] - }, - "procurementMethodDetails": { - "title": "Procurement method details", - "description": "Additional detail on the procurement method used. This field can be used to provide the local name of the particular procurement method used.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "procurementMethodRationale": { - "title": "Procurement method rationale", - "description": "Rationale for the chosen procurement method. This is especially important to provide a justification in the case of limited tenders or direct awards.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "mainProcurementCategory": { - "title": "Main procurement category", - "description": "The primary category describing the main object of this contracting (or planning) process, from the closed [procurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#procurement-category) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "procurementCategory.csv", - "openCodelist": false, - "enum": [ - "goods", - "services", - "works", - null - ] - }, - "additionalProcurementCategories": { - "title": "Additional procurement categories", - "description": "Any additional categories describing the objects of this contracting (or planning) process, using the open [extendedProcurementCategory](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#extended-procurement-category) codelist.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "extendedProcurementCategory.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "awardCriteria": { - "title": "Award criteria", - "description": "The award criteria for the procurement, using the open [awardCriteria](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#award-criteria) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "awardCriteria.csv", - "openCodelist": true, - "minLength": 1 - }, - "awardCriteriaDetails": { - "title": "Award criteria details", - "description": "Any detailed or further information on the award criteria.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "submissionMethod": { - "title": "Submission method", - "description": "The methods by which bids are submitted, using the open [submissionMethod](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#submission-method) codelist.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "submissionMethod.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated, because all codes from the submissionMethod codelist are deprecated. Refer to the Deprecation note of individual codes.", - "deprecatedVersion": "1.2" - }, - "minItems": 1, - "uniqueItems": true - }, - "submissionMethodDetails": { - "title": "Submission method details", - "description": "Information about the methods by which bids are submitted. This can include the address, e-mail address or online service to which bids are submitted, and any special requirements to be followed for submissions. More structured information can be provided using the submission terms extension.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "datePublished": { - "description": "The date on which the tender was published.", - "format": "date-time", - "title": "Date published", - "type": [ - "string", - "null" - ] - }, - "tenderPeriod": { - "title": "Tender period", - "description": "The period when the tender is open for submissions. The end date is the closing date for bid submissions.", - "$ref": "#/definitions/Period" - }, - "enquiryPeriod": { - "title": "Enquiry period", - "description": "The period during which potential bidders may submit questions and requests for clarification to the buyer or the procuring entity. Details of how to submit enquiries should be provided in attached notices, or in submissionMethodDetails. Structured dates for when responses to questions will be made can be provided using tender milestones.", - "$ref": "#/definitions/Period" - }, - "hasEnquiries": { - "title": "Has enquiries?", - "description": "A true/false field to indicate whether any enquiries were received during the tender stage. Structured information on enquiries that were received, and responses to them, can be provided using the enquiries extension.", - "type": [ - "boolean", - "null" - ] - }, - "eligibilityCriteria": { - "title": "Eligibility criteria", - "description": "A description of any eligibility criteria for potential suppliers.", - "type": [ - "string", - "null" - ], - "deprecated": { - "description": "This field had unclear semantics and used ambiguous terms, and is deprecated in favor of exclusionGrounds.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "exclusionGrounds": { - "title": "Exclusion grounds", - "description": "The criteria regarding the situation of a tenderer that can lead to its exclusion from the contracting process. For example: criminal convictions, bankruptcy, presence on a blacklist or failure to pay taxes.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "selectionCriteria": { - "title": "Selection criteria", - "description": "The minimum requirements for potential suppliers to participate in the contracting process. Selection criteria ensure that a potential supplier has the legal and financial capacities and the technical and professional abilities to perform the contract. More structured information can be provided using the selection criteria extension.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "awardPeriod": { - "title": "Evaluation and award period", - "description": "The period for decision making regarding the contract award. The end date should be the date on which an award decision is due to be finalized. The start date may be used to indicate the start of an evaluation period.", - "$ref": "#/definitions/Period" - }, - "standstillPeriod": { - "title": "Standstill period", - "description": "The period before the contract signature during which the award decision can be challenged. This period typically starts on the date on which the tenderers are informed about the award decision.", - "$ref": "#/definitions/Period" - }, - "contractPeriod": { - "description": "The period over which the contract is estimated or required to be active. If the tender does not specify explicit dates, the duration field may be used.", - "title": "Contract period", - "$ref": "#/definitions/Period" - }, - "numberOfTenderers": { - "title": "Number of tenderers", - "description": "The number of tenderers that submit a bid.", - "type": [ - "integer", - "null" - ], - "minimum": 0 - }, - "tenderers": { - "title": "Tenderers", - "description": "All organizations that submit a bid. More detailed information on bids and the bidding organization can be provided using the bid extension.", - "type": "array", - "items": { - "$ref": "#/definitions/OrganizationReference" - }, - "uniqueItems": true, - "minItems": 1 - }, - "documents": { - "title": "Documents", - "description": "Documents related to the tender stage (for example, notices, technical specifications, evaluation criteria, questions and clarifications).", - "type": "array", - "items": { - "$ref": "#/definitions/Document" - }, - "minItems": 1, - "uniqueItems": true - }, - "milestones": { - "title": "Milestones", - "description": "A list of milestones associated with the tender.", - "type": "array", - "items": { - "$ref": "#/definitions/Milestone" - }, - "minItems": 1, - "uniqueItems": true - }, - "amendments": { - "description": "A tender amendment is a formal change to the tender, and generally involves the publication of a new tender notice/release. The rationale and a description of the changes made can be provided here.", - "type": "array", - "title": "Amendments", - "items": { - "$ref": "#/definitions/Amendment" - }, - "minItems": 1, - "uniqueItems": true - }, - "amendment": { - "title": "Amendment", - "description": "The use of individual amendment objects has been deprecated. From OCDS 1.1 information should be provided in the amendments array.", - "$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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(selectionCriteria_(((([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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Award": { - "title": "Award", - "description": "Decision by the buyer or the procuring entity on the supplier with whom it intends to conclude a contract, including the items to be supplied and their value. Typically, this decision leads to one or more contracts, but not always (for example, the award is appealed at court or the supplier refuses to sign the contract). Depending on the jurisdiction, a single decision may concern a single supplier, item and value; or batches of suppliers and/or items and/or values. Similarly, sometimes the award is published as soon as it is made and sometimes only together with a contract.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "Award ID", - "description": "The identifier for this award. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the contracting process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", - "type": [ - "string" - ], - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "Award title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "Award description", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "status": { - "title": "Award status", - "description": "The current status of the award, from the closed [awardStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#award-status) codelist.", - "type": [ - "string", - "null" - ], - "enum": [ - "pending", - "active", - "cancelled", - "unsuccessful", - null - ], - "codelist": "awardStatus.csv", - "openCodelist": false - }, - "statusDetails": { - "title": "Status details", - "description": "Additional details on the status of the award. This field can be used to provide the local name of the status.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "date": { - "title": "Award date", - "description": "The date of the contract award. This is usually the date on which a decision to award was made.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the award was published.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "value": { - "title": "Value", - "description": "The value of this award. There may be more than one award per procurement. A negative value indicates that the contract(s) resulting from this award may involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", - "$ref": "#/definitions/Value" - }, - "maximumValue": { - "title": "Maximum value", - "description": "The estimated maximum value of the framework agreement, as a whole, as estimated when making the award.", - "$ref": "#/definitions/Value" - }, - "estimatedValue": { - "title": "Estimated value", - "description": "The estimated value of the framework agreement, as a whole, as estimated when making the award.", - "$ref": "#/definitions/Value" - }, - "suppliers": { - "title": "Suppliers", - "description": "Organizations with which a buyer or a procuring entity decided to conclude a contract.", - "type": "array", - "items": { - "$ref": "#/definitions/OrganizationReference" - }, - "uniqueItems": true, - "minItems": 1 - }, - "items": { - "title": "Items awarded", - "description": "The goods, services or works awarded in this award, broken into line items wherever possible. Items should not be duplicated, but the quantity specified instead.", - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/definitions/Item" - }, - "uniqueItems": true - }, - "contractPeriod": { - "title": "Contract period", - "description": "The period for which the contract has been awarded.", - "$ref": "#/definitions/Period" - }, - "documents": { - "title": "Documents", - "description": "Documents related to the award (for example, notices, bids, evaluation reports).", - "type": "array", - "items": { - "$ref": "#/definitions/Document" - }, - "uniqueItems": true, - "minItems": 1 - }, - "amendments": { - "description": "An award amendment is a formal change to the details of the award, and generally involves the publication of a new award notice/release. The rationale and a description of the changes made can be provided here.", - "type": "array", - "title": "Amendments", - "items": { - "$ref": "#/definitions/Amendment" - }, - "minItems": 1, - "uniqueItems": true - }, - "amendment": { - "title": "Amendment", - "description": "The use of individual amendment objects has been deprecated. From OCDS 1.1 information should be provided in the amendments array.", - "$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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Contract": { - "type": "object", - "title": "Contract", - "description": "Information regarding the contract, typically between the buyer and supplier. This includes contracts describing all the contractual conditions (e.g. item, quantity, price, payment terms, time and place of delivery), as well as contracts only describing the general contractual conditions (such as a framework agreement) and those only describing the specific contractual conditions (such as a contract within a framework agreement). Communication between contractual parties that consists of minor specifications of conditions agreed previously (e.g. specifying the time or place of delivery) is not considered a contract. Amendments are considered as part of the contract that is being amended. Contracts are also used when giving prizes or other rewards (e.g. a follow-up contract) resulting from a design contest.", - "required": [ - "id", - "awardID" - ], - "properties": { - "id": { - "title": "Contract ID", - "description": "The identifier for this contract. Although an integer is allowed, it is recommended to use a string. It must be unique and must not change within the contracting process it is part of (defined by a single ocid). See the [identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for further details.", - "type": [ - "string" - ], - "minLength": 1 - }, - "identifiers": { - "title": "Additional contract identifiers", - "description": "Additional identifiers for this contract. This field can be used to provide local identifiers for the contract.", - "type": "array", - "items": { - "$ref": "#/definitions/SimpleIdentifier" - }, - "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 - }, - "awardID": { - "title": "Award ID", - "description": "The award.id against which this contract is being issued.", - "type": [ - "string", - "integer" - ], - "minLength": 1 - }, - "title": { - "title": "Contract title", - "description": "Contract title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Contract description", - "description": "Contract description", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "status": { - "title": "Contract status", - "description": "The current status of the contract, from the closed [contractStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#contract-status) codelist.", - "type": [ - "string", - "null" - ], - "enum": [ - "pending", - "active", - "cancelled", - "terminated", - "terminatedEarly", - "terminatedSuccessfully", - null - ], - "codelist": "contractStatus.csv", - "openCodelist": false - }, - "statusDetails": { - "title": "Status details", - "description": "Additional details on the status of the contract. This field can be used to provide the local name of the status.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "dateSigned": { - "title": "Date concluded", - "description": "The date the contract was concluded. Typically, this is the date when the last buyer or supplier signed the contract. However, if no contract is signed, then the date of contract conclusion may correspond to other dates (e.g. the date when the buyer notified the supplier, which had the legal effect of concluding the contract).", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "value": { - "title": "Value", - "description": "The value of this contract. A negative value indicates that the contract will involve payments from the supplier to the buyer (commonly used in concession contracts). This field should not contain the value of a framework agreement; those should be given in estimatedValue or maximumValue instead.", - "$ref": "#/definitions/Value" - }, - "maximumValue": { - "title": "Maximum value", - "description": "The maximum value of the framework agreement, as a whole.", - "$ref": "#/definitions/Value" - }, - "estimatedValue": { - "title": "Estimated value", - "description": "The estimated value of the framework agreement, as a whole, as estimated when the framework agreement is concluded (e.g. signed).", - "$ref": "#/definitions/Value" - }, - "items": { - "title": "Items contracted", - "description": "The goods, services or works in this contract. If the items contracted are identical to the items awarded, this field should be omitted.", - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/definitions/Item" - }, - "uniqueItems": true - }, - "period": { - "title": "Period", - "description": "The start and end date for the contract.", - "$ref": "#/definitions/Period" - }, - "documents": { - "title": "Documents", - "description": "Documents related to the contract (for example, notices, signed contracts).", - "type": "array", - "items": { - "$ref": "#/definitions/Document" - }, - "uniqueItems": true, - "minItems": 1 - }, - "implementation": { - "title": "Implementation", - "description": "Information related to the implementation of the contract in accordance with the obligations laid out therein.", - "$ref": "#/definitions/Implementation" - }, - "relatedProcesses": { - "uniqueItems": true, - "items": { - "$ref": "#/definitions/RelatedProcess" - }, - "description": "The details of related processes: for example, if this process is followed by one or more contracting processes, represented under a separate ocid. This is commonly used to refer to subcontracts and to renewal or replacement processes for this contract.", - "title": "Related processes", - "type": "array", - "minItems": 1 - }, - "milestones": { - "title": "Contract milestones", - "description": "A list of milestones associated with the finalization of this contract.", - "type": "array", - "items": { - "$ref": "#/definitions/Milestone" - }, - "minItems": 1, - "uniqueItems": true - }, - "amendments": { - "description": "A contract amendment is a formal change to, or extension of, a contract, and generally involves the publication of a new contract signature notice/release, or some other documents detailing the change. The rationale and a description of the changes made can be provided here.", - "type": "array", - "title": "Amendments", - "items": { - "$ref": "#/definitions/Amendment" - }, - "minItems": 1, - "uniqueItems": true - }, - "amendment": { - "title": "Amendment", - "description": "The use of individual amendment objects has been deprecated. From OCDS 1.1 information should be provided in the amendments array.", - "$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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Implementation": { - "type": "object", - "title": "Implementation", - "description": "Information during the performance / implementation stage of the contract.", - "properties": { - "transactions": { - "title": "Transactions", - "description": "A list of the spending transactions made against this contract", - "type": "array", - "items": { - "$ref": "#/definitions/Transaction" - }, - "uniqueItems": true, - "minItems": 1 - }, - "milestones": { - "title": "Milestones", - "description": "As milestones are completed, the milestone's status and dates should be updated.", - "type": "array", - "items": { - "$ref": "#/definitions/Milestone" - }, - "uniqueItems": true, - "minItems": 1 - }, - "documents": { - "title": "Documents", - "description": "Documents related to the implementation of the contract (for example, completion certificates, audits).", - "type": "array", - "items": { - "$ref": "#/definitions/Document" - }, - "uniqueItems": true, - "minItems": 1 - } - }, - "minProperties": 1 - }, - "Milestone": { - "title": "Milestone", - "description": "The milestone block can be used to represent a wide variety of events in the lifetime of a contracting (or planning) process.", - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier for this milestone, unique within this block. This field is used to keep track of multiple revisions of a milestone through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "Milestone title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "type": { - "title": "Milestone type", - "description": "The nature of the milestone, using the open [milestoneType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "milestoneType.csv", - "openCodelist": true, - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the milestone.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "code": { - "title": "Milestone code", - "description": "Milestone codes can be used to track specific events that take place for a particular kind of contracting (or planning) process. For example, a code of 'approvalLetter' can be used to allow applications to understand this milestone represents the date an approvalLetter is due or signed.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "dueAfterDate": { - "title": "Due after date", - "description": "The date after which the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dueDate": { - "title": "Due date", - "description": "The date the milestone is due.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateMet": { - "format": "date-time", - "title": "Date met", - "description": "The date on which the milestone was met.", - "type": [ - "string", - "null" - ] - }, - "dateModified": { - "title": "Date modified", - "description": "The date the milestone was last reviewed or modified and the status was altered or confirmed to still be correct.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "status": { - "title": "Status", - "description": "The status that was realized on the date provided in `dateModified`, from the closed [milestoneStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#milestone-status) codelist.", - "type": [ - "string", - "null" - ], - "enum": [ - "scheduled", - "met", - "notMet", - "partiallyMet", - null - ], - "codelist": "milestoneStatus.csv", - "openCodelist": false - }, - "documents": { - "title": "Documents", - "description": "List of documents associated with this milestone (Deprecated in 1.1).", - "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, - "minItems": 1 - }, - "value": { - "title": "Value", - "description": "The payment's value, if the milestone represents a planned payment.", - "$ref": "#/definitions/Value" - } - }, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Document": { - "type": "object", - "title": "Document", - "description": "Links to, or descriptions of, external documents can be attached at various locations within the standard. Documents can be supporting information, formal notices, downloadable forms, or any other kind of resource that ought to be made public as part of full open contracting.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local, unique identifier for this document. This field is used to keep track of multiple revisions of a document through the compilation from release to record mechanism. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "documentType": { - "title": "Document type", - "description": "A classification of the document described, using the open [documentType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#document-type) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "documentType.csv", - "openCodelist": true, - "minLength": 1 - }, - "title": { - "title": "Title", - "description": "The document title.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A short description of the document. Descriptions are recommended to not exceed 250 words. In the event the document is not accessible online, the description field can be used to describe arrangements for obtaining a copy of the document.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "url": { - "title": "URL", - "description": "A web address for accessing the document. The server providing access to this document ought to be configured to report the correct IANA media type. If the relevant information is within a larger document, the first page should be indicated by adding a fragment identifier to the end of the URL, such as #page=32.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "datePublished": { - "title": "Date published", - "description": "The date on which the document was first published. This is particularly important for legally important documents such as notices of a tender.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "dateModified": { - "title": "Date modified", - "description": "Date that the document was last modified", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "format": { - "title": "Format", - "description": "The format of the document, using the open [media type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#media-type) codelist. For example, a web page has a format of 'text/html'. The 'offline/print' code is reserved for printed documents not available in other formats.", - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "languages": { - "title": "Languages", - "description": "The languages used in the document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "language": { - "title": "Language", - "description": "The language of the linked document, from the open [language](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. A [BCP47 language tag](https://www.w3.org/International/articles/language-tags/) is allowed, if there is a user need for the additional information.", - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "relatedItems": { - "title": "Related items", - "description": "The subset of items to which this document relates, expressed as the `id` values of the related entries in the parent object's `items` array. For example, an entry in the `tender.documents` array may be related only to entries in the `tender.items` array.", - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Budget": { - "type": "object", - "title": "Budget information", - "description": "This section contains basic information about the budget that will fund the future contract(s). Further documentation and data about how budgets have been allocated should be published outside of OCDS data, according to the best available standards.", - "properties": { - "id": { - "title": "ID", - "description": "An identifier of the budget that will fund the future contract(s). This identifier should be possible to cross-reference against formal budget documents.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Budget Source", - "description": "A short free-text description of the budget that will fund the future contract(s). This may be used to provide human-readable information on: the budget category for the future contract(s) and/or the nature and source of the budget allocation (e.g. conditional, confirmed, or any official authorizations given to the budget allocation).", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "amount": { - "title": "Amount", - "description": "The value reserved for the future contract(s), within the budget. A negative value indicates income to the budget as a result of the future contract(s), rather than expenditure. If the budget is drawn from multiple sources or extends over multiple years, the budget breakdown extension can be used. This field should not be used to report the total value of the budget line that will fund the future contract(s).", - "$ref": "#/definitions/Value" - }, - "project": { - "title": "Project title", - "description": "The name of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the name by which the project is known in that registry.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "projectID": { - "title": "Project identifier", - "description": "The identifier of the project of which the future contract(s) will be part or through which it/they will be funded. Some organizations maintain a registry of projects, and the data should use the identifier from the relevant registry of projects. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "Linked budget information", - "description": "The URL of a machine-readable resource about the budget that will fund the future contract(s). For human-readable documents, see the `planning.documents` array.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "source": { - "title": "Data Source", - "description": "(Deprecated in 1.1) Used to point either to a corresponding Budget Data Package, or to a machine or human-readable source where users can find further information on the budget line item identifiers, or project identifiers, provided here.", - "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" - } - }, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Transaction": { - "type": "object", - "title": "Transaction information", - "description": "A spending transaction related to the contract. Draws upon the data models of the [Fiscal Data Package](https://frictionlessdata.io/specs/fiscal-data-package/) and the [International Aid Transparency Initiative](https://iatistandard.org/en/iati-standard/203/activity-standard/iati-activities/iati-activity/transaction/) and should be used to cross-reference to more detailed information held using a Fiscal Data Package, IATI file, or to provide enough information to allow a user to manually or automatically cross-reference with some other published source of transactional spending data.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A unique identifier for this transaction. This identifier should be possible to cross-reference against the provided data source. For IATI this is the transaction reference. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "source": { - "title": "Data source", - "description": "Used to point either to a corresponding Fiscal Data Package, IATI file, or machine or human-readable source where users can find further information on the budget line item identifiers, or project identifiers, provided here.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "date": { - "title": "Date", - "description": "The date of the transaction", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "value": { - "$ref": "#/definitions/Value", - "title": "Value", - "description": "The value of the transaction." - }, - "payer": { - "$ref": "#/definitions/OrganizationReference", - "title": "Payer", - "description": "An organization reference for the organization from which the funds in this transaction originate." - }, - "payee": { - "$ref": "#/definitions/OrganizationReference", - "title": "Payee", - "description": "An organization reference for the organization which receives the funds in this transaction." - }, - "uri": { - "title": "Linked spending information", - "description": "A URI pointing directly to a machine-readable record about this spending transaction.", - "type": [ - "string", - "null" - ], - "format": "uri" - }, - "amount": { - "title": "Amount", - "description": "(Deprecated in 1.1. Use transaction.value instead) The value of the transaction. A negative value indicates a refund or correction.", - "$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": { - "title": "Provider organization", - "description": "(Deprecated in 1.1. Use transaction.payer instead.) The Organization Identifier for the organization from which the funds in this transaction originate. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", - "$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, services or works procured rather than the flow of funds between the parties.", - "deprecatedVersion": "1.1" - } - }, - "receiverOrganization": { - "title": "Receiver organization", - "description": "(Deprecated in 1.1. Use transaction.payee instead). The Organization Identifier for the organization which receives the funds in this transaction. Expressed following the Organizational Identifier standard - consult the documentation and the codelist.", - "$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, services or works procured rather than the flow of funds between the parties.", - "deprecatedVersion": "1.1" - } - } - }, - "minProperties": 1 - }, - "OrganizationReference": { - "properties": { - "name": { - "type": "string", - "description": "The name of the organization being referenced. This must match the name of an entry in the parties section.", - "title": "Organization name", - "minLength": 1 - }, - "id": { - "type": "string", - "description": "The `id` of the organization's entry in the parties array. Although an integer is allowed, it is recommended to use a string.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "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", - "description": "(Deprecated outside the parties section)", - "title": "Address" - }, - "additionalIdentifiers": { - "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/Identifier" - }, - "title": "Additional identifiers", - "uniqueItems": true, - "wholeListMerge": true, - "description": "(Deprecated outside the parties section) A list of additional / supplemental identifiers for the organization, using the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This can be used to provide an internally used identifier for this organization in addition to the primary legal entity identifier.", - "minItems": 1 - }, - "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", - "description": "(Deprecated outside the parties section)", - "title": "Contact point" - } - }, - "type": "object", - "description": "The id and name of the organization being referenced. Used to cross-reference to the parties section", - "title": "Organization reference", - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "Organization": { - "title": "Organization", - "description": "An organization", - "type": "object", - "properties": { - "name": { - "title": "Common name", - "description": "A common name for this organization. The identifier object provides a space for the formal legal name, and so this may either repeat that value, or may provide the common name by which this organization is known. This field may also include details of the department or sub-unit involved in this contracting (or planning) process.", - "type": "string", - "minLength": 1 - }, - "id": { - "type": "string", - "description": "The ID used for cross-referencing to this organization from other sections of the release. This field need only be unique within the scope of the (contracting or planning) process, but should be built with the following structure {identifier.scheme}-{identifier.id}(-{department-identifier}) if the primary identifier for this organization is available.", - "title": "ID", - "minLength": 1 - }, - "identifier": { - "title": "Primary identifier", - "description": "The primary identifier for this organization. Identifiers that uniquely pick out a legal entity should be preferred. Consult the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/) for the preferred scheme and identifier to use.", - "$ref": "#/definitions/Identifier" - }, - "additionalIdentifiers": { - "title": "Additional identifiers", - "description": "Additional identifiers for this organization, following the [organization identifier guidance](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/identifiers/). This field can also be used to provide an identifier for an organizational unit (for example, an agency, branch or division).", - "type": "array", - "items": { - "$ref": "#/definitions/Identifier" - }, - "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 - }, - "address": { - "title": "Address", - "description": "An address. This may be the legally registered address of the organization, or may be a correspondence address for this particular contracting (or planning) process.", - "$ref": "#/definitions/Address" - }, - "contactPoint": { - "title": "Contact point", - "description": "Contact details that can be used for this organization.", - "$ref": "#/definitions/ContactPoint" - }, - "roles": { - "title": "Roles", - "description": "The organization's role(s) in the contracting (or planning) process, using the open [partyRole](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#party-role) codelist.", - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "partyRole.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "details": { - "type": [ - "object", - "null" - ], - "description": "Additional classification information about organizations can be provided using organization details extensions that define particular fields and classification schemes.", - "title": "Details", - "properties": { - "scale": { - "title": "Scale", - "description": "The size or scale of the organization.", - "type": [ - "string", - "null" - ], - "enum": [ - "micro", - "sme", - "small", - "medium", - "large", - "selfEmployed", - null - ], - "codelist": "partyScale.csv", - "openCodelist": false - } - }, - "minProperties": 1 - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "Item": { - "title": "Item", - "type": "object", - "description": "A line-item of the goods, services, or works to be contracted.", - "required": [ - "id" - ], - "properties": { - "id": { - "title": "ID", - "description": "A local identifier to reference and merge the items by. Must be unique within a given array of items. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A description of the goods, services or works to be provided.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "classification": { - "title": "Classification", - "description": "The primary classification for the item.", - "$ref": "#/definitions/Classification" - }, - "additionalClassifications": { - "title": "Additional classifications", - "description": "An array of additional classifications for the item.", - "type": "array", - "items": { - "$ref": "#/definitions/Classification" - }, - "uniqueItems": true, - "wholeListMerge": true, - "minItems": 1 - }, - "quantity": { - "title": "Quantity", - "description": "The number of units to be provided.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "unit": { - "title": "Unit", - "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", - "$ref": "#/definitions/Unit" - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Amendment": { - "title": "Amendment", - "type": "object", - "description": "Amendment information", - "properties": { - "date": { - "title": "Amendment date", - "description": "The date of this amendment.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "rationale": { - "title": "Rationale", - "description": "An explanation for the amendment.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "description": "An identifier for this amendment: often the amendment number", - "type": "string", - "title": "ID", - "minLength": 1 - }, - "description": { - "description": "A free text, or semi-structured, description of the changes made in this amendment.", - "type": [ - "string", - "null" - ], - "title": "Description", - "minLength": 1 - }, - "amendsReleaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **before** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amended release (identifier)", - "minLength": 1 - }, - "releaseID": { - "description": "Provide the identifier (release.id) of the OCDS release (from this contracting or planning process) that provides the values for this contracting (or planning) process **after** the amendment was made.", - "type": [ - "string", - "null" - ], - "title": "Amending release (identifier)", - "minLength": 1 - }, - "changes": { - "title": "Amended fields", - "description": "An array of change objects describing the fields changed, and their former values. (Deprecated in 1.1)", - "type": "array", - "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. (Deprecated in 1.1)", - "type": "string", - "minLength": 1 - }, - "former_value": { - "title": "Former Value", - "description": "The previous value of the changed property, in whatever type the property is. (Deprecated in 1.1)", - "type": [ - "string", - "number", - "integer", - "array", - "object", - "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 - } - }, - "minProperties": 1 - }, - "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" - }, - "minItems": 1, - "uniqueItems": true - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "Classification": { - "title": "Classification", - "description": "A classification consists of at least two parts: an identifier for the list (scheme) from which the classification is taken, and an identifier for the category from that list being applied. It is useful to also publish a text label and/or URI that users can draw on to interpret the classification.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The scheme or codelist from which the classification code is taken, using the open [classificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#classification-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The classification code taken from the scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "title": "Description", - "description": "A textual description or title for the classification code.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to uniquely identify the classification code.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Identifier": { - "title": "Identifier", - "description": "A unique identifier for an organization.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "Organization identifiers should be taken from an existing organization identifier list. The scheme field is used to indicate the list or register from which the identifier is taken. This value should be taken from the [Organization Identifier Scheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#organization-identifier-scheme) codelist.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier of the organization in the selected scheme. Although an integer is allowed, it is recommended to use a string.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "title": "Legal Name", - "description": "The legally registered name of the organization.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "title": "URI", - "description": "A URI to identify the organization, such as those provided by [Open Corporates](https://opencorporates.com) or some other relevant URI provider. This is not for listing the website of the organization: that can be done through the URL field of the Organization contact point.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Address": { - "title": "Address", - "description": "An address.", - "type": "object", - "properties": { - "streetAddress": { - "title": "Street address", - "type": [ - "string", - "null" - ], - "description": "The street address. For example, 1600 Amphitheatre Pkwy.", - "minLength": 1 - }, - "locality": { - "title": "Locality", - "type": [ - "string", - "null" - ], - "description": "The locality. For example, Mountain View.", - "minLength": 1 - }, - "region": { - "title": "Region", - "type": [ - "string", - "null" - ], - "description": "The region. For example, CA.", - "minLength": 1 - }, - "postalCode": { - "title": "Postal code", - "type": [ - "string", - "null" - ], - "description": "The postal code. For example, 94043.", - "minLength": 1 - }, - "country": { - "title": "Country code", - "description": "The country, from the closed [country](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#language) codelist. If a country is missing, [create an issue](https://github.com/open-contracting/standard/issues) to discuss the addition of a user-assigned code to the country codelist.", - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "countryName": { - "title": "Country name", - "type": [ - "string", - "null" - ], - "description": "The country name. For example, United States.", - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1 - }, - "ContactPoint": { - "title": "Contact point", - "type": "object", - "description": "A person, contact point or department to contact in relation to this contracting (or planning) process.", - "properties": { - "name": { - "title": "Name", - "type": [ - "string", - "null" - ], - "description": "The name of the contact person, department, or contact point, for correspondence relating to this contracting (or planning) process.", - "minLength": 1 - }, - "email": { - "title": "Email", - "type": [ - "string", - "null" - ], - "description": "The e-mail address of the contact point/person.", - "minLength": 1, - "format": "email" - }, - "telephone": { - "title": "Telephone", - "type": [ - "string", - "null" - ], - "description": "The telephone number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "faxNumber": { - "title": "Fax number", - "type": [ - "string", - "null" - ], - "description": "The fax number of the contact point/person. This should include the international dialing code.", - "minLength": 1 - }, - "url": { - "title": "URL", - "type": [ - "string", - "null" - ], - "description": "A web address for the contact point/person.", - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Value": { - "title": "Value", - "description": "Financial values should be published with a currency attached.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ] - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "Period": { - "title": "Period", - "description": "Key events during a contracting (or planning) process may have a known start date, end date, duration, or maximum extent (the latest date the period can extend to). In some cases, not all of these fields will have known or relevant values.", - "type": "object", - "properties": { - "startDate": { - "title": "Start date", - "description": "The start date for the period. When known, a precise start date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "endDate": { - "title": "End date", - "description": "The end date for the period. When known, a precise end date must be provided.", - "type": [ - "string", - "null" - ], - "format": "date-time" - }, - "maxExtentDate": { - "description": "The period cannot be extended beyond this date. This field can be used to express the maximum available date for extension or renewal of this period.", - "format": "date-time", - "title": "Maximum extent", - "type": [ - "string", - "null" - ] - }, - "durationInDays": { - "description": "The maximum duration of this period in days. A user interface can collect or display this data in months or years as appropriate, and then convert it into days when storing this field. This field can be used when exact dates are not known. If a startDate and endDate are set, this field, if used, must be equal to the difference between startDate and endDate. Otherwise, if a startDate and maxExtentDate are set, this field, if used, must be equal to the difference between startDate and maxExtentDate.", - "title": "Duration (days)", - "type": [ - "integer", - "null" - ], - "minimum": 0 - } - }, - "minProperties": 1 - }, - "RelatedProcess": { - "description": "A reference to a related contracting (or planning) process: generally one preceding or following on from the current process.", - "type": "object", - "title": "Related Process", - "properties": { - "id": { - "title": "Relationship ID", - "description": "A local identifier for this relationship, unique within this array.", - "type": "string", - "minLength": 1 - }, - "relationship": { - "items": { - "type": "string", - "minLength": 1 - }, - "description": "The type of relationship, using the open [relatedProcess](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process) codelist.", - "title": "Relationship", - "type": [ - "array", - "null" - ], - "codelist": "relatedProcess.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "title": { - "description": "The title of the related process, where referencing a contracting (or planning) process, this field should match the tender/title field in the related process.", - "title": "Related process title", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "scheme": { - "title": "Scheme", - "description": "The identification scheme used by this cross-reference, using the open [relatedProcessScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#related-process-scheme) codelist.", - "type": [ - "string", - "null" - ], - "codelist": "relatedProcessScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "identifier": { - "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", - "title": "Identifier", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "uri": { - "format": "uri", - "description": "A URI pointing to a machine-readable document, release or record package containing the identified related process.", - "title": "Related process URI", - "type": [ - "string", - "null" - ] - } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "Unit": { - "title": "Unit", - "description": "A description of the unit in which the goods, services or works are provided (e.g. hours, kilograms) and the unit-price.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list from which identifiers for units of measure are taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended.", - "type": [ - "string", - "null" - ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier from the codelist referenced in the `scheme` field. Check the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find and use identifiers from the scheme in use.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "name": { - "title": "Name", - "description": "Name of the unit.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "value": { - "title": "Value", - "description": "The monetary value of a single unit.", - "$ref": "#/definitions/UnitValue" - }, - "uri": { - "title": "URI", - "description": "The machine-readable URI for the unit of measure, provided by the scheme.", - "format": "uri", - "type": [ - "string", - "null" - ] - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Link": { - "title": "Link", - "description": "A reference to a related resource.", - "type": "object", - "properties": { - "rel": { - "title": "Link relation type", - "description": "The relationship with the related resource, using the open [link relation type](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#link-relation-type) codelist.", - "type": "string", - "codelist": "linkRelationType.csv", - "openCodelist": true, - "minLength": 1 - }, - "href": { - "title": "Link target", - "description": "The URL of the related resource.", - "type": "string", - "format": "uri" - } - }, - "minProperties": 1 - }, - "UnitValue": { - "title": "Unit value", - "description": "The monetary value of a single unit.", - "type": "object", - "properties": { - "amount": { - "title": "Amount", - "description": "Amount as a number.", - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "currency": { - "title": "Currency", - "description": "The currency of the amount, from the closed [currency](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#currency) codelist.", - "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 - ] - } - }, - "minProperties": 1 - }, - "SimpleIdentifier": { - "title": "Simple identifier", - "description": "An unambiguous reference to a resource within a given context.", - "type": "object", - "properties": { - "scheme": { - "title": "Scheme", - "description": "The list, register or system from which the identifier is taken.", - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "title": "ID", - "description": "The identifier taken from the scheme.", - "type": [ - "string", - "null" - ], - "versionId": true, - "minLength": 1 - } - }, - "minProperties": 1 - } - }, - "minProperties": 1 -} diff --git a/schema/strict/versioned-release-validation-schema.json b/schema/strict/versioned-release-validation-schema.json deleted file mode 100644 index ef9f6aeb3..000000000 --- a/schema/strict/versioned-release-validation-schema.json +++ /dev/null @@ -1,4952 +0,0 @@ -{ - "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": "OCDS is used for contracts in public procurement (including design contests), concessions, public-private partnerships, government asset sales and other contexts. A \"release\" describes a single contracting or planning process at a particular point in time. One process may be described by many releases. A release may repeat or update the information provided in previous releases about the process.\\n\\nA \"compiled release\" follows the same structure as a release, but combines information about a contracting or planning process from multiple points in time into a single summary.\\n\\nOCDS defines a \"contracting process\" as: \"All the actions aimed at implementing one or more contracts. This covers tendering, awarding, contracting and implementation. It does not include actions linked to planning, as these are often less structured and may be linked to multiple contracting processes. In multi-stage procedures (e.g. framework agreements with reopening of competition), each round of competition is treated as a separate contracting process.\\n\\nProcedures that failed and were restarted are considered new processes.\\n\\nBoundaries between processes (e.g. whether two contracts result from a single process or from two processes) are set by buyers depending on their needs (e.g. efficient division of labor, clear communication with the market) and legislation (e.g. rules on using procedures and lots).\"\\n\\nOCDS defines a \"planning process\" as: \"All the actions aimed at planning one or more contracting processes. This covers, for example, need identification, budget planning, and market research.\\n\\nPlanning processes are often less structured than contracting processes, so one or more planning processes may lead to one or more contracting processes.\" The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.", - "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, - "deprecated": { - "description": "This field is deprecated, because the approach to data modelling that it supports was not pursued.", - "deprecatedVersion": "1.2" - } - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "parties": { - "type": "array", - "items": { - "$ref": "#/definitions/Organization" - }, - "uniqueItems": true, - "minItems": 1 - }, - "buyer": { - "$ref": "#/definitions/OrganizationReferenceVersionedId" - }, - "planning": { - "$ref": "#/definitions/Planning" - }, - "tender": { - "$ref": "#/definitions/Tender" - }, - "awards": { - "type": "array", - "items": { - "$ref": "#/definitions/Award" - }, - "uniqueItems": true, - "minItems": 1 - }, - "contracts": { - "type": "array", - "items": { - "$ref": "#/definitions/Contract" - }, - "uniqueItems": true, - "minItems": 1 - }, - "language": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "relatedProcesses": { - "uniqueItems": true, - "items": { - "$ref": "#/definitions/RelatedProcess" - }, - "type": "array", - "minItems": 1 - }, - "ocid": { - "type": "string", - "minLength": 1 - } - }, - "required": [ - "ocid", - "initiationType" - ], - "definitions": { - "Planning": { - "type": "object", - "properties": { - "id": { - "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" - } - } - } - } - }, - "rationale": { - "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" - } - } - } - } - }, - "budget": { - "$ref": "#/definitions/Budget" - }, - "documents": { - "type": "array", - "items": { - "$ref": "#/definitions/Document" - }, - "minItems": 1, - "uniqueItems": true - }, - "milestones": { - "type": "array", - "items": { - "$ref": "#/definitions/Milestone" - }, - "minItems": 1, - "uniqueItems": true - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "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" - ], - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "identifiers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/SimpleIdentifierUnversioned" - }, - "uniqueItems": true, - "minItems": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "title": { - "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" - } - } - } - } - }, - "description": { - "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" - } - } - } - } - }, - "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" - } - } - } - } - }, - "statusDetails": { - "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" - } - } - } - } - }, - "procuringEntity": { - "$ref": "#/definitions/OrganizationReferenceVersionedId" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/Item" - }, - "uniqueItems": true, - "minItems": 1 - }, - "value": { - "$ref": "#/definitions/Value" - }, - "minValue": { - "$ref": "#/definitions/Value" - }, - "maximumValue": { - "$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": { - "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" - } - } - } - } - }, - "procurementMethodRationale": { - "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" - } - } - } - } - }, - "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", - "services", - "works", - 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", - "minLength": 1 - }, - "codelist": "extendedProcurementCategory.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": 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, - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "awardCriteriaDetails": { - "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" - } - } - } - } - }, - "submissionMethod": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "submissionMethod.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated, because all codes from the submissionMethod codelist are deprecated. Refer to the Deprecation note of individual codes.", - "deprecatedVersion": "1.2" - }, - "minItems": 1, - "uniqueItems": true - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "submissionMethodDetails": { - "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" - } - } - } - } - }, - "datePublished": { - "$ref": "#/definitions/StringNullDateTimeVersioned" - }, - "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": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": [ - "string", - "null" - ], - "deprecated": { - "description": "This field had unclear semantics and used ambiguous terms, and is deprecated in favor of exclusionGrounds.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "exclusionGrounds": { - "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" - } - } - } - } - }, - "selectionCriteria": { - "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" - } - } - } - } - }, - "awardPeriod": { - "$ref": "#/definitions/Period" - }, - "standstillPeriod": { - "$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" - ], - "minimum": 0 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "tenderers": { - "type": "array", - "items": { - "$ref": "#/definitions/OrganizationReference" - }, - "uniqueItems": true, - "minItems": 1 - }, - "documents": { - "type": "array", - "items": { - "$ref": "#/definitions/Document" - }, - "minItems": 1, - "uniqueItems": true - }, - "milestones": { - "type": "array", - "items": { - "$ref": "#/definitions/Milestone" - }, - "minItems": 1, - "uniqueItems": true - }, - "amendments": { - "type": "array", - "items": { - "$ref": "#/definitions/Amendment" - }, - "minItems": 1, - "uniqueItems": true - }, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(selectionCriteria_(((([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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Award": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "type": [ - "string" - ], - "minLength": 1 - }, - "title": { - "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" - } - } - } - } - }, - "description": { - "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" - } - } - } - } - }, - "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" - } - } - } - } - }, - "statusDetails": { - "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" - } - } - } - } - }, - "date": { - "$ref": "#/definitions/StringNullDateTimeVersioned" - }, - "datePublished": { - "$ref": "#/definitions/StringNullDateTimeVersioned" - }, - "value": { - "$ref": "#/definitions/Value" - }, - "maximumValue": { - "$ref": "#/definitions/Value" - }, - "estimatedValue": { - "$ref": "#/definitions/Value" - }, - "suppliers": { - "type": "array", - "items": { - "$ref": "#/definitions/OrganizationReference" - }, - "uniqueItems": true, - "minItems": 1 - }, - "items": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/definitions/Item" - }, - "uniqueItems": true - }, - "contractPeriod": { - "$ref": "#/definitions/Period" - }, - "documents": { - "type": "array", - "items": { - "$ref": "#/definitions/Document" - }, - "uniqueItems": true, - "minItems": 1 - }, - "amendments": { - "type": "array", - "items": { - "$ref": "#/definitions/Amendment" - }, - "minItems": 1, - "uniqueItems": true - }, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Contract": { - "type": "object", - "required": [ - "id", - "awardID" - ], - "properties": { - "id": { - "type": [ - "string" - ], - "minLength": 1 - }, - "identifiers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/SimpleIdentifierUnversioned" - }, - "uniqueItems": true, - "minItems": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "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": { - "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" - } - } - } - } - }, - "description": { - "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" - } - } - } - } - }, - "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", - "terminatedEarly", - "terminatedSuccessfully", - null - ], - "codelist": "contractStatus.csv", - "openCodelist": false - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "statusDetails": { - "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" - } - } - } - } - }, - "dateSigned": { - "$ref": "#/definitions/StringNullDateTimeVersioned" - }, - "value": { - "$ref": "#/definitions/Value" - }, - "maximumValue": { - "$ref": "#/definitions/Value" - }, - "estimatedValue": { - "$ref": "#/definitions/Value" - }, - "items": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/definitions/Item" - }, - "uniqueItems": true - }, - "period": { - "$ref": "#/definitions/Period" - }, - "documents": { - "type": "array", - "items": { - "$ref": "#/definitions/Document" - }, - "uniqueItems": true, - "minItems": 1 - }, - "implementation": { - "$ref": "#/definitions/Implementation" - }, - "relatedProcesses": { - "uniqueItems": true, - "items": { - "$ref": "#/definitions/RelatedProcess" - }, - "type": "array", - "minItems": 1 - }, - "milestones": { - "type": "array", - "items": { - "$ref": "#/definitions/Milestone" - }, - "minItems": 1, - "uniqueItems": true - }, - "amendments": { - "type": "array", - "items": { - "$ref": "#/definitions/Amendment" - }, - "minItems": 1, - "uniqueItems": true - }, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Implementation": { - "type": "object", - "properties": { - "transactions": { - "type": "array", - "items": { - "$ref": "#/definitions/Transaction" - }, - "uniqueItems": true, - "minItems": 1 - }, - "milestones": { - "type": "array", - "items": { - "$ref": "#/definitions/Milestone" - }, - "uniqueItems": true, - "minItems": 1 - }, - "documents": { - "type": "array", - "items": { - "$ref": "#/definitions/Document" - }, - "uniqueItems": true, - "minItems": 1 - } - }, - "minProperties": 1 - }, - "Milestone": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "type": [ - "string" - ], - "minLength": 1 - }, - "title": { - "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" - } - } - } - } - }, - "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, - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "description": { - "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" - } - } - } - } - }, - "code": { - "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" - } - } - } - } - }, - "dueAfterDate": { - "$ref": "#/definitions/StringNullDateTimeVersioned" - }, - "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, - "minItems": 1 - }, - "value": { - "$ref": "#/definitions/Value" - } - }, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Document": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "type": [ - "string" - ], - "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, - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "title": { - "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" - } - } - } - } - }, - "description": { - "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" - } - } - } - } - }, - "url": { - "$ref": "#/definitions/StringNullUriVersioned" - }, - "datePublished": { - "$ref": "#/definitions/StringNullDateTimeVersioned" - }, - "dateModified": { - "$ref": "#/definitions/StringNullDateTimeVersioned" - }, - "format": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": [ - "string", - "null" - ], - "codelist": "mediaType.csv", - "openCodelist": true, - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "languages": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": [ - "array", - "null" - ], - "items": { - "type": "string", - "minLength": 1 - }, - "codelist": "language.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "language": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": [ - "string", - "null" - ], - "codelist": "language.csv", - "openCodelist": true, - "deprecated": { - "description": "This field is deprecated in favor of `languages`, to support documents in which multiple languages are used.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "relatedItems": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": [ - "array", - "null" - ], - "items": { - "type": [ - "string" - ], - "minLength": 1 - }, - "minItems": 1, - "uniqueItems": true - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Budget": { - "type": "object", - "properties": { - "id": { - "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" - } - } - } - } - }, - "description": { - "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" - } - } - } - } - }, - "amount": { - "$ref": "#/definitions/Value" - }, - "project": { - "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" - } - } - } - } - }, - "projectID": { - "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" - } - } - } - } - }, - "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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - }, - "^(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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Transaction": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "type": [ - "string" - ], - "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, services or works 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, services or works procured rather than the flow of funds between the parties.", - "deprecatedVersion": "1.1" - } - } - }, - "minProperties": 1 - }, - "OrganizationReference": { - "properties": { - "name": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": "string", - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "id": { - "type": "string", - "minLength": 1 - }, - "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, - "minItems": 1 - }, - "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", - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "Organization": { - "type": "object", - "properties": { - "name": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": "string", - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "id": { - "type": "string", - "minLength": 1 - }, - "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, - "minItems": 1 - }, - "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", - "minLength": 1 - }, - "codelist": "partyRole.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": 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" - ], - "properties": { - "scale": { - "type": [ - "string", - "null" - ], - "enum": [ - "micro", - "sme", - "small", - "medium", - "large", - "selfEmployed", - null - ], - "codelist": "partyScale.csv", - "openCodelist": false - } - }, - "minProperties": 1 - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "Item": { - "type": "object", - "required": [ - "id" - ], - "properties": { - "id": { - "type": [ - "string" - ], - "minLength": 1 - }, - "description": { - "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" - } - } - } - } - }, - "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, - "minItems": 1 - }, - "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" - ], - "minimum": 0 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "unit": { - "$ref": "#/definitions/Unit" - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Amendment": { - "type": "object", - "properties": { - "date": { - "$ref": "#/definitions/StringNullDateTimeVersioned" - }, - "rationale": { - "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", - "minLength": 1 - }, - "description": { - "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" - } - } - } - } - }, - "amendsReleaseID": { - "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" - } - } - } - } - }, - "releaseID": { - "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" - } - } - } - } - }, - "changes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "property": { - "type": "string", - "minLength": 1 - }, - "former_value": { - "type": [ - "string", - "number", - "integer", - "array", - "object", - "null" - ], - "minLength": 1, - "minItems": 1, - "uniqueItems": true, - "minProperties": 1 - } - }, - "minProperties": 1 - }, - "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" - }, - "minItems": 1, - "uniqueItems": true - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "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": "classificationScheme.csv", - "openCodelist": true, - "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", - "null" - ], - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "description": { - "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" - } - } - } - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Identifier": { - "type": "object", - "properties": { - "scheme": { - "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", - "null" - ], - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "legalName": { - "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" - } - } - } - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Address": { - "type": "object", - "properties": { - "streetAddress": { - "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" - } - } - } - } - }, - "locality": { - "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" - } - } - } - } - }, - "region": { - "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" - } - } - } - } - }, - "postalCode": { - "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" - } - } - } - } - }, - "country": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": [ - "string", - "null" - ], - "codelist": "country.csv", - "openCodelist": false, - "enum": [ - "AD", - "AE", - "AF", - "AG", - "AI", - "AL", - "AM", - "AO", - "AQ", - "AR", - "AS", - "AT", - "AU", - "AW", - "AX", - "AZ", - "BA", - "BB", - "BD", - "BE", - "BF", - "BG", - "BH", - "BI", - "BJ", - "BL", - "BM", - "BN", - "BO", - "BQ", - "BR", - "BS", - "BT", - "BV", - "BW", - "BY", - "BZ", - "CA", - "CC", - "CD", - "CF", - "CG", - "CH", - "CI", - "CK", - "CL", - "CM", - "CN", - "CO", - "CR", - "CU", - "CV", - "CW", - "CX", - "CY", - "CZ", - "DE", - "DJ", - "DK", - "DM", - "DO", - "DZ", - "EC", - "EE", - "EG", - "EH", - "ER", - "ES", - "ET", - "FI", - "FJ", - "FK", - "FM", - "FO", - "FR", - "GA", - "GB", - "GD", - "GE", - "GF", - "GG", - "GH", - "GI", - "GL", - "GM", - "GN", - "GP", - "GQ", - "GR", - "GS", - "GT", - "GU", - "GW", - "GY", - "HK", - "HM", - "HN", - "HR", - "HT", - "HU", - "ID", - "IE", - "IL", - "IM", - "IN", - "IO", - "IQ", - "IR", - "IS", - "IT", - "JE", - "JM", - "JO", - "JP", - "KE", - "KG", - "KH", - "KI", - "KM", - "KN", - "KP", - "KR", - "KW", - "KY", - "KZ", - "LA", - "LB", - "LC", - "LI", - "LK", - "LR", - "LS", - "LT", - "LU", - "LV", - "LY", - "MA", - "MC", - "MD", - "ME", - "MF", - "MG", - "MH", - "MK", - "ML", - "MM", - "MN", - "MO", - "MP", - "MQ", - "MR", - "MS", - "MT", - "MU", - "MV", - "MW", - "MX", - "MY", - "MZ", - "NA", - "NC", - "NE", - "NF", - "NG", - "NI", - "NL", - "NO", - "NP", - "NR", - "NU", - "NZ", - "OM", - "PA", - "PE", - "PF", - "PG", - "PH", - "PK", - "PL", - "PM", - "PN", - "PR", - "PS", - "PT", - "PW", - "PY", - "QA", - "RE", - "RO", - "RS", - "RU", - "RW", - "SA", - "SB", - "SC", - "SD", - "SE", - "SG", - "SH", - "SI", - "SJ", - "SK", - "SL", - "SM", - "SN", - "SO", - "SR", - "SS", - "ST", - "SV", - "SX", - "SY", - "SZ", - "TC", - "TD", - "TF", - "TG", - "TH", - "TJ", - "TK", - "TL", - "TM", - "TN", - "TO", - "TR", - "TT", - "TV", - "TW", - "TZ", - "UA", - "UG", - "UM", - "US", - "UY", - "UZ", - "VA", - "VC", - "VE", - "VG", - "VI", - "VN", - "VU", - "WF", - "WS", - "XK", - "YE", - "YT", - "ZA", - "ZM", - "ZW", - null - ] - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "countryName": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": [ - "string", - "null" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "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" - ], - "deprecated": { - "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", - "deprecatedVersion": "1.2" - }, - "minLength": 1 - } - }, - "minProperties": 1 - }, - "ContactPoint": { - "type": "object", - "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" - } - } - } - } - }, - "email": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": [ - "string", - "null" - ], - "minLength": 1, - "format": "email" - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "telephone": { - "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" - } - } - } - } - }, - "faxNumber": { - "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" - } - } - } - } - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "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" - } - } - } - } - } - }, - "minProperties": 1 - }, - "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" - ], - "minimum": 0 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "minProperties": 1 - }, - "RelatedProcess": { - "type": "object", - "properties": { - "id": { - "type": "string", - "minLength": 1 - }, - "relationship": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "items": { - "type": "string", - "minLength": 1 - }, - "type": [ - "array", - "null" - ], - "codelist": "relatedProcess.csv", - "openCodelist": true, - "minItems": 1, - "uniqueItems": true - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "title": { - "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" - } - } - } - } - }, - "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, - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "identifier": { - "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" - } - } - } - } - }, - "uri": { - "$ref": "#/definitions/StringNullUriVersioned" - } - }, - "minProperties": 1, - "required": [ - "id" - ] - }, - "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, - "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", - "null" - ], - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "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" - } - } - } - } - }, - "value": { - "$ref": "#/definitions/UnitValue" - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "Link": { - "type": "object", - "properties": { - "rel": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": "string", - "codelist": "linkRelationType.csv", - "openCodelist": true, - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - }, - "href": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": "string", - "format": "uri" - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "minProperties": 1 - }, - "UnitValue": { - "type": "object", - "properties": { - "amount": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": [ - "number", - "null" - ], - "minimum": 0 - }, - "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" - } - } - } - } - } - }, - "minProperties": 1 - }, - "SimpleIdentifier": { - "type": "object", - "properties": { - "scheme": { - "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", - "null" - ], - "versionId": true, - "minLength": 1 - }, - "releaseTag": { - "type": "array", - "items": { - "type": "string" - } - } - } - } - } - }, - "minProperties": 1 - }, - "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" - } - } - } - } - }, - "IdentifierUnversioned": { - "type": "object", - "properties": { - "scheme": { - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "legalName": { - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - }, - "OrganizationReferenceVersionedId": { - "properties": { - "name": { - "type": "array", - "items": { - "type": "object", - "properties": { - "releaseDate": { - "format": "date-time", - "type": "string" - }, - "releaseID": { - "type": "string" - }, - "value": { - "type": "string", - "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", - "minLength": 1 - }, - "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, - "minItems": 1 - }, - "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", - "minProperties": 1, - "required": [ - "id", - "name" - ] - }, - "SimpleIdentifierUnversioned": { - "type": "object", - "properties": { - "scheme": { - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "id": { - "type": [ - "string", - "null" - ], - "versionId": true, - "minLength": 1 - } - }, - "minProperties": 1 - }, - "ClassificationUnversioned": { - "type": "object", - "properties": { - "scheme": { - "type": [ - "string", - "null" - ], - "codelist": "classificationScheme.csv", - "openCodelist": true, - "minLength": 1 - }, - "id": { - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "description": { - "type": [ - "string", - "null" - ], - "minLength": 1 - }, - "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" - ], - "minLength": 1 - } - }, - "minProperties": 1 - } - }, - "minProperties": 1 -} From c1865ac46f1b686c9688ac2842b78caf1f9b721a Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 28 Mar 2024 14:11:05 +1300 Subject: [PATCH 24/29] Update changelog, reinstate whitespace --- docs/history/changelog.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/history/changelog.md b/docs/history/changelog.md index 558a72752..874e54b88 100644 --- a/docs/history/changelog.md +++ b/docs/history/changelog.md @@ -307,8 +307,11 @@ Per the [normative and non-normative content and changes policy](../governance/n * [#1067](https://github.com/open-contracting/standard/pull/1067) `Publisher.name`, to indicate that it is the organization or department responsible for publishing the OCDS version of the data. * [#1450](https://github.com/open-contracting/standard/pull/1450) Replace a repeated example in schema/merging/ with a link to guidance/build/merging/. + * [#1665](https://github.com/open-contracting/standard/pull/1665) Abandon in-file translations. +* [#1480](https://github.com/open-contracting/standard/pull/1480) Add `UnitValue` definition. + ### Documentation * [#1115](https://github.com/open-contracting/standard/pull/1115) Add guidance on when having multiple suppliers per award. From a53d550949c1905ca2e9dec0baf59fe8ccee6945 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 24 Oct 2024 12:31:11 +1300 Subject: [PATCH 25/29] manage.py: Update pre-commit to reflect changes in json_dump/json_load --- manage.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/manage.py b/manage.py index 17e85278a..9e1a9c11b 100755 --- a/manage.py +++ b/manage.py @@ -568,7 +568,7 @@ def pre_commit(): - versioned-release-validation-schema.json - strict-release-schema.json - strict-release-package.json - - strict-record-package.jso + - strict-record-package.json - strict-dereferenced-release-schema.json - strict-versioned-release-validation-schema.json """ @@ -584,6 +584,7 @@ def pre_commit(): } release_schema = json_load('release-schema.json') + strict_release_schema = get_strict_schema(deepcopy(release_schema)) jsonref_release_schema = json_load('release-schema.json', jsonref, merge_props=True) counts = defaultdict(list) @@ -640,15 +641,15 @@ def pre_commit(): # Strict schemas. directory = Path('strict') - strict_release_schema = get_strict_schema(deepcopy(release_schema)) - json_dump(directory / 'release-schema', strict_release_schema) + json_dump(directory / 'release-schema.json', strict_release_schema) - strict_dereferenced_release_schema = json_load(directory / 'release-schema', jsonref, merge_props=True) - json_dump(directory / 'dereferenced-release-schema', strict_dereferenced_release_schema) - json_dump(directory / 'versioned-release-validation-schema', get_versioned_release_schema(strict_release_schema)) + strict_dereferenced_release_schema = json_load(directory / 'release-schema.json', jsonref, merge_props=True) + json_dump(directory / 'dereferenced-release-schema.json', strict_dereferenced_release_schema) + json_dump(directory / 'versioned-release-validation-schema.json', + get_versioned_release_schema(strict_release_schema)) - json_dump(directory / 'release-package-schema', get_strict_schema(json_load('release-package-schema'))) - json_dump(directory / 'record-package-schema', get_strict_schema(json_load('record-package-schema'))) + json_dump(directory / 'release-package-schema.json', get_strict_schema(json_load('release-package-schema.json'))) + json_dump(directory / 'record-package-schema.json', get_strict_schema(json_load('record-package-schema.json'))) @cli.command() From e6eb4f1f16a0f4fa2fe596f9df36e32390cdecfb Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 24 Oct 2024 12:35:31 +1300 Subject: [PATCH 26/29] manage.py (pre-commit): Make strict record schema --- manage.py | 1 + 1 file changed, 1 insertion(+) diff --git a/manage.py b/manage.py index 9e1a9c11b..c42b095ec 100755 --- a/manage.py +++ b/manage.py @@ -642,6 +642,7 @@ def pre_commit(): # Strict schemas. directory = Path('strict') json_dump(directory / 'release-schema.json', strict_release_schema) + json_dump(directory / 'record-schema.json', get_strict_schema(json_load('record-schema.json'))) strict_dereferenced_release_schema = json_load(directory / 'release-schema.json', jsonref, merge_props=True) json_dump(directory / 'dereferenced-release-schema.json', strict_dereferenced_release_schema) From c54ec0a679ff79ff38dee310a1b9583c875969dc Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Wed, 30 Oct 2024 09:59:02 +1300 Subject: [PATCH 27/29] .pre-commit-config.yaml: Reinstate ruff-format --- .pre-commit-config.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b9798bc8e..8c81d5c10 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -8,6 +8,7 @@ repos: rev: v0.6.9 hooks: - id: ruff + - id: ruff-format - repo: https://github.com/astral-sh/uv-pre-commit rev: 0.4.18 hooks: From 84cd06200dcf375df02dd301dd79d7bdd8b67570 Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 21 Nov 2024 13:03:58 +1300 Subject: [PATCH 28/29] manage.py (pre-commit): Create a compiled release schema, format code --- manage.py | 109 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 66 insertions(+), 43 deletions(-) diff --git a/manage.py b/manage.py index c054e6ec2..bd8cfee7c 100755 --- a/manage.py +++ b/manage.py @@ -411,22 +411,22 @@ def add_key_based_validation_properties(schema): add_key_based_validation_properties(item) elif isinstance(schema, dict): for key, value in schema.items(): - if key == 'email': - value['format'] = 'email' - elif key in ['quantity', 'durationInDays', 'numberOfTenderers']: - value['minimum'] = 0 - elif key in ['Organization', 'OrganizationReference']: - value['required'] = ['id', 'name'] - value['properties']['name']['type'] = "string" - value['properties']['id']['type'] = "string" - elif key in ['Amendment', 'RelatedProcess']: - value['required'] = ['id'] - value['properties']['id']['type'] = "string" - elif key in ['id', 'projectID']: - if 'type' in value and 'integer' in value['type']: - value['type'].remove('integer') - elif key == 'Unit': - value['properties']['value']['$ref'] = '#/definitions/UnitValue' + if key == "email": + value["format"] = "email" + elif key in ["quantity", "durationInDays", "numberOfTenderers"]: + value["minimum"] = 0 + elif key in ["Organization", "OrganizationReference"]: + value["required"] = ["id", "name"] + value["properties"]["name"]["type"] = "string" + value["properties"]["id"]["type"] = "string" + elif key in ["Amendment", "RelatedProcess"]: + value["required"] = ["id"] + value["properties"]["id"]["type"] = "string" + elif key in ["id", "projectID"]: + if "type" in value and "integer" in value["type"]: + value["type"].remove("integer") + elif key == "Unit": + value["properties"]["value"]["$ref"] = "#/definitions/UnitValue" add_key_based_validation_properties(value) @@ -436,11 +436,12 @@ def get_strict_schema(schema): Return the strict version of the schema. """ # Update schema metadata. - release_with_underscores = release.replace('.', '__') - schema['id'] = schema['id'].replace(release_with_underscores, - f'{release_with_underscores}/strict') - schema['title'] = f'Strict {schema["title"][0].lower()}{schema["title"][1:]}' - schema['description'] = f'{schema["description"]} The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.' # noqa: E501 + release_with_underscores = release.replace(".", "__") + schema["id"] = schema["id"].replace(release_with_underscores, f"{release_with_underscores}/strict") + schema["title"] = f'Strict {schema["title"][0].lower()}{schema["title"][1:]}' + schema["description"] = ( + f'{schema["description"]} The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.' # noqa: E501 + ) # Add validation properties add_validation_properties(schema) @@ -449,23 +450,39 @@ def get_strict_schema(schema): add_key_based_validation_properties(schema) # Remove null types from package schemas - if 'package' in schema['id']: - remove_nulls(schema) + if "package" in schema["id"]: + return remove_nulls(schema) return schema +def get_compiled_release_schema(schema): + """ + Return the compiled release schema. + """ + # Update schema metadata. + schema["id"] = schema["id"].replace("release-schema", "compiled-release-schema") + schema["title"] = schema["title"].replace("Open Contracting Release", "Open Contracting Compiled Release") + + # Remove null types and enum values. + return remove_nulls(schema) + + def remove_nulls(schema): """ - Remove null types. + Remove null types and enum values. """ if isinstance(schema, dict): for key, value in schema.items(): - if key == 'type' and isinstance(value, list) and 'null' in value: - value.remove('null') + if key == "type" and isinstance(value, list) and "null" in value: + value.remove("null") + if key == "enum" and isinstance(value, list) and None in value: + value.remove(None) remove_nulls(value) + return schema + @click.group() def cli(): @@ -569,11 +586,12 @@ def pre_commit(): - meta-schema.json - dereferenced-release-schema.json - versioned-release-validation-schema.json - - strict-release-schema.json - - strict-release-package.json - - strict-record-package.json - - strict-dereferenced-release-schema.json - - strict-versioned-release-validation-schema.json + - strict/release-schema.json + - strict/release-package.json + - strict/record-package.json + - strict/dereferenced-release-schema.json + - strict/versioned-release-validation-schema.json + - strict/compiled-release-schema.json """ nonmultilingual = { # Identifiers. @@ -595,9 +613,9 @@ def pre_commit(): "scheme", } - release_schema = json_load('release-schema.json') + release_schema = json_load("release-schema.json") strict_release_schema = get_strict_schema(deepcopy(release_schema)) - jsonref_release_schema = json_load('release-schema.json', jsonref, merge_props=True) + jsonref_release_schema = json_load("release-schema.json", jsonref, merge_props=True) counts = defaultdict(list) nonstring = ("boolean", "integer", "number", "object") @@ -650,17 +668,22 @@ def pre_commit(): json_dump("versioned-release-validation-schema.json", get_versioned_release_schema(release_schema)) # Strict schemas. - directory = Path('strict') - json_dump(directory / 'release-schema.json', strict_release_schema) - json_dump(directory / 'record-schema.json', get_strict_schema(json_load('record-schema.json'))) - - strict_dereferenced_release_schema = json_load(directory / 'release-schema.json', jsonref, merge_props=True) - json_dump(directory / 'dereferenced-release-schema.json', strict_dereferenced_release_schema) - json_dump(directory / 'versioned-release-validation-schema.json', - get_versioned_release_schema(strict_release_schema)) + directory = Path("strict") + json_dump(directory / "release-schema.json", strict_release_schema) + json_dump(directory / "record-schema.json", get_strict_schema(json_load("record-schema.json"))) + + strict_dereferenced_release_schema = json_load(directory / "release-schema.json", jsonref, merge_props=True) + json_dump(directory / "dereferenced-release-schema.json", strict_dereferenced_release_schema) + json_dump( + directory / "versioned-release-validation-schema.json", get_versioned_release_schema(strict_release_schema) + ) - json_dump(directory / 'release-package-schema.json', get_strict_schema(json_load('release-package-schema.json'))) - json_dump(directory / 'record-package-schema.json', get_strict_schema(json_load('record-package-schema.json'))) + json_dump(directory / "release-package-schema.json", get_strict_schema(json_load("release-package-schema.json"))) + json_dump(directory / "record-package-schema.json", get_strict_schema(json_load("record-package-schema.json"))) + json_dump( + directory / "compiled-release-schema.json", + remove_nulls(get_compiled_release_schema(json_load(directory / "release-schema.json"))), + ) @cli.command() From fccb5f660809537971f7fd2f10d2c3f59a33830d Mon Sep 17 00:00:00 2001 From: Duncan Dewhurst Date: Thu, 21 Nov 2024 15:41:19 +1300 Subject: [PATCH 29/29] manage.py (pre-commit): Update references to strict schemas --- manage.py | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/manage.py b/manage.py index bd8cfee7c..7fb0d2143 100755 --- a/manage.py +++ b/manage.py @@ -436,13 +436,23 @@ def get_strict_schema(schema): Return the strict version of the schema. """ # Update schema metadata. - release_with_underscores = release.replace(".", "__") - schema["id"] = schema["id"].replace(release_with_underscores, f"{release_with_underscores}/strict") + identifier = schema["id"].split("/") + identifier[-1] = f"strict/{identifier[-1]}" + schema["id"] = "/".join(identifier) schema["title"] = f'Strict {schema["title"][0].lower()}{schema["title"][1:]}' schema["description"] = ( f'{schema["description"]} The strict schema adds additional validation rules planned for inclusion in OCDS 2.0. Use of the strict schema is a voluntary opportunity to improve data quality.' # noqa: E501 ) + # Update references to other schemas. + reference_strict_schemas(schema) + + # Reference compiled release schema. + if schema["id"].endswith("record-schema.json"): + schema["properties"]["compiledRelease"]["$ref"] = schema["properties"]["compiledRelease"]["$ref"].replace( + "release-schema.json", "compiled-release-schema.json" + ) + # Add validation properties add_validation_properties(schema) @@ -484,6 +494,24 @@ def remove_nulls(schema): return schema +def reference_strict_schemas(schema): + """ + Update $refs to reference strict schemas. + """ + if isinstance(schema, dict): + for key, value in schema.items(): + if key == "$ref" and value.startswith("https://standard.open-contracting.org/schema/"): + reference = value.split("/") + reference[-1] = f"strict/{reference[-1]}" + schema[key] = "/".join(reference) + + reference_strict_schemas(value) + + if isinstance(schema, list): + for subschema in schema: + reference_strict_schemas(subschema) + + @click.group() def cli(): pass