diff --git a/.github/workflows/js.yml b/.github/workflows/js.yml index b23aea2d5..4c8147e26 100644 --- a/.github/workflows/js.yml +++ b/.github/workflows/js.yml @@ -6,8 +6,5 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: 18 - - run: npm install standard eslint-plugin-import@2.26.0 - - run: npx standard docs/_static/script.js + - uses: biomejs/setup-biome@v2 + - run: biome ci --indent-style=space --line-width=119 docs/_static/script.js diff --git a/.github/workflows/shell.yml b/.github/workflows/shell.yml index ad37d1558..fe96765b8 100644 --- a/.github/workflows/shell.yml +++ b/.github/workflows/shell.yml @@ -6,10 +6,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Install shellcheck - run: | + - run: | sudo apt update - sudo apt install shellcheck - - run: sudo snap install shfmt + sudo apt install devscripts shellcheck shfmt + - run: checkbashisms $(shfmt -f .) - run: shellcheck $(shfmt -f .) - run: shfmt -d -i 4 -sr $(shfmt -f .) diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 300eefc34..b60b28a2b 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -10,4 +10,4 @@ jobs: with: python-version: '3.10' - run: pip install codespell - - run: codespell -S .git,docson,locale,examples,country.csv,currency.csv,language.csv,mediaType.csv -L fo,zar . + - run: codespell -S .git,docson,locale,examples,country.csv,currency.csv,language.csv,mediaType.csv -L fo,sme,zar,SME . diff --git a/common-requirements.txt b/common-requirements.txt index 1fab18073..ff4de52f3 100644 --- a/common-requirements.txt +++ b/common-requirements.txt @@ -56,7 +56,7 @@ exceptiongroup==1.0.0 # pytest h11==0.13.0 # via wsproto -idna==2.10 +idna==3.7 # via # requests # trio @@ -64,7 +64,7 @@ imagesize==1.4.1 # via sphinx iniconfig==1.1.1 # via pytest -jinja2==3.1.3 +jinja2==3.1.4 # via # myst-parser # sphinx @@ -123,7 +123,7 @@ pytz==2021.1 # via babel pyyaml==6.0.1 # via myst-parser -requests==2.31.0 +requests==2.32.2 # via # elasticsearch # ocdsextensionregistry @@ -133,7 +133,7 @@ requests-cache==1.1.0 # via ocdsextensionregistry selenium==4.11.2 # via -r common-requirements.in -six==1.15.0 +six==1.16.0 # via # livereload # url-normalize @@ -151,7 +151,7 @@ sphinx==5.3.0 # sphinx-intl sphinx-autobuild==2021.3.14 # via -r common-requirements.in -sphinx-intl==2.1.0 +sphinx-intl==2.2.0 # via -r common-requirements.in sphinxcontrib-applehelp==1.0.2 # via sphinx @@ -171,7 +171,7 @@ tomli==2.0.1 # pip-tools # pyproject-hooks # pytest -tornado==6.3.3 +tornado==6.4.1 # via livereload trio==0.20.0 # via diff --git a/docs/_static/png/framework_agreement/model.png b/docs/_static/png/framework_agreement/model.png deleted file mode 100644 index 27de4bbd6..000000000 Binary files a/docs/_static/png/framework_agreement/model.png and /dev/null differ diff --git a/docs/_static/script.js b/docs/_static/script.js index e46cd638a..ffd653486 100644 --- a/docs/_static/script.js +++ b/docs/_static/script.js @@ -1,35 +1,40 @@ /* global XMLHttpRequest, location, renderjson */ -const pathComponents = window.location.pathname.split('/') -if (pathComponents[pathComponents.length - 2] === 'codelists') { - document.querySelector('.wy-nav-content').style.maxWidth = 'none' +const pathComponents = window.location.pathname.split("/"); +if (pathComponents[pathComponents.length - 2] === "codelists") { + document.querySelector(".wy-nav-content").style.maxWidth = "none"; } // FYI: extensionlist appears many times on /schema/reference/ -if (document.querySelector('.extension_list')) { - const language = location.pathname.split('/')[2] +if (document.querySelector(".extension_list")) { + const language = location.pathname.split("/")[2]; // Append an empty list for community extensions. - document.querySelectorAll('.extension_list .hide').forEach(element => { - const dl = document.createElement('dl') - dl.className = 'simple community-list hide' - element.insertAdjacentElement('afterend', dl) - element.innerHTML = `${element.innerHTML}` - }) + for (const element of document.querySelectorAll(".extension_list .hide")) { + const dl = document.createElement("dl"); + dl.className = "simple community-list hide"; + element.insertAdjacentElement("afterend", dl); + element.innerHTML = `${element.innerHTML}`; + } // Get the community extensions to add to the documentation. - const request = new XMLHttpRequest() - request.open('GET', 'https://raw.githubusercontent.com/open-contracting/extension_registry/main/build/extensions.json') - request.responseType = 'json' + const request = new XMLHttpRequest(); + request.open( + "GET", + "https://raw.githubusercontent.com/open-contracting/extension_registry/main/build/extensions.json", + ); + request.responseType = "json"; request.onload = () => { if (request.status >= 200 && request.status < 400) { // Add community extensions. - request.response.extensions.forEach(extension => { + for (const extension of request.response.extensions) { if (!extension.core) { - const div = document.getElementById(`extensionlist-${extension.category}`) + const div = document.getElementById(`extensionlist-${extension.category}`); if (div) { - div.querySelector('.community-list').insertAdjacentHTML('beforeend', ` + div.querySelector(".community-list").insertAdjacentHTML( + "beforeend", + `
${extension.name[language] || extension.name.en} @@ -38,79 +43,80 @@ if (document.querySelector('.extension_list')) {
${extension.description[language] || extension.description.en}
- `) - div.querySelectorAll('.hide').forEach(element => { - element.classList.remove('hide') - }) + `, + ); + for (const element of div.querySelectorAll(".hide")) { + element.classList.remove("hide"); + } } } - }) + } // Remove empty extension lists. - document.querySelectorAll('.extension_list').forEach(element => { - if (!element.querySelector('a')) { - element.remove() + for (const element of document.querySelectorAll(".extension_list")) { + if (!element.querySelector("a")) { + element.remove(); } - }) + } } - } + }; - request.send() + request.send(); } -document.querySelectorAll('.expandjson').forEach(element => { - const defaultOpen = [] - let fileClassName - element.classList.forEach(className => { - if (className.substring(0, 7) === 'expand-' && className.length > 7) { - defaultOpen.push(className.substring(7)) +for (const element of document.querySelectorAll(".expandjson")) { + const defaultOpen = []; + let fileClassName; + for (const className of element.classList) { + if (className.substring(0, 7) === "expand-" && className.length > 7) { + defaultOpen.push(className.substring(7)); } - if (className.substring(0, 5) === 'file-') { - fileClassName = className + if (className.substring(0, 5) === "file-") { + fileClassName = className; } - }) + } - let data = JSON.parse(element.textContent) + let data = JSON.parse(element.textContent); // If the jsoninclude directive indexed to a JSON array (a common mistake), only display the first entry. if (data.length) { - data = data[0] + data = data[0]; } - const replacement = renderjson.set_show_to_level(1).set_max_string_length(100).set_default_open(defaultOpen)(data) + const replacement = renderjson.set_show_to_level(1).set_max_string_length(100).set_default_open(defaultOpen)(data); // element.firstElementChild.replaceWith(replacement) // https://caniuse.com/mdn-api_parentnode_firstelementchild - element.replaceChild(replacement, element.querySelector('.highlight-json')) + element.replaceChild(replacement, element.querySelector(".highlight-json")); - const container = element.previousElementSibling - let select - if (container && container.classList.contains('selection-container')) { + const container = element.previousElementSibling; + let select; + if (container?.classList.contains("selection-container")) { // Hide additional examples. - element.style.display = 'none' - container.appendChild(element) + element.style.display = "none"; + container.appendChild(element); // Display the select element if there are multiple options. - select = container.querySelector('select') - select.style.display = '' + select = container.querySelector("select"); + select.style.display = ""; } else { - const div = document.createElement('div') - element.insertAdjacentElement('beforebegin', div) - div.className = 'selection-container' - div.appendChild(element) + const div = document.createElement("div"); + element.insertAdjacentElement("beforebegin", div); + div.className = "selection-container"; + div.appendChild(element); - select = document.createElement('select') - div.insertAdjacentElement('afterbegin', select) + select = document.createElement("select"); + div.insertAdjacentElement("afterbegin", select); // Hide the select element if there is one option. - select.style.display = 'none' - select.addEventListener('change', () => { - div.querySelectorAll('.expandjson').forEach(child => { - child.style.display = 'none' - }) - div.querySelector(`.${select.value}`).style.display = '' - }) + select.style.display = "none"; + select.addEventListener("change", () => { + for (const child of div.querySelectorAll(".expandjson")) { + child.style.display = "none"; + } + div.querySelector(`.${select.value}`).style.display = ""; + }); } - const option = document.createElement('option') - option.value = fileClassName - option.textContent = fileClassName.replace('file-', '') - select.appendChild(option) -}) + const option = document.createElement("option"); + option.value = fileClassName; + option.textContent = fileClassName.replace("file-", ""); + select.appendChild(option); +} diff --git a/docs/_static/svg/framework_agreement_diagram.svg b/docs/_static/svg/framework_agreement_diagram.svg new file mode 100644 index 000000000..77eb6fad4 --- /dev/null +++ b/docs/_static/svg/framework_agreement_diagram.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index cf06c327a..46f6ddbd4 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -111,6 +111,7 @@ 'license_url': f'{repository_url}/blob/HEAD/LICENSE', 'repository_url': repository_url, } +html_short_title = f'{html_theme_options["short_project"]} v{release}' # List the extension identifiers and versions that should be part of this specification. The extensions must be in # the extension registry: https://github.com/open-contracting/extension_registry/blob/main/extension_versions.csv diff --git a/docs/examples/pre-qualification/multi-stage.csv b/docs/examples/pre-qualification/multi-stage.csv deleted file mode 100644 index 5dbfd866a..000000000 --- a/docs/examples/pre-qualification/multi-stage.csv +++ /dev/null @@ -1,14 +0,0 @@ -First stage,Second stage -"* The buyer or procuring entity issues an invitation to participate in the process - -* Potential suppliers submit expressions of interest - -* The buyer or procuring entity assesses the expressions of interest - -* The buyer or procuring entity establishes a list of qualified or selected potential suppliers","* The buyer or procuring entity issues an invitation to bid to the potential suppliers on the list - -* Potential suppliers submit bids - -* The buyer or procuring entity evaluates the bids - -* The buyer or procuring entity awards a contract to the supplier(s)" diff --git a/docs/examples/release_schema_reference/release_package.json b/docs/examples/release_schema_reference/release_package.json index a428e8272..0ed33e3e6 100644 --- a/docs/examples/release_schema_reference/release_package.json +++ b/docs/examples/release_schema_reference/release_package.json @@ -94,6 +94,47 @@ "projectID": "SP001", "uri": "https://openspending.org/uk-barnet-budget/entries/6801ad388f3a38b7740dde20108c58b35984ee91" }, + "project": { + "id": "oc4ids-bu3kcz-0000", + "title": "Central Junction Cycle Lane Construction", + "description": "Design, construction and supervision of a new cycle lane for the Central Junction.", + "totalValue": { + "amount": 1100000, + "currency": "GBP" + }, + "uri": "http://example.com/projects/oc4ids-bu3kcz-0000.json", + "sector": { + "id": "transport.road", + "description": "Road transport, including roads, highways, streets, tunnels and bridges.", + "scheme": "oc4idsProjectSector" + }, + "additionalClassifications": [ + { + "id": "03.04.05", + "description": "Cycle lanes for road transport.", + "scheme": "GB-EXAMPLE" + } + ], + "locations": [ + { + "description": "Barnet, London, UK", + "geometry": { + "type": "Point", + "coordinates": [ + 51.605, + 0.2076 + ] + }, + "gazetteer": { + "scheme": "GEONAMES", + "identifier": [ + "2656295" + ] + }, + "uri": "https://www.geonames.org/2656295/barnet.html" + } + ] + }, "documents": [ { "datePublished": "2009-01-05T00:00:00Z", @@ -155,6 +196,26 @@ "currency": "GBP" } } + }, + { + "id": "0002", + "description": "Paint for road markings", + "classification": { + "scheme": "CPV", + "id": "44811000", + "description": "Road paint", + "uri": "http://cpv.data.ac.uk/code-44811000" + }, + "immediateContainer": { + "name": "Can/Tin", + "capacity": { + "unit": { + "scheme": "UNCEFACT", + "id": "GLI" + }, + "value": "[100,100]" + } + } } ], "value": { diff --git a/docs/guidance/build/hosting.md b/docs/guidance/build/hosting.md index 8849d9512..5b6175c2e 100644 --- a/docs/guidance/build/hosting.md +++ b/docs/guidance/build/hosting.md @@ -138,7 +138,7 @@ 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. -In addition to performance reasons, the seek method is preferred to the offset method when results are ordered in reverse chronology, because: +In addition to performance reasons, the seek method is preferred to the offset method when results are ordered in reverse chronology, because, with the offset method: * 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. diff --git a/docs/guidance/index.md b/docs/guidance/index.md index 10bfe575a..d2692297b 100644 --- a/docs/guidance/index.md +++ b/docs/guidance/index.md @@ -6,7 +6,7 @@ The four phases of implementation described in this guide have helped implemente Read the guidance to understand the main steps to implement OCDS and to find supporting resources. Detailed guidance on specific topics and tasks is provided in sub-pages. -Use the [OCDS Implementation Checklist](https://www.open-contracting.org/resources/ocds-implementation-checklist) to keep track of your progress. +Use the [OCDS Implementation Checklist](https://www.open-contracting.org/resources/ocds-implementation-checklist/) to keep track of your progress. ```{toctree} :maxdepth: 2 diff --git a/docs/guidance/map/extensions.md b/docs/guidance/map/extensions.md index 176f078b8..50c86beec 100644 --- a/docs/guidance/map/extensions.md +++ b/docs/guidance/map/extensions.md @@ -23,11 +23,7 @@ This version of OCDS uses these specific versions of the following extensions: ## Developing new extensions -If you have additional fields which cannot be mapped to the OCDS schema or an existing extension, you ought to include these in your OCDS data and create a new extension to document their structure and meaning. - -### Extension template - -You can find the [extension template](https://github.com/open-contracting/standard_extension_template) on GitHub. It contains guidance on creating an extension. +If you have additional fields which cannot be mapped to the OCDS schema or an existing extension, you ought to include these in your OCDS data and create a new extension to document their structure and meaning. Use the [extension template](https://github.com/open-contracting/standard_extension_template) to create an extension. ## Profiles @@ -37,9 +33,13 @@ Groups of extensions can be combined into **profiles**. OCDS provides a common c [OCDS for Public-Private Partnerships](https://standard.open-contracting.org/profiles/ppp/latest/en/) (PPPs) describes how to use OCDS to publish information about PPPs. The profile extends OCDS to offer a data format that follows the World Bank Group's [Framework for Disclosure in Public-Private Partnership Projects](https://www.worldbank.org/en/topic/publicprivatepartnerships/brief/ppp-tools#T1). -### OCDS for the European Union +### OCDS for eForms -[OCDS for the European Union](https://standard.open-contracting.org/profiles/eu/latest/en/) describes how to express, in OCDS, the information in Tenders Electronic Daily (TED) notices as obliged by law within the EU. +[OCDS for eForms](https://standard.open-contracting.org/profiles/eforms/latest/en/) describes how to express, in OCDS, European public procurement information collected through [eForms](https://single-market-economy.ec.europa.eu/single-market/public-procurement/digital-procurement/eforms_en). + +```{note} +eForms is established by the [Commission Implementing Regulation (EU) 2019/1780](https://eur-lex.europa.eu/eli/reg_impl/2019/1780/oj), which repeals the [Commission Implementing Regulation (EU) 2015/1986](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32015R1986). [OCDS for the European Union](https://standard.open-contracting.org/profiles/eu/latest/en/) is relevant to the repealed regulation. +``` ### OCDS for the Agreement on Government Procurement diff --git a/docs/guidance/map/framework_agreements.md b/docs/guidance/map/framework_agreements.md index 127a9ae34..02102c2b2 100644 --- a/docs/guidance/map/framework_agreements.md +++ b/docs/guidance/map/framework_agreements.md @@ -22,7 +22,7 @@ In OCDS we treat “contractors” and “suppliers” as synonyms. One or more A procurement contract is defined in UNCITRAL as: -> Contract concluded between the procuring entity and a supplier (or suppliers) or a contractor (or contractors) at the end of the procurement proceedings. +> Contract concluded between the procuring entity and a supplier (or suppliers) or a contractor (or contractors) at the end of the procurement proceedings. ## Types of framework agreement @@ -70,9 +70,9 @@ OCDS models the first and second stages of framework agreement procedures as sep The 'framework' code is only used to relate second-stage contracting processes to their first-stage contracting process, never to other second-stage contracting processes. ``` -The following diagram shows how OCDS models a framework agreement procedure with two second stages: one with competition and one without competition. Grey blocks represent unused sections of the OCDS schema. +The following diagram shows how OCDS models a framework agreement procedure with two second stages: one with competition and one without competition. -![OCDS framework agreement model](../../_static/png/framework_agreement/model.png) +![OCDS framework agreement model](../../_static/svg/framework_agreement_diagram.svg) ### Extensions @@ -167,10 +167,10 @@ The buyer invites potential suppliers to participate in the framework agreement. An OCDS release describes the opportunity: * `tag` is set to `["tender"]` because this is the first release about the opportunity. -* The release describes the set up of a framework agreement so the techniques extension is declared in the package metadata and `tender.techniques.hasFrameworkAgreement` is set to `true`. +* The release describes the set up of a framework agreement, so the techniques extension is declared in the package metadata and `tender.techniques.hasFrameworkAgreement` is set to `true`. * Whilst any supplier can submit a request to participate, only qualified suppliers can submit a proposal, so `tender.procurementMethod` is set to 'selective'. -* The framework agreement is closed so `tender.expressionOfInterestDeadline` is set to the deadline for responses to the invitation. -* There is only one buyer so `buyer` is set to reference the buyer's object in the `parties` array. +* The framework agreement is closed, so `tender.expressionOfInterestDeadline` is set to the deadline for responses to the invitation. +* There is only one buyer, so `buyer` is set to reference the buyer's object in the `parties` array. ```{jsoninclude} ../../examples/frameworks/closed_single_first_stage.json :jsonpointer: @@ -224,15 +224,15 @@ Dirección de Compras y Contratación Pública (Chile Compra) establishes a mult #### Invitation to participate in the first stage of a framework agreement procedure -Chile Compra invites suppliers to participate in the framework agreement. +Chile Compra invites potential suppliers to participate in the framework agreement. An OCDS release describes the opportunity: * `tag` is set to `["tender"]` because this is the first release about the opportunity. -* The release describes the set up of a framework agreement so the techniques extension is declared in the package metadata and `tender.techniques.hasFrameworkAgreement` is set to `true`. +* The release describes the set up of a framework agreement, so the techniques extension is declared in the package metadata and `tender.techniques.hasFrameworkAgreement` is set to `true`. * Whilst any supplier can submit a request to participate, only qualified suppliers can submit a proposal, so `tender.procurementMethod` is set to 'selective'. -* The framework agreement is open (a dynamic purchasing system) so `tender.expressionOfInterestDeadline` is set to the last date that new suppliers can be added. -* There are two buyers so `buyer` is omitted and both buyers are listed in `parties`. +* The framework agreement is open (a dynamic purchasing system), so `tender.expressionOfInterestDeadline` is set to the last date that new suppliers can be added. +* There are two buyers, so `buyer` is omitted and both buyers are listed in `parties`. * `tender.procuringEntity` is set to the organization that manages the contracting process: Chile Compra. * The lots are listed in `lots` . diff --git a/docs/guidance/map/linked_standards.md b/docs/guidance/map/linked_standards.md index 1847b7524..5a06c37cb 100644 --- a/docs/guidance/map/linked_standards.md +++ b/docs/guidance/map/linked_standards.md @@ -8,7 +8,7 @@ The [Open Contracting for Infrastructure Data Standards](https://standard.open-c A joint effort by the [Infrastructure Transparency Initiative](https://infrastructuretransparency.org) (CoST) and the Open Contracting Partnership, it builds on best practice in open data and openness of public infrastructure procurement globally. -The [Project](https://extensions.open-contracting.org/en/extensions/project/master/) extension describes how to connect OCDS and OC4IDS datasets. +OC4IDS datasets ought to be linked from OCDS datasets using the `planning.project` object, by referencing the OC4IDS project identifier in the `planning.project.id` field. ## Open Fiscal Data Package diff --git a/docs/guidance/map/localization.md b/docs/guidance/map/localization.md index 0f219d328..d3106dea0 100644 --- a/docs/guidance/map/localization.md +++ b/docs/guidance/map/localization.md @@ -20,7 +20,7 @@ You can use the [field-level mapping template](https://www.open-contracting.org/ To localize a field title or description, edit the values columns C or D. We recommend that you keep the original title or description in brackets after your localized version. For example: -```{csv-table} +```{csv-table-no-translate} :header-rows: 1 :file: ../../examples/language_localization/localization.csv ``` diff --git a/docs/guidance/map/pre-qualification.md b/docs/guidance/map/pre-qualification.md index f2cb67ed9..0abe54da5 100644 --- a/docs/guidance/map/pre-qualification.md +++ b/docs/guidance/map/pre-qualification.md @@ -8,10 +8,23 @@ In single-stage procedures, buyers or procuring entities invite potential suppli But, many jurisdictions also use multi-stage procedures. Such procedures follow a process like: -```{csv-table} -:header-rows: 1 -:file: ../../examples/pre-qualification/multi-stage.csv +````{grid} 1 2 2 2 +:gutter: 2 + +```{grid-item-card} First stage +* The buyer or procuring entity issues an invitation to participate in the process +* Potential suppliers submit expressions of interest +* The buyer or procuring entity assesses the expressions of interest +* The buyer or procuring entity establishes a list of qualified or selected potential suppliers +``` + +```{grid-item-card} Second stage +* The buyer or procuring entity issues an invitation to bid to the potential suppliers on the list +* Potential suppliers submit bids +* The buyer or procuring entity evaluates the bids +* The buyer or procuring entity awards a contract to the supplier(s) ``` +```` This example describes 3 types of multi-stage procedure and explains how to model them in OCDS. diff --git a/docs/guidance/map/translations.md b/docs/guidance/map/translations.md index 2923ebc57..d3d9f97a4 100644 --- a/docs/guidance/map/translations.md +++ b/docs/guidance/map/translations.md @@ -14,12 +14,12 @@ You can publish the values of these fields in any language: - `description`, in any location - `finalStatusDetails`, in any location - `legalName`, in any location +- `locality`, in any location - `name`, in any location - `rationale`, in any location +- `region`, in any location +- `streetAddress`, in any location - `title`, in any location -- `parties/address/locality` -- `parties/address/region` -- `parties/address/streetAddress` - `planning/budget/project` - `tender/awardCriteriaDetails` - `tender/procurementMethodDetails` diff --git a/docs/guidance/publish/quality.md b/docs/guidance/publish/quality.md index 53a70111a..bdaa08c65 100644 --- a/docs/guidance/publish/quality.md +++ b/docs/guidance/publish/quality.md @@ -31,12 +31,13 @@ Understanding all of the challenges above, we understand that increasing the tra All OCDS publications ought to meet the following criteria: 1. **Registered**: The data uses a [registered OCID prefix](../../schema/identifiers.md#open-contracting-process-identifier-ocid). +1. **Reviewable**: The [OCDS Data Review Tool](https://review.standard.open-contracting.org/) can report results for the data. +1. **Appropriate**: The data is in semantic accordance with OCDS. Additional fields and codes do not overlap semantically with standardized fields and codes. +1. **Relevant**: The data answers "who bought what from whom, for how much, when, and how" for at least one contracting process. 1. **Discoverable**: It is possible to discover the data by navigating a website whose homepage is indexed by popular web search engines. -1. **Retrievable**: It is possible 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. -1. **Reviewable**: The [OCDS Data Review Tool](https://review.standard.open-contracting.org/) 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 (or planning) processes. +1. **Representative**: The data describes all contracting (or planning) processes within a relevant population. For example: all contracts for a public-private partnership; all above-threshold contracts since 2020 excluding those by state-owned enterprises, etc. +1. **Active**: The data contains a contracting (or planning) process release with a top-level `date` value within the previous four calendar quarters. +1. **Retrievable**: It is possible for software to download the data in full, either by using an HTML page listing bulk download URLs, or by using machine-readable data as the only input. The Data Support Team 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/). @@ -48,30 +49,41 @@ From the minimum threshold above, we want to support publishers to continue to i 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 (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 -1. Increase the number of concepts covered relative to non-OCDS data +1. Increase the number of indicators covered (volume) +1. Increase the average number of fields covered per contracting (or planning) process (density) +1. Increase the number of buyers covered ("who") +1. Increase the number of methods covered ("how") +1. Increase the temporal coverage into the past ("when") -### Correctness - -Improvement on the below indicators demonstrates that the concepts are being published more correctly, improving usability. +### Timeliness -1. Decrease the types and number of structural errors reported by the OCDS Data Review Tool, e.g. moving from 20 types of errors, each occurring more than 100,000 times, to 10 types of errors, each occurring less than 100 times -1. Decrease the average number of structural errors per release -1. Decrease the number of instances in which a concept is not published in conformance with OCDS semantics -1. Decrease the number of types of quality warnings using OCDS Pelican -1. Decrease the average number of quality warnings per release using OCDS Pelican +1. Publish multiple updates per contracting process +1. Decrease the delay between the information's creation and publication -### Access +### Accessibility Improvements on the below indicators demonstrate that it is becoming easier for users to access the published information. -1. Publish record packages containing compiled releases -1. Decrease the number of HTTP errors +1. Publish a user guide or publication policy that describes the scope, at minimum +1. Publish API documentation that describes the endpoints and parameters, at minimum 1. Increase the number of access methods (API endpoints, bulk downloads) -1. Decrease the number of license restrictions +1. Increase the number of data formats (JSON, Excel, CSV) +1. Facilitate indirect data use (e.g. search, dashboards, etc.) + +### Retrievability and legal + +1. Decrease the number of HTTP errors +1. Use a data license that conforms to the [Open Definition](https://opendefinition.org) + +### Correctness + +Improvement on the below indicators demonstrates that the concepts are being published more correctly, improving usability. + +1. Decrease the number of types of structural errors +1. Decrease the average number of structural errors per contracting (or planning) process +1. Decrease the number of [conformance](../../schema/conformance_and_extensions) issues +1. Decrease the number of types of quality warnings +1. Decrease the average number of quality warnings per contracting (or planning) process As publishers improve, the Data Support Team can work with them to identify how they can improve on the above criteria. OCP will note whether a publisher has improved in [OCP's regular reporting](https://www.open-contracting.org/why-open-contracting/learning/). diff --git a/docs/history/changelog.md b/docs/history/changelog.md index 89235d8a4..a27c572e4 100644 --- a/docs/history/changelog.md +++ b/docs/history/changelog.md @@ -26,7 +26,7 @@ Per the [normative and non-normative content and changes policy](../governance/n * Pre-qualification and pre-selection [#999](https://github.com/open-contracting/standard/pull/999) [#1345](https://github.com/open-contracting/standard/pull/1345) * Unsuccessful processes [#1007](https://github.com/open-contracting/standard/pull/1007) * Milestones [#1048](https://github.com/open-contracting/standard/pull/1048) - * Framework agreements [#1123](https://github.com/open-contracting/standard/pull/1123) [#1269](https://github.com/open-contracting/standard/pull/1269) [#1332](https://github.com/open-contracting/standard/pull/1332) [#1461](https://github.com/open-contracting/standard/pull/1461) [#1549](https://github.com/open-contracting/standard/pull/1549) [#1671](https://github.com/open-contracting/standard/pull/1671) + * Framework agreements [#1123](https://github.com/open-contracting/standard/pull/1123) [#1269](https://github.com/open-contracting/standard/pull/1269) [#1332](https://github.com/open-contracting/standard/pull/1332) [#1461](https://github.com/open-contracting/standard/pull/1461) [#1549](https://github.com/open-contracting/standard/pull/1549) [#1671](https://github.com/open-contracting/standard/pull/1671) [#1701](https://github.com/open-contracting/standard/pull/1701) * Electronic catalogs [#1223](https://github.com/open-contracting/standard/pull/1223) * Beneficial ownership information [#1305](https://github.com/open-contracting/standard/pull/1305) * [#1414](https://github.com/open-contracting/standard/pull/1414) Rephrase planning stage to planning process in worked examples. @@ -50,7 +50,8 @@ Per the [normative and non-normative content and changes policy](../governance/n * [#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). + * Replace publication levels guidance with data quality guidance [#980](https://github.com/open-contracting/standard/pull/980) [#1013](https://github.com/open-contracting/standard/pull/1013). + * Update data quality guidance to match [OCP Strategy 2024-2030](https://www.open-contracting.org/strategy-2024-2030/) [#1045](https://github.com/open-contracting/standard/pull/1045) [#1697](https://github.com/open-contracting/standard/pull/1697). * [#1427](https://github.com/open-contracting/standard/pull/1427) Add guidance about recommended extensions. * Various minor improvements [#1051](https://github.com/open-contracting/standard/pull/1051) [#1080](https://github.com/open-contracting/standard/pull/1080) [#1083](https://github.com/open-contracting/standard/pull/1083) [#1085](https://github.com/open-contracting/standard/pull/1085) [#1091](https://github.com/open-contracting/standard/pull/1091) [#1130](https://github.com/open-contracting/standard/pull/1130) [#1227](https://github.com/open-contracting/standard/pull/1227) [#1299](https://github.com/open-contracting/standard/pull/1299) [#1337](https://github.com/open-contracting/standard/pull/1337) [#1384](https://github.com/open-contracting/standard/pull/1384). @@ -71,23 +72,34 @@ Per the [normative and non-normative content and changes policy](../governance/n ### Codelists * Add new codelists: + * [#1372](https://github.com/open-contracting/standard/pull/1372) `country` + * [#1684](https://github.com/open-contracting/standard/pull/1684) `geometryType` * [#1316](https://github.com/open-contracting/standard/pull/1316) `language` + * [#1326](https://github.com/open-contracting/standard/pull/1326) `linkRelationType` + * [#1684](https://github.com/open-contracting/standard/pull/1684) `locationGazetteer` * [#1308](https://github.com/open-contracting/standard/pull/1308) `mediaType` * [#1459](https://github.com/open-contracting/standard/pull/1459) `partyScale` + * [#1654](https://github.com/open-contracting/standard/pull/1654) `permission` + * [#1642](https://github.com/open-contracting/standard/pull/1642) `planningFinalStatus` + * [#1648](https://github.com/open-contracting/standard/pull/1648) `tenderFinalStatus` + * [#1648](https://github.com/open-contracting/standard/pull/1648) `awardFinalStatus` + * [#1648](https://github.com/open-contracting/standard/pull/1648) `contractFinalStatus` * `classificationScheme.csv`: * [#1319](https://github.com/open-contracting/standard/pull/1319) Rename from `itemClassificationScheme.csv`. * [#1210](https://github.com/open-contracting/standard/pull/1210) Add codes from the legal basis extension: * 'CELEX' * 'LEXML' - * [#1218](https://github.com/open-contracting/standard/pull/1218) [#1679](https://github.com/open-contracting/standard/pull/1679) Add codes from the organization classification extension: + * [#1218](https://github.com/open-contracting/standard/pull/1218) [#1679](https://github.com/open-contracting/standard/pull/1679) [#1692](https://github.com/open-contracting/standard/pull/1692) Add codes from the organization classification extension: * 'COFOG' * 'TED_CA_TYPE' * 'TED_CE_ACTIVITY' * 'eu-buyer-contracting-type' * 'eu-main-activity' + * 'eu-buyer-legal-type' * [#1452](https://github.com/open-contracting/standard/pull/1452) Add 'proClass'. * [#1637](https://github.com/open-contracting/standard/pull/1637) Add 'sdg' and 'sdgTarget'. + * [#1684](https://github.com/open-contracting/standard/pull/1684) Add 'oc4idsProjectSector' from project extension. * `documentType.csv`: * Add codes: @@ -153,9 +165,17 @@ Per the [normative and non-normative content and changes policy](../governance/n * [#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". +* `relatedProcess.csv`: + * [#1645](https://github.com/open-contracting/standard/pull/1645) Deprecate "parent-to-child" codes: 'subContract', 'replacementProcess' and 'renewalProcess' + * [#1670](https://github.com/open-contracting/standard/pull/1670) Deprecate 'parent' code, because a subcontract needs to be described within its main contract, not within a separate contracting process + * [#1645](https://github.com/open-contracting/standard/pull/1645) Update descriptions: 'prior', 'framework', 'unsuccessfulProcess' + * `releaseTag.csv`: * [#1238](https://github.com/open-contracting/standard/pull/1238) Open the `releaseTag` codelist. - * [#1415](https://github.com/open-contracting/standard/pull/1415), [#1509](https://github.com/open-contracting/standard/pull/1509) Align descriptions of 'planning', 'tender', 'award' and 'contract' with the corresponding schema fields. + * [#1415](https://github.com/open-contracting/standard/pull/1415) [#1509](https://github.com/open-contracting/standard/pull/1509) Align descriptions of 'planning', 'tender', 'award' and 'contract' with the corresponding schema fields. + +* `unitClassificationScheme.csv`: + * [#1689](https://github.com/open-contracting/standard/pull/1689) Update the instructions on how to find identifiers within the QUDT scheme. * `tenderStatus`, `awardStatus` and `contractStatus`: * [#1509](https://github.com/open-contracting/standard/pull/1509) [#1658](https://github.com/open-contracting/standard/pull/1658) Clarify semantics and deprecate codes. @@ -165,18 +185,15 @@ Per the [normative and non-normative content and changes policy](../governance/n * [#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. * [#1550](https://github.com/open-contracting/standard/pull/1550) Align and improve code descriptions in `extendedProcurementCategory` and `procurementCategory`. -* `relatedProcess.csv`: - * [#1645](https://github.com/open-contracting/standard/pull/1645) Deprecate "parent-to-child" codes: 'subContract', 'replacementProcess' and 'renewalProcess' - * [#1670](https://github.com/open-contracting/standard/pull/1670) Deprecate 'parent' code, because a subcontract needs to be described within its main contract, not within a separate contracting process - * [#1645](https://github.com/open-contracting/standard/pull/1645) Update descriptions: 'prior', 'framework', 'unsuccessfulProcess' ### 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`. + * [#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. * [#1443](https://github.com/open-contracting/standard/pull/1443) `date` * [#1182](https://github.com/open-contracting/standard/pull/1182) `buyer` + * [#1684](https://github.com/open-contracting/standard/pull/1684) `planning.budget.project` and `planning.budget.projectID` * [#1163](https://github.com/open-contracting/standard/pull/1163) `tender.procuringEntity` * [#1395](https://github.com/open-contracting/standard/pull/1417) `tender.procurementMethod` * [#1442](https://github.com/open-contracting/standard/pull/1442) `tender.submissionMethodDetails` @@ -185,10 +202,14 @@ Per the [normative and non-normative content and changes policy](../governance/n * [#1208](https://github.com/open-contracting/standard/pull/1208) `contracts` and its fields * [#1415](https://github.com/open-contracting/standard/pull/1415) `planning`, `Planning`, `tender`, `Tender`, `awards`, `contracts` and minor alignment of "planning process" (part of the description of the schema) with `planning`. - * Add new fields: + * [#1679](https://github.com/open-contracting/standard/pull/1679) `parties.details.classifications` + * [#1459](https://github.com/open-contracting/standard/pull/1459) `parties.details.scale` * [#1335](https://github.com/open-contracting/standard/pull/1335) `planning.id` + * [#1642](https://github.com/open-contracting/standard/pull/1642) `planning.finalStatus`, `planning.finalStatusDetails` and `planning.finalStatusDate` + * [#1684](https://github.com/open-contracting/standard/pull/1684) `planning.project` * [#1324](https://github.com/open-contracting/standard/pull/1324) `tender.datePublished` + * [#1684](https://github.com/open-contracting/standard/pull/1684) `tender.deliveryLocations` and `tender.deliveryAddresses` * [#1296](https://github.com/open-contracting/standard/pull/1296) [#1674](https://github.com/open-contracting/standard/pull/1674) `tender.exclusionGrounds` * [#1669](https://github.com/open-contracting/standard/pull/1669) `tender.expressionOfInterestDeadline` * [#1490](https://github.com/open-contracting/standard/pull/1490) `tender.identifiers` @@ -196,55 +217,55 @@ Per the [normative and non-normative content and changes policy](../governance/n * [#1654](https://github.com/open-contracting/standard/pull/1654) `tender.submissionTerms.electronicSubmissionPolicy` * [#1421](https://github.com/open-contracting/standard/pull/1421) `tender.standstillPeriod` * [#1492](https://github.com/open-contracting/standard/pull/1492) `awards.datePublished` - * [#1648](https://github.com/open-contracting/standard/pull/1648) `finalStatus` and `finalStatusDetails` to `Tender`, `Award` and `Contract` - * [#1208](https://github.com/open-contracting/standard/pull/1326) The estimated and maximum values of framework agreeemnts: + * [#1490](https://github.com/open-contracting/standard/pull/1490) `contracts.identifiers` + * [#1648](https://github.com/open-contracting/standard/pull/1648) [#1683](https://github.com/open-contracting/standard/pull/1683) `finalStatus`, `finalStatusDetails` and `finalStatusDate` to `Tender`, `Award` and `Contract` + * [#1208](https://github.com/open-contracting/standard/pull/1326) The estimated and maximum values of framework agreements: * `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` + * [#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` * [#1439](https://github.com/open-contracting/standard/pull/1439) `Document.relatedItems` + * [#1684](https://github.com/open-contracting/standard/pull/1684) `Item.deliveryLocations` and `Item.deliveryAddresses` + * [#1689](https://github.com/open-contracting/standard/pull/1689) `Item.immediateContainer` * [#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` * [#1519](https://github.com/open-contracting/standard/pull/1519) `Value.amountNet` and `Value.amountGross` - * [#1490](https://github.com/open-contracting/standard/pull/1490) `contracts.identifiers` - * [#1679](https://github.com/open-contracting/standard/pull/1679) `Organization.details.classifications` * Deprecate some fields: - * [#1200](https://github.com/open-contracting/standard/pull/1200) `tender.submissionMethod`, because all codes from the `submissionMethod` codelist are deprecated. * [#1296](https://github.com/open-contracting/standard/pull/1296) `tender.eligibilityCriteria` in favor of the new `tender.exclusionGrounds` field, in order to use more common terminology and improve semantics. - * [#1372](https://github.com/open-contracting/standard/pull/1372) `Address.countryName` in favor of the new `Address.country` field, to promote standardized country codes instead of non-standardized country names. + * [#1200](https://github.com/open-contracting/standard/pull/1200) `tender.submissionMethod`, because all codes from the `submissionMethod` codelist are deprecated. + * [#1670](https://github.com/open-contracting/standard/pull/1670) `contracts.relatedProcesses`, because all relevant codes from the `relatedProcess` codelist are deprecated. + * [#1509](https://github.com/open-contracting/standard/pull/1509) `tender.status`, `awards.status`, `contracts.status`, because the same information can be provided by filling in the relevant date fields. * [#1389](https://github.com/open-contracting/standard/pull/1389) `initiationType`, because the approach to data modelling that it supports was not pursued. + * [#1372](https://github.com/open-contracting/standard/pull/1372) `Address.countryName` in favor of the new `Address.country` field, to promote standardized country codes instead of non-standardized country names. * [#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. - * [#1509](https://github.com/open-contracting/standard/pull/1509) `tender.status`, `Award.status`, `Contract.status`, because the same information can be provided by filling in the relevant date fields. * [#1662](https://github.com/open-contracting/standard/pull/1662) `Transaction.source`, because its value would be potentially identical across every transaction. - * [#1670](https://github.com/open-contracting/standard/pull/1670) `Contract.relatedProcesses`, because all relevant codes from the relatedProcess codelist are deprecated. * Update and clarify field descriptions: * [#1113](https://github.com/open-contracting/standard/pull/1113) `ocid`, to recommend a hyphen after the ocid prefix. * [#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`. + * [#1094](https://github.com/open-contracting/standard/pull/1094) `parties.id`, to clarify its uniqueness. + * [#1510](https://github.com/open-contracting/standard/pull/1510) `parties.additionalIdentifiers`, to clarify its potential use for organizational units. + * [#1167](https://github.com/open-contracting/standard/pull/1167) `Budget`, `planning.budget.id`, `planning.budget.description`, `planning.budget.amount`, to reduce ambiguity and use consistent wording. + * [#1529](https://github.com/open-contracting/standard/pull/1529) `Budget`, `planning.budget.id`, `planning.budget.description`, `planning.budget.amount`, `planning.budget.project`, `planning.budget.uri`, `planning.budget.source`, `tender.value`, `tender.minValue`, `awards.value`, `Transaction`, to replace "contracting process" with "contract(s)". + * [#1509](https://github.com/open-contracting/standard/pull/1509) `planning`, `Planning`, `tender` and `Tender` to clarify relationships with the availability of 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". + * [#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`. + * [#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". + * [#1663](https://github.com/open-contracting/standard/pull/1663) `tender.amendments`, `awards.amendments`, `contracts.amendments` to avoid restating field titles. * [#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. - * [#1519](https://github.com/open-contracting/standard/pull/1519) `value.amount`, to clarify amount taken from system or document. * [#1618](https://github.com/open-contracting/standard/pull/1618) `tender.enquiryPeriod`, to remove the suggestion to use `tender.submissionMethodDetails` for information about how to submit enquiries. + * [#1656](https://github.com/open-contracting/standard/pull/1656) `awards.value` and `contracts.value`, to clarify with respect to changes in contract values. * [#1645](https://github.com/open-contracting/standard/pull/1645) `relatedProcesses`, to use consistent wording in the description of multi-stage procedures. + * [#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. + * [#1519](https://github.com/open-contracting/standard/pull/1519) `Value.amount`, to clarify amount taken from system or document. * [#1618](https://github.com/open-contracting/standard/pull/1618) Normalize field descriptions according to a style guide. - * [#1656](https://github.com/open-contracting/standard/pull/1656) `Award.value` and `Contract.value`, to clarify with respect to changes in contract values. - * [#1509](https://github.com/open-contracting/standard/pull/1509) `planning`, `Planning`, `tender` and `Tender` to clarify relationships with the availability of documents. - * [#1663](https://github.com/open-contracting/standard/pull/1663) `tender.amendments`, `awards.amendments`, `contracts.amendments` to avoid restating field titles. * Remove confusing terminology: * [#1487](https://github.com/open-contracting/standard/pull/1487) `planning.budget.project`, to remove sentence about translation options. @@ -256,9 +277,10 @@ Per the [normative and non-normative content and changes policy](../governance/n * Add or strengthen normative statements in field descriptions: * [#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) `parties.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) [#1540](https://github.com/open-contracting/standard/pull/1540) `contracts.items`: "If the items contracted are identical to the items awarded and/or the items tendered, this field **should** be omitted." (rephrased) + * [#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") + * [#1689](https://github.com/open-contracting/standard/pull/1689) `Item.unit` and `Unit`: "It is **recommended** to use the unit of measurement in which the goods, services or works are provided (e.g. kilogram, hour), rather than the unit of presentation (e.g. box), because units of measurement are easier to compare and convert than units of presentation." * 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. @@ -266,8 +288,8 @@ Per the [normative and non-normative content and changes policy](../governance/n * [#1315](https://github.com/open-contracting/standard/pull/1315) Update the descriptions of `id` and `date`, to add rules for compiled releases. * 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 `contracts.dateSigned` and `contracts.period` to correspond with the order in `Award`. + * [#1240](https://github.com/open-contracting/standard/pull/1240) Move `Unit` from `Item.unit` to the schema definitions. * 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. @@ -307,7 +329,6 @@ 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. ### Documentation @@ -324,7 +345,7 @@ Per the [normative and non-normative content and changes policy](../governance/n * [#1315](https://github.com/open-contracting/standard/pull/1315) Add rules on setting `id` and `date` for compiled releases to the merging specification. * [#1375](https://github.com/open-contracting/standard/pull/1375) Update guidance for empty fields in the merging documentation. * Identifiers - * [#1094](https://github.com/open-contracting/standard/pull/1094) Add guidance on populating `Organization.id` for parties without an organization identifier. + * [#1094](https://github.com/open-contracting/standard/pull/1094) Add guidance on populating `parties.id` for parties without an organization identifier. * [#1643](https://github.com/open-contracting/standard/pull/1643) Update identifier section in release reference. * [#1655](https://github.com/open-contracting/standard/pull/1655) Rewrite identifiers reference and examples for clarity. * Documents @@ -388,13 +409,13 @@ See the changelogs for: ### Advisories -* OCDS 1.0 uses the [whole-list merge](../schema/merging.md#whole-list-merge) strategy for `Award.suppliers`, whereas OCDS 1.1 uses the [identifier merge](../schema/merging.md#identifier-merge) strategy. As a consequence, the OCDS 1.1 versioned release schema is not backward compatible with OCDS 1.0. - * **Action:** Versioned releases respecting the OCDS 1.0 schema that set `Award.suppliers` will need to be re-created to validate against the OCDS 1.1 schema. +* OCDS 1.0 uses the [whole-list merge](../schema/merging.md#whole-list-merge) strategy for `awards.suppliers`, whereas OCDS 1.1 uses the [identifier merge](../schema/merging.md#identifier-merge) strategy. As a consequence, the OCDS 1.1 versioned release schema is not backward compatible with OCDS 1.0. + * **Action:** Versioned releases respecting the OCDS 1.0 schema that set `awards.suppliers` will need to be re-created to validate against the OCDS 1.1 schema. * [#780](https://github.com/open-contracting/standard/pull/780) All extensions authored by the Open Contracting Partnership have been moved to the [open-contracting-extensions](https://github.com/open-contracting-extensions) organization. * **Action:** No change is required, but we recommend that publishers update the URLs of these extensions in their release packages and record packages. * [#738](https://github.com/open-contracting/standard/pull/738) 1.1.3 changed the merging and versioning behaviors of `Item.unit`, such that it could be removed by setting it to `null`, and such that it was versioned as a whole. 1.1.4 restores the behaviors from 1.1.2, such that only its sub-fields can be removed by setting them to `null`, and such that its sub-fields are versioned individually. * **Action:** If you had upgraded to OCDS 1.1.3, then compiled releases and versioned releases that set `Item.unit` will likely need to be re-created to validate against the OCDS 1.1.4 schema. -* [#810](https://github.com/open-contracting/standard/pull/810) `buyer.id`, `Tender.procuringEntity.id`, `Contract.implementation.payer.id` `Contract.implementation.payee.id`, `Budget.id`, `Identifier.id`, and `Classification.id` are now versioned, consistent with the documentation. +* [#810](https://github.com/open-contracting/standard/pull/810) `buyer.id`, `planning.budget.id`, `tender.procuringEntity.id`, `contracts.implementation.payer.id` `contracts.implementation.payee.id`, `Identifier.id`, and `Classification.id` are now versioned, consistent with the documentation. * **Action:** Versioned releases that set these fields will likely need to be re-created to validate against the OCDS 1.1.4 schema. * [#831](https://github.com/open-contracting/standard/pull/831) OCDS now has a [Normative and non-normative content and changes policy](../governance/normative). * [#744](https://github.com/open-contracting/standard/pull/744) OCDS now has a [Translation and localization policy](../governance/translation). @@ -415,7 +436,7 @@ See the changelogs for: ### Schema * [#712](https://github.com/open-contracting/standard/pull/712) [#715](https://github.com/open-contracting/standard/pull/715) Add missing titles for `publisher` and `url` and description for `record` in the record package schema, and missing description for `releases` in release package schema. -* [#769](https://github.com/open-contracting/standard/pull/769) The versioned release schema now matches the release schema in: having a `minLength` validation property for `OrganizationReference.name`; having `codelist` and `openCodelist` properties for `Tender.awardCriteria`, `Tender.awardCriteriaDetails`, `Document.documentType`, `Item.unit.scheme`, `Classification.scheme`, and `RelatedProcess.scheme`; and having a `deprecated` property for `Budget.source`. All `title` and `description` metadata properties are removed from the versioned release schema. +* [#769](https://github.com/open-contracting/standard/pull/769) The versioned release schema now matches the release schema in: having a `minLength` validation property for `OrganizationReference.name`; having `codelist` and `openCodelist` properties for `tender.awardCriteria`, `tender.awardCriteriaDetails`, `Document.documentType`, `Item.unit.scheme`, `Classification.scheme`, and `RelatedProcess.scheme`; and having a `deprecated` property for `planning.budget.source`. All `title` and `description` metadata properties are removed from the versioned release schema. * [#838](https://github.com/open-contracting/standard/pull/838) Eliminate the conflicting rule that release identifiers must be unique within release packages. Uniqueness within the scope of a release package either implies that release identifiers must be globally unique, or imposes an arbitrary restriction on the contents of release packages, as there is no rule preventing release packages from containing releases from different contracting processes. Release identifiers are only required to be locally unique within the scope of a contracting process. The `ocid` and `id` values of a release can be used together to disambiguate releases within a release package. * Clarify the uniqueness of release identifiers in the release schema [#838](https://github.com/open-contracting/standard/pull/838) and release package schema [#831](https://github.com/open-contracting/standard/pull/831). * [#810](https://github.com/open-contracting/standard/pull/810) `tag` is now `omitWhenMerged`, consistent with the reference implementation in OCDS Merge. @@ -466,7 +487,7 @@ See the changelogs for: ### Schema -* [#646](https://github.com/open-contracting/standard/pull/646) Disallow use of `null` as an entry in the array for `Tender.additionalProcurementCategories`. +* [#646](https://github.com/open-contracting/standard/pull/646) Disallow use of `null` as an entry in the array for `tender.additionalProcurementCategories`. * [#639](https://github.com/open-contracting/standard/issues/639) Make `name` field optional for `OrganizationReference`. * [#630](https://github.com/open-contracting/standard/issues/630) Allow optional field `Item.unit` to be `null`. **(Reverted in 1.1.4)** * [#663](https://github.com/open-contracting/standard/pull/663) Add `"type": "object"` to objects in the versioned release schema. @@ -478,18 +499,18 @@ See the changelogs for: ### Schema -* [#603](https://github.com/open-contracting/standard/issues/603), [#645](https://github.com/open-contracting/standard/issues/645) Add definitions to `Release`, `planning.budget`, `Milestone`, `Organization.address`, `Organization.contactPoint`, `Classification`, `Identifier`, `Value` and `Period`. +* [#603](https://github.com/open-contracting/standard/issues/603) [#645](https://github.com/open-contracting/standard/issues/645) Add definitions to `Release`, `parties.address`, `parties.contactPoint`, `planning.budget`, `Classification`, `Identifier`, `Milestone`, `Period` and `Value`. * [#578](https://github.com/open-contracting/standard/issues/578) Update the definition of the `buyer` field to cover goods, works and services, and multiple buyers. ### Documentation -* [#633](https://github.com/open-contracting/standard/issues/633) Update schema reference page to display `Release.relatedProcesses`, `Planning.documents` and `Contract.relatedProcesses`. +* [#633](https://github.com/open-contracting/standard/issues/633) Update schema reference page to display `Release.relatedProcesses`, `planning.documents` and `contracts.relatedProcesses`. * [#634](https://github.com/open-contracting/standard/issues/634) Clarify definitions of core, community and local extensions. * Old and unused scripts have been removed from the documentation repository, and a number of script dependencies have been updated. ### Extensions -* [#40](https://github.com/open-contracting/ocds-extensions/issues/40), [#43](https://github.com/open-contracting/ocds-extensions/issues/43), [#47](https://github.com/open-contracting/ocds-extensions/issues/47) Add missing definitions, codelists and enums to core extensions, correct typos in codelist filenames, disallow use of `null` as an item in arrays, disallow required fields from being set to `null`, allow optional fields to be `null`, use `OrganizationReference` instead of `Organization`. +* [#40](https://github.com/open-contracting/ocds-extensions/issues/40) [#43](https://github.com/open-contracting/ocds-extensions/issues/43) [#47](https://github.com/open-contracting/ocds-extensions/issues/47) Add missing definitions, codelists and enums to core extensions, correct typos in codelist filenames, disallow use of `null` as an item in arrays, disallow required fields from being set to `null`, allow optional fields to be `null`, use `OrganizationReference` instead of `Organization`. ## [1.1.2] - 2017-11-10 @@ -634,7 +655,7 @@ See the changelogs for: ### Schema * [#283](https://github.com/open-contracting/standard/issues/283) Remove `"mergeStrategy": "ocdsVersion"` from the `planning.budget` field. -* [#295](https://github.com/open-contracting/standard/issues/295) Allow the optional fields `Award.status` and `Contract.status` to be `null`. +* [#295](https://github.com/open-contracting/standard/issues/295) Allow the optional fields `awards.status` and `contracts.status` to be `null`. * [#300](https://github.com/open-contracting/standard/issues/300) Remove `"format": "uri"` from the `publisher.scheme` field. * [#304](https://github.com/open-contracting/standard/pull/304) Fix the versioning of arrays in the versioned release schema. * [#305](https://github.com/open-contracting/standard/pull/305) Add `title` and `description` properties and fix typos. @@ -652,8 +673,8 @@ See the changelogs for: ### Schema * [#188](https://github.com/open-contracting/standard/pull/188) Add the `tender.numberOfTenderers` and `tender.tenderers` fields. -* [#199](https://github.com/open-contracting/standard/issues/199) Add the `Award.contractPeriod` field, to disclose the anticipated contract period without creating a `Contract` object. -* Update the `description` property of the `Award.date` field. +* [#199](https://github.com/open-contracting/standard/issues/199) Add the `awards.contractPeriod` field, to disclose the anticipated contract period without creating a `Contract` object. +* Update the `description` property of the `awards.date` field. ### Documentation diff --git a/docs/locale/es/LC_MESSAGES/guidance/index.po b/docs/locale/es/LC_MESSAGES/guidance/index.po index 457625b13..06d357115 100644 --- a/docs/locale/es/LC_MESSAGES/guidance/index.po +++ b/docs/locale/es/LC_MESSAGES/guidance/index.po @@ -55,11 +55,11 @@ msgstr "" #: ../../docs/guidance/index.md:9 msgid "" "Use the [OCDS Implementation Checklist](https://www.open-" -"contracting.org/resources/ocds-implementation-checklist) to keep track of " +"contracting.org/resources/ocds-implementation-checklist/) to keep track of " "your progress." msgstr "" "Utilice la [Lista de Verificación de Implementación](https://www.open-" -"contracting.org/resources/ocds-implementation-checklist) para hacer un " +"contracting.org/resources/ocds-implementation-checklist/) para hacer un " "seguimiento de su progreso." #: ../../docs/guidance/index.md:20 diff --git a/docs/locale/es/LC_MESSAGES/guidance/map/framework_agreements.po b/docs/locale/es/LC_MESSAGES/guidance/map/framework_agreements.po index ef7d4df87..333865115 100644 --- a/docs/locale/es/LC_MESSAGES/guidance/map/framework_agreements.po +++ b/docs/locale/es/LC_MESSAGES/guidance/map/framework_agreements.po @@ -943,7 +943,7 @@ msgid "" "The framework agreement is open, since all the framework agreements in Chile" " involve the setting up of a dynamic purchasing system. The framework " "agreement is for multiple buyers, since the tender notice specifies two " -"contracting authorities." +"buyers." msgstr "" "Chile Compra publica un [aviso de " "licitación](https://www.mercadopublico.cl/Procurement/Modules/RFB/DetailsAcquisition.aspx?qs=TLr0Si6+0YXBLbyobaRgPQ==)" diff --git a/docs/locale/es/LC_MESSAGES/guidance/map/related_processes.po b/docs/locale/es/LC_MESSAGES/guidance/map/related_processes.po deleted file mode 100644 index c233d3b79..000000000 --- a/docs/locale/es/LC_MESSAGES/guidance/map/related_processes.po +++ /dev/null @@ -1,1157 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) Open Contracting Partnership -# This file is distributed under the same license as the Open Contracting Data Standard package. -# FIRST AUTHOR , YEAR. -# -# Translators: -# Oscar Montiel , 2020 -# Yohanna Lisnichuk , 2021 -# James McKinney, 2021 -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Open Contracting Data Standard 1.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-07-31 14:33-0400\n" -"PO-Revision-Date: 2020-06-29 22:59+0000\n" -"Last-Translator: James McKinney, 2021\n" -"Language-Team: Spanish (https://www.transifex.com/open-contracting-partnership-1/teams/112300/es/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#: ../../docs/guidance/map/related_processes.md:1 -msgid "Framework agreements and related processes" -msgstr "Acuerdos marco y procesos relacionados" - -#: ../../docs/guidance/map/related_processes.md:1 -msgid "" -"In this guidance we defer to the definitions given in the [UNCITRAL Model " -"Law on Public Procurement " -"(2011)](https://uncitral.un.org/en/texts/procurement/modellaw/public_procurement)." -" The model law was developed through extensive consultation and reflects the" -" procurement practices and concepts used in many different jurisdictions." -msgstr "" -"En esta guía nos remitimos a las definiciones dadas en la [Ley Modelo de " -"UNCITRAL sobre Contrataciones Públicas UNCITRAL " -"(2011)](https://uncitral.un.org/en/texts/procurement/modellaw/public_procurement)." -" La ley modelo fue desarrollada a través de entrevistas extensivas y por lo " -"tanto refleja las prácticas y conceptos de adquisiciones usados en muchas " -"jurisdicciones diferentes." - -#: ../../docs/guidance/map/related_processes.md:7 -msgid "The UNCITRAL model law defines a framework agreement procedure as:" -msgstr "La ley modelo UNCITRAL define un procedimiento de acuerdo marco como:" - -#: ../../docs/guidance/map/related_processes.md:9 -msgid "" -"Procedure conducted in two stages: a first stage to select a supplier (or " -"suppliers) or a contractor (or contractors) to be a party (or parties) to a " -"framework agreement with a procuring entity, and a second stage to award a " -"procurement contract under the framework agreement to a supplier or " -"contractor party to the framework agreement." -msgstr "" -"Todo proceso que se programe en dos etapas: la primera para seleccionar a " -"uno o más proveedores o contratistas que vayan a ser partes en un acuerdo " -"marco concertado con una entidad contratante, y la segunda para adjudicar " -"algún contrato, con arreglo a ese acuerdo marco, a un proveedor o " -"contratista que sea parte en el acuerdo." - -#: ../../docs/guidance/map/related_processes.md:11 -msgid "" -"In OCDS terms, a framework agreement procedure is a procedure involving at " -"least one framework agreement. A framework agreement is defined in UNCITRAL " -"as:" -msgstr "" -"En términos de OCDS, un procedimiento de acuerdo marco es un procedimiento " -"que involucra al menos un acuerdo marco. Un acuerdo marco se define en la " -"UNCITRAL como:" - -#: ../../docs/guidance/map/related_processes.md:13 -msgid "" -"Agreement between the procuring entity and the selected supplier (or " -"suppliers) or contractor (or contractors) concluded upon completion of the " -"first stage of the framework agreement procedure." -msgstr "" -"Todo acuerdo que se concierte, al concluirse con éxito la primera etapa del " -"método de contratación con arreglo a un acuerdo marco, entre la entidad " -"adjudicadora y uno o más proveedores o contratistas seleccionados. " - -#: ../../docs/guidance/map/related_processes.md:15 -msgid "" -"In OCDS we treat “contractors” and “suppliers” as synonyms. One or more " -"buyers and one or more suppliers can participate in a framework agreement." -msgstr "" -"En OCDS usamos \"contratistas\" y \"proveedores\" como sinónimos. Uno o más " -"compradores y uno o más proveedores pueden participar en un acuerdo marco." - -#: ../../docs/guidance/map/related_processes.md:17 -msgid "A procurement contract is defined in UNCITRAL as:" -msgstr "Un contrato de adquisición se define en UNCITRAL como:" - -#: ../../docs/guidance/map/related_processes.md:19 -msgid "" -"Contract concluded between the procuring entity and a supplier (or " -"suppliers) or a contractor (or contractors) at the end of the procurement " -"proceedings." -msgstr "" -"Contrato celebrado entre la entidad contratante y uno o más proveedores o " -"contratistas a raíz de un proceso de contratación." - -#: ../../docs/guidance/map/related_processes.md:21 -msgid "Framework agreements can be **open** or **closed**:" -msgstr "Los acuerdos marco pueden ser **abiertos** o **cerrados**:" - -#: ../../docs/guidance/map/related_processes.md:23 -msgid "**Closed framework agreement**" -msgstr "**Acuerdos marco cerrados**" - -#: ../../docs/guidance/map/related_processes.md:25 -msgid "" -"Framework agreement to which no supplier or contractor that is not initially" -" a party to the framework agreement may subsequently become a party." -msgstr "" -"Acuerdo marco del que ningún proveedor o contratista que no sea inicialmente" -" parte del acuerdo marco podrá convertirse posteriormente en parte." - -#: ../../docs/guidance/map/related_processes.md:27 -msgid "**Open framework agreement**" -msgstr "**Acuerdos marco abiertos**" - -#: ../../docs/guidance/map/related_processes.md:29 -msgid "" -"Framework agreement to which a supplier (or suppliers) or a contractor (or " -"contractors) in addition to the initial parties may subsequently become a " -"party or parties." -msgstr "" -"Acuerdo marco en el cual un proveedor (o proveedores) o un contratista (o " -"contratistas) además de las partes iniciales pueden posteriormente " -"convertirse en parte o partes." - -#: ../../docs/guidance/map/related_processes.md:31 -msgid "" -"Procurement systems which provide for closed framework agreements include " -"the EU (Framework Agreements, per Directive 2014/24/EU, Article 33) and the " -"US federal system (Indefinite-delivery contracts, per Federal Acquisition " -"Regulation, Subpart 16.5). An example of a procurement system which provides" -" for open framework agreements is the EU (Dynamic Purchasing Systems, per " -"Directive 2014/24/EU, Article 33)." -msgstr "" -"Los sistemas de contratación que prevén acuerdos marco cerrados incluyen a " -"la UE (Acuerdos Marco, según la Directiva 2014/24 / UE, artículo 33) y el " -"sistema federal de los EE.UU. (Contratos de entrega indefinida, según el " -"Reglamento Federal de Adquisiciones, Subparte 16.5). Un ejemplo de un " -"sistema de contratación que prevé acuerdos marco abiertos es la UE (Sistemas" -" de compra dinámica, según la Directiva 2014/24 / UE, artículo 33)." - -#: ../../docs/guidance/map/related_processes.md:33 -msgid "" -"Framework agreement procedures can involve second-stage competition, or not:" -msgstr "" -"Los procedimientos de acuerdo marco pueden o no incluir una segunda etapa " -"competitiva:" - -#: ../../docs/guidance/map/related_processes.md:35 -msgid "**Framework agreement procedure with second-stage competition**" -msgstr "" -"**Procedimiento por el método del acuerdo marco con segunda etapa " -"competitiva**" - -#: ../../docs/guidance/map/related_processes.md:37 -msgid "" -"Procedure under an open framework agreement or a closed framework agreement " -"with more than one supplier or contractor in which certain terms and " -"conditions of the procurement that cannot be established with sufficient " -"precision when the framework agreement is concluded are to be established or" -" refined through a second-stage competition." -msgstr "" -"Todo proceso de adjudicación con arreglo al método del acuerdo marco, ya sea" -" abierto o cerrado, entablado con más de un proveedor o contratista, en el " -"que al no haber sido posible determinar, al concluirse el acuerdo marco, " -"algunas de las condiciones de los contratos que se tenga previsto adjudicar," -" será preciso determinar o precisar esas condiciones en una segunda etapa " -"competitiva." - -#: ../../docs/guidance/map/related_processes.md:39 -msgid "**Framework agreement procedure without second-stage competition**" -msgstr "" -"**Procedimiento por el método del acuerdo marco sin segunda etapa " -"competitiva**" - -#: ../../docs/guidance/map/related_processes.md:41 -msgid "" -"Procedure under a closed framework agreement in which all terms and " -"conditions of the procurement are established when the framework agreement " -"is concluded." -msgstr "" -"Proceso de adjudicación, con arreglo a un acuerdo marco cerrado, en el que " -"se hayan de concretar, al concertarse el acuerdo marco, todas las " -"condiciones de los contratos que se vayan a adjudicar" - -#: ../../docs/guidance/map/related_processes.md:43 -msgid "" -"Competition at the second stage is limited to suppliers that are party to " -"the framework agreement. Framework agreement procedures can include a mix of" -" competitive and non-competitive second stages." -msgstr "" -"La competencia en la segunda etapa está limitada a los proveedores que son " -"parte del acuerdo marco. Los procedimientos de acuerdo marco pueden incluir " -"una mezcla de segundas etapas competitivas y no competitivas." - -#: ../../docs/guidance/map/related_processes.md:45 -msgid "" -"The second stage of a framework agreement procedure is also known as a " -"“call-off.” Non-competitive second stages are also known as “direct call-" -"offs.” Competitive second stages are also known as “mini-competitions.”" -msgstr "" -"La segunda etapa de un procedimiento de acuerdo marco también se conoce " -"también como \"solicitud de orden de compra\". Las segundas etapas no " -"competitivas también se conocen como \"orden de compra directa\". Las " -"segundas etapas competitivas también son conocidas como \"mini-" -"competencias\"" - -#: ../../docs/guidance/map/related_processes.md:47 -msgid "" -"![Types of framework " -"agreement](../../_static/png/framework_agreement/types.png)" -msgstr "" -"![Tipos de acuerdos marco](../../_static/png/framework_agreement/types.png)" - -#: ../../docs/guidance/map/related_processes.md:49 -msgid "Modelling framework agreements in OCDS" -msgstr "Modelado de acuerdos marco en OCDS" - -#: ../../docs/guidance/map/related_processes.md:51 -msgid "" -"In OCDS, a contracting process brings together, under a single identifier, " -"the information that users need to answer questions such as:" -msgstr "" -"En OCDS, un proceso de contratación reúne, bajo un único identificador, la " -"información que los usuarios necesitan para responder preguntas tales como:" - -#: ../../docs/guidance/map/related_processes.md:53 -msgid "Was a contract signed as a result of this tender?" -msgstr "¿Se firmó un contrato como resultado de esta licitación?" - -#: ../../docs/guidance/map/related_processes.md:54 -msgid "What was the total value of spending that resulted from this award?" -msgstr "¿Cuál fue el valor total del gasto que resultó de esta adjudicación?" - -#: ../../docs/guidance/map/related_processes.md:55 -msgid "Was a renewal of this contract signed?" -msgstr "¿Se firmó una renovación de este contrato?" - -#: ../../docs/guidance/map/related_processes.md:57 -msgid "" -"In some cases, complex contracting processes cannot be represented under a " -"single identifier under OCDS' model, because:" -msgstr "" -"En algunos casos, procesos de contratación complejos no pueden ser " -"representados bajo un solo identificador bajo el modelo de OCDS porque:" - -#: ../../docs/guidance/map/related_processes.md:59 -msgid "" -"There are multiple competitive stages: for example, when a framework " -"agreement involves second-stage competitions." -msgstr "" -"Hay múltiples etapas competitivas: por ejemplo cuando un acuerdo marco " -"implica segundas etapas competitivas." - -#: ../../docs/guidance/map/related_processes.md:60 -msgid "" -"The procurement systems used at different stages of the process are managed " -"by different bodies, and cannot be integrated." -msgstr "" -"Los sistemas de contratación a través de los cuales se gestionan las " -"diferentes etapas del proceso son coordinados por diferentes organismos y no" -" pueden ser integrados." - -#: ../../docs/guidance/map/related_processes.md:62 -msgid "" -"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." -msgstr "" -"OCDS modela la primera y segundas etapas de los procedimientos por acuerdo " -"marco como procesos de contratación separados, enlazándolos usando el array " -"`relatedProcesses`. El campo `tender.techniques.hasFrameworkAgreement` de " -"la extensión [Técnicas](https://extensions.open-" -"contracting.org/en/extensions/techniques/master/), es usado para identificar" -" los procesos de contratación que representan la primera etapa de un " -"procedimiento por acuerdo marco. La presencia de un proceso relacionado con " -"el valor 'framework' en el campo `.relationship` es usado para identificar " -"los procesos de contratación que representan la segunda etapa de un " -"procedimiento por acuerdo marco. " - -#: ../../docs/guidance/map/related_processes.md:64 -msgid "" -"The following diagram shows how OCDS models a framework agreement procedure " -"with two second stages: one with competition and one without competition. " -"Grey blocks represent unused sections of the OCDS schema." -msgstr "" -"El siguiente diagrama muestra cómo OCDS modela los procedimientos por " -"acuerdo marco con dos segundas etapas: una con competencia y una sin " -"competencia. Los bloques en gris representan las secciones no utilizadas del" -" esquema OCDS." - -#: ../../docs/guidance/map/related_processes.md:66 -msgid "" -"![OCDS framework agreement " -"model](../../_static/png/framework_agreement/model.png)" -msgstr "" -"![Modelo OCDS de acuerdos " -"marco](../../_static/png/framework_agreement/model.png)" - -#: ../../docs/guidance/map/related_processes.md:68 -#: ../../docs/guidance/map/related_processes.md:150 -msgid "" -"The `tender.competitive` field, from the [Competitive](https://extensions" -".open-contracting.org/en/extensions/competitive/master/) extension, is used " -"to indicate whether the second stage involves competition." -msgstr "" -"El campo `tender.competitive`, de la extensión " -"[Competitive](https://extensions.open-" -"contracting.org/en/extensions/competitive/master/), es usado para indicar si" -" la segunda etapa es competitiva." - -#: ../../docs/guidance/map/related_processes.md:70 -msgid "" -"The following guidance describes how to model the different stages of a " -"framework agreement procedure in OCDS." -msgstr "" -"La siguiente guía describe cómo modelar las diferentes etapas de un " -"procedimiento por acuerdo marco en OCDS." - -#: ../../docs/guidance/map/related_processes.md:72 -msgid "" -"Invitation to participate in the first stage of a framework agreement " -"procedure" -msgstr "" -"Invitación a participar en la primera etapa del procedimiento por acuerdo " -"marco." - -#: ../../docs/guidance/map/related_processes.md:74 -msgid "Create a release and add 'tender' to the `tag` array" -msgstr "Crear un release y agregar 'tender' al array de 'tag'" - -#: ../../docs/guidance/map/related_processes.md:75 -msgid "" -"For each buyer that will participate in the framework agreement, add an " -"`Organization` object to the `parties` array, add 'buyer' to its `.roles`, " -"and populate its other fields." -msgstr "" -"Por cada comprador que participará en el acuerdo marco, agregar un objeto " -"`Organization` al array de `parties`, agregar 'buyer' a sus `.roles`, y " -"completar sus otros campos." - -#: ../../docs/guidance/map/related_processes.md:76 -msgid "" -"If all potential buyers can participate, don't add them to the `parties` " -"array. Instead, add a note in the [publication policy](../publish) to " -"explain how users should interpret a contracting process with no buyers." -msgstr "" -"Si todos los potenciales compradores pueden participar, no agregarlos al " -"array de `parties`. En su lugar, agregar una nota en la [política de " -"publicación](../publish) para explicar cómo los usuarios deben interpretar " -"un proceso de contratación sin compradores." - -#: ../../docs/guidance/map/related_processes.md:77 -msgid "" -"If a single buyer will participate in the framework agreement, set the " -"`buyer.id` and `buyer.name` to match the buyer's object in the `parties` " -"array. Otherwise, don't populate `buyer`." -msgstr "" -"Si solo un comprador participará en el acuerdo marco, establecer `buyer.id` " -"y `buyer.name` con los mismos valores del objeto 'buyer' en el array de " -"`parties`. De lo contrario, no incluir el campo `buyer`." - -#: ../../docs/guidance/map/related_processes.md:78 -msgid "In the `tender` section, set:" -msgstr "En la sección `tender`, establecer:" - -#: ../../docs/guidance/map/related_processes.md:79 -msgid "`tender.techniques.hasFrameworkAgreement` to `true`." -msgstr "`tender.techniques.hasFrameworkAgreement` a `true`." - -#: ../../docs/guidance/map/related_processes.md:80 -msgid "`tender.contractPeriod` to the duration of the framework agreement." -msgstr "`tender.contractPeriod` a la duración del acuerdo marco." - -#: ../../docs/guidance/map/related_processes.md:81 -msgid "" -"If the framework agreement is closed, set `tender.tenderPeriod.endDate` to " -"the deadline for responses to the invitation." -msgstr "" -"Si el acuerdo marco es cerrado, establecer `tender.tenderPeriod.endDate` a " -"la fecha máxima de respuestas a la invitación." - -#: ../../docs/guidance/map/related_processes.md:82 -msgid "" -"If the framework agreement is open, set `tender.tenderPeriod.endDate` to the" -" last date that new suppliers can be added." -msgstr "" -"Si el acuerdo marco es abierto, establecer `tender.tenderPeriod.endDate` a " -"la última fecha en la que nuevos proveedores pueden ser añadidos." - -#: ../../docs/guidance/map/related_processes.md:84 -msgid "Setting procurement method" -msgstr "Estableciendo el método de contratación" - -#: ../../docs/guidance/map/related_processes.md:86 -msgid "" -"The `tender.procurementMethod` field uses the [method " -"codelist](../../schema/codelists.md#method) to describe the competitive " -"conditions of the framework agreement procedure as a whole, not only the " -"first stage." -msgstr "" -"El campo `tender.procurementMethod` usa la [lista de códigos de " -"métodos](../../schema/codelists.md#method) para describir las condiciones " -"competitivas del procedimiento por acuerdo marco como un todo, no solo de la" -" primera etapa." - -#: ../../docs/guidance/map/related_processes.md:88 -msgid "Use the following criteria to determine the procurement method:" -msgstr "Use el siguiente criterio para determinar el método de contratación:" - -#: ../../docs/guidance/map/related_processes.md:90 -msgid "" -"If the contracting process will establish a framework agreement with a " -"single supplier and if there are no conditions to participate in the " -"contracting process, set `tender.procurementMethod` to 'open'." -msgstr "" -"Si el proceso de contratación establecerá un acuerdo marco con un solo " -"proveedor y si no hay condiciones para participar en el proceso de " -"contratación, establecer `tender.procurementMethod` a 'open'." - -#: ../../docs/guidance/map/related_processes.md:91 -msgid "" -"If the contracting process limits the suppliers that can submit a request to" -" participate in the framework agreement, set `tender.procurementMethod` to " -"'limited'." -msgstr "" -"Si el proceso de contratación limita los proveedores que pueden enviar una " -"solicitud para participar en el acuerdo marco, establecer " -"`tender.procurementMethod` a 'limited'." - -#: ../../docs/guidance/map/related_processes.md:92 -msgid "Otherwise, set `tender.procurementMethod` to 'selective'." -msgstr "De lo contrario, establecer `tender.procurementMethod` a 'selective'." - -#: ../../docs/guidance/map/related_processes.md:94 -msgid "Addition of a supplier to a framework agreement" -msgstr "Adición de un proveedor a un acuerdo marco" - -#: ../../docs/guidance/map/related_processes.md:96 -msgid "" -"Create a release with the **same** `ocid` as the tender release and add " -"'award' to the `tag` array" -msgstr "" -"Crear un release con el **mismo** `ocid` que el release de tender y agregar " -"'award' al array `tag`" - -#: ../../docs/guidance/map/related_processes.md:97 -msgid "Add an `Award` object to the `awards` array." -msgstr "Agragar un objeto `Award` al array de `awards`." - -#: ../../docs/guidance/map/related_processes.md:98 -msgid "For each supplier:" -msgstr "Por cada proveedor:" - -#: ../../docs/guidance/map/related_processes.md:99 -#: ../../docs/guidance/map/related_processes.md:142 -msgid "" -"Add an `Organization` object to the `parties` array, add 'supplier' to its " -"`.roles` and populate its other fields." -msgstr "" -"Agregar un objeto `Organization` al array de `parties`, agregar 'supplier' a" -" sus `.roles` y completar sus otros campos." - -#: ../../docs/guidance/map/related_processes.md:100 -msgid "" -"Add an `OrganizationReference` object to the award's `.suppliers` array, and" -" set its `.id` and `.name` to match the supplier's object in the `parties` " -"array." -msgstr "" -"Agregar un objeto `OrganizationReference` al array `.suppliers` de awards, y" -" establecer su `.id` y `.name` para que coincida con el objeto de supplier " -"del array de `parties`." - -#: ../../docs/guidance/map/related_processes.md:101 -msgid "" -"If no further suppliers will be added to the framework agreement, set " -"`tender.status` to 'complete'." -msgstr "" -"Si no se agregarán más proveedores al acuerdo marco, establecer " -"`tender.status` a 'complete'." - -#: ../../docs/guidance/map/related_processes.md:103 -#: ../../docs/guidance/map/related_processes.md:206 -msgid "Award of a procurement contract without second-stage competition" -msgstr "Adjudicación de un contrato sin una segunda etapa competitiva" - -#: ../../docs/guidance/map/related_processes.md:105 -msgid "" -"Create a release with a **new** `ocid` and add 'award' and 'contract' to the" -" `tag`" -msgstr "" -"Crear un release con un **nuevo** `ocid` y agregar 'award' y 'contract' a " -"`tag`" - -#: ../../docs/guidance/map/related_processes.md:106 -#: ../../docs/guidance/map/related_processes.md:114 -msgid "" -"[Relate the second stage to the first stage](#relate-the-second-stage-to-" -"the-first-stage)" -msgstr "" -"[Relacionar la segunda etapa con la primera etapa](#relate-the-second-stage-" -"to-the-first-stage)" - -#: ../../docs/guidance/map/related_processes.md:107 -#: ../../docs/guidance/map/related_processes.md:115 -msgid "[Add a buyer](#add-a-buyer)" -msgstr "[Agregar un comprador](#add-a-buyer)" - -#: ../../docs/guidance/map/related_processes.md:108 -msgid "" -"Set `tender.id` to the `award.id`, set `tender.competitive` to `false`, and " -"set `tender.procuringEntity` if appropriate" -msgstr "" -"Establecer `tender.id` al valor de `award.id`, establecer " -"`tender.competitive` a `false`, y completar `tender.procuringEntity` si " -"corresponde" - -#: ../../docs/guidance/map/related_processes.md:109 -#: ../../docs/guidance/map/related_processes.md:121 -msgid "" -"[Add an award, contract and supplier](#add-an-award-contract-and-supplier)" -msgstr "" -"[Agregar una adjudicación, contrato y proveedor](#add-an-award-contract-and-" -"supplier)" - -#: ../../docs/guidance/map/related_processes.md:111 -#: ../../docs/guidance/map/related_processes.md:271 -msgid "Invitation to participate in a second-stage competition" -msgstr "Invitación a participar en una segunda etapa competitiva" - -#: ../../docs/guidance/map/related_processes.md:113 -msgid "" -"Create a release with a **new** `ocid` and add 'tender' to the `.tag` array" -msgstr "" -"Crear un release con un **nuevo** `ocid` y agregar 'tender' al array de " -"`.tag`" - -#: ../../docs/guidance/map/related_processes.md:116 -msgid "" -"Populate the `tender` section, setting `tender.procurementMethod` to the " -"same value as in the first stage" -msgstr "" -"Completar la sección de `tender`, estableciendo `tender.procurementMethod` " -"al mismo valor que la primera etapa" - -#: ../../docs/guidance/map/related_processes.md:118 -#: ../../docs/guidance/map/related_processes.md:289 -msgid "" -"Award of a procurement contract resulting from a second-stage competition" -msgstr "" -"Adjudicación de un contrato resultante de una segunda etapa competitiva" - -#: ../../docs/guidance/map/related_processes.md:120 -msgid "" -"Create a release with the **same** `ocid` as the tender release *for the " -"second stage*, and add 'award' and 'contract' to the `tag`" -msgstr "" -"Crear un release con el **mismo** `ocid` que el release de tender *para la " -"segunda etapa*, y agregar 'award' and 'contract' a `tag`" - -#: ../../docs/guidance/map/related_processes.md:123 -msgid "Updating the contract value, period or items" -msgstr "Actualizando el valor, periodo o ítems del contrato" - -#: ../../docs/guidance/map/related_processes.md:125 -msgid "" -"If the initial contract value, period or items are subsequently updated, " -"populate the contract's `.value`, `.period` and `.items` with the updated " -"values." -msgstr "" -"Si el valor, periodo o ítems iniciales del contrato son actualizados " -"subsecuentemente, completar los campos `.value`, `.period` e `.items` del " -"contrato con los valores actualizados." - -#: ../../docs/guidance/map/related_processes.md:127 -msgid "Common operations" -msgstr "Operaciones comunes" - -#: ../../docs/guidance/map/related_processes.md:129 -msgid "Relate the second stage to the first stage" -msgstr "Relacionar la segunda etapa con la primera etapa" - -#: ../../docs/guidance/map/related_processes.md:131 -msgid "" -"Add a `RelatedProcess` object to the `relatedProcesses` array, set its `.id`" -" (to '1', for example), add 'framework' to its `.relationship` array, set " -"its `.scheme` to 'ocid' and set its `.identifier` to the `ocid` of the " -"invitation to participate in the framework agreement." -msgstr "" -"Agregar un objeto `RelatedProcess` al array de `relatedProcesses`, " -"establecer su `.id` (a '1', por ejemplo), agregar 'framework' a su array de " -"`.relationship`, establecer su `.scheme` a 'ocid' y establecer su " -"`.identifier` al `ocid` de la invitación a participar en el acuerdo marco." - -#: ../../docs/guidance/map/related_processes.md:133 -msgid "Add a buyer" -msgstr "Agregar un comprador" - -#: ../../docs/guidance/map/related_processes.md:135 -msgid "" -"Add an `Organization` object to the `parties` array, add 'buyer' to its " -"`.roles` and populate its other fields with the details of the buyer for " -"this specific contract." -msgstr "" -"Agregar un objeto `Organization` al array de `parties`, agregar 'buyer' a " -"sus `.roles` y completar sus otros campos con los detalles del comprador " -"para este contrato específico." - -#: ../../docs/guidance/map/related_processes.md:136 -msgid "" -"Set `buyer.id` and `buyer.name` to match the buyer's object in the `parties`" -" array." -msgstr "" -"Establecer los campos `buyer.id` y `buyer.name` para que coincidan con el " -"objeto de buyer en el array de `parties`." - -#: ../../docs/guidance/map/related_processes.md:138 -msgid "Add an award, contract and supplier" -msgstr "Agregar una adjudicación, contrato y proveedor" - -#: ../../docs/guidance/map/related_processes.md:140 -msgid "" -"Add an `Award` object to the `awards` array and a `Contract` object to the " -"`contracts` array." -msgstr "" -"Agregar un objeto `Award` al array de `awards` y un objeto `Contract` al " -"array de `contracts`." - -#: ../../docs/guidance/map/related_processes.md:141 -msgid "Set the award's `.id` and the contract's `.id` to the same value." -msgstr "" -"Establecer el `.id` de la adjudicación `.id` del contrato al mismo valor." - -#: ../../docs/guidance/map/related_processes.md:143 -msgid "" -"Add an `OrganizationReference` object to the award's `.suppliers` array and " -"set `.id` and `.name` to match the supplier's object in the `parties` array." -msgstr "" -"Agregar un objeto `OrganizationReference` al array `.suppliers` del array " -"de award, y establecer los campos `.id` y `.name` para que coincidan con el " -"objeto de supplier en el array de `parties`." - -#: ../../docs/guidance/map/related_processes.md:144 -msgid "" -"Populate the award's `.value`, `.contractPeriod` and `.items` with the " -"initial contract value, period and items." -msgstr "" -"Completar los campos `.value`, `.contractPeriod` e `.items` de la " -"adjudicación con los valores, periodo e ítems iniciales del contrato." - -#: ../../docs/guidance/map/related_processes.md:146 -msgid "Extensions" -msgstr "Extensiones" - -#: ../../docs/guidance/map/related_processes.md:148 -msgid "" -"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. More information on the nature of the framework " -"agreement can be provided via the `tender.techniques.frameworkAgreement` " -"object." -msgstr "" -"El campo `tender.techniques.hasFrameworkAgreement` , de la extensión " -"[Técnicas](https://extensions.open-" -"contracting.org/en/extensions/techniques/master/), es usado para identificar" -" los procesos de contratación que representan la primera etapa de un " -"procedimiento por acuerdo marco. Más información sobre la naturaleza del " -"acuerdo marco puede ser proveída via el objeto " -"`tender.techniques.frameworkAgreement`." - -#: ../../docs/guidance/map/related_processes.md:152 -msgid "The two extensions should be declared in the package metadata:" -msgstr "" -"Las dos extensiones deberían ser declaradas en los metadatos del paquete:" - -#: ../../docs/guidance/map/related_processes.md:158 -msgid "Worked examples" -msgstr "Ejemplos prácticos" - -#: ../../docs/guidance/map/related_processes.md:160 -msgid "" -"The following examples show how to model two framework agreements, covering " -"a range of characteristics:" -msgstr "" -"Los siguientes ejemplos muestran cómo modelar dos acuerdos marco, cubriendo " -"una serie de características:" - -#: ../../docs/guidance/map/related_processes.md:162 -msgid "" -"A closed framework agreement established for a single buyer, with a single " -"supplier and **without** second-stage competition" -msgstr "" -"Un acuerdo marco cerrado establecido para un único comprador, con un único " -"proveedor y **sin** segunda etapa competitiva" - -#: ../../docs/guidance/map/related_processes.md:163 -msgid "" -"A open framework agreement established for multiple buyers, with multiple " -"suppliers and **with** second-stage competition" -msgstr "" -"Un acuerdo marco abierto establecido para múltiples compradores, con " -"múltiples proveedores y **con** segunda etapa competitiva" - -#: ../../docs/guidance/map/related_processes.md:165 -msgid "" -"Closed framework agreement with single buyer, single supplier and without " -"second-stage competition" -msgstr "" -"Un acuerdo marco cerrado con un solo comprador, un solo proveedor y sin " -"segunda etapa competitiva" - -#: ../../docs/guidance/map/related_processes.md:167 -msgid "" -"NHS National Services Scotland (NSS) wants to establish a framework " -"agreement for the receipt, storage and distribution of seasonal influenza " -"vaccines to general practitioner practices, social care premises, vaccine " -"holding centres and community pharmacies across NHS Scotland." -msgstr "" -"NHS National Services Scotland (NSS) quiere establecer un acuerdo marco para" -" la recepción, almacenamiento y distribución de vacunas contra la influenza " -"estacional a médicos generales, instalaciones de atención social, centros de" -" almacenamiento de vacunas y farmacias comunitarias en todo el NHS Escocia." - -#: ../../docs/guidance/map/related_processes.md:169 -#: ../../docs/guidance/map/related_processes.md:233 -msgid "Invitation to participate in the first stage" -msgstr "Invitación a participar en la primera etapa" - -#: ../../docs/guidance/map/related_processes.md:171 -msgid "" -"NSS issues a [contract " -"notice](https://ted.europa.eu/udl?uri=TED:NOTICE:478648-2019:TEXT:EN:HTML) " -"(tender notice), inviting suppliers to participate in the framework " -"agreement. The tender notice specifies that the framework agreement is with " -"a single operator. The framework agreement is not open, since the tender " -"notice does not specify that the procurement involves the setting up of a " -"dynamic purchasing system. The framework agreement is for a single buyer, " -"since the tender notice specifies only one contracting authority." -msgstr "" -"NSS emite un [aviso de " -"contrato](https://ted.europa.eu/udl?uri=TED:NOTICE:478648-2019:TEXT:EN:HTML)" -" (aviso de licitación), invitando a los proveedores a participar en el " -"acuerdo marco. El aviso de licitación especifica que el acuerdo marco es con" -" un solo operador. El acuerdo marco no es abierto, dado que el aviso de " -"licitación no especifica que la adquisición involucra el establecimiento de " -"un sistema de compra dinámico. El acuerdo marco es para un único comprador, " -"dado que el aviso de licitación especifica solo una autoridad de " -"contratación." - -#: ../../docs/guidance/map/related_processes.md:173 -#: ../../docs/guidance/map/related_processes.md:237 -msgid "" -"The notice is modelled as an OCDS release with a `tag` of 'tender' and the " -"following properties:" -msgstr "" -"El aviso es modelado como un release OCDS con el `tag` establecido a " -"'tender' y las siguientes propiedades:" - -#: ../../docs/guidance/map/related_processes.md:175 -#: ../../docs/guidance/map/related_processes.md:239 -msgid "The techniques extension is declared in the package metadata." -msgstr "La extensión de técnicas es declarada en los metadatos del paquete." - -#: ../../docs/guidance/map/related_processes.md:176 -#: ../../docs/guidance/map/related_processes.md:240 -msgid "" -"Since this contracting process is for the set-up of a framework agreement, " -"`tender.techniques.hasFrameworkAgreement` is set to `true`." -msgstr "" -"Dado que este proceso de contratación es para el establecimiento de un " -"acuerdo marco, `tender.techniques.hasFrameworkAgreement` es establecido a " -"`true`." - -#: ../../docs/guidance/map/related_processes.md:177 -msgid "" -"Since the framework agreement will be concluded with a single supplier and " -"since any supplier is able to submit a response to the invitation to " -"participate, `tender.procurementMethod` is set to 'open'." -msgstr "" -"Dado que el acuerdo marco será concluido con un único proveedor y dado que " -"cualquier proveedor puede enviar una respuesta a la invitación a participar," -" `tender.procurementMethod` es establecido a 'open'." - -#: ../../docs/guidance/map/related_processes.md:178 -msgid "" -"Since the framework agreement is closed, `tender.tenderPeriod` is set to the" -" deadline for responses to the invitation to participate." -msgstr "" -"Dado que el acuerdo marco es cerrado, `tender.tenderPeriod` es establecido a" -" la fecha límite para enviar respuestas a la invitación a participar." - -#: ../../docs/guidance/map/related_processes.md:179 -msgid "" -"Since there is only one buyer, `buyer` is set to reference the buyer's " -"object in the `parties` array." -msgstr "" -"Dado que hay un solo comprador, `buyer` se establece a la referencia del " -"objeto buyer en el array de `parties`." - -#: ../../docs/guidance/map/related_processes.md:187 -#: ../../docs/guidance/map/related_processes.md:252 -msgid "Adding a supplier to the framework agreement" -msgstr "Agregando un proveedor al acuerdo marco" - -#: ../../docs/guidance/map/related_processes.md:189 -msgid "" -"NSS issues a [contract award " -"notice](https://ted.europa.eu/udl?uri=TED:NOTICE:268595-2020:TEXT:EN:HTML&src=0)" -" to announce that the framework agreement has been concluded with a single " -"supplier, Movianto UK." -msgstr "" -"NSS emite un [aviso de adjudicación de " -"contato](https://ted.europa.eu/udl?uri=TED:NOTICE:268595-2020:TEXT:EN:HTML&src=0)" -" para anunciar que el acuerdo marco ha sido concluido con un solo proveedor," -" Movianto UK." - -#: ../../docs/guidance/map/related_processes.md:191 -#: ../../docs/guidance/map/related_processes.md:256 -msgid "" -"The notice is modelled as an OCDS release with the same `ocid` as the " -"previous release, a `tag` of 'award', and the following properties:" -msgstr "" -"El aviso el modelado con un release OCDS con el mismo `ocid` como el release" -" previo, el `tag` 'award', y las siguientes características:" - -#: ../../docs/guidance/map/related_processes.md:193 -msgid "" -"Since no further suppliers will be added to the framework agreement, " -"`tender.status` is set to 'complete'." -msgstr "" -"Dado que no se añadirán más proveedores al acuerdo marco, `tender.status` se" -" establece a 'complete'." - -#: ../../docs/guidance/map/related_processes.md:194 -#: ../../docs/guidance/map/related_processes.md:259 -msgid "An `Award` object is added to the `awards` array." -msgstr "Un objeto `Award` es agregado al array de `awards`." - -#: ../../docs/guidance/map/related_processes.md:195 -msgid "" -"An `Organization` object is added to the `parties` array with the supplier's" -" details." -msgstr "" -"Un objeto `Organization` es agregado al aray de `parties` con los detalles " -"de los proveedores." - -#: ../../docs/guidance/map/related_processes.md:196 -msgid "" -"An `OrganizationReference` object is added to award's `.suppliers` array to " -"reference the supplier's object in the `parties` array." -msgstr "" -"Un objeto `OrganizationReference` es agregado al array `.suppliers` de " -"awards para referenciar el objeto supplier en el array de `parties`." - -#: ../../docs/guidance/map/related_processes.md:204 -msgid "" -"The first stage of the framework agreement procedure is complete and NSS can" -" now purchase services from the supplier." -msgstr "" -"La primera etapa del acuerdo marco está completa y NSS puede ahora contratar" -" servicios del proveedor." - -#: ../../docs/guidance/map/related_processes.md:208 -msgid "" -"NSS uses the framework agreement to place an order for the supplier to " -"receive and store ten pallets of seasonal flu vaccine. Under the terms of " -"the agreement the cost for this service is £10,000." -msgstr "" -"NSS utiliza el acuerdo marco para realizar un pedido para que el proveedor " -"reciba y almacene diez tarimas de vacuna contra la influenza estacional. " -"Según los términos del acuerdo, el costo de este servicio es de £ 10,000." - -#: ../../docs/guidance/map/related_processes.md:210 -msgid "" -"The order represents the award of a procurement contract at the second stage" -" of the framework agreement procedure." -msgstr "" -"El pedido representa la adjudicación de un contrato de adquisición en la " -"segunda etapa del procedimiento del acuerdo marco." - -#: ../../docs/guidance/map/related_processes.md:212 -msgid "" -"Because there was no competition at the second stage, the new contracting " -"process has only one release, with a `tag` of 'award' and 'contract'. The " -"release has the following properties:" -msgstr "" -"Debido a que no hubo competencia en la segunda etapa, el nuevo proceso de " -"contratación tiene un solo release, con una `tag` de 'award' y 'contract'. " -"El release tiene las siguientes propiedades:" - -#: ../../docs/guidance/map/related_processes.md:214 -#: ../../docs/guidance/map/related_processes.md:277 -msgid "A new `ocid` is used." -msgstr "Un nuevo `ocid` es usado." - -#: ../../docs/guidance/map/related_processes.md:215 -#: ../../docs/guidance/map/related_processes.md:278 -#: ../../docs/guidance/map/related_processes.md:296 -msgid "" -"The `relatedProcesses` section is populated with a reference to the " -"contracting process for the first stage." -msgstr "" -"La sección `relatedProcesses` se completa con una referencia al proceso de " -"contratación para la primera etapa." - -#: ../../docs/guidance/map/related_processes.md:216 -msgid "" -"A minimal `tender` section sets `tender.id` and sets `tender.competitive` to" -" `false`." -msgstr "" -"Una sección mínima de `tender` establece` tender.id` y establece " -"`tender.competitive` a` false`." - -#: ../../docs/guidance/map/related_processes.md:217 -#: ../../docs/guidance/map/related_processes.md:299 -msgid "" -"The `awards` section is populated with the initial contract value, period " -"and items." -msgstr "" -"La sección de `awards` se completa con el valor inicial del contrato, " -"periodo e ítems." - -#: ../../docs/guidance/map/related_processes.md:218 -#: ../../docs/guidance/map/related_processes.md:300 -msgid "The `contracts` section is populated and linked to the award." -msgstr "La sección `contracts` se completa y se vincula con la adjudicación." - -#: ../../docs/guidance/map/related_processes.md:219 -msgid "" -"The `buyer`, `tender.procuringEntity`, `awards.suppliers` and `parties` " -"fields are populated with the details of the buyer, procuring entity and " -"supplier." -msgstr "" -"Los campos `buyer`, `tender.procuringEntity`, `awards.suppliers` y `parties`" -" son completados con los detalles del comprador, la entidad contratante y " -"proveedor." - -#: ../../docs/guidance/map/related_processes.md:227 -msgid "" -"Each additional purchase made under the framework agreement is represented " -"by a new contracting process with a new `ocid`." -msgstr "" -"Cada compra adicional realizada bajo el acuerdo marco está representada por " -"un nuevo proceso de contratación con un nuevo `ocid`." - -#: ../../docs/guidance/map/related_processes.md:229 -msgid "" -"Open framework agreement with multiple buyers, with multiple suppliers and " -"with second-stage competition" -msgstr "" -"Acuerdo marco abierto con múltiples compradores, con múltiples proveedores y" -" con segunda etapa competitiva" - -#: ../../docs/guidance/map/related_processes.md:231 -msgid "" -"The National Procurement Agency in Chile (Chile Compra) wants to establish a" -" framework agreement for the purchase of office supplies, including paper " -"and stationery items for the different public entities across Chile." -msgstr "" -"La Agencia Nacional de Adquisiciones en Chile (Chile Compra) quiere " -"establecer un acuerdo marco para las compras de insumos de oficina, " -"incluyendo papel y artículos de papelería para las distintas entidades " -"públicas de Chile." - -#: ../../docs/guidance/map/related_processes.md:235 -msgid "" -"Chile Compra publishes a [tender " -"notice](https://www.mercadopublico.cl/Procurement/Modules/RFB/DetailsAcquisition.aspx?qs=TLr0Si6+0YXBLbyobaRgPQ==)" -" inviting suppliers to participate in the framework agreement. The tender " -"notice specifies that multiple suppliers can join the framework agreement. " -"The framework agreement is open, since all the framework agreements in Chile" -" involve the setting up of a dynamic purchasing system. The framework " -"agreement is for multiple buyers, since the tender notice specifies two " -"contracting authorities." -msgstr "" -"Chile Compra publica un [aviso de licitación] " -"(https://www.mercadopublico.cl/Procurement/Modules/RFB/DetailsAcquisition.aspx?qs=TLr0Si6+0YXBLbyobaRgPQ==)" -" invitando a los proveedores a participar en el acuerdo marco. El aviso de " -"licitación especifica que varios proveedores pueden unirse al acuerdo marco." -" El convenio marco es abierto, ya que todos los acuerdos marco en Chile " -"implican el establecimiento de un sistema dinámico de compras. El acuerdo " -"marco es para varios compradores, ya que el anuncio de licitación especifica" -" dos autoridades de contratación." - -#: ../../docs/guidance/map/related_processes.md:241 -msgid "" -"Since the framework agreement will be concluded with multiple suppliers and " -"will involve second-stage competition, `tender.procurementMethod` is set to " -"'selective'." -msgstr "" -"Dado que el acuerdo marco se celebrará con varios proveedores e implicará " -"una segunda fase competitiva, `tender.procurementMethod` se establece en " -"'selective'." - -#: ../../docs/guidance/map/related_processes.md:242 -msgid "" -"Since the framework agreement is open, `tender.tenderPeriod` is set to the " -"end of the framework agreement." -msgstr "" -"Dado que el acuerdo marco es abierto, `tender.tenderPeriod` se establece a " -"la fecha de fin del acuerdo marco." - -#: ../../docs/guidance/map/related_processes.md:243 -msgid "" -"Since there are two buyers, the 'buyer' object is not set, and the buyers " -"are declared in the `parties` array." -msgstr "" -"Dado que hay dos compradores, el objeto 'buyer' no se establece y los " -"compradores se declaran en el array de `parties`." - -#: ../../docs/guidance/map/related_processes.md:244 -msgid "" -"Since Chile Compra is the entity that manages the contracting process, " -"`tender.procuringEntity` is set to reference Chile Compra's object in the " -"`parties` array." -msgstr "" -"Dado que Chile Compra es la entidad que administra el proceso de " -"contratación, `tender.procuringEntity` se establece para hacer referencia al" -" objeto de Chile Compra en el array de `parties`." - -#: ../../docs/guidance/map/related_processes.md:254 -msgid "" -"Chile Compra issues an [award " -"notice](https://www.mercadopublico.cl/Procurement/Modules/RFB/StepsProcessAward/PreviewAwardAct.aspx?qs=TLr0Si6+0YXBLbyobaRgPQ==)" -" to announce that the framework agreement has been awarded to two suppliers:" -" Rodrigo Alejandro Vidal Campos and Comercializadora e Importadora Grupo " -"RAVC SPA." -msgstr "" -"Chile Compra emite un [aviso de adjudicación] " -"(https://www.mercadopublico.cl/Procurement/Modules/RFB/StepsProcessAward/PreviewAwardAct.aspx?qs=TLr0Si6+0YXBLbyobaRgPQ==)" -" para anunciar que el acuerdo marco ha sido adjudicado a dos proveedores: " -"Rodrigo Alejandro Vidal Campos y Comercializadora e Importadora Grupo RAVC " -"SPA." - -#: ../../docs/guidance/map/related_processes.md:258 -msgid "" -"Since other suppliers are still able to submit a request to participate in " -"the framework agreement, no change is made to `tender.status`." -msgstr "" -"Dado que otros proveedores aún pueden presentar una solicitud para " -"participar en el acuerdo marco, no se realiza ningún cambio en " -"`tender.status`." - -#: ../../docs/guidance/map/related_processes.md:260 -msgid "" -"An `Organization` object is added to the `parties` array for each supplier " -"with its details." -msgstr "" -"Se agrega un objeto `Organization` al array de `parties` para cada proveedor" -" con sus detalles." - -#: ../../docs/guidance/map/related_processes.md:261 -msgid "" -"An `OrganizationReference` object is added to the award's `.suppliers` array" -" for each supplier to reference its object in the `parties` array." -msgstr "" -"Se agrega un objeto `OrganizationReference` al array de ` .suppliers` de " -"awards para que cada proveedor haga referencia a su objeto en el array de " -"`parties`." - -#: ../../docs/guidance/map/related_processes.md:269 -msgid "" -"The framework is now established, and both buyers can now purchase items " -"from the suppliers." -msgstr "" -"El acuerdo está establecido y ambos compradores ahora pueden comprar " -"artículos de los proveedores." - -#: ../../docs/guidance/map/related_processes.md:273 -msgid "" -"Servicio Local de Educación Pública Puerto Cordillera publishes a [tender " -"notice](https://www.mercadopublico.cl/CMII/Tienda/frm_GCV2_Ficha.aspx?IURL=uPteMZpbYBeM$07gdm9g$08EFecMSuZM0euS4Z$07cbeFMX_05ohEOMPbeteMZpbYBeM)," -" inviting suppliers on the framework agreement to bid to supply 200 pencils." -" This represents an invitation to participate in a second-stage competition." -msgstr "" -"El Servicio Local de Educación Pública Puerto Cordillera publica un [aviso " -"de " -"licitación](https://www.mercadopublico.cl/CMII/Tienda/frm_GCV2_Ficha.aspx?IURL=uPteMZpbYBeM$07gdm9g$08EFecMSuZM0euS4Z$07cbeFMX_05ohEOMPbeteMZpbYBeM)," -" invitando a los proveedores del acuerdo marco a presentar ofertas para el " -"suministro de 200 lápices. Esto representa una invitación a participar en " -"una segunda etapa competitiva." - -#: ../../docs/guidance/map/related_processes.md:275 -#: ../../docs/guidance/map/related_processes.md:293 -msgid "The release has the following properties:" -msgstr "El release tiene las siguientes propiedades:" - -#: ../../docs/guidance/map/related_processes.md:279 -msgid "The `tag` is set to 'tender'." -msgstr "El `tag` es establecido a 'tender'." - -#: ../../docs/guidance/map/related_processes.md:280 -msgid "" -"The tender section includes details about the competition, and " -"`tender.competitive` is set to `true`." -msgstr "" -"La sección de licitación incluye detalles sobre la competencia, y " -"`tender.competitive` es establecido a `true`." - -#: ../../docs/guidance/map/related_processes.md:281 -msgid "" -"Since this new contracting process has a single buyer, the `buyer` is set to" -" Servicio Local de Educación Pública Puerto Cordillera." -msgstr "" -"Dado que este nuevo proceso de contratación tiene un solo comprador, el " -"`buyer` se establece en el Servicio Local de Educación Pública Puerto " -"Cordillera." - -#: ../../docs/guidance/map/related_processes.md:291 -msgid "" -"Following the invitation to participate in the second-stage competition, " -"Servicio Local de Educación Pública Puerto Cordillera awards a contract to " -"Comercializadora e Importadora Grupo RAVC SPA." -msgstr "" -"Tras la invitación para participar en la segunda etapa competitiva, el " -"Servicio Local de Educación Pública Puerto Cordillera adjudica un contrato a" -" Comercializadora e Importadora Grupo RAVC SPA." - -#: ../../docs/guidance/map/related_processes.md:295 -msgid "" -"The same `ocid` as the invitation to participate in the second-stage " -"competition is used." -msgstr "" -"El mismo `ocid` que la invitación a participar en la segunda etapa " -"competitiva es usado." - -#: ../../docs/guidance/map/related_processes.md:297 -msgid "The `tag` is set to 'award' and 'contract'." -msgstr "El `tag` es establecido a 'award' y 'contract'." - -#: ../../docs/guidance/map/related_processes.md:298 -msgid "The `tender.status` is updated to 'complete'." -msgstr "El `tender.status` es actualizado a 'complete'." - -#: ../../docs/guidance/map/related_processes.md:301 -msgid "" -"The `awards.suppliers` and `parties` fields are populated with the details " -"of the supplier." -msgstr "" -"Los campos `awards.suppliers` y `parties` son completados con los detalles " -"del proveedor adjudicado." diff --git a/docs/locale/es/LC_MESSAGES/guidance/publish/quality.po b/docs/locale/es/LC_MESSAGES/guidance/publish/quality.po index 6edc64af1..a4d78a412 100644 --- a/docs/locale/es/LC_MESSAGES/guidance/publish/quality.po +++ b/docs/locale/es/LC_MESSAGES/guidance/publish/quality.po @@ -234,8 +234,8 @@ msgstr "" #: ../../docs/guidance/publish/quality.md:39 msgid "" -"**Parity**: For each publisher, for the _time period_ and _contracting " -"authorities_ covered by the data, there isn’t another dataset by the same " +"**Parity**: For each publisher, for the _time period_ and _buyers_ " +"covered by the data, there isn’t another dataset by the same " "publisher that covers more than 25% more contracting processes." msgstr "" "**Paridad**: Por cada publicador, para el _período de tiempo_ y _autoridades" @@ -319,7 +319,7 @@ msgstr "" #: ../../docs/guidance/publish/quality.md:54 msgid "" -"Increase the number of contracting authorities covered in the publication" +"Increase the number of buyers covered in the publication" msgstr "" "Incrementar el número de autoridades de contratación cubiertas en la " "publicación" diff --git a/docs/locale/fr/LC_MESSAGES/guidance/index.po b/docs/locale/fr/LC_MESSAGES/guidance/index.po index 736c5359a..21f566677 100644 --- a/docs/locale/fr/LC_MESSAGES/guidance/index.po +++ b/docs/locale/fr/LC_MESSAGES/guidance/index.po @@ -46,7 +46,7 @@ msgstr "" #: ../../docs/guidance/index.md:9 msgid "" "Use the [OCDS Implementation Checklist](https://www.open-" -"contracting.org/resources/ocds-implementation-checklist) to keep track of " +"contracting.org/resources/ocds-implementation-checklist/) to keep track of " "your progress." msgstr "" diff --git a/docs/locale/fr/LC_MESSAGES/guidance/map/framework_agreements.po b/docs/locale/fr/LC_MESSAGES/guidance/map/framework_agreements.po index f99dde78a..b23300c02 100644 --- a/docs/locale/fr/LC_MESSAGES/guidance/map/framework_agreements.po +++ b/docs/locale/fr/LC_MESSAGES/guidance/map/framework_agreements.po @@ -719,7 +719,7 @@ msgid "" "The framework agreement is open, since all the framework agreements in Chile" " involve the setting up of a dynamic purchasing system. The framework " "agreement is for multiple buyers, since the tender notice specifies two " -"contracting authorities." +"buyers." msgstr "" #: ../../docs/guidance/map/framework_agreements.md:233 diff --git a/docs/locale/fr/LC_MESSAGES/guidance/map/related_processes.po b/docs/locale/fr/LC_MESSAGES/guidance/map/related_processes.po deleted file mode 100644 index 151be3dd8..000000000 --- a/docs/locale/fr/LC_MESSAGES/guidance/map/related_processes.po +++ /dev/null @@ -1,868 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) Open Contracting Partnership -# This file is distributed under the same license as the Open Contracting Data Standard package. -# FIRST AUTHOR , YEAR. -# -# Translators: -# Colin Maudry , 2020 -# James McKinney, 2020 -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Open Contracting Data Standard 1.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-07-30 00:08-0400\n" -"PO-Revision-Date: 2020-06-29 22:59+0000\n" -"Last-Translator: James McKinney, 2020\n" -"Language-Team: French (https://www.transifex.com/open-contracting-partnership-1/teams/112300/fr/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" - -#: ../../docs/guidance/map/related_processes.md:1 -msgid "Framework agreements and related processes" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:1 -msgid "" -"In this guidance we defer to the definitions given in the [UNCITRAL Model " -"Law on Public Procurement " -"(2011)](https://uncitral.un.org/en/texts/procurement/modellaw/public_procurement)." -" The model law was developed through extensive consultation and reflects the" -" procurement practices and concepts used in many different jurisdictions." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:7 -msgid "The UNCITRAL model law defines a framework agreement procedure as:" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:9 -msgid "" -"Procedure conducted in two stages: a first stage to select a supplier (or " -"suppliers) or a contractor (or contractors) to be a party (or parties) to a " -"framework agreement with a procuring entity, and a second stage to award a " -"procurement contract under the framework agreement to a supplier or " -"contractor party to the framework agreement." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:11 -msgid "" -"In OCDS terms, a framework agreement procedure is a procedure involving at " -"least one framework agreement. A framework agreement is defined in UNCITRAL " -"as:" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:13 -msgid "" -"Agreement between the procuring entity and the selected supplier (or " -"suppliers) or contractor (or contractors) concluded upon completion of the " -"first stage of the framework agreement procedure." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:15 -msgid "" -"In OCDS we treat “contractors” and “suppliers” as synonyms. One or more " -"buyers and one or more suppliers can participate in a framework agreement." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:17 -msgid "A procurement contract is defined in UNCITRAL as:" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:19 -msgid "" -"Contract concluded between the procuring entity and a supplier (or " -"suppliers) or a contractor (or contractors) at the end of the procurement " -"proceedings." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:21 -msgid "Framework agreements can be **open** or **closed**:" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:23 -msgid "**Closed framework agreement**" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:25 -msgid "" -"Framework agreement to which no supplier or contractor that is not initially" -" a party to the framework agreement may subsequently become a party." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:27 -msgid "**Open framework agreement**" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:29 -msgid "" -"Framework agreement to which a supplier (or suppliers) or a contractor (or " -"contractors) in addition to the initial parties may subsequently become a " -"party or parties." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:31 -msgid "" -"Procurement systems which provide for closed framework agreements include " -"the EU (Framework Agreements, per Directive 2014/24/EU, Article 33) and the " -"US federal system (Indefinite-delivery contracts, per Federal Acquisition " -"Regulation, Subpart 16.5). An example of a procurement system which provides" -" for open framework agreements is the EU (Dynamic Purchasing Systems, per " -"Directive 2014/24/EU, Article 33)." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:33 -msgid "" -"Framework agreement procedures can involve second-stage competition, or not:" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:35 -msgid "**Framework agreement procedure with second-stage competition**" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:37 -msgid "" -"Procedure under an open framework agreement or a closed framework agreement " -"with more than one supplier or contractor in which certain terms and " -"conditions of the procurement that cannot be established with sufficient " -"precision when the framework agreement is concluded are to be established or" -" refined through a second-stage competition." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:39 -msgid "**Framework agreement procedure without second-stage competition**" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:41 -msgid "" -"Procedure under a closed framework agreement in which all terms and " -"conditions of the procurement are established when the framework agreement " -"is concluded." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:43 -msgid "" -"Competition at the second stage is limited to suppliers that are party to " -"the framework agreement. Framework agreement procedures can include a mix of" -" competitive and non-competitive second stages." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:45 -msgid "" -"The second stage of a framework agreement procedure is also known as a " -"“call-off.” Non-competitive second stages are also known as “direct call-" -"offs.” Competitive second stages are also known as “mini-competitions.”" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:47 -msgid "" -"![Types of framework " -"agreement](../../_static/png/framework_agreement/types.png)" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:49 -msgid "Modelling framework agreements in OCDS" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:51 -msgid "" -"In OCDS, a contracting process brings together, under a single identifier, " -"the information that users need to answer questions such as:" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:53 -msgid "Was a contract signed as a result of this tender?" -msgstr "Un contrat a-t-il été signé à la suite de cette appel d'offres ?" - -#: ../../docs/guidance/map/related_processes.md:54 -msgid "What was the total value of spending that resulted from this award?" -msgstr "" -"Quelle a été la valeur totale des dépenses découlant de cette attribution ?" - -#: ../../docs/guidance/map/related_processes.md:55 -msgid "Was a renewal of this contract signed?" -msgstr "Le renouvellement de ce contrat a-t-il été signé ?" - -#: ../../docs/guidance/map/related_processes.md:57 -msgid "" -"In some cases, complex contracting processes cannot be represented under a " -"single identifier under OCDS' model, because:" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:59 -msgid "" -"There are multiple competitive stages: for example, when a framework " -"agreement involves second-stage competitions." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:60 -msgid "" -"The procurement systems used at different stages of the process are managed " -"by different bodies, and cannot be integrated." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:62 -msgid "" -"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." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:64 -msgid "" -"The following diagram shows how OCDS models a framework agreement procedure " -"with two second stages: one with competition and one without competition. " -"Grey blocks represent unused sections of the OCDS schema." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:66 -msgid "" -"![OCDS framework agreement " -"model](../../_static/png/framework_agreement/model.png)" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:68 -#: ../../docs/guidance/map/related_processes.md:150 -msgid "" -"The `tender.competitive` field, from the [Competitive](https://extensions" -".open-contracting.org/en/extensions/competitive/master/) extension, is used " -"to indicate whether the second stage involves competition." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:70 -msgid "" -"The following guidance describes how to model the different stages of a " -"framework agreement procedure in OCDS." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:72 -msgid "" -"Invitation to participate in the first stage of a framework agreement " -"procedure" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:74 -msgid "Create a release and add 'tender' to the `tag` array" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:75 -msgid "" -"For each buyer that will participate in the framework agreement, add an " -"`Organization` object to the `parties` array, add 'buyer' to its `.roles`, " -"and populate its other fields." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:76 -msgid "" -"If all potential buyers can participate, don't add them to the `parties` " -"array. Instead, add a note in the [publication policy](../publish) to " -"explain how users should interpret a contracting process with no buyers." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:77 -msgid "" -"If a single buyer will participate in the framework agreement, set the " -"`buyer.id` and `buyer.name` to match the buyer's object in the `parties` " -"array. Otherwise, don't populate `buyer`." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:78 -msgid "In the `tender` section, set:" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:79 -msgid "`tender.techniques.hasFrameworkAgreement` to `true`." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:80 -msgid "`tender.contractPeriod` to the duration of the framework agreement." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:81 -msgid "" -"If the framework agreement is closed, set `tender.tenderPeriod.endDate` to " -"the deadline for responses to the invitation." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:82 -msgid "" -"If the framework agreement is open, set `tender.tenderPeriod.endDate` to the" -" last date that new suppliers can be added." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:84 -msgid "Setting procurement method" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:86 -msgid "" -"The `tender.procurementMethod` field uses the [method " -"codelist](../../schema/codelists.md#method) to describe the competitive " -"conditions of the framework agreement procedure as a whole, not only the " -"first stage." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:88 -msgid "Use the following criteria to determine the procurement method:" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:90 -msgid "" -"If the contracting process will establish a framework agreement with a " -"single supplier and if there are no conditions to participate in the " -"contracting process, set `tender.procurementMethod` to 'open'." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:91 -msgid "" -"If the contracting process limits the suppliers that can submit a request to" -" participate in the framework agreement, set `tender.procurementMethod` to " -"'limited'." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:92 -msgid "Otherwise, set `tender.procurementMethod` to 'selective'." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:94 -msgid "Addition of a supplier to a framework agreement" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:96 -msgid "" -"Create a release with the **same** `ocid` as the tender release and add " -"'award' to the `tag` array" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:97 -msgid "Add an `Award` object to the `awards` array." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:98 -msgid "For each supplier:" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:99 -#: ../../docs/guidance/map/related_processes.md:142 -msgid "" -"Add an `Organization` object to the `parties` array, add 'supplier' to its " -"`.roles` and populate its other fields." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:100 -msgid "" -"Add an `OrganizationReference` object to the award's `.suppliers` array, and" -" set its `.id` and `.name` to match the supplier's object in the `parties` " -"array." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:101 -msgid "" -"If no further suppliers will be added to the framework agreement, set " -"`tender.status` to 'complete'." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:103 -#: ../../docs/guidance/map/related_processes.md:206 -msgid "Award of a procurement contract without second-stage competition" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:105 -msgid "" -"Create a release with a **new** `ocid` and add 'award' and 'contract' to the" -" `tag`" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:106 -#: ../../docs/guidance/map/related_processes.md:114 -msgid "" -"[Relate the second stage to the first stage](#relate-the-second-stage-to-" -"the-first-stage)" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:107 -#: ../../docs/guidance/map/related_processes.md:115 -msgid "[Add a buyer](#add-a-buyer)" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:108 -msgid "" -"Set `tender.id` to the `award.id`, set `tender.competitive` to `false`, and " -"set `tender.procuringEntity` if appropriate" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:109 -#: ../../docs/guidance/map/related_processes.md:121 -msgid "" -"[Add an award, contract and supplier](#add-an-award-contract-and-supplier)" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:111 -#: ../../docs/guidance/map/related_processes.md:271 -msgid "Invitation to participate in a second-stage competition" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:113 -msgid "" -"Create a release with a **new** `ocid` and add 'tender' to the `.tag` array" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:116 -msgid "" -"Populate the `tender` section, setting `tender.procurementMethod` to the " -"same value as in the first stage" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:118 -#: ../../docs/guidance/map/related_processes.md:289 -msgid "" -"Award of a procurement contract resulting from a second-stage competition" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:120 -msgid "" -"Create a release with the **same** `ocid` as the tender release *for the " -"second stage*, and add 'award' and 'contract' to the `tag`" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:123 -msgid "Updating the contract value, period or items" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:125 -msgid "" -"If the initial contract value, period or items are subsequently updated, " -"populate the contract's `.value`, `.period` and `.items` with the updated " -"values." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:127 -msgid "Common operations" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:129 -msgid "Relate the second stage to the first stage" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:131 -msgid "" -"Add a `RelatedProcess` object to the `relatedProcesses` array, set its `.id`" -" (to '1', for example), add 'framework' to its `.relationship` array, set " -"its `.scheme` to 'ocid' and set its `.identifier` to the `ocid` of the " -"invitation to participate in the framework agreement." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:133 -msgid "Add a buyer" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:135 -msgid "" -"Add an `Organization` object to the `parties` array, add 'buyer' to its " -"`.roles` and populate its other fields with the details of the buyer for " -"this specific contract." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:136 -msgid "" -"Set `buyer.id` and `buyer.name` to match the buyer's object in the `parties`" -" array." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:138 -msgid "Add an award, contract and supplier" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:140 -msgid "" -"Add an `Award` object to the `awards` array and a `Contract` object to the " -"`contracts` array." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:141 -msgid "Set the award's `.id` and the contract's `.id` to the same value." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:143 -msgid "" -"Add an `OrganizationReference` object to the award's `.suppliers` array and " -"set `.id` and `.name` to match the supplier's object in the `parties` array." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:144 -msgid "" -"Populate the award's `.value`, `.contractPeriod` and `.items` with the " -"initial contract value, period and items." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:146 -msgid "Extensions" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:148 -msgid "" -"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. More information on the nature of the framework " -"agreement can be provided via the `tender.techniques.frameworkAgreement` " -"object." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:152 -msgid "The two extensions should be declared in the package metadata:" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:158 -msgid "Worked examples" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:160 -msgid "" -"The following examples show how to model two framework agreements, covering " -"a range of characteristics:" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:162 -msgid "" -"A closed framework agreement established for a single buyer, with a single " -"supplier and **without** second-stage competition" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:163 -msgid "" -"A open framework agreement established for multiple buyers, with multiple " -"suppliers and **with** second-stage competition" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:165 -msgid "" -"Closed framework agreement with single buyer, single supplier and without " -"second-stage competition" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:167 -msgid "" -"NHS National Services Scotland (NSS) wants to establish a framework " -"agreement for the receipt, storage and distribution of seasonal influenza " -"vaccines to general practitioner practices, social care premises, vaccine " -"holding centres and community pharmacies across NHS Scotland." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:169 -#: ../../docs/guidance/map/related_processes.md:233 -msgid "Invitation to participate in the first stage" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:171 -msgid "" -"NSS issues a [contract " -"notice](https://ted.europa.eu/udl?uri=TED:NOTICE:478648-2019:TEXT:EN:HTML) " -"(tender notice), inviting suppliers to participate in the framework " -"agreement. The tender notice specifies that the framework agreement is with " -"a single operator. The framework agreement is not open, since the tender " -"notice does not specify that the procurement involves the setting up of a " -"dynamic purchasing system. The framework agreement is for a single buyer, " -"since the tender notice specifies only one contracting authority." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:173 -#: ../../docs/guidance/map/related_processes.md:237 -msgid "" -"The notice is modelled as an OCDS release with a `tag` of 'tender' and the " -"following properties:" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:175 -#: ../../docs/guidance/map/related_processes.md:239 -msgid "The techniques extension is declared in the package metadata." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:176 -#: ../../docs/guidance/map/related_processes.md:240 -msgid "" -"Since this contracting process is for the set-up of a framework agreement, " -"`tender.techniques.hasFrameworkAgreement` is set to `true`." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:177 -msgid "" -"Since the framework agreement will be concluded with a single supplier and " -"since any supplier is able to submit a response to the invitation to " -"participate, `tender.procurementMethod` is set to 'open'." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:178 -msgid "" -"Since the framework agreement is closed, `tender.tenderPeriod` is set to the" -" deadline for responses to the invitation to participate." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:179 -msgid "" -"Since there is only one buyer, `buyer` is set to reference the buyer's " -"object in the `parties` array." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:187 -#: ../../docs/guidance/map/related_processes.md:252 -msgid "Adding a supplier to the framework agreement" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:189 -msgid "" -"NSS issues a [contract award " -"notice](https://ted.europa.eu/udl?uri=TED:NOTICE:268595-2020:TEXT:EN:HTML&src=0)" -" to announce that the framework agreement has been concluded with a single " -"supplier, Movianto UK." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:191 -#: ../../docs/guidance/map/related_processes.md:256 -msgid "" -"The notice is modelled as an OCDS release with the same `ocid` as the " -"previous release, a `tag` of 'award', and the following properties:" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:193 -msgid "" -"Since no further suppliers will be added to the framework agreement, " -"`tender.status` is set to 'complete'." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:194 -#: ../../docs/guidance/map/related_processes.md:259 -msgid "An `Award` object is added to the `awards` array." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:195 -msgid "" -"An `Organization` object is added to the `parties` array with the supplier's" -" details." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:196 -msgid "" -"An `OrganizationReference` object is added to award's `.suppliers` array to " -"reference the supplier's object in the `parties` array." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:204 -msgid "" -"The first stage of the framework agreement procedure is complete and NSS can" -" now purchase services from the supplier." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:208 -msgid "" -"NSS uses the framework agreement to place an order for the supplier to " -"receive and store ten pallets of seasonal flu vaccine. Under the terms of " -"the agreement the cost for this service is £10,000." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:210 -msgid "" -"The order represents the award of a procurement contract at the second stage" -" of the framework agreement procedure." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:212 -msgid "" -"Because there was no competition at the second stage, the new contracting " -"process has only one release, with a `tag` of 'award' and 'contract'. The " -"release has the following properties:" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:214 -#: ../../docs/guidance/map/related_processes.md:277 -msgid "A new `ocid` is used." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:215 -#: ../../docs/guidance/map/related_processes.md:278 -#: ../../docs/guidance/map/related_processes.md:296 -msgid "" -"The `relatedProcesses` section is populated with a reference to the " -"contracting process for the first stage." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:216 -msgid "" -"A minimal `tender` section sets `tender.id` and sets `tender.competitive` to" -" `false`." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:217 -#: ../../docs/guidance/map/related_processes.md:299 -msgid "" -"The `awards` section is populated with the initial contract value, period " -"and items." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:218 -#: ../../docs/guidance/map/related_processes.md:300 -msgid "The `contracts` section is populated and linked to the award." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:219 -msgid "" -"The `buyer`, `tender.procuringEntity`, `awards.suppliers` and `parties` " -"fields are populated with the details of the buyer, procuring entity and " -"supplier." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:227 -msgid "" -"Each additional purchase made under the framework agreement is represented " -"by a new contracting process with a new `ocid`." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:229 -msgid "" -"Open framework agreement with multiple buyers, with multiple suppliers and " -"with second-stage competition" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:231 -msgid "" -"The National Procurement Agency in Chile (Chile Compra) wants to establish a" -" framework agreement for the purchase of office supplies, including paper " -"and stationery items for the different public entities across Chile." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:235 -msgid "" -"Chile Compra publishes a [tender " -"notice](https://www.mercadopublico.cl/Procurement/Modules/RFB/DetailsAcquisition.aspx?qs=TLr0Si6+0YXBLbyobaRgPQ==)" -" inviting suppliers to participate in the framework agreement. The tender " -"notice specifies that multiple suppliers can join the framework agreement. " -"The framework agreement is open, since all the framework agreements in Chile" -" involve the setting up of a dynamic purchasing system. The framework " -"agreement is for multiple buyers, since the tender notice specifies two " -"contracting authorities." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:241 -msgid "" -"Since the framework agreement will be concluded with multiple suppliers and " -"will involve second-stage competition, `tender.procurementMethod` is set to " -"'selective'." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:242 -msgid "" -"Since the framework agreement is open, `tender.tenderPeriod` is set to the " -"end of the framework agreement." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:243 -msgid "" -"Since there are two buyers, the 'buyer' object is not set, and the buyers " -"are declared in the `parties` array." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:244 -msgid "" -"Since Chile Compra is the entity that manages the contracting process, " -"`tender.procuringEntity` is set to reference Chile Compra's object in the " -"`parties` array." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:254 -msgid "" -"Chile Compra issues an [award " -"notice](https://www.mercadopublico.cl/Procurement/Modules/RFB/StepsProcessAward/PreviewAwardAct.aspx?qs=TLr0Si6+0YXBLbyobaRgPQ==)" -" to announce that the framework agreement has been awarded to two suppliers:" -" Rodrigo Alejandro Vidal Campos and Comercializadora e Importadora Grupo " -"RAVC SPA." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:258 -msgid "" -"Since other suppliers are still able to submit a request to participate in " -"the framework agreement, no change is made to `tender.status`." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:260 -msgid "" -"An `Organization` object is added to the `parties` array for each supplier " -"with its details." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:261 -msgid "" -"An `OrganizationReference` object is added to the award's `.suppliers` array" -" for each supplier to reference its object in the `parties` array." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:269 -msgid "" -"The framework is now established, and both buyers can now purchase items " -"from the suppliers." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:273 -msgid "" -"Servicio Local de Educación Pública Puerto Cordillera publishes a [tender " -"notice](https://www.mercadopublico.cl/CMII/Tienda/frm_GCV2_Ficha.aspx?IURL=uPteMZpbYBeM$07gdm9g$08EFecMSuZM0euS4Z$07cbeFMX_05ohEOMPbeteMZpbYBeM)," -" inviting suppliers on the framework agreement to bid to supply 200 pencils." -" This represents an invitation to participate in a second-stage competition." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:275 -#: ../../docs/guidance/map/related_processes.md:293 -msgid "The release has the following properties:" -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:279 -msgid "The `tag` is set to 'tender'." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:280 -msgid "" -"The tender section includes details about the competition, and " -"`tender.competitive` is set to `true`." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:281 -msgid "" -"Since this new contracting process has a single buyer, the `buyer` is set to" -" Servicio Local de Educación Pública Puerto Cordillera." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:291 -msgid "" -"Following the invitation to participate in the second-stage competition, " -"Servicio Local de Educación Pública Puerto Cordillera awards a contract to " -"Comercializadora e Importadora Grupo RAVC SPA." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:295 -msgid "" -"The same `ocid` as the invitation to participate in the second-stage " -"competition is used." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:297 -msgid "The `tag` is set to 'award' and 'contract'." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:298 -msgid "The `tender.status` is updated to 'complete'." -msgstr "" - -#: ../../docs/guidance/map/related_processes.md:301 -msgid "" -"The `awards.suppliers` and `parties` fields are populated with the details " -"of the supplier." -msgstr "" diff --git a/docs/locale/fr/LC_MESSAGES/guidance/publish/quality.po b/docs/locale/fr/LC_MESSAGES/guidance/publish/quality.po index 246597117..161e8b05d 100644 --- a/docs/locale/fr/LC_MESSAGES/guidance/publish/quality.po +++ b/docs/locale/fr/LC_MESSAGES/guidance/publish/quality.po @@ -175,8 +175,8 @@ msgstr "" #: ../../docs/guidance/publish/quality.md:39 msgid "" -"**Parity**: For each publisher, for the _time period_ and _contracting " -"authorities_ covered by the data, there isn’t another dataset by the same " +"**Parity**: For each publisher, for the _time period_ and _buyers_ " +"covered by the data, there isn’t another dataset by the same " "publisher that covers more than 25% more contracting processes." msgstr "" @@ -234,7 +234,7 @@ msgstr "" #: ../../docs/guidance/publish/quality.md:54 msgid "" -"Increase the number of contracting authorities covered in the publication" +"Increase the number of buyers covered in the publication" msgstr "" #: ../../docs/guidance/publish/quality.md:55 diff --git a/docs/schema/conformance_and_extensions.md b/docs/schema/conformance_and_extensions.md index 36c434e84..f414f2a54 100644 --- a/docs/schema/conformance_and_extensions.md +++ b/docs/schema/conformance_and_extensions.md @@ -19,12 +19,8 @@ Whenever using terms from outside the OCDS standard, we encourage the publisher ## Extensions -If you have additional fields which cannot be mapped to the OCDS schema or an existing extension, you should include these in your OCDS data and [create a new extension](../guidance/map/extensions) to document their structure and meaning. +If you have additional fields which cannot be mapped to the OCDS schema or an existing extension, you should include these in your OCDS data and [create a new extension](../guidance/map/extensions) to document their structure and meaning. Extensions ought to be documented and shared so that other publishers and users can draw upon them, and so that extensions can be considered for inclusion in a future version of the standard. The [Extension Explorer](../guidance/map/extensions) publishes details of known extensions. -Extensions to the standard can add new objects and fields to accommodate specific local requirements. An extension must not be created if it is possible to use existing terms from the standard. +Extensions to the standard can add new objects and fields to accommodate specific local requirements. An extension must not be created if it is possible to use existing terms from the standard. It must be possible to access an extension's schema and codelist files by replacing `extension.json` in the extension's URL with a file's path, e.g. `release-schema.json` or `codelists/codelist.csv`. For more information, refer to the Extension Explorer's [guidance on documenting extensions](https://extensions.open-contracting.org/en/publishers/#document). -Extensions ought to be documented and shared so that other publishers and users can draw upon them, and so that extensions can be considered for inclusion in a future version of the standard. - -The [Extension Explorer](../guidance/map/extensions) publishes details of known extensions. - -The schema for the standard by default allows for new fields, and does not fail validation of a file which contains unknown fields. +The schema for the standard by default allows for new fields, and does not fail validation of a file which contains unknown fields. diff --git a/docs/schema/reference.md b/docs/schema/reference.md index 49364cda2..8cff313b8 100644 --- a/docs/schema/reference.md +++ b/docs/schema/reference.md @@ -135,7 +135,7 @@ The planning section is used in a planning process. This includes information ab ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/Planning -:collapse: budget,documents,milestones +:collapse: budget,project,documents,milestones ``` ```{extensionlist} The following extensions are available for planning @@ -168,6 +168,26 @@ Apart from documents, the majority of planning information is held within the bu :list: budget ``` +#### Project + +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/planning/project +:title: project +``` +```` + +```{jsonschema} ../../build/current_lang/release-schema.json +:pointer: /definitions/Project +:collapse: totalValue,additionalClassifications,locations +``` + +```{extensionlist} The following extensions are available for project +:list: +``` + ### Tender 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. @@ -534,12 +554,6 @@ The items block is used to list the line-items associated with a tender, award o #### Unit -The `unit` block allows detailed specification of the parameters and price of units that make up a line-item. - -If the [Quantities, Units, Dimensions and Data Types Ontologies](https://www.qudt.org) unit classification scheme is used, then publishers can use its CamelCase unit names, such as "SquareMile", in the `unit.name` field. - -Other unit classification schemes can be used, including those in the [unitClassificationScheme codelist](codelists.md#unit-classification-scheme). - ````{admonition} Example :class: hint @@ -555,6 +569,22 @@ Other unit classification schemes can be used, including those in the [unitClass :collapse: value ``` +#### ImmediateContainer + +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/tender/items/1 +:expand: immediateContainer +:title: immediateContainer +``` +```` + +```{jsonschema} ../../build/current_lang/release-schema.json +:pointer: /definitions/Item/properties/immediateContainer +``` + ### Classification ````{admonition} Example @@ -668,7 +698,18 @@ As well as providing this machine-readable link between processes, publishers ma ### Location -The [Location](https://extensions.open-contracting.org/en/extensions/location/v1.1.4/) extension can be used to provide location information. +````{admonition} Example +:class: hint + +```{jsoninclude} ../examples/release_schema_reference/release_package.json +:jsonpointer: /releases/0/planning/project/locations/0 +:title: location +``` +```` + +```{jsonschema} ../../build/current_lang/release-schema.json +:pointer: /definitions/Location +``` ### Link @@ -681,6 +722,15 @@ The entries of the top-level `links` array are `Link` objects: :pointer: /definitions/Link ``` +### Quantity + +```{field-description} ../../build/current_lang/release-schema.json /definitions/Quantity +``` + +```{jsonschema} ../../build/current_lang/release-schema.json +:pointer: /definitions/Quantity +``` + ### SimpleIdentifier ```{field-description} ../../build/current_lang/release-schema.json /definitions/SimpleIdentifier @@ -689,3 +739,12 @@ The entries of the top-level `links` array are `Link` objects: ```{jsonschema} ../../build/current_lang/release-schema.json :pointer: /definitions/SimpleIdentifier ``` + +### SimpleUnit + +```{field-description} ../../build/current_lang/release-schema.json /definitions/SimpleUnit +``` + +```{jsonschema} ../../build/current_lang/release-schema.json +:pointer: /definitions/SimpleUnit +``` diff --git a/manage.py b/manage.py index 6b018148f..117fa426d 100755 --- a/manage.py +++ b/manage.py @@ -228,7 +228,11 @@ def _add_versioned(schema, unversioned_pointers, pointer, key, value): types = coerce_to_list(value, 'type') # If a type is unrecognized, we might need to update this script. - if '$ref' not in value and types not in recognized_types: + if ( + '$ref' not in value + and types not in recognized_types + and not (pointer == '/definitions/Quantity/properties/value' and types == ['string', 'number', 'null']) + ): warnings.warn(f'{pointer} has unrecognized type {types}') # For example, if $ref is used. @@ -519,7 +523,7 @@ def pre_commit(): """ nonmultilingual = { # Identifiers. - 'amendsReleaseID', 'id', 'identifier', 'ocid', 'relatedItems', 'releaseID', + 'amendsReleaseID', 'id', 'identifier', 'identifiers', 'ocid', 'relatedItems', 'releaseID', # Missing format properties. https://github.com/open-contracting/standard/issues/881 'email', # Published-defined formats. @@ -532,6 +536,7 @@ def pre_commit(): jsonref_release_schema = json_load('release-schema.json', jsonref, merge_props=True) counts = defaultdict(list) + nonstring = ('boolean', 'integer', 'number', 'object') for field in get_schema_fields(jsonref_release_schema): name = field.path_components[-1] # Skip definitions (output dereferenced properties only). Skip deprecated fields. @@ -539,7 +544,8 @@ def pre_commit(): continue multilingual = ( # If a field can be a non-string, it is not multilingual. - not any(t in field.schema['type'] for t in ('boolean', 'integer', 'number', 'object')) + not any(t in field.schema['type'] for t in nonstring) + and ('array' not in field.schema['type'] or not any(t in field.schema['items']['type'] for t in nonstring)) # If a field's value is constrained to a codelist or format, it is not multilingual. and not any(prop in field.schema for prop in ('codelist', 'format')) # If an array can contain non-strings, it is not multilingual. @@ -549,14 +555,16 @@ def pre_commit(): ) field.sep = '/' if name in counts and bool(counts[name]) ^ multilingual: - if multilingual: + if not multilingual and field.schema['type'] == 'object': + click.secho(f'{field.path} is an object. {" & ".join(counts[name])} is/are multilingual.', fg='yellow') + elif multilingual: raise Exception(f'{name} is multilingual at {field.path}, but not elsewhere') else: raise Exception(f'{name} is multilingual at {" & ".join(counts[name])}, but not at {field.path}') if multilingual: counts[name].append(field.path) else: - counts[name] = [] + counts[name] = counts[name] bulletlist = [ '% STARTLIST', diff --git a/schema/codelists/classificationScheme.csv b/schema/codelists/classificationScheme.csv index 2aca73f40..4ab61ec8a 100644 --- a/schema/codelists/classificationScheme.csv +++ b/schema/codelists/classificationScheme.csv @@ -18,5 +18,7 @@ sdg,Sustainable Development Goals,"The Sustainable Development Goals are a colle sdgTarget,Sustainable Development Goal Targets,The Sustainable Development Goal Targets are specific targets for each Sustainable Development Goal.,https://unstats.un.org/sdgs/indicators/indicators-list/,tender TED_CA_TYPE,EU Type of contracting authority (TED schema),The types of contracting authority within the domain of public procurement according to the legislation of the European Parliament. This scheme's codes match those in TED schema.,https://simap.ted.europa.eu/documents/10184/99173/EN_F01.pdf,organization TED_CE_ACTIVITY,EU Main activity of contracting entity (TED schema),The main activity of the contracting entity within the domain of public procurement according to the legislation of the European Parliament. This scheme's codes match those in TED schema.,https://simap.ted.europa.eu/documents/10184/99173/EN_F04.pdf,organization -eu-buyer-contracting-type,EU Buyer contracting entity type,Whether or not the buyer is a contracting entity within the domain of public procurement according to the legislation of the European Parliament.,https://docs.ted.europa.eu/eforms/latest/reference/code-lists/buyer-contracting-type.html,organization +eu-buyer-contracting-type,EU Buyer contracting entity type (eForms),Whether or not the buyer is a contracting entity within the domain of public procurement according to the legislation of the European Parliament.,https://docs.ted.europa.eu/eforms/latest/reference/code-lists/buyer-contracting-type.html,organization eu-main-activity,EU Main activity authority list (eForms),The main activity of the contracting entity within the domain of public procurement according to the legislation of the European Parliament. This scheme's codes match those in eForms.,https://op.europa.eu/en/web/eu-vocabularies/concept-scheme/-/resource?uri=http://publications.europa.eu/resource/authority/main-activity,organization +eu-buyer-legal-type,EU Buyer legal type (eForms),The type of the procuring authority within the domain of public procurement according to the legislation of the European Parliament. This scheme's codes match those in eForms.,https://op.europa.eu/en/web/eu-vocabularies/concept-scheme/-/resource?uri=http://publications.europa.eu/resource/authority/buyer-legal-type,organization +oc4idsProjectSector,OC4IDS Project Sector,Open Contracting for Infrastructure Data Standards Toolkit projectSector codelist,https://standard.open-contracting.org/infrastructure/latest/en/reference/codelists/#projectsector,project diff --git a/schema/codelists/geometryType.csv b/schema/codelists/geometryType.csv new file mode 100644 index 000000000..6706bafdd --- /dev/null +++ b/schema/codelists/geometryType.csv @@ -0,0 +1,7 @@ +Code,Title,Description,Source +Point,Point,The `coordinates` field is a single position.,https://tools.ietf.org/html/rfc7946#section-3.1 +MultiPoint,MultiPoint,The `coordinates` field is an array of positions.,https://tools.ietf.org/html/rfc7946#section-3.1 +LineString,LineString,The `coordinates` field is an array of two or more positions.,https://tools.ietf.org/html/rfc7946#section-3.1 +MultiLineString,MultiLineString,The `coordinates` field is an array of LineString coordinate arrays.,https://tools.ietf.org/html/rfc7946#section-3.1 +Polygon,Polygon,The `coordinates` field is an array of linear ring coordinate arrays.,https://tools.ietf.org/html/rfc7946#section-3.1 +MultiPolygon,MultiPolygon,The `coordinates` field is an array of Polygon coordinate arrays.,https://tools.ietf.org/html/rfc7946#section-3.1 diff --git a/schema/codelists/locationGazetteer.csv b/schema/codelists/locationGazetteer.csv new file mode 100644 index 000000000..fbcc3869c --- /dev/null +++ b/schema/codelists/locationGazetteer.csv @@ -0,0 +1,7 @@ +Category,Code,Title,Description,Source,URI Pattern +Sub-National,NUTS,EU Nomenclature of Territorial Units for Statistics,The Nomenclature of Territorial Units for Statistics (NUTS) was established by Eurostat in order to provide a single uniform breakdown of territorial units for the production of regional statistics for the European Union.,https://ec.europa.eu/eurostat/web/nuts/linked-open-data,http://data.europa.eu/nuts/code/ +National,ISO2,ISO 3166-1 alpha-2,ISO 3166-1 alpha-2 assigns two-letter codes to countries.,https://www.iso.org/iso-3166-country-codes.html, +Universal,GEONAMES,GeoNames,GeoNames assigns numerical identifiers to geographical names.,https://www.geonames.org/,https://www.geonames.org/ +Universal,OSMN,OpenStreetMap node,An OpenStreetMap node defines a point in space.,,https://www.openstreetmap.org/node/ +Universal,OSMW,OpenStreetMap way,"An OpenStreetMap way defines linear features and area boundaries, as an ordered list of nodes.",https://wiki.openstreetmap.org/wiki/Way,https://www.openstreetmap.org/way/ +Universal,OSMR,OpenStreetMap relation,"An OpenStreetMap relation combines nodes, ways, and/or other relations.",https://wiki.openstreetmap.org/wiki/Relation,https://www.openstreetmap.org/relation/ diff --git a/schema/codelists/planningFinalStatus.csv b/schema/codelists/planningFinalStatus.csv new file mode 100644 index 000000000..abdeb88bd --- /dev/null +++ b/schema/codelists/planningFinalStatus.csv @@ -0,0 +1,3 @@ +Code,Title,Description +cancelled,Cancelled,"The planning process was cancelled by the buyer or the procuring entity (for example, because of a change in needs, insufficient funds, or technical or procedural errors) before any contracting process was planned successfully." +unsuccessful,Unsuccessful,"The planning process failed (for example, because stakeholders rejected the proposed purchase) before any contracting process was planned successfully." diff --git a/schema/codelists/unitClassificationScheme.csv b/schema/codelists/unitClassificationScheme.csv index 73229582b..fcd797df2 100644 --- a/schema/codelists/unitClassificationScheme.csv +++ b/schema/codelists/unitClassificationScheme.csv @@ -1,3 +1,3 @@ Code,Title,Description -UNCEFACT,UN/CEFACT Recommendation 20,Use the common code from the latest version of the UN/CEFACT Recommendation 20 list of 'Codes for Units of Measure Used in International Trade'. -QUDT,"Quantities, Units, Dimensions and Data Types Ontologies",Use the [QUDT Code](https://www.qudt.org) value. +UNCEFACT,UN/CEFACT Recommendation 20,"Use the common code from the latest version of the UN/CEFACT Recommendation 20 list of ""Codes for Units of Measure Used in International Trade.""" +QUDT,"Quantities, Units, Dimensions and Data Types Ontologies","Use the unqualified name from the QUDT Units Vocabulary: for example, 'KiloGM'." diff --git a/schema/dereferenced-release-schema.json b/schema/dereferenced-release-schema.json index c258b6cdb..f71c5592f 100644 --- a/schema/dereferenced-release-schema.json +++ b/schema/dereferenced-release-schema.json @@ -515,6 +515,14 @@ "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] } } }, @@ -1038,6 +1046,14 @@ "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] } }, "deprecated": { @@ -1161,7 +1177,7 @@ "properties": { "id": { "title": "Planning ID", - "description": "An identifier for this planning process.", + "description": "An identifier for the planning process.", "type": [ "string", "null" @@ -1545,7 +1561,7 @@ }, "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.", + "description": "The name of the programme of work as it appears in a budget (for example, a national or state budget), of which the future contract(s) will be part or through which it/they will be funded.", "type": [ "string", "null" @@ -1553,7 +1569,7 @@ }, "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.", + "description": "The identifier of the programme of work as it appears in a budget (for example, a national or state budget), of which the future contract(s) will be part or through which it/they will be funded. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", "integer", @@ -1584,463 +1600,1079 @@ } } }, - "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 - }, - "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" + "project": { + "title": "Project", + "description": "Information about the infrastructure or public-private partnership (PPP) project to which the planning process is related.", + "type": "object", + "properties": { + "id": { + "title": "Identifier", + "description": "An externally provided identifier for the project. This can be a URI, an [Open Contracting for Infrastructure Data Standards Toolkit (OC4IDS)](https://standard.open-contracting.org/infrastructure/latest/en/guidance/identifiers/) project identifier, [OCDS for PPPs](https://standard.open-contracting.org/profiles/ppp/latest/en/framework/#i-basic-project-information) project identifier, an identifier from a projects register, or an identifier based on the canonical version of the project's name. Project identifiers should be unique within the scope of the publication.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The name of the project. If a projects register is available, this should be the same as the project's name in that register.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the project.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "totalValue": { + "title": "Total value", + "description": "The total anticipated value of the project over its lifetime.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "The amount as entered into a system or published in a document.", + "type": [ + "number", + "null" + ] }, - "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": { + "amountNet": { + "title": "Net amount", + "description": "The amount excluding all taxes.", "type": [ - "string" + "number", + "null" ] - } - } - } - } - }, - "milestones": { - "title": "Planning milestones", - "description": "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", - "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 (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" - ] - }, - "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 - }, - "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" - ] - } - } - } + "amountGross": { + "title": "Gross amount", + "description": "The amount including all taxes.", + "type": [ + "number", + "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": "The amount as entered into a system or published in a document.", - "type": [ - "number", - "null" - ] - }, - "amountNet": { - "title": "Net amount", - "description": "The amount excluding all taxes.", - "type": [ - "number", - "null" - ] - }, - "amountGross": { - "title": "Gross amount", - "description": "The amount including all taxes.", - "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", + "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 + ] + } + } + }, + "uri": { + "title": "URI", + "description": "The URI of a resource about the project.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "sector": { + "title": "Sector", + "description": "The primary sector to which the project relates. It is recommended to use the scheme 'oc4idsProjectSector' and codes from the [OC4IDS projectSector codelist](https://standard.open-contracting.org/infrastructure/latest/en/reference/codelists/#projectsector).", + "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 + }, + "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" + ] + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ] + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + } + }, + "additionalClassifications": { + "title": "Additional classifications", + "description": "Additional classifications for the project. For example, a sector or strategic framework classification.", + "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 + }, + "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" + ] + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ] + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + } + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 + }, + "locations": { + "title": "Locations", + "description": "Information about the locations where the project takes place.", + "type": "array", + "items": { + "title": "Location", + "description": "A physical or virtual location.", + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The name or description of the location.", + "type": [ + "string", + "null" + ] + }, + "geometry": { + "title": "Geometry", + "description": "The spatial extent of the location, as a [GeoJSON Geometry object](https://www.rfc-editor.org/rfc/rfc7946).", + "type": "object", + "properties": { + "type": { + "title": "Type", + "description": "The type of the GeoJSON Geometry object, from the closed [geometryType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#geometryType) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "geometryType.csv", + "openCodelist": false, + "enum": [ + "Point", + "MultiPoint", + "LineString", + "MultiLineString", + "Polygon", + "MultiPolygon", + null + ] + }, + "coordinates": { + "title": "Coordinates", + "description": "The coordinates of the GeoJSON Geometry object. For example, [longitude, latitude] or [longitude, latitude, elevation] for a Point geometry, using the World Geodetic System 1984 (WGS84, EPSG:4326) with longitude and latitude units of decimal degrees.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "number", + "array" + ] + } + } + } + }, + "gazetteer": { + "title": "Gazetteer", + "description": "Identifiers for the location from a gazetteer (a geographical index or directory).", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The identifier of the gazetteer, from the open [locationGazetter](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#locationGazetter) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "locationGazetteer.csv", + "openCodelist": true + }, + "identifiers": { + "title": "Identifiers", + "description": "One or more location codes taken from the scheme.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + } + } + }, + "uri": { + "title": "URI", + "description": "The URI of a resource about the location.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + } + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 + } + }, + "minProperties": 1 + }, + "finalStatus": { + "title": "Final status", + "description": "The final status of the planning process, using the closed [planningFinalStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#planning-final-status) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "planningFinalStatus.csv", + "openCodelist": false, + "enum": [ + "cancelled", + "unsuccessful", + null + ] + }, + "finalStatusDetails": { + "title": "Final status details", + "description": "Additional details on the final status of the planning process. This field can be used to provide the local name of the final status.", + "type": [ + "string", + "null" + ] + }, + "finalStatusDate": { + "title": "Final status date", + "description": "The date on which the planning process reached its final status.", + "format": "date-time", + "type": [ + "string", + "null" + ] + }, + "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 + }, + "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" + ] + } + } + } + } + }, + "milestones": { + "title": "Planning milestones", + "description": "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", + "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 (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" + ] + }, + "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 + }, + "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" + ] + } + } + } + }, + "uniqueItems": true + }, + "value": { + "title": "Value", + "description": "The payment's value, if the milestone represents a planned payment.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "The amount as entered into a system or published in a document.", + "type": [ + "number", + "null" + ] + }, + "amountNet": { + "title": "Net amount", + "description": "The amount excluding all taxes.", + "type": [ + "number", + "null" + ] + }, + "amountGross": { + "title": "Gross amount", + "description": "The amount including all taxes.", + "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", @@ -2414,6 +3046,15 @@ "null" ] }, + "finalStatusDate": { + "title": "Final status date", + "description": "The date on which the tender reached its final status.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "procuringEntity": { "properties": { "name": { @@ -2789,6 +3430,14 @@ "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] } }, "deprecated": { @@ -3036,13 +3685,13 @@ ] }, "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.", + "title": "Pricing unit", + "description": "The pricing unit. It is recommended to use the unit of measurement in which the goods, services or works are provided (e.g. kilogram, hour), rather than the unit of presentation (e.g. box), because units of measurement are easier to compare and convert than units of presentation. A unit of measurement is a definite magnitude of a quantity, defined and adopted by convention or law, that is used as a standard of measurement for the same kind of quantity. For example, mass, a quantity, can be measured in kilograms, a unit of measurement.", "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.", + "description": "The scheme or codelist from which the identifier for the unit is taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended for a unit of measurement.", "type": [ "string", "null" @@ -3052,7 +3701,7 @@ }, "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.", + "description": "The identifier for the unit, taken from the scheme. Refer to the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find identifiers within schemes.", "type": [ "string", "null" @@ -3060,7 +3709,7 @@ }, "name": { "title": "Name", - "description": "Name of the unit.", + "description": "The name of the unit.", "type": [ "string", "null" @@ -3414,7 +4063,7 @@ }, "uri": { "title": "URI", - "description": "The machine-readable URI for the unit of measure, provided by the scheme.", + "description": "A URI to uniquely identify the unit.", "format": "uri", "type": [ "string", @@ -3422,6 +4071,500 @@ ] } } + }, + "immediateContainer": { + "title": "Immediate container", + "description": "The innermost packaging with which the item is in direct contact. Also known as: presentation, presentation form, package.", + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The common name of the container. For medicine items, it is recommended to use a title from the [immediateContainer](https://extensions.open-contracting.org/en/extensions/medicine/master/codelists/#immediateContainer.csv) codelist in the OCDS [Medicine](https://extensions.open-contracting.org/en/extensions/medicine/master/) extension. For other items, it is recommended to use a title from PackageTypeCodelist in the GS1 [Global Data Synchronisation Network (GDSN)](https://www.gs1.org/standards/gdsn) standard.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "capacity": { + "title": "Capacity", + "description": "The storage capacity of the container.", + "type": "object", + "properties": { + "unit": { + "title": "Unit", + "description": "The unit of measurement for the quantity.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the identifier for the unit of measurement is 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 for the unit of measurement, taken from the scheme. Refer to the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find identifiers within schemes.", + "type": [ + "string", + "null" + ], + "versionId": true, + "minLength": 1 + } + }, + "minProperties": 1 + }, + "value": { + "title": "Value", + "description": "The quantity, as a multiple of the unit of measurement. The quantity is expressed in interval notation, for example: \"[10,10]\" for 10 units, \"[1,10]\" for 1 to 10 units, or \"[10,INF[\" for 10 or more units.", + "type": [ + "string", + "number", + "null" + ], + "pattern": "^[([\\]][0-9]+,([0-9]+|INF)[)[\\]]$" + } + }, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "deliveryLocations": { + "title": "Delivery locations", + "description": "The locations where activity related to the opportunity, contract or license will be delivered.", + "type": "array", + "items": { + "title": "Location", + "description": "A physical or virtual location.", + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The name or description of the location.", + "type": [ + "string", + "null" + ] + }, + "geometry": { + "title": "Geometry", + "description": "The spatial extent of the location, as a [GeoJSON Geometry object](https://www.rfc-editor.org/rfc/rfc7946).", + "type": "object", + "properties": { + "type": { + "title": "Type", + "description": "The type of the GeoJSON Geometry object, from the closed [geometryType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#geometryType) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "geometryType.csv", + "openCodelist": false, + "enum": [ + "Point", + "MultiPoint", + "LineString", + "MultiLineString", + "Polygon", + "MultiPolygon", + null + ] + }, + "coordinates": { + "title": "Coordinates", + "description": "The coordinates of the GeoJSON Geometry object. For example, [longitude, latitude] or [longitude, latitude, elevation] for a Point geometry, using the World Geodetic System 1984 (WGS84, EPSG:4326) with longitude and latitude units of decimal degrees.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "number", + "array" + ] + } + } + } + }, + "gazetteer": { + "title": "Gazetteer", + "description": "Identifiers for the location from a gazetteer (a geographical index or directory).", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The identifier of the gazetteer, from the open [locationGazetter](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#locationGazetter) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "locationGazetteer.csv", + "openCodelist": true + }, + "identifiers": { + "title": "Identifiers", + "description": "One or more location codes taken from the scheme.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + } + } + }, + "uri": { + "title": "URI", + "description": "The URI of a resource about the location.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + } + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 + }, + "deliveryAddresses": { + "title": "Delivery addresses", + "description": "The addresses to which goods or services related to the opportunity, contract or license will be delivered.", + "type": "array", + "items": { + "title": "Address", + "description": "An address.", + "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/#country) 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" + } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] + } + } + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 } } }, @@ -4465,6 +5608,434 @@ } } }, + "deliveryLocations": { + "title": "Delivery locations", + "description": "The locations where activity related to the opportunity will take place.", + "type": "array", + "items": { + "title": "Location", + "description": "A physical or virtual location.", + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The name or description of the location.", + "type": [ + "string", + "null" + ] + }, + "geometry": { + "title": "Geometry", + "description": "The spatial extent of the location, as a [GeoJSON Geometry object](https://www.rfc-editor.org/rfc/rfc7946).", + "type": "object", + "properties": { + "type": { + "title": "Type", + "description": "The type of the GeoJSON Geometry object, from the closed [geometryType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#geometryType) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "geometryType.csv", + "openCodelist": false, + "enum": [ + "Point", + "MultiPoint", + "LineString", + "MultiLineString", + "Polygon", + "MultiPolygon", + null + ] + }, + "coordinates": { + "title": "Coordinates", + "description": "The coordinates of the GeoJSON Geometry object. For example, [longitude, latitude] or [longitude, latitude, elevation] for a Point geometry, using the World Geodetic System 1984 (WGS84, EPSG:4326) with longitude and latitude units of decimal degrees.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "number", + "array" + ] + } + } + } + }, + "gazetteer": { + "title": "Gazetteer", + "description": "Identifiers for the location from a gazetteer (a geographical index or directory).", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The identifier of the gazetteer, from the open [locationGazetter](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#locationGazetter) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "locationGazetteer.csv", + "openCodelist": true + }, + "identifiers": { + "title": "Identifiers", + "description": "One or more location codes taken from the scheme.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + } + } + }, + "uri": { + "title": "URI", + "description": "The URI of a resource about the location.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + } + }, + "wholeListMerge": true, + "uniqueItems": true + }, + "deliveryAddresses": { + "title": "Delivery addresses", + "description": "The addresses to which goods or services related to the opportunity will be delivered.", + "type": "array", + "items": { + "title": "Address", + "description": "An address.", + "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/#country) 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" + } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] + } + } + }, + "wholeListMerge": true, + "uniqueItems": true + }, "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.", @@ -5262,6 +6833,14 @@ "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] } }, "deprecated": { @@ -6363,6 +7942,15 @@ "null" ] }, + "finalStatusDate": { + "title": "Final status date", + "description": "The date on which the award reached its final status.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "date": { "title": "Award date", "description": "The date of the contract award. This is usually the date on which a decision to award was made.", @@ -7798,6 +9386,14 @@ "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] } }, "deprecated": { @@ -8048,13 +9644,13 @@ ] }, "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.", + "title": "Pricing unit", + "description": "The pricing unit. It is recommended to use the unit of measurement in which the goods, services or works are provided (e.g. kilogram, hour), rather than the unit of presentation (e.g. box), because units of measurement are easier to compare and convert than units of presentation. A unit of measurement is a definite magnitude of a quantity, defined and adopted by convention or law, that is used as a standard of measurement for the same kind of quantity. For example, mass, a quantity, can be measured in kilograms, a unit of measurement.", "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.", + "description": "The scheme or codelist from which the identifier for the unit is taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended for a unit of measurement.", "type": [ "string", "null" @@ -8064,7 +9660,7 @@ }, "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.", + "description": "The identifier for the unit, taken from the scheme. Refer to the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find identifiers within schemes.", "type": [ "string", "null" @@ -8072,7 +9668,7 @@ }, "name": { "title": "Name", - "description": "Name of the unit.", + "description": "The name of the unit.", "type": [ "string", "null" @@ -8426,7 +10022,7 @@ }, "uri": { "title": "URI", - "description": "The machine-readable URI for the unit of measure, provided by the scheme.", + "description": "A URI to uniquely identify the unit.", "format": "uri", "type": [ "string", @@ -8434,6 +10030,500 @@ ] } } + }, + "immediateContainer": { + "title": "Immediate container", + "description": "The innermost packaging with which the item is in direct contact. Also known as: presentation, presentation form, package.", + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The common name of the container. For medicine items, it is recommended to use a title from the [immediateContainer](https://extensions.open-contracting.org/en/extensions/medicine/master/codelists/#immediateContainer.csv) codelist in the OCDS [Medicine](https://extensions.open-contracting.org/en/extensions/medicine/master/) extension. For other items, it is recommended to use a title from PackageTypeCodelist in the GS1 [Global Data Synchronisation Network (GDSN)](https://www.gs1.org/standards/gdsn) standard.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "capacity": { + "title": "Capacity", + "description": "The storage capacity of the container.", + "type": "object", + "properties": { + "unit": { + "title": "Unit", + "description": "The unit of measurement for the quantity.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the identifier for the unit of measurement is 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 for the unit of measurement, taken from the scheme. Refer to the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find identifiers within schemes.", + "type": [ + "string", + "null" + ], + "versionId": true, + "minLength": 1 + } + }, + "minProperties": 1 + }, + "value": { + "title": "Value", + "description": "The quantity, as a multiple of the unit of measurement. The quantity is expressed in interval notation, for example: \"[10,10]\" for 10 units, \"[1,10]\" for 1 to 10 units, or \"[10,INF[\" for 10 or more units.", + "type": [ + "string", + "number", + "null" + ], + "pattern": "^[([\\]][0-9]+,([0-9]+|INF)[)[\\]]$" + } + }, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "deliveryLocations": { + "title": "Delivery locations", + "description": "The locations where activity related to the opportunity, contract or license will be delivered.", + "type": "array", + "items": { + "title": "Location", + "description": "A physical or virtual location.", + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The name or description of the location.", + "type": [ + "string", + "null" + ] + }, + "geometry": { + "title": "Geometry", + "description": "The spatial extent of the location, as a [GeoJSON Geometry object](https://www.rfc-editor.org/rfc/rfc7946).", + "type": "object", + "properties": { + "type": { + "title": "Type", + "description": "The type of the GeoJSON Geometry object, from the closed [geometryType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#geometryType) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "geometryType.csv", + "openCodelist": false, + "enum": [ + "Point", + "MultiPoint", + "LineString", + "MultiLineString", + "Polygon", + "MultiPolygon", + null + ] + }, + "coordinates": { + "title": "Coordinates", + "description": "The coordinates of the GeoJSON Geometry object. For example, [longitude, latitude] or [longitude, latitude, elevation] for a Point geometry, using the World Geodetic System 1984 (WGS84, EPSG:4326) with longitude and latitude units of decimal degrees.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "number", + "array" + ] + } + } + } + }, + "gazetteer": { + "title": "Gazetteer", + "description": "Identifiers for the location from a gazetteer (a geographical index or directory).", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The identifier of the gazetteer, from the open [locationGazetter](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#locationGazetter) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "locationGazetteer.csv", + "openCodelist": true + }, + "identifiers": { + "title": "Identifiers", + "description": "One or more location codes taken from the scheme.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + } + } + }, + "uri": { + "title": "URI", + "description": "The URI of a resource about the location.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + } + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 + }, + "deliveryAddresses": { + "title": "Delivery addresses", + "description": "The addresses to which goods or services related to the opportunity, contract or license will be delivered.", + "type": "array", + "items": { + "title": "Address", + "description": "An address.", + "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/#country) 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" + } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] + } + } + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 } } }, @@ -8920,6 +11010,15 @@ "null" ] }, + "finalStatusDate": { + "title": "Final status date", + "description": "The date on which the contract reached its final status.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "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).", @@ -10099,13 +12198,13 @@ ] }, "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.", + "title": "Pricing unit", + "description": "The pricing unit. It is recommended to use the unit of measurement in which the goods, services or works are provided (e.g. kilogram, hour), rather than the unit of presentation (e.g. box), because units of measurement are easier to compare and convert than units of presentation. A unit of measurement is a definite magnitude of a quantity, defined and adopted by convention or law, that is used as a standard of measurement for the same kind of quantity. For example, mass, a quantity, can be measured in kilograms, a unit of measurement.", "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.", + "description": "The scheme or codelist from which the identifier for the unit is taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended for a unit of measurement.", "type": [ "string", "null" @@ -10115,7 +12214,7 @@ }, "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.", + "description": "The identifier for the unit, taken from the scheme. Refer to the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find identifiers within schemes.", "type": [ "string", "null" @@ -10123,7 +12222,7 @@ }, "name": { "title": "Name", - "description": "Name of the unit.", + "description": "The name of the unit.", "type": [ "string", "null" @@ -10477,7 +12576,7 @@ }, "uri": { "title": "URI", - "description": "The machine-readable URI for the unit of measure, provided by the scheme.", + "description": "A URI to uniquely identify the unit.", "format": "uri", "type": [ "string", @@ -10485,6 +12584,500 @@ ] } } + }, + "immediateContainer": { + "title": "Immediate container", + "description": "The innermost packaging with which the item is in direct contact. Also known as: presentation, presentation form, package.", + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The common name of the container. For medicine items, it is recommended to use a title from the [immediateContainer](https://extensions.open-contracting.org/en/extensions/medicine/master/codelists/#immediateContainer.csv) codelist in the OCDS [Medicine](https://extensions.open-contracting.org/en/extensions/medicine/master/) extension. For other items, it is recommended to use a title from PackageTypeCodelist in the GS1 [Global Data Synchronisation Network (GDSN)](https://www.gs1.org/standards/gdsn) standard.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "capacity": { + "title": "Capacity", + "description": "The storage capacity of the container.", + "type": "object", + "properties": { + "unit": { + "title": "Unit", + "description": "The unit of measurement for the quantity.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the identifier for the unit of measurement is 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 for the unit of measurement, taken from the scheme. Refer to the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find identifiers within schemes.", + "type": [ + "string", + "null" + ], + "versionId": true, + "minLength": 1 + } + }, + "minProperties": 1 + }, + "value": { + "title": "Value", + "description": "The quantity, as a multiple of the unit of measurement. The quantity is expressed in interval notation, for example: \"[10,10]\" for 10 units, \"[1,10]\" for 1 to 10 units, or \"[10,INF[\" for 10 or more units.", + "type": [ + "string", + "number", + "null" + ], + "pattern": "^[([\\]][0-9]+,([0-9]+|INF)[)[\\]]$" + } + }, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "deliveryLocations": { + "title": "Delivery locations", + "description": "The locations where activity related to the opportunity, contract or license will be delivered.", + "type": "array", + "items": { + "title": "Location", + "description": "A physical or virtual location.", + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The name or description of the location.", + "type": [ + "string", + "null" + ] + }, + "geometry": { + "title": "Geometry", + "description": "The spatial extent of the location, as a [GeoJSON Geometry object](https://www.rfc-editor.org/rfc/rfc7946).", + "type": "object", + "properties": { + "type": { + "title": "Type", + "description": "The type of the GeoJSON Geometry object, from the closed [geometryType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#geometryType) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "geometryType.csv", + "openCodelist": false, + "enum": [ + "Point", + "MultiPoint", + "LineString", + "MultiLineString", + "Polygon", + "MultiPolygon", + null + ] + }, + "coordinates": { + "title": "Coordinates", + "description": "The coordinates of the GeoJSON Geometry object. For example, [longitude, latitude] or [longitude, latitude, elevation] for a Point geometry, using the World Geodetic System 1984 (WGS84, EPSG:4326) with longitude and latitude units of decimal degrees.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "number", + "array" + ] + } + } + } + }, + "gazetteer": { + "title": "Gazetteer", + "description": "Identifiers for the location from a gazetteer (a geographical index or directory).", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The identifier of the gazetteer, from the open [locationGazetter](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#locationGazetter) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "locationGazetteer.csv", + "openCodelist": true + }, + "identifiers": { + "title": "Identifiers", + "description": "One or more location codes taken from the scheme.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + } + } + }, + "uri": { + "title": "URI", + "description": "The URI of a resource about the location.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + } + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 + }, + "deliveryAddresses": { + "title": "Delivery addresses", + "description": "The addresses to which goods or services related to the opportunity, contract or license will be delivered.", + "type": "array", + "items": { + "title": "Address", + "description": "An address.", + "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/#country) 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" + } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] + } + } + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 } } }, @@ -11429,6 +14022,14 @@ "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] } }, "deprecated": { @@ -11920,6 +14521,14 @@ "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] } }, "deprecated": { @@ -14046,173 +16655,592 @@ } } }, - "deprecated": { - "description": "The single amendment object has been deprecated in favor of including amendments in an amendments (plural) array.", - "deprecatedVersion": "1.1" - } - } - } - }, - "uniqueItems": true - }, - "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 - }, - "relatedProcesses": { - "uniqueItems": true, - "items": { - "description": "A reference to a related, preceding contracting (or planning) process. For example, the contracting process may refer to its planning process(es). In multi-stage procedures (e.g. framework agreements with reopening of competition), the contracting process for a later stage may refer to the contracting process for the first stage.", - "type": "object", - "title": "Related Process", - "properties": { - "id": { - "title": "Relationship ID", - "description": "A local identifier for this relationship, unique within this array.", - "type": "string" - }, - "relationship": { - "items": { - "type": "string" + "deprecated": { + "description": "The single amendment object has been deprecated in favor of including amendments in an amendments (plural) array.", + "deprecatedVersion": "1.1" + } + } + } + }, + "uniqueItems": true + }, + "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 + }, + "relatedProcesses": { + "uniqueItems": true, + "items": { + "description": "A reference to a related, preceding contracting (or planning) process. For example, the contracting process may refer to its planning process(es). In multi-stage procedures (e.g. framework agreements with reopening of competition), the contracting process for a later stage may refer to the contracting process for the first stage.", + "type": "object", + "title": "Related Process", + "properties": { + "id": { + "title": "Relationship ID", + "description": "A local identifier for this relationship, unique within this array.", + "type": "string" + }, + "relationship": { + "items": { + "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", + "type": [ + "array", + "null" + ], + "codelist": "relatedProcess.csv", + "openCodelist": 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" + ] + }, + "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 + }, + "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" + ] + }, + "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" + ] + } + } + }, + "description": "References to related, preceding contracting (or planning) processes. This information concerns the contracting process. For example, the contracting process may refer to its planning process(es). In multi-stage procedures (e.g. framework agreements with reopening of competition), the contracting process for a later stage may refer to the contracting process for the first stage.", + "title": "Related processes", + "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 (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 + }, + "href": { + "title": "Link target", + "description": "The URL of the related resource.", + "type": "string", + "format": "uri" + } + } + }, + "uniqueItems": true, + "omitWhenMerged": true + } + }, + "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 contracting documents (for example, procurement documents) are available to potential suppliers.", + "type": "object", + "properties": { + "id": { + "title": "Planning ID", + "description": "An identifier for the planning process.", + "type": [ + "string", + "null" + ] + }, + "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" + ] + }, + "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", + "integer", + "null" + ] + }, + "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" + ] + }, + "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. 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": "The amount as entered into a system or published in a document.", + "type": [ + "number", + "null" + ] + }, + "amountNet": { + "title": "Net amount", + "description": "The amount excluding all taxes.", + "type": [ + "number", + "null" + ] + }, + "amountGross": { + "title": "Gross amount", + "description": "The amount including all taxes.", + "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 + ] + } + } + }, + "project": { + "title": "Project title", + "description": "The name of the programme of work as it appears in a budget (for example, a national or state budget), of which the future contract(s) will be part or through which it/they will be funded.", + "type": [ + "string", + "null" + ] }, - "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 - }, - "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" - ] - }, - "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 - }, - "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" - ] - }, - "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" - ] - } - } - }, - "description": "References to related, preceding contracting (or planning) processes. This information concerns the contracting process. For example, the contracting process may refer to its planning process(es). In multi-stage procedures (e.g. framework agreements with reopening of competition), the contracting process for a later stage may refer to the contracting process for the first stage.", - "title": "Related processes", - "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 (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 - }, - "href": { - "title": "Link target", - "description": "The URL of the related resource.", - "type": "string", - "format": "uri" + "projectID": { + "title": "Project identifier", + "description": "The identifier of the programme of work as it appears in a budget (for example, a national or state budget), of which the future contract(s) will be part or through which it/they will be funded. Although an integer is allowed, it is recommended to use a string.", + "type": [ + "string", + "integer", + "null" + ] + }, + "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" + } } - } - }, - "uniqueItems": true, - "omitWhenMerged": true - } - }, - "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 contracting documents (for example, procurement documents) are available to potential suppliers.", - "type": "object", - "properties": { - "id": { - "title": "Planning ID", - "description": "An identifier for this planning process.", - "type": [ - "string", - "null" - ] - }, - "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" - ] }, - "budget": { + "project": { + "title": "Project", + "description": "Information about the infrastructure or public-private partnership (PPP) project to which the planning process is related.", "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.", + "title": "Identifier", + "description": "An externally provided identifier for the project. This can be a URI, an [Open Contracting for Infrastructure Data Standards Toolkit (OC4IDS)](https://standard.open-contracting.org/infrastructure/latest/en/guidance/identifiers/) project identifier, [OCDS for PPPs](https://standard.open-contracting.org/profiles/ppp/latest/en/framework/#i-basic-project-information) project identifier, an identifier from a projects register, or an identifier based on the canonical version of the project's name. Project identifiers should be unique within the scope of the publication.", "type": [ "string", - "integer", "null" - ] + ], + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The name of the project. If a projects register is available, this should be the same as the project's name in that register.", + "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).", + "title": "Description", + "description": "A short description of the project.", "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. This field should not be used to report the total value of the budget line that will fund the future contract(s).", + "totalValue": { + "title": "Total value", + "description": "The total anticipated value of the project over its lifetime.", "type": "object", "properties": { "amount": { @@ -14556,46 +17584,243 @@ } } }, - "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" - ] - }, - "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", - "integer", - "null" - ] - }, "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.", + "title": "URI", + "description": "The URI of a resource about the project.", "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." + "sector": { + "title": "Sector", + "description": "The primary sector to which the project relates. It is recommended to use the scheme 'oc4idsProjectSector' and codes from the [OC4IDS projectSector codelist](https://standard.open-contracting.org/infrastructure/latest/en/reference/codelists/#projectsector).", + "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 + }, + "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" + ] + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ] + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + } + }, + "additionalClassifications": { + "title": "Additional classifications", + "description": "Additional classifications for the project. For example, a sector or strategic framework classification.", + "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 + }, + "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" + ] + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ] + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + } }, - "format": "uri" + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 + }, + "locations": { + "title": "Locations", + "description": "Information about the locations where the project takes place.", + "type": "array", + "items": { + "title": "Location", + "description": "A physical or virtual location.", + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The name or description of the location.", + "type": [ + "string", + "null" + ] + }, + "geometry": { + "title": "Geometry", + "description": "The spatial extent of the location, as a [GeoJSON Geometry object](https://www.rfc-editor.org/rfc/rfc7946).", + "type": "object", + "properties": { + "type": { + "title": "Type", + "description": "The type of the GeoJSON Geometry object, from the closed [geometryType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#geometryType) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "geometryType.csv", + "openCodelist": false, + "enum": [ + "Point", + "MultiPoint", + "LineString", + "MultiLineString", + "Polygon", + "MultiPolygon", + null + ] + }, + "coordinates": { + "title": "Coordinates", + "description": "The coordinates of the GeoJSON Geometry object. For example, [longitude, latitude] or [longitude, latitude, elevation] for a Point geometry, using the World Geodetic System 1984 (WGS84, EPSG:4326) with longitude and latitude units of decimal degrees.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "number", + "array" + ] + } + } + } + }, + "gazetteer": { + "title": "Gazetteer", + "description": "Identifiers for the location from a gazetteer (a geographical index or directory).", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The identifier of the gazetteer, from the open [locationGazetter](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#locationGazetter) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "locationGazetteer.csv", + "openCodelist": true + }, + "identifiers": { + "title": "Identifiers", + "description": "One or more location codes taken from the scheme.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + } + } + }, + "uri": { + "title": "URI", + "description": "The URI of a resource about the location.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + } + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 } - } + }, + "minProperties": 1 + }, + "finalStatus": { + "title": "Final status", + "description": "The final status of the planning process, using the closed [planningFinalStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#planning-final-status) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "planningFinalStatus.csv", + "openCodelist": false, + "enum": [ + "cancelled", + "unsuccessful", + null + ] + }, + "finalStatusDetails": { + "title": "Final status details", + "description": "Additional details on the final status of the planning process. This field can be used to provide the local name of the final status.", + "type": [ + "string", + "null" + ] + }, + "finalStatusDate": { + "title": "Final status date", + "description": "The date on which the planning process reached its final status.", + "format": "date-time", + "type": [ + "string", + "null" + ] }, "documents": { "title": "Documents", @@ -15427,6 +18652,15 @@ "null" ] }, + "finalStatusDate": { + "title": "Final status date", + "description": "The date on which the tender reached its final status.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "procuringEntity": { "properties": { "name": { @@ -15802,6 +19036,14 @@ "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] } }, "deprecated": { @@ -16049,13 +19291,13 @@ ] }, "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.", + "title": "Pricing unit", + "description": "The pricing unit. It is recommended to use the unit of measurement in which the goods, services or works are provided (e.g. kilogram, hour), rather than the unit of presentation (e.g. box), because units of measurement are easier to compare and convert than units of presentation. A unit of measurement is a definite magnitude of a quantity, defined and adopted by convention or law, that is used as a standard of measurement for the same kind of quantity. For example, mass, a quantity, can be measured in kilograms, a unit of measurement.", "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.", + "description": "The scheme or codelist from which the identifier for the unit is taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended for a unit of measurement.", "type": [ "string", "null" @@ -16065,7 +19307,7 @@ }, "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.", + "description": "The identifier for the unit, taken from the scheme. Refer to the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find identifiers within schemes.", "type": [ "string", "null" @@ -16073,7 +19315,7 @@ }, "name": { "title": "Name", - "description": "Name of the unit.", + "description": "The name of the unit.", "type": [ "string", "null" @@ -16427,7 +19669,7 @@ }, "uri": { "title": "URI", - "description": "The machine-readable URI for the unit of measure, provided by the scheme.", + "description": "A URI to uniquely identify the unit.", "format": "uri", "type": [ "string", @@ -16435,6 +19677,500 @@ ] } } + }, + "immediateContainer": { + "title": "Immediate container", + "description": "The innermost packaging with which the item is in direct contact. Also known as: presentation, presentation form, package.", + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The common name of the container. For medicine items, it is recommended to use a title from the [immediateContainer](https://extensions.open-contracting.org/en/extensions/medicine/master/codelists/#immediateContainer.csv) codelist in the OCDS [Medicine](https://extensions.open-contracting.org/en/extensions/medicine/master/) extension. For other items, it is recommended to use a title from PackageTypeCodelist in the GS1 [Global Data Synchronisation Network (GDSN)](https://www.gs1.org/standards/gdsn) standard.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "capacity": { + "title": "Capacity", + "description": "The storage capacity of the container.", + "type": "object", + "properties": { + "unit": { + "title": "Unit", + "description": "The unit of measurement for the quantity.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the identifier for the unit of measurement is 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 for the unit of measurement, taken from the scheme. Refer to the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find identifiers within schemes.", + "type": [ + "string", + "null" + ], + "versionId": true, + "minLength": 1 + } + }, + "minProperties": 1 + }, + "value": { + "title": "Value", + "description": "The quantity, as a multiple of the unit of measurement. The quantity is expressed in interval notation, for example: \"[10,10]\" for 10 units, \"[1,10]\" for 1 to 10 units, or \"[10,INF[\" for 10 or more units.", + "type": [ + "string", + "number", + "null" + ], + "pattern": "^[([\\]][0-9]+,([0-9]+|INF)[)[\\]]$" + } + }, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "deliveryLocations": { + "title": "Delivery locations", + "description": "The locations where activity related to the opportunity, contract or license will be delivered.", + "type": "array", + "items": { + "title": "Location", + "description": "A physical or virtual location.", + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The name or description of the location.", + "type": [ + "string", + "null" + ] + }, + "geometry": { + "title": "Geometry", + "description": "The spatial extent of the location, as a [GeoJSON Geometry object](https://www.rfc-editor.org/rfc/rfc7946).", + "type": "object", + "properties": { + "type": { + "title": "Type", + "description": "The type of the GeoJSON Geometry object, from the closed [geometryType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#geometryType) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "geometryType.csv", + "openCodelist": false, + "enum": [ + "Point", + "MultiPoint", + "LineString", + "MultiLineString", + "Polygon", + "MultiPolygon", + null + ] + }, + "coordinates": { + "title": "Coordinates", + "description": "The coordinates of the GeoJSON Geometry object. For example, [longitude, latitude] or [longitude, latitude, elevation] for a Point geometry, using the World Geodetic System 1984 (WGS84, EPSG:4326) with longitude and latitude units of decimal degrees.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "number", + "array" + ] + } + } + } + }, + "gazetteer": { + "title": "Gazetteer", + "description": "Identifiers for the location from a gazetteer (a geographical index or directory).", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The identifier of the gazetteer, from the open [locationGazetter](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#locationGazetter) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "locationGazetteer.csv", + "openCodelist": true + }, + "identifiers": { + "title": "Identifiers", + "description": "One or more location codes taken from the scheme.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + } + } + }, + "uri": { + "title": "URI", + "description": "The URI of a resource about the location.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + } + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 + }, + "deliveryAddresses": { + "title": "Delivery addresses", + "description": "The addresses to which goods or services related to the opportunity, contract or license will be delivered.", + "type": "array", + "items": { + "title": "Address", + "description": "An address.", + "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/#country) 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" + } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] + } + } + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 } } }, @@ -17478,6 +21214,434 @@ } } }, + "deliveryLocations": { + "title": "Delivery locations", + "description": "The locations where activity related to the opportunity will take place.", + "type": "array", + "items": { + "title": "Location", + "description": "A physical or virtual location.", + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The name or description of the location.", + "type": [ + "string", + "null" + ] + }, + "geometry": { + "title": "Geometry", + "description": "The spatial extent of the location, as a [GeoJSON Geometry object](https://www.rfc-editor.org/rfc/rfc7946).", + "type": "object", + "properties": { + "type": { + "title": "Type", + "description": "The type of the GeoJSON Geometry object, from the closed [geometryType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#geometryType) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "geometryType.csv", + "openCodelist": false, + "enum": [ + "Point", + "MultiPoint", + "LineString", + "MultiLineString", + "Polygon", + "MultiPolygon", + null + ] + }, + "coordinates": { + "title": "Coordinates", + "description": "The coordinates of the GeoJSON Geometry object. For example, [longitude, latitude] or [longitude, latitude, elevation] for a Point geometry, using the World Geodetic System 1984 (WGS84, EPSG:4326) with longitude and latitude units of decimal degrees.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "number", + "array" + ] + } + } + } + }, + "gazetteer": { + "title": "Gazetteer", + "description": "Identifiers for the location from a gazetteer (a geographical index or directory).", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The identifier of the gazetteer, from the open [locationGazetter](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#locationGazetter) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "locationGazetteer.csv", + "openCodelist": true + }, + "identifiers": { + "title": "Identifiers", + "description": "One or more location codes taken from the scheme.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + } + } + }, + "uri": { + "title": "URI", + "description": "The URI of a resource about the location.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + } + }, + "wholeListMerge": true, + "uniqueItems": true + }, + "deliveryAddresses": { + "title": "Delivery addresses", + "description": "The addresses to which goods or services related to the opportunity will be delivered.", + "type": "array", + "items": { + "title": "Address", + "description": "An address.", + "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/#country) 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" + } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] + } + } + }, + "wholeListMerge": true, + "uniqueItems": true + }, "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.", @@ -18275,6 +22439,14 @@ "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] } }, "deprecated": { @@ -19372,6 +23544,15 @@ "null" ] }, + "finalStatusDate": { + "title": "Final status date", + "description": "The date on which the award reached its final status.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "date": { "title": "Award date", "description": "The date of the contract award. This is usually the date on which a decision to award was made.", @@ -20807,6 +24988,14 @@ "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] } }, "deprecated": { @@ -21057,13 +25246,13 @@ ] }, "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.", + "title": "Pricing unit", + "description": "The pricing unit. It is recommended to use the unit of measurement in which the goods, services or works are provided (e.g. kilogram, hour), rather than the unit of presentation (e.g. box), because units of measurement are easier to compare and convert than units of presentation. A unit of measurement is a definite magnitude of a quantity, defined and adopted by convention or law, that is used as a standard of measurement for the same kind of quantity. For example, mass, a quantity, can be measured in kilograms, a unit of measurement.", "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.", + "description": "The scheme or codelist from which the identifier for the unit is taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended for a unit of measurement.", "type": [ "string", "null" @@ -21073,7 +25262,7 @@ }, "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.", + "description": "The identifier for the unit, taken from the scheme. Refer to the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find identifiers within schemes.", "type": [ "string", "null" @@ -21081,7 +25270,7 @@ }, "name": { "title": "Name", - "description": "Name of the unit.", + "description": "The name of the unit.", "type": [ "string", "null" @@ -21435,7 +25624,7 @@ }, "uri": { "title": "URI", - "description": "The machine-readable URI for the unit of measure, provided by the scheme.", + "description": "A URI to uniquely identify the unit.", "format": "uri", "type": [ "string", @@ -21443,6 +25632,500 @@ ] } } + }, + "immediateContainer": { + "title": "Immediate container", + "description": "The innermost packaging with which the item is in direct contact. Also known as: presentation, presentation form, package.", + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The common name of the container. For medicine items, it is recommended to use a title from the [immediateContainer](https://extensions.open-contracting.org/en/extensions/medicine/master/codelists/#immediateContainer.csv) codelist in the OCDS [Medicine](https://extensions.open-contracting.org/en/extensions/medicine/master/) extension. For other items, it is recommended to use a title from PackageTypeCodelist in the GS1 [Global Data Synchronisation Network (GDSN)](https://www.gs1.org/standards/gdsn) standard.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "capacity": { + "title": "Capacity", + "description": "The storage capacity of the container.", + "type": "object", + "properties": { + "unit": { + "title": "Unit", + "description": "The unit of measurement for the quantity.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the identifier for the unit of measurement is 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 for the unit of measurement, taken from the scheme. Refer to the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find identifiers within schemes.", + "type": [ + "string", + "null" + ], + "versionId": true, + "minLength": 1 + } + }, + "minProperties": 1 + }, + "value": { + "title": "Value", + "description": "The quantity, as a multiple of the unit of measurement. The quantity is expressed in interval notation, for example: \"[10,10]\" for 10 units, \"[1,10]\" for 1 to 10 units, or \"[10,INF[\" for 10 or more units.", + "type": [ + "string", + "number", + "null" + ], + "pattern": "^[([\\]][0-9]+,([0-9]+|INF)[)[\\]]$" + } + }, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "deliveryLocations": { + "title": "Delivery locations", + "description": "The locations where activity related to the opportunity, contract or license will be delivered.", + "type": "array", + "items": { + "title": "Location", + "description": "A physical or virtual location.", + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The name or description of the location.", + "type": [ + "string", + "null" + ] + }, + "geometry": { + "title": "Geometry", + "description": "The spatial extent of the location, as a [GeoJSON Geometry object](https://www.rfc-editor.org/rfc/rfc7946).", + "type": "object", + "properties": { + "type": { + "title": "Type", + "description": "The type of the GeoJSON Geometry object, from the closed [geometryType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#geometryType) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "geometryType.csv", + "openCodelist": false, + "enum": [ + "Point", + "MultiPoint", + "LineString", + "MultiLineString", + "Polygon", + "MultiPolygon", + null + ] + }, + "coordinates": { + "title": "Coordinates", + "description": "The coordinates of the GeoJSON Geometry object. For example, [longitude, latitude] or [longitude, latitude, elevation] for a Point geometry, using the World Geodetic System 1984 (WGS84, EPSG:4326) with longitude and latitude units of decimal degrees.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "number", + "array" + ] + } + } + } + }, + "gazetteer": { + "title": "Gazetteer", + "description": "Identifiers for the location from a gazetteer (a geographical index or directory).", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The identifier of the gazetteer, from the open [locationGazetter](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#locationGazetter) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "locationGazetteer.csv", + "openCodelist": true + }, + "identifiers": { + "title": "Identifiers", + "description": "One or more location codes taken from the scheme.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + } + } + }, + "uri": { + "title": "URI", + "description": "The URI of a resource about the location.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + } + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 + }, + "deliveryAddresses": { + "title": "Delivery addresses", + "description": "The addresses to which goods or services related to the opportunity, contract or license will be delivered.", + "type": "array", + "items": { + "title": "Address", + "description": "An address.", + "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/#country) 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" + } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] + } + } + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 } } }, @@ -21923,6 +26606,15 @@ "null" ] }, + "finalStatusDate": { + "title": "Final status date", + "description": "The date on which the contract reached its final status.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "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).", @@ -23102,13 +27794,13 @@ ] }, "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.", + "title": "Pricing unit", + "description": "The pricing unit. It is recommended to use the unit of measurement in which the goods, services or works are provided (e.g. kilogram, hour), rather than the unit of presentation (e.g. box), because units of measurement are easier to compare and convert than units of presentation. A unit of measurement is a definite magnitude of a quantity, defined and adopted by convention or law, that is used as a standard of measurement for the same kind of quantity. For example, mass, a quantity, can be measured in kilograms, a unit of measurement.", "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.", + "description": "The scheme or codelist from which the identifier for the unit is taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended for a unit of measurement.", "type": [ "string", "null" @@ -23118,7 +27810,7 @@ }, "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.", + "description": "The identifier for the unit, taken from the scheme. Refer to the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find identifiers within schemes.", "type": [ "string", "null" @@ -23126,7 +27818,7 @@ }, "name": { "title": "Name", - "description": "Name of the unit.", + "description": "The name of the unit.", "type": [ "string", "null" @@ -23480,7 +28172,7 @@ }, "uri": { "title": "URI", - "description": "The machine-readable URI for the unit of measure, provided by the scheme.", + "description": "A URI to uniquely identify the unit.", "format": "uri", "type": [ "string", @@ -23488,6 +28180,500 @@ ] } } + }, + "immediateContainer": { + "title": "Immediate container", + "description": "The innermost packaging with which the item is in direct contact. Also known as: presentation, presentation form, package.", + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The common name of the container. For medicine items, it is recommended to use a title from the [immediateContainer](https://extensions.open-contracting.org/en/extensions/medicine/master/codelists/#immediateContainer.csv) codelist in the OCDS [Medicine](https://extensions.open-contracting.org/en/extensions/medicine/master/) extension. For other items, it is recommended to use a title from PackageTypeCodelist in the GS1 [Global Data Synchronisation Network (GDSN)](https://www.gs1.org/standards/gdsn) standard.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "capacity": { + "title": "Capacity", + "description": "The storage capacity of the container.", + "type": "object", + "properties": { + "unit": { + "title": "Unit", + "description": "The unit of measurement for the quantity.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the identifier for the unit of measurement is 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 for the unit of measurement, taken from the scheme. Refer to the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find identifiers within schemes.", + "type": [ + "string", + "null" + ], + "versionId": true, + "minLength": 1 + } + }, + "minProperties": 1 + }, + "value": { + "title": "Value", + "description": "The quantity, as a multiple of the unit of measurement. The quantity is expressed in interval notation, for example: \"[10,10]\" for 10 units, \"[1,10]\" for 1 to 10 units, or \"[10,INF[\" for 10 or more units.", + "type": [ + "string", + "number", + "null" + ], + "pattern": "^[([\\]][0-9]+,([0-9]+|INF)[)[\\]]$" + } + }, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "deliveryLocations": { + "title": "Delivery locations", + "description": "The locations where activity related to the opportunity, contract or license will be delivered.", + "type": "array", + "items": { + "title": "Location", + "description": "A physical or virtual location.", + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The name or description of the location.", + "type": [ + "string", + "null" + ] + }, + "geometry": { + "title": "Geometry", + "description": "The spatial extent of the location, as a [GeoJSON Geometry object](https://www.rfc-editor.org/rfc/rfc7946).", + "type": "object", + "properties": { + "type": { + "title": "Type", + "description": "The type of the GeoJSON Geometry object, from the closed [geometryType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#geometryType) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "geometryType.csv", + "openCodelist": false, + "enum": [ + "Point", + "MultiPoint", + "LineString", + "MultiLineString", + "Polygon", + "MultiPolygon", + null + ] + }, + "coordinates": { + "title": "Coordinates", + "description": "The coordinates of the GeoJSON Geometry object. For example, [longitude, latitude] or [longitude, latitude, elevation] for a Point geometry, using the World Geodetic System 1984 (WGS84, EPSG:4326) with longitude and latitude units of decimal degrees.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "number", + "array" + ] + } + } + } + }, + "gazetteer": { + "title": "Gazetteer", + "description": "Identifiers for the location from a gazetteer (a geographical index or directory).", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The identifier of the gazetteer, from the open [locationGazetter](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#locationGazetter) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "locationGazetteer.csv", + "openCodelist": true + }, + "identifiers": { + "title": "Identifiers", + "description": "One or more location codes taken from the scheme.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + } + } + }, + "uri": { + "title": "URI", + "description": "The URI of a resource about the location.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + } + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 + }, + "deliveryAddresses": { + "title": "Delivery addresses", + "description": "The addresses to which goods or services related to the opportunity, contract or license will be delivered.", + "type": "array", + "items": { + "title": "Address", + "description": "An address.", + "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/#country) 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" + } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] + } + } + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 } } }, @@ -24432,6 +29618,14 @@ "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] } }, "deprecated": { @@ -24923,6 +30117,14 @@ "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] } }, "deprecated": { @@ -27825,6 +33027,14 @@ "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] } }, "deprecated": { @@ -28316,6 +33526,14 @@ "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] } }, "deprecated": { @@ -30681,7 +35899,7 @@ }, "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.", + "description": "The name of the programme of work as it appears in a budget (for example, a national or state budget), of which the future contract(s) will be part or through which it/they will be funded.", "type": [ "string", "null" @@ -30689,7 +35907,7 @@ }, "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.", + "description": "The identifier of the programme of work as it appears in a budget (for example, a national or state budget), of which the future contract(s) will be part or through which it/they will be funded. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", "integer", @@ -31480,6 +36698,14 @@ "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] } }, "deprecated": { @@ -31971,6 +37197,14 @@ "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] } }, "deprecated": { @@ -32913,6 +38147,14 @@ "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] } }, "deprecated": { @@ -33447,6 +38689,14 @@ "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] } } }, @@ -33720,13 +38970,13 @@ ] }, "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.", + "title": "Pricing unit", + "description": "The pricing unit. It is recommended to use the unit of measurement in which the goods, services or works are provided (e.g. kilogram, hour), rather than the unit of presentation (e.g. box), because units of measurement are easier to compare and convert than units of presentation. A unit of measurement is a definite magnitude of a quantity, defined and adopted by convention or law, that is used as a standard of measurement for the same kind of quantity. For example, mass, a quantity, can be measured in kilograms, a unit of measurement.", "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.", + "description": "The scheme or codelist from which the identifier for the unit is taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended for a unit of measurement.", "type": [ "string", "null" @@ -33736,7 +38986,7 @@ }, "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.", + "description": "The identifier for the unit, taken from the scheme. Refer to the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find identifiers within schemes.", "type": [ "string", "null" @@ -33744,7 +38994,7 @@ }, "name": { "title": "Name", - "description": "Name of the unit.", + "description": "The name of the unit.", "type": [ "string", "null" @@ -34098,7 +39348,7 @@ }, "uri": { "title": "URI", - "description": "The machine-readable URI for the unit of measure, provided by the scheme.", + "description": "A URI to uniquely identify the unit.", "format": "uri", "type": [ "string", @@ -34106,6 +39356,500 @@ ] } } + }, + "immediateContainer": { + "title": "Immediate container", + "description": "The innermost packaging with which the item is in direct contact. Also known as: presentation, presentation form, package.", + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The common name of the container. For medicine items, it is recommended to use a title from the [immediateContainer](https://extensions.open-contracting.org/en/extensions/medicine/master/codelists/#immediateContainer.csv) codelist in the OCDS [Medicine](https://extensions.open-contracting.org/en/extensions/medicine/master/) extension. For other items, it is recommended to use a title from PackageTypeCodelist in the GS1 [Global Data Synchronisation Network (GDSN)](https://www.gs1.org/standards/gdsn) standard.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "capacity": { + "title": "Capacity", + "description": "The storage capacity of the container.", + "type": "object", + "properties": { + "unit": { + "title": "Unit", + "description": "The unit of measurement for the quantity.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the identifier for the unit of measurement is 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 for the unit of measurement, taken from the scheme. Refer to the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find identifiers within schemes.", + "type": [ + "string", + "null" + ], + "versionId": true, + "minLength": 1 + } + }, + "minProperties": 1 + }, + "value": { + "title": "Value", + "description": "The quantity, as a multiple of the unit of measurement. The quantity is expressed in interval notation, for example: \"[10,10]\" for 10 units, \"[1,10]\" for 1 to 10 units, or \"[10,INF[\" for 10 or more units.", + "type": [ + "string", + "number", + "null" + ], + "pattern": "^[([\\]][0-9]+,([0-9]+|INF)[)[\\]]$" + } + }, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "deliveryLocations": { + "title": "Delivery locations", + "description": "The locations where activity related to the opportunity, contract or license will be delivered.", + "type": "array", + "items": { + "title": "Location", + "description": "A physical or virtual location.", + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The name or description of the location.", + "type": [ + "string", + "null" + ] + }, + "geometry": { + "title": "Geometry", + "description": "The spatial extent of the location, as a [GeoJSON Geometry object](https://www.rfc-editor.org/rfc/rfc7946).", + "type": "object", + "properties": { + "type": { + "title": "Type", + "description": "The type of the GeoJSON Geometry object, from the closed [geometryType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#geometryType) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "geometryType.csv", + "openCodelist": false, + "enum": [ + "Point", + "MultiPoint", + "LineString", + "MultiLineString", + "Polygon", + "MultiPolygon", + null + ] + }, + "coordinates": { + "title": "Coordinates", + "description": "The coordinates of the GeoJSON Geometry object. For example, [longitude, latitude] or [longitude, latitude, elevation] for a Point geometry, using the World Geodetic System 1984 (WGS84, EPSG:4326) with longitude and latitude units of decimal degrees.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "number", + "array" + ] + } + } + } + }, + "gazetteer": { + "title": "Gazetteer", + "description": "Identifiers for the location from a gazetteer (a geographical index or directory).", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The identifier of the gazetteer, from the open [locationGazetter](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#locationGazetter) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "locationGazetteer.csv", + "openCodelist": true + }, + "identifiers": { + "title": "Identifiers", + "description": "One or more location codes taken from the scheme.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + } + } + }, + "uri": { + "title": "URI", + "description": "The URI of a resource about the location.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + } + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 + }, + "deliveryAddresses": { + "title": "Delivery addresses", + "description": "The addresses to which goods or services related to the opportunity, contract or license will be delivered.", + "type": "array", + "items": { + "title": "Address", + "description": "An address.", + "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/#country) 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" + } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] + } + } + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 } } }, @@ -34271,7 +40015,99 @@ }, "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.", + "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" + } + } + }, + "Location": { + "title": "Location", + "description": "A physical or virtual location.", + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The name or description of the location.", + "type": [ + "string", + "null" + ] + }, + "geometry": { + "title": "Geometry", + "description": "The spatial extent of the location, as a [GeoJSON Geometry object](https://www.rfc-editor.org/rfc/rfc7946).", + "type": "object", + "properties": { + "type": { + "title": "Type", + "description": "The type of the GeoJSON Geometry object, from the closed [geometryType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#geometryType) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "geometryType.csv", + "openCodelist": false, + "enum": [ + "Point", + "MultiPoint", + "LineString", + "MultiLineString", + "Polygon", + "MultiPolygon", + null + ] + }, + "coordinates": { + "title": "Coordinates", + "description": "The coordinates of the GeoJSON Geometry object. For example, [longitude, latitude] or [longitude, latitude, elevation] for a Point geometry, using the World Geodetic System 1984 (WGS84, EPSG:4326) with longitude and latitude units of decimal degrees.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "number", + "array" + ] + } + } + } + }, + "gazetteer": { + "title": "Gazetteer", + "description": "Identifiers for the location from a gazetteer (a geographical index or directory).", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The identifier of the gazetteer, from the open [locationGazetter](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#locationGazetter) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "locationGazetteer.csv", + "openCodelist": true + }, + "identifiers": { + "title": "Identifiers", + "description": "One or more location codes taken from the scheme.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + } + } + }, + "uri": { + "title": "URI", + "description": "The URI of a resource about the location.", "type": [ "string", "null" @@ -34591,6 +40427,14 @@ "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] } } }, @@ -34988,142 +40832,772 @@ } } }, - "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.", + "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" + ] + } + } + }, + "RelatedProcess": { + "description": "A reference to a related, preceding contracting (or planning) process. For example, the contracting process may refer to its planning process(es). In multi-stage procedures (e.g. framework agreements with reopening of competition), the contracting process for a later stage may refer to the contracting process for the first stage.", + "type": "object", + "title": "Related Process", + "properties": { + "id": { + "title": "Relationship ID", + "description": "A local identifier for this relationship, unique within this array.", + "type": "string" + }, + "relationship": { + "items": { + "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", + "type": [ + "array", + "null" + ], + "codelist": "relatedProcess.csv", + "openCodelist": 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" + ] + }, + "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 + }, + "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" + ] + }, + "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" + ] + } + } + }, + "Unit": { + "title": "Pricing unit", + "description": "A pricing unit. It is recommended to use the unit of measurement in which the goods, services or works are provided (e.g. kilogram, hour), rather than the unit of presentation (e.g. box), because units of measurement are easier to compare and convert than units of presentation. A unit of measurement is a definite magnitude of a quantity, defined and adopted by convention or law, that is used as a standard of measurement for the same kind of quantity. For example, mass, a quantity, can be measured in kilograms, a unit of measurement.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the identifier for the unit is taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended for a unit of measurement.", + "type": [ + "string", + "null" + ], + "codelist": "unitClassificationScheme.csv", + "openCodelist": true + }, + "id": { + "title": "ID", + "description": "The identifier for the unit, taken from the scheme. Refer to the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find identifiers within schemes.", + "type": [ + "string", + "null" + ] + }, + "name": { + "title": "Name", + "description": "The name of the unit.", + "type": [ + "string", + "null" + ] + }, + "value": { + "title": "Value", + "description": "The monetary value of a single unit.", + "type": "object", + "properties": { + "amount": { + "title": "Amount", + "description": "The amount as entered into a system or published in a document.", + "type": [ + "number", + "null" + ] + }, + "amountNet": { + "title": "Net amount", + "description": "The amount excluding all taxes.", + "type": [ + "number", + "null" + ] + }, + "amountGross": { + "title": "Gross amount", + "description": "The amount including all taxes.", + "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 + ] + } + } + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the unit.", + "format": "uri", + "type": [ + "string", + "null" + ] + } + } + }, + "ImmediateContainer": { + "title": "Immediate container", + "description": "The innermost packaging with which an item is in direct contact. Also known as: presentation, presentation form, package.", "type": "object", "properties": { - "startDate": { - "title": "Start date", - "description": "The start date for the period. When known, a precise start date must be provided.", + "name": { + "title": "Name", + "description": "The common name of the container. For medicine items, it is recommended to use a title from the [immediateContainer](https://extensions.open-contracting.org/en/extensions/medicine/master/codelists/#immediateContainer.csv) codelist in the OCDS [Medicine](https://extensions.open-contracting.org/en/extensions/medicine/master/) extension. For other items, it is recommended to use a title from PackageTypeCodelist in the GS1 [Global Data Synchronisation Network (GDSN)](https://www.gs1.org/standards/gdsn) standard.", "type": [ "string", "null" ], - "format": "date-time" + "minLength": 1 }, - "endDate": { - "title": "End date", - "description": "The end date for the period. When known, a precise end date must be provided.", + "capacity": { + "title": "Capacity", + "description": "The storage capacity of the container.", + "type": "object", + "properties": { + "unit": { + "title": "Unit", + "description": "The unit of measurement for the quantity.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the identifier for the unit of measurement is 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 for the unit of measurement, taken from the scheme. Refer to the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find identifiers within schemes.", + "type": [ + "string", + "null" + ], + "versionId": true, + "minLength": 1 + } + }, + "minProperties": 1 + }, + "value": { + "title": "Value", + "description": "The quantity, as a multiple of the unit of measurement. The quantity is expressed in interval notation, for example: \"[10,10]\" for 10 units, \"[1,10]\" for 1 to 10 units, or \"[10,INF[\" for 10 or more units.", + "type": [ + "string", + "number", + "null" + ], + "pattern": "^[([\\]][0-9]+,([0-9]+|INF)[)[\\]]$" + } + }, + "minProperties": 1 + } + }, + "minProperties": 1 + }, + "Quantity": { + "title": "Quantity", + "description": "The quantity of a thing.", + "type": "object", + "properties": { + "unit": { + "title": "Unit", + "description": "The unit of measurement for the quantity.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the identifier for the unit of measurement is 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 for the unit of measurement, taken from the scheme. Refer to the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find identifiers within schemes.", + "type": [ + "string", + "null" + ], + "versionId": true, + "minLength": 1 + } + }, + "minProperties": 1 + }, + "value": { + "title": "Value", + "description": "The quantity, as a multiple of the unit of measurement. The quantity is expressed in interval notation, for example: \"[10,10]\" for 10 units, \"[1,10]\" for 1 to 10 units, or \"[10,INF[\" for 10 or more units.", "type": [ "string", + "number", "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", + "pattern": "^[([\\]][0-9]+,([0-9]+|INF)[)[\\]]$" + } + }, + "minProperties": 1 + }, + "SimpleUnit": { + "title": "Simple unit", + "description": "A unit of measurement.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the identifier for the unit of measurement is 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 }, - "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)", + "id": { + "title": "ID", + "description": "The identifier for the unit of measurement, taken from the scheme. Refer to the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find identifiers within schemes.", "type": [ - "integer", + "string", "null" - ] + ], + "versionId": true, + "minLength": 1 } - } + }, + "minProperties": 1 }, - "RelatedProcess": { - "description": "A reference to a related, preceding contracting (or planning) process. For example, the contracting process may refer to its planning process(es). In multi-stage procedures (e.g. framework agreements with reopening of competition), the contracting process for a later stage may refer to the contracting process for the first stage.", + "Link": { + "title": "Link", + "description": "A reference to a related resource.", "type": "object", - "title": "Related Process", "properties": { - "id": { - "title": "Relationship ID", - "description": "A local identifier for this relationship, unique within this array.", - "type": "string" - }, - "relationship": { - "items": { - "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", - "type": [ - "array", - "null" - ], - "codelist": "relatedProcess.csv", + "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 }, - "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", + "href": { + "title": "Link target", + "description": "The URL of the related resource.", + "type": "string", + "format": "uri" + } + } + }, + "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. If the scope of the list, register or system from which the identifier is drawn is national, it is suggested to follow the pattern {ISO 3166-1 alpha-2}-{system}. If it is subnational, it is suggested to follow the pattern {ISO 3166-2}-{system}.", "type": [ "string", "null" ] }, - "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.", + "id": { + "title": "ID", + "description": "The identifier taken from the scheme.", "type": [ "string", "null" ], - "codelist": "relatedProcessScheme.csv", - "openCodelist": true - }, - "identifier": { - "description": "The identifier of the related process. If the scheme is 'ocid', this must be an open contracting process identifier (ocid).", - "title": "Identifier", + "versionId": true + } + } + }, + "SubmissionTerms": { + "title": "Submission terms", + "description": "Information about how, when and where tenderers need to submit their bids.", + "type": "object", + "properties": { + "electronicSubmissionPolicy": { + "title": "Electronic submission policy", + "description": "Whether tenderers are required, allowed or not allowed to submit bids electronically.", "type": [ "string", "null" + ], + "codelist": "permission.csv", + "openCodelist": false, + "enum": [ + "required", + "allowed", + "notAllowed", + null ] - }, - "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", + } + } + }, + "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": "object", + "properties": { + "description": { + "title": "Description", + "description": "The description of the criteria.", "type": [ "string", "null" - ] + ], + "minLength": 1 } - } + }, + "minProperties": 1 }, - "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.", + "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.", "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.", + "description": { + "title": "Description", + "description": "The description of the criteria.", "type": [ "string", "null" ], - "codelist": "unitClassificationScheme.csv", - "openCodelist": true - }, + "minLength": 1 + } + }, + "minProperties": 1 + }, + "Project": { + "title": "Project", + "description": "Information about the infrastructure or public-private partnership (PPP) project to which a planning process is related.", + "type": "object", + "properties": { "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.", + "title": "Identifier", + "description": "An externally provided identifier for the project. This can be a URI, an [Open Contracting for Infrastructure Data Standards Toolkit (OC4IDS)](https://standard.open-contracting.org/infrastructure/latest/en/guidance/identifiers/) project identifier, [OCDS for PPPs](https://standard.open-contracting.org/profiles/ppp/latest/en/framework/#i-basic-project-information) project identifier, an identifier from a projects register, or an identifier based on the canonical version of the project's name. Project identifiers should be unique within the scope of the publication.", "type": [ "string", "null" - ] + ], + "minLength": 1 }, - "name": { - "title": "Name", - "description": "Name of the unit.", + "title": { + "title": "Title", + "description": "The name of the project. If a projects register is available, this should be the same as the project's name in that register.", "type": [ "string", "null" - ] + ], + "minLength": 1 }, - "value": { - "title": "Value", - "description": "The monetary value of a single unit.", + "description": { + "title": "Description", + "description": "A short description of the project.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "totalValue": { + "title": "Total value", + "description": "The total anticipated value of the project over its lifetime.", "type": "object", "properties": { "amount": { @@ -35469,112 +41943,206 @@ }, "uri": { "title": "URI", - "description": "The machine-readable URI for the unit of measure, provided by the scheme.", - "format": "uri", + "description": "The URI of a resource about the project.", "type": [ "string", "null" - ] - } - } - }, - "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 - }, - "href": { - "title": "Link target", - "description": "The URL of the related resource.", - "type": "string", + ], "format": "uri" - } - } - }, - "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. If the scope of the list, register or system from which the identifier is drawn is national, it is suggested to follow the pattern {ISO 3166-1 alpha-2}-{system}. If it is subnational, it is suggested to follow the pattern {ISO 3166-2}-{system}.", - "type": [ - "string", - "null" - ] }, - "id": { - "title": "ID", - "description": "The identifier taken from the scheme.", - "type": [ - "string", - "null" - ], - "versionId": true - } - } - }, - "SubmissionTerms": { - "title": "Submission terms", - "description": "Information about how, when and where tenderers need to submit their bids.", - "type": "object", - "properties": { - "electronicSubmissionPolicy": { - "title": "Electronic submission policy", - "description": "Whether tenderers are required, allowed or not allowed to submit bids electronically.", - "type": [ - "string", - "null" - ], - "codelist": "permission.csv", - "openCodelist": false, - "enum": [ - "required", - "allowed", - "notAllowed", - null - ] - } - } - }, - "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": "object", - "properties": { - "description": { - "title": "Description", - "description": "The description of the criteria.", - "type": [ - "string", - "null" - ], - "minLength": 1 - } - }, - "minProperties": 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.", - "type": "object", - "properties": { - "description": { - "title": "Description", - "description": "The description of the criteria.", - "type": [ - "string", - "null" - ], - "minLength": 1 + "sector": { + "title": "Sector", + "description": "The primary sector to which the project relates. It is recommended to use the scheme 'oc4idsProjectSector' and codes from the [OC4IDS projectSector codelist](https://standard.open-contracting.org/infrastructure/latest/en/reference/codelists/#projectsector).", + "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 + }, + "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" + ] + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ] + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + } + }, + "additionalClassifications": { + "title": "Additional classifications", + "description": "Additional classifications for the project. For example, a sector or strategic framework classification.", + "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 + }, + "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" + ] + }, + "description": { + "title": "Description", + "description": "A textual description or title for the classification code.", + "type": [ + "string", + "null" + ] + }, + "uri": { + "title": "URI", + "description": "A URI to uniquely identify the classification code.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + } + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 + }, + "locations": { + "title": "Locations", + "description": "Information about the locations where the project takes place.", + "type": "array", + "items": { + "title": "Location", + "description": "A physical or virtual location.", + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The name or description of the location.", + "type": [ + "string", + "null" + ] + }, + "geometry": { + "title": "Geometry", + "description": "The spatial extent of the location, as a [GeoJSON Geometry object](https://www.rfc-editor.org/rfc/rfc7946).", + "type": "object", + "properties": { + "type": { + "title": "Type", + "description": "The type of the GeoJSON Geometry object, from the closed [geometryType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#geometryType) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "geometryType.csv", + "openCodelist": false, + "enum": [ + "Point", + "MultiPoint", + "LineString", + "MultiLineString", + "Polygon", + "MultiPolygon", + null + ] + }, + "coordinates": { + "title": "Coordinates", + "description": "The coordinates of the GeoJSON Geometry object. For example, [longitude, latitude] or [longitude, latitude, elevation] for a Point geometry, using the World Geodetic System 1984 (WGS84, EPSG:4326) with longitude and latitude units of decimal degrees.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "number", + "array" + ] + } + } + } + }, + "gazetteer": { + "title": "Gazetteer", + "description": "Identifiers for the location from a gazetteer (a geographical index or directory).", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The identifier of the gazetteer, from the open [locationGazetter](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#locationGazetter) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "locationGazetteer.csv", + "openCodelist": true + }, + "identifiers": { + "title": "Identifiers", + "description": "One or more location codes taken from the scheme.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + } + } + }, + "uri": { + "title": "URI", + "description": "The URI of a resource about the location.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + } + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 } }, "minProperties": 1 diff --git a/schema/release-schema.json b/schema/release-schema.json index f7346ffb2..46f3ea6d8 100644 --- a/schema/release-schema.json +++ b/schema/release-schema.json @@ -144,7 +144,7 @@ "properties": { "id": { "title": "Planning ID", - "description": "An identifier for this planning process.", + "description": "An identifier for the planning process.", "type": [ "string", "null" @@ -163,6 +163,43 @@ "description": "Details of the budget that will fund the future contract(s)", "$ref": "#/definitions/Budget" }, + "project": { + "title": "Project", + "description": "Information about the infrastructure or public-private partnership (PPP) project to which the planning process is related.", + "$ref": "#/definitions/Project" + }, + "finalStatus": { + "title": "Final status", + "description": "The final status of the planning process, using the closed [planningFinalStatus](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#planning-final-status) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "planningFinalStatus.csv", + "openCodelist": false, + "enum": [ + "cancelled", + "unsuccessful", + null + ] + }, + "finalStatusDetails": { + "title": "Final status details", + "description": "Additional details on the final status of the planning process. This field can be used to provide the local name of the final status.", + "type": [ + "string", + "null" + ] + }, + "finalStatusDate": { + "title": "Final status date", + "description": "The date on which the planning process reached its final status.", + "format": "date-time", + "type": [ + "string", + "null" + ] + }, "documents": { "title": "Documents", "description": "Documents related to the planning process (for example, notices, needs assessments and market studies).", @@ -272,6 +309,15 @@ "null" ] }, + "finalStatusDate": { + "title": "Final status date", + "description": "The date on which the tender reached its final status.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "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.", @@ -301,6 +347,26 @@ "description": "The estimated maximum value of the framework agreement, as estimated when publishing the tender information.", "$ref": "#/definitions/Value" }, + "deliveryLocations": { + "title": "Delivery locations", + "description": "The locations where activity related to the opportunity will take place.", + "type": "array", + "items": { + "$ref": "#/definitions/Location" + }, + "wholeListMerge": true, + "uniqueItems": true + }, + "deliveryAddresses": { + "title": "Delivery addresses", + "description": "The addresses to which goods or services related to the opportunity will be delivered.", + "type": "array", + "items": { + "$ref": "#/definitions/Address" + }, + "wholeListMerge": true, + "uniqueItems": true + }, "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.", @@ -614,6 +680,15 @@ "null" ] }, + "finalStatusDate": { + "title": "Final status date", + "description": "The date on which the award reached its final status.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "date": { "title": "Award date", "description": "The date of the contract award. This is usually the date on which a decision to award was made.", @@ -798,6 +873,15 @@ "null" ] }, + "finalStatusDate": { + "title": "Final status date", + "description": "The date on which the contract reached its final status.", + "type": [ + "string", + "null" + ], + "format": "date-time" + }, "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).", @@ -1200,7 +1284,7 @@ }, "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.", + "description": "The name of the programme of work as it appears in a budget (for example, a national or state budget), of which the future contract(s) will be part or through which it/they will be funded.", "type": [ "string", "null" @@ -1208,7 +1292,7 @@ }, "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.", + "description": "The identifier of the programme of work as it appears in a budget (for example, a national or state budget), of which the future contract(s) will be part or through which it/they will be funded. Although an integer is allowed, it is recommended to use a string.", "type": [ "string", "integer", @@ -1543,9 +1627,36 @@ ] }, "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.", + "title": "Pricing unit", + "description": "The pricing unit. It is recommended to use the unit of measurement in which the goods, services or works are provided (e.g. kilogram, hour), rather than the unit of presentation (e.g. box), because units of measurement are easier to compare and convert than units of presentation. A unit of measurement is a definite magnitude of a quantity, defined and adopted by convention or law, that is used as a standard of measurement for the same kind of quantity. For example, mass, a quantity, can be measured in kilograms, a unit of measurement.", "$ref": "#/definitions/Unit" + }, + "immediateContainer": { + "title": "Immediate container", + "description": "The innermost packaging with which the item is in direct contact. Also known as: presentation, presentation form, package.", + "$ref": "#/definitions/ImmediateContainer" + }, + "deliveryLocations": { + "title": "Delivery locations", + "description": "The locations where activity related to the opportunity, contract or license will be delivered.", + "type": "array", + "items": { + "$ref": "#/definitions/Location" + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 + }, + "deliveryAddresses": { + "title": "Delivery addresses", + "description": "The addresses to which goods or services related to the opportunity, contract or license will be delivered.", + "type": "array", + "items": { + "$ref": "#/definitions/Address" + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 } } }, @@ -1720,6 +1831,98 @@ } } }, + "Location": { + "title": "Location", + "description": "A physical or virtual location.", + "type": "object", + "properties": { + "description": { + "title": "Description", + "description": "The name or description of the location.", + "type": [ + "string", + "null" + ] + }, + "geometry": { + "title": "Geometry", + "description": "The spatial extent of the location, as a [GeoJSON Geometry object](https://www.rfc-editor.org/rfc/rfc7946).", + "type": "object", + "properties": { + "type": { + "title": "Type", + "description": "The type of the GeoJSON Geometry object, from the closed [geometryType](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#geometryType) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "geometryType.csv", + "openCodelist": false, + "enum": [ + "Point", + "MultiPoint", + "LineString", + "MultiLineString", + "Polygon", + "MultiPolygon", + null + ] + }, + "coordinates": { + "title": "Coordinates", + "description": "The coordinates of the GeoJSON Geometry object. For example, [longitude, latitude] or [longitude, latitude, elevation] for a Point geometry, using the World Geodetic System 1984 (WGS84, EPSG:4326) with longitude and latitude units of decimal degrees.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "number", + "array" + ] + } + } + } + }, + "gazetteer": { + "title": "Gazetteer", + "description": "Identifiers for the location from a gazetteer (a geographical index or directory).", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The identifier of the gazetteer, from the open [locationGazetter](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#locationGazetter) codelist.", + "type": [ + "string", + "null" + ], + "codelist": "locationGazetteer.csv", + "openCodelist": true + }, + "identifiers": { + "title": "Identifiers", + "description": "One or more location codes taken from the scheme.", + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + } + } + }, + "uri": { + "title": "URI", + "description": "The URI of a resource about the location.", + "type": [ + "string", + "null" + ], + "format": "uri" + } + } + }, "Address": { "title": "Address", "description": "An address.", @@ -2031,6 +2234,14 @@ "description": "This field is deprecated in favor of `country`, to promote standardized country codes instead of non-standardized country names.", "deprecatedVersion": "1.2" } + }, + "description": { + "title": "Description", + "description": "The description of the address.", + "type": [ + "string", + "null" + ] } } }, @@ -2531,13 +2742,13 @@ } }, "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.", + "title": "Pricing unit", + "description": "A pricing unit. It is recommended to use the unit of measurement in which the goods, services or works are provided (e.g. kilogram, hour), rather than the unit of presentation (e.g. box), because units of measurement are easier to compare and convert than units of presentation. A unit of measurement is a definite magnitude of a quantity, defined and adopted by convention or law, that is used as a standard of measurement for the same kind of quantity. For example, mass, a quantity, can be measured in kilograms, a unit of measurement.", "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.", + "description": "The scheme or codelist from which the identifier for the unit is taken, using the open [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist. 'UNCEFACT' is recommended for a unit of measurement.", "type": [ "string", "null" @@ -2547,7 +2758,7 @@ }, "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.", + "description": "The identifier for the unit, taken from the scheme. Refer to the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find identifiers within schemes.", "type": [ "string", "null" @@ -2555,7 +2766,7 @@ }, "name": { "title": "Name", - "description": "Name of the unit.", + "description": "The name of the unit.", "type": [ "string", "null" @@ -2568,7 +2779,7 @@ }, "uri": { "title": "URI", - "description": "The machine-readable URI for the unit of measure, provided by the scheme.", + "description": "A URI to uniquely identify the unit.", "format": "uri", "type": [ "string", @@ -2577,6 +2788,80 @@ } } }, + "ImmediateContainer": { + "title": "Immediate container", + "description": "The innermost packaging with which an item is in direct contact. Also known as: presentation, presentation form, package.", + "type": "object", + "properties": { + "name": { + "title": "Name", + "description": "The common name of the container. For medicine items, it is recommended to use a title from the [immediateContainer](https://extensions.open-contracting.org/en/extensions/medicine/master/codelists/#immediateContainer.csv) codelist in the OCDS [Medicine](https://extensions.open-contracting.org/en/extensions/medicine/master/) extension. For other items, it is recommended to use a title from PackageTypeCodelist in the GS1 [Global Data Synchronisation Network (GDSN)](https://www.gs1.org/standards/gdsn) standard.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "capacity": { + "title": "Capacity", + "description": "The storage capacity of the container.", + "$ref": "#/definitions/Quantity" + } + }, + "minProperties": 1 + }, + "Quantity": { + "title": "Quantity", + "description": "The quantity of a thing.", + "type": "object", + "properties": { + "unit": { + "title": "Unit", + "description": "The unit of measurement for the quantity.", + "$ref": "#/definitions/SimpleUnit" + }, + "value": { + "title": "Value", + "description": "The quantity, as a multiple of the unit of measurement. The quantity is expressed in interval notation, for example: \"[10,10]\" for 10 units, \"[1,10]\" for 1 to 10 units, or \"[10,INF[\" for 10 or more units.", + "type": [ + "string", + "number", + "null" + ], + "pattern": "^[([\\]][0-9]+,([0-9]+|INF)[)[\\]]$" + } + }, + "minProperties": 1 + }, + "SimpleUnit": { + "title": "Simple unit", + "description": "A unit of measurement.", + "type": "object", + "properties": { + "scheme": { + "title": "Scheme", + "description": "The scheme or codelist from which the identifier for the unit of measurement is 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 for the unit of measurement, taken from the scheme. Refer to the [unitClassificationScheme](https://standard.open-contracting.org/{{version}}/{{lang}}/schema/codelists/#unit-classification-scheme) codelist for details of how to find identifiers within schemes.", + "type": [ + "string", + "null" + ], + "versionId": true, + "minLength": 1 + } + }, + "minProperties": 1 + }, "Link": { "title": "Link", "description": "A reference to a related resource.", @@ -2677,6 +2962,82 @@ } }, "minProperties": 1 + }, + "Project": { + "title": "Project", + "description": "Information about the infrastructure or public-private partnership (PPP) project to which a planning process is related.", + "type": "object", + "properties": { + "id": { + "title": "Identifier", + "description": "An externally provided identifier for the project. This can be a URI, an [Open Contracting for Infrastructure Data Standards Toolkit (OC4IDS)](https://standard.open-contracting.org/infrastructure/latest/en/guidance/identifiers/) project identifier, [OCDS for PPPs](https://standard.open-contracting.org/profiles/ppp/latest/en/framework/#i-basic-project-information) project identifier, an identifier from a projects register, or an identifier based on the canonical version of the project's name. Project identifiers should be unique within the scope of the publication.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "title": { + "title": "Title", + "description": "The name of the project. If a projects register is available, this should be the same as the project's name in that register.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "description": { + "title": "Description", + "description": "A short description of the project.", + "type": [ + "string", + "null" + ], + "minLength": 1 + }, + "totalValue": { + "title": "Total value", + "description": "The total anticipated value of the project over its lifetime.", + "$ref": "#/definitions/Value" + }, + "uri": { + "title": "URI", + "description": "The URI of a resource about the project.", + "type": [ + "string", + "null" + ], + "format": "uri" + }, + "sector": { + "title": "Sector", + "description": "The primary sector to which the project relates. It is recommended to use the scheme 'oc4idsProjectSector' and codes from the [OC4IDS projectSector codelist](https://standard.open-contracting.org/infrastructure/latest/en/reference/codelists/#projectsector).", + "$ref": "#/definitions/Classification" + }, + "additionalClassifications": { + "title": "Additional classifications", + "description": "Additional classifications for the project. For example, a sector or strategic framework classification.", + "type": "array", + "items": { + "$ref": "#/definitions/Classification" + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 + }, + "locations": { + "title": "Locations", + "description": "Information about the locations where the project takes place.", + "type": "array", + "items": { + "$ref": "#/definitions/Location" + }, + "wholeListMerge": true, + "uniqueItems": true, + "minItems": 1 + } + }, + "minProperties": 1 } } } diff --git a/schema/versioned-release-validation-schema.json b/schema/versioned-release-validation-schema.json index 091dd83cc..55b8de369 100644 --- a/schema/versioned-release-validation-schema.json +++ b/schema/versioned-release-validation-schema.json @@ -126,6 +126,49 @@ "budget": { "$ref": "#/definitions/Budget" }, + "project": { + "$ref": "#/definitions/Project" + }, + "finalStatus": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "string", + "null" + ], + "codelist": "planningFinalStatus.csv", + "openCodelist": false, + "enum": [ + "cancelled", + "unsuccessful", + null + ] + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "finalStatusDetails": { + "$ref": "#/definitions/StringNullVersioned" + }, + "finalStatusDate": { + "$ref": "#/definitions/StringNullDateTimeVersioned" + }, "documents": { "type": "array", "items": { @@ -289,6 +332,9 @@ "finalStatusDetails": { "$ref": "#/definitions/StringNullVersioned" }, + "finalStatusDate": { + "$ref": "#/definitions/StringNullDateTimeVersioned" + }, "procuringEntity": { "$ref": "#/definitions/OrganizationReferenceVersionedId" }, @@ -308,6 +354,62 @@ "maximumValue": { "$ref": "#/definitions/Value" }, + "deliveryLocations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/LocationUnversioned" + }, + "uniqueItems": true + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "deliveryAddresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/AddressUnversioned" + }, + "uniqueItems": true + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, "procurementMethod": { "type": "array", "items": { @@ -734,6 +836,9 @@ "finalStatusDetails": { "$ref": "#/definitions/StringNullVersioned" }, + "finalStatusDate": { + "$ref": "#/definitions/StringNullDateTimeVersioned" + }, "date": { "$ref": "#/definitions/StringNullDateTimeVersioned" }, @@ -944,6 +1049,9 @@ "finalStatusDetails": { "$ref": "#/definitions/StringNullVersioned" }, + "finalStatusDate": { + "$ref": "#/definitions/StringNullDateTimeVersioned" + }, "dateSigned": { "$ref": "#/definitions/StringNullDateTimeVersioned" }, @@ -1825,6 +1933,67 @@ }, "unit": { "$ref": "#/definitions/Unit" + }, + "immediateContainer": { + "$ref": "#/definitions/ImmediateContainer" + }, + "deliveryLocations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/LocationUnversioned" + }, + "uniqueItems": true, + "minItems": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "deliveryAddresses": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/AddressUnversioned" + }, + "uniqueItems": true, + "minItems": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } } } }, @@ -1989,6 +2158,157 @@ } } }, + "Location": { + "type": "object", + "properties": { + "description": { + "$ref": "#/definitions/StringNullVersioned" + }, + "geometry": { + "type": "object", + "properties": { + "type": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "string", + "null" + ], + "codelist": "geometryType.csv", + "openCodelist": false, + "enum": [ + "Point", + "MultiPoint", + "LineString", + "MultiLineString", + "Polygon", + "MultiPolygon", + null + ] + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "coordinates": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "number", + "array" + ] + } + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "gazetteer": { + "type": "object", + "properties": { + "scheme": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": [ + "string", + "null" + ], + "codelist": "locationGazetteer.csv", + "openCodelist": true + }, + "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", + "null" + ], + "items": { + "type": "string" + } + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "uri": { + "$ref": "#/definitions/StringNullUriVersioned" + } + } + }, "Address": { "type": "object", "properties": { @@ -2316,6 +2636,9 @@ } } } + }, + "description": { + "$ref": "#/definitions/StringNullVersioned" } } }, @@ -2924,10 +3247,10 @@ } } }, - "Link": { + "ImmediateContainer": { "type": "object", "properties": { - "rel": { + "name": { "type": "array", "items": { "type": "object", @@ -2940,9 +3263,11 @@ "type": "string" }, "value": { - "type": "string", - "codelist": "linkRelationType.csv", - "openCodelist": true + "type": [ + "string", + "null" + ], + "minLength": 1 }, "releaseTag": { "type": "array", @@ -2953,7 +3278,19 @@ } } }, - "href": { + "capacity": { + "$ref": "#/definitions/Quantity" + } + }, + "minProperties": 1 + }, + "Quantity": { + "type": "object", + "properties": { + "unit": { + "$ref": "#/definitions/SimpleUnit" + }, + "value": { "type": "array", "items": { "type": "object", @@ -2966,8 +3303,12 @@ "type": "string" }, "value": { - "type": "string", - "format": "uri" + "type": [ + "string", + "number", + "null" + ], + "pattern": "^[([\\]][0-9]+,([0-9]+|INF)[)[\\]]$" }, "releaseTag": { "type": "array", @@ -2978,14 +3319,136 @@ } } } - } + }, + "minProperties": 1 }, - "SimpleIdentifier": { + "SimpleUnit": { "type": "object", "properties": { "scheme": { - "$ref": "#/definitions/StringNullVersioned" - }, + "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" + ], + "versionId": true, + "minLength": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "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 + }, + "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" + } + } + } + } + } + } + }, + "SimpleIdentifier": { + "type": "object", + "properties": { + "scheme": { + "$ref": "#/definitions/StringNullVersioned" + }, "id": { "type": "array", "items": { @@ -3124,6 +3587,163 @@ }, "minProperties": 1 }, + "Project": { + "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" + } + } + } + } + }, + "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" + } + } + } + } + }, + "totalValue": { + "$ref": "#/definitions/Value" + }, + "uri": { + "$ref": "#/definitions/StringNullUriVersioned" + }, + "sector": { + "$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" + } + } + } + } + }, + "locations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "releaseDate": { + "format": "date-time", + "type": "string" + }, + "releaseID": { + "type": "string" + }, + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/LocationUnversioned" + }, + "uniqueItems": true, + "minItems": 1 + }, + "releaseTag": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "minProperties": 1 + }, "StringNullUriVersioned": { "type": "array", "items": { @@ -3338,6 +3958,386 @@ } } }, + "LocationUnversioned": { + "type": "object", + "properties": { + "description": { + "type": [ + "string", + "null" + ] + }, + "geometry": { + "type": "object", + "properties": { + "type": { + "type": [ + "string", + "null" + ], + "codelist": "geometryType.csv", + "openCodelist": false, + "enum": [ + "Point", + "MultiPoint", + "LineString", + "MultiLineString", + "Polygon", + "MultiPolygon", + null + ] + }, + "coordinates": { + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "number", + "array" + ] + } + } + } + }, + "gazetteer": { + "type": "object", + "properties": { + "scheme": { + "type": [ + "string", + "null" + ], + "codelist": "locationGazetteer.csv", + "openCodelist": true + }, + "identifiers": { + "type": [ + "array", + "null" + ], + "items": { + "type": "string" + } + } + } + }, + "uri": { + "type": [ + "string", + "null" + ], + "format": "uri" + } + } + }, + "AddressUnversioned": { + "type": "object", + "properties": { + "streetAddress": { + "type": [ + "string", + "null" + ] + }, + "locality": { + "type": [ + "string", + "null" + ] + }, + "region": { + "type": [ + "string", + "null" + ] + }, + "postalCode": { + "type": [ + "string", + "null" + ] + }, + "country": { + "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": { + "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" + } + }, + "description": { + "type": [ + "string", + "null" + ] + } + } + }, "IdentifierUnversioned": { "type": "object", "properties": { diff --git a/script/diff b/script/diff index 988c0fff9..cf7e85060 100755 --- a/script/diff +++ b/script/diff @@ -1,6 +1,7 @@ -#!/usr/bin/env bash -# No -e, because diff fails. -set -uo pipefail +#!/bin/sh + +# No -e, because diff uses exit status 1 when differences are found. +set -u curl -sS https://raw.githubusercontent.com/open-contracting/standard_profile_template/latest/docs/conf.py | diff -u - docs/conf.py diff --git a/script/update b/script/update index ada17caa4..cba8c6fc2 100755 --- a/script/update +++ b/script/update @@ -1,7 +1,8 @@ -#!/usr/bin/env bash -set -euo pipefail +#!/bin/sh -function main { +set -eu + +main() { mkdir -p script include tests for f in Makefile common-requirements.in common-requirements.txt .github/dependabot.yml .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