From fe3375130f5a2c40ec3bb82c2040f5c8c08c5f14 Mon Sep 17 00:00:00 2001 From: Harriet H-W Date: Thu, 18 Jul 2024 13:57:15 +0100 Subject: [PATCH] Add Content Block Tax Rate content type MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Content Modelling Team are working on a spike to add the ability to publishing reusable pieces of content (“Content Blocks”) via Whitehall. This adds a simple initial schema to help us work with a type of tax rate. --- content_schemas/allowed_document_types.yml | 1 + .../notification/schema.json | 697 ++++++++++++++++++ .../publisher_v2/links.json | 86 +++ .../publisher_v2/schema.json | 323 ++++++++ .../dist/formats/generic/frontend/schema.json | 1 + .../formats/generic/notification/schema.json | 1 + .../formats/generic/publisher_v2/schema.json | 1 + .../frontend/schema.json | 1 + .../notification/schema.json | 1 + .../publisher_v2/schema.json | 1 + .../publisher_v2/example.json | 13 + .../formats/content_block_tax_rate.jsonnet | 24 + 12 files changed, 1150 insertions(+) create mode 100644 content_schemas/dist/formats/content_block_tax_rate/notification/schema.json create mode 100644 content_schemas/dist/formats/content_block_tax_rate/publisher_v2/links.json create mode 100644 content_schemas/dist/formats/content_block_tax_rate/publisher_v2/schema.json create mode 100644 content_schemas/examples/content_block_tax_rate/publisher_v2/example.json create mode 100644 content_schemas/formats/content_block_tax_rate.jsonnet diff --git a/content_schemas/allowed_document_types.yml b/content_schemas/allowed_document_types.yml index e330c72ea..efb831a61 100644 --- a/content_schemas/allowed_document_types.yml +++ b/content_schemas/allowed_document_types.yml @@ -23,6 +23,7 @@ - closed_consultation - cma_case - content_block_email_address +- content_block_tax_rate - complaints_procedure - completed_transaction - consultation diff --git a/content_schemas/dist/formats/content_block_tax_rate/notification/schema.json b/content_schemas/dist/formats/content_block_tax_rate/notification/schema.json new file mode 100644 index 000000000..06bc69a16 --- /dev/null +++ b/content_schemas/dist/formats/content_block_tax_rate/notification/schema.json @@ -0,0 +1,697 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "required": [ + "analytics_identifier", + "base_path", + "content_id", + "description", + "details", + "document_type", + "email_document_supertype", + "expanded_links", + "first_published_at", + "government_document_supertype", + "govuk_request_id", + "links", + "locale", + "payload_version", + "phase", + "public_updated_at", + "publishing_app", + "redirects", + "rendering_app", + "routes", + "schema_name", + "title", + "update_type" + ], + "additionalProperties": false, + "properties": { + "analytics_identifier": { + "$ref": "#/definitions/analytics_identifier" + }, + "base_path": { + "type": "null" + }, + "content_id": { + "$ref": "#/definitions/guid" + }, + "content_purpose_document_supertype": { + "description": "DEPRECATED. Use `content_purpose_subgroup`.", + "type": "string" + }, + "content_purpose_subgroup": { + "description": "Document subgroup grouping documents by purpose. Narrows down the purpose defined in content_purpose_supergroup.", + "type": "string" + }, + "content_purpose_supergroup": { + "description": "Document supergroup grouping documents by a purpose", + "type": "string" + }, + "description": { + "$ref": "#/definitions/description_optional" + }, + "details": { + "$ref": "#/definitions/details" + }, + "document_type": { + "type": "string", + "enum": [ + "content_block_tax_rate" + ] + }, + "email_document_supertype": { + "description": "Document supertype grouping intended to power the Whitehall finders and email subscriptions", + "type": "string" + }, + "expanded_links": { + "type": "object", + "additionalProperties": false, + "properties": { + "available_translations": { + "description": "Link type automatically added by Publishing API", + "$ref": "#/definitions/frontend_links_with_base_path" + }, + "child_taxons": { + "description": "Link type automatically added by Publishing API", + "$ref": "#/definitions/frontend_links_with_base_path" + }, + "children": { + "description": "Link type automatically added by Publishing API", + "$ref": "#/definitions/frontend_links_with_base_path" + }, + "document_collections": { + "description": "Link type automatically added by Publishing API", + "$ref": "#/definitions/frontend_links_with_base_path" + }, + "finder": { + "description": "Powers links from content back to finders the content is surfaced on", + "$ref": "#/definitions/frontend_links_with_base_path" + }, + "lead_organisations": { + "description": "DEPRECATED: A subset of organisations that should be emphasised in relation to this content item. All organisations specified here should also be part of the organisations array.", + "$ref": "#/definitions/frontend_links_with_base_path" + }, + "level_one_taxons": { + "description": "Link type automatically added by Publishing API", + "$ref": "#/definitions/frontend_links_with_base_path" + }, + "mainstream_browse_pages": { + "description": "Powers the /browse section of the site. These are known as sections in some legacy apps.", + "$ref": "#/definitions/frontend_links_with_base_path" + }, + "meets_user_needs": { + "description": "The user needs this piece of content meets.", + "$ref": "#/definitions/frontend_links_with_base_path" + }, + "ministers": { + "description": "Link type automatically added by Publishing API", + "$ref": "#/definitions/frontend_links" + }, + "ordered_related_items": { + "description": "Related items, can be any page on GOV.UK. Mostly used for mainstream content to power the sidebar. Ordering of the links is determined by the editor in Content Tagger.", + "$ref": "#/definitions/frontend_links_with_base_path" + }, + "ordered_related_items_overrides": { + "description": "Related items, can be any page on GOV.UK. Overrides 'more like this' automatically generated links in the beta navigation.", + "$ref": "#/definitions/frontend_links_with_base_path" + }, + "organisations": { + "description": "All organisations linked to this content item. This should include lead organisations.", + "$ref": "#/definitions/frontend_links_with_base_path" + }, + "original_primary_publishing_organisation": { + "description": "The organisation that published the original version of the page. Corresponds to the first of the 'Lead organisations' in Whitehall for the first edition, and is empty for all other publishing applications.", + "$ref": "#/definitions/frontend_links_with_base_path" + }, + "parent": { + "description": "The parent content item.", + "$ref": "#/definitions/frontend_links_with_base_path", + "maxItems": 1 + }, + "part_of_step_navs": { + "description": "Link type automatically added by Publishing API", + "$ref": "#/definitions/frontend_links_with_base_path" + }, + "policies": { + "description": "Link type automatically added by Publishing API", + "$ref": "#/definitions/frontend_links_with_base_path" + }, + "policy_areas": { + "description": "A largely deprecated tag currently only used to power email alerts.", + "$ref": "#/definitions/frontend_links_with_base_path" + }, + "primary_publishing_organisation": { + "description": "The organisation that published the page. Corresponds to the first of the 'Lead organisations' in Whitehall, and is empty for all other publishing applications.", + "$ref": "#/definitions/frontend_links_with_base_path", + "maxItems": 1 + }, + "related_to_step_navs": { + "description": "Link type automatically added by Publishing API", + "$ref": "#/definitions/frontend_links_with_base_path" + }, + "role_appointments": { + "description": "Link type automatically added by Publishing API", + "$ref": "#/definitions/frontend_links" + }, + "secondary_to_step_navs": { + "description": "Link type automatically added by Publishing API", + "$ref": "#/definitions/frontend_links_with_base_path" + }, + "suggested_ordered_related_items": { + "description": "Used for displaying related content on most pages, except for step-by-step and fatality notices. Links and their ordering are determined by the machine learning algorithms.", + "$ref": "#/definitions/frontend_links_with_base_path" + }, + "taxons": { + "description": "Prototype-stage taxonomy label for this content item", + "$ref": "#/definitions/frontend_links_with_base_path" + } + } + }, + "first_published_at": { + "$ref": "#/definitions/first_published_at" + }, + "government_document_supertype": { + "description": "Document supertype grouping intended to power the Whitehall finders and email subscriptions", + "type": "string" + }, + "govuk_request_id": { + "$ref": "#/definitions/govuk_request_id" + }, + "links": { + "type": "object", + "additionalProperties": false, + "properties": { + "finder": { + "description": "Powers links from content back to finders the content is surfaced on", + "$ref": "#/definitions/guid_list" + }, + "lead_organisations": { + "description": "DEPRECATED: A subset of organisations that should be emphasised in relation to this content item. All organisations specified here should also be part of the organisations array.", + "$ref": "#/definitions/guid_list" + }, + "mainstream_browse_pages": { + "description": "Powers the /browse section of the site. These are known as sections in some legacy apps.", + "$ref": "#/definitions/guid_list" + }, + "meets_user_needs": { + "description": "The user needs this piece of content meets.", + "$ref": "#/definitions/guid_list" + }, + "ordered_related_items": { + "description": "Related items, can be any page on GOV.UK. Mostly used for mainstream content to power the sidebar. Ordering of the links is determined by the editor in Content Tagger.", + "$ref": "#/definitions/guid_list" + }, + "ordered_related_items_overrides": { + "description": "Related items, can be any page on GOV.UK. Overrides 'more like this' automatically generated links in the beta navigation.", + "$ref": "#/definitions/guid_list" + }, + "organisations": { + "description": "All organisations linked to this content item. This should include lead organisations.", + "$ref": "#/definitions/guid_list" + }, + "original_primary_publishing_organisation": { + "description": "The organisation that published the original version of the page. Corresponds to the first of the 'Lead organisations' in Whitehall for the first edition, and is empty for all other publishing applications.", + "$ref": "#/definitions/guid_list" + }, + "parent": { + "description": "The parent content item.", + "$ref": "#/definitions/guid_list", + "maxItems": 1 + }, + "policy_areas": { + "description": "A largely deprecated tag currently only used to power email alerts.", + "$ref": "#/definitions/guid_list" + }, + "primary_publishing_organisation": { + "description": "The organisation that published the page. Corresponds to the first of the 'Lead organisations' in Whitehall, and is empty for all other publishing applications.", + "$ref": "#/definitions/guid_list", + "maxItems": 1 + }, + "suggested_ordered_related_items": { + "description": "Used for displaying related content on most pages, except for step-by-step and fatality notices. Links and their ordering are determined by the machine learning algorithms.", + "$ref": "#/definitions/guid_list" + }, + "taxons": { + "description": "Prototype-stage taxonomy label for this content item", + "$ref": "#/definitions/guid_list" + } + } + }, + "locale": { + "$ref": "#/definitions/locale" + }, + "navigation_document_supertype": { + "description": "Document type grouping powering the new taxonomy-based navigation pages", + "type": "string" + }, + "need_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "payload_version": { + "$ref": "#/definitions/payload_version" + }, + "phase": { + "description": "The service design phase of this content item - https://www.gov.uk/service-manual/phases", + "type": "string", + "enum": [ + "alpha", + "beta", + "live" + ] + }, + "public_updated_at": { + "$ref": "#/definitions/public_updated_at" + }, + "publishing_app": { + "$ref": "#/definitions/publishing_app_name" + }, + "publishing_request_id": { + "$ref": "#/definitions/publishing_request_id" + }, + "redirects": { + "type": "array", + "additionalItems": false, + "items": {} + }, + "rendering_app": { + "type": "null" + }, + "routes": { + "type": "array", + "additionalItems": false, + "items": {} + }, + "schema_name": { + "type": "string", + "enum": [ + "content_block_tax_rate" + ] + }, + "search_user_need_document_supertype": { + "description": "Document supertype grouping core and government documents", + "type": "string" + }, + "title": { + "$ref": "#/definitions/title" + }, + "update_type": { + "$ref": "#/definitions/update_type" + }, + "user_journey_document_supertype": { + "description": "Document type grouping powering analytics of user journeys", + "type": "string" + }, + "user_need_document_supertype": { + "description": "DEPRECATED. Use `content_purpose_document_supertype`.", + "type": "string" + }, + "withdrawn_notice": { + "$ref": "#/definitions/withdrawn_notice" + } + }, + "definitions": { + "description": { + "type": "string" + }, + "absolute_path": { + "description": "A path only. Query string and/or fragment are not allowed.", + "type": "string", + "pattern": "^/(([a-zA-Z0-9._~!$&'()*+,;=:@-]|%[0-9a-fA-F]{2})+(/([a-zA-Z0-9._~!$&'()*+,;=:@-]|%[0-9a-fA-F]{2})*)*)?$" + }, + "analytics_identifier": { + "description": "A short identifier we send to Google Analytics for multi-valued fields. This means we avoid the truncated values we would get if we sent the path or slug of eg organisations.", + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "change_history": { + "type": "array", + "items": { + "type": "object", + "required": [ + "public_timestamp", + "note" + ], + "additionalProperties": false, + "properties": { + "note": { + "description": "A summary of the change", + "type": "string" + }, + "public_timestamp": { + "type": "string", + "format": "date-time" + } + } + } + }, + "description_optional": { + "anyOf": [ + { + "$ref": "#/definitions/description" + }, + { + "type": "null" + } + ] + }, + "details": { + "type": "object", + "required": [ + "band", + "income", + "rate" + ], + "additionalProperties": false, + "properties": { + "band": { + "type": "string" + }, + "change_history": { + "$ref": "#/definitions/change_history" + }, + "income": { + "type": "string" + }, + "rate": { + "type": "string" + } + } + }, + "first_published_at": { + "description": "The date the content was first published. Automatically determined by the publishing-api, unless overridden by the publishing application.", + "type": "string", + "format": "date-time" + }, + "frontend_links": { + "type": "array", + "items": { + "type": "object", + "required": [ + "content_id", + "locale", + "title" + ], + "additionalProperties": true, + "properties": { + "analytics_identifier": { + "$ref": "#/definitions/analytics_identifier" + }, + "api_path": { + "$ref": "#/definitions/absolute_path" + }, + "api_url": { + "description": "DEPRECATED: api_path should be used instead of api_url. This is due to values of api_url being tied to an environment which can cause problems when data is synced between environments. In time this field will be removed by the Publishing Platform team.", + "type": "string", + "format": "uri" + }, + "base_path": { + "$ref": "#/definitions/absolute_path" + }, + "content_id": { + "$ref": "#/definitions/guid" + }, + "document_type": { + "type": "string" + }, + "links": { + "type": "object", + "patternProperties": { + "^[a-z_]+$": { + "$ref": "#/definitions/frontend_links" + } + } + }, + "locale": { + "$ref": "#/definitions/locale" + }, + "public_updated_at": { + "oneOf": [ + { + "$ref": "#/definitions/public_updated_at" + }, + { + "type": "null" + } + ] + }, + "schema_name": { + "type": "string" + }, + "title": { + "type": "string" + }, + "web_url": { + "description": "DEPRECATED: base_path should be used instead of web_url. This is due to values of web_url being tied to an environment which can cause problems when data is synced between environments. In time this field will be removed by the Publishing Platform team.", + "type": "string", + "format": "uri" + } + } + } + }, + "frontend_links_with_base_path": { + "type": "array", + "items": { + "type": "object", + "required": [ + "base_path", + "content_id", + "locale", + "title" + ], + "additionalProperties": true, + "properties": { + "analytics_identifier": { + "$ref": "#/definitions/analytics_identifier" + }, + "api_path": { + "$ref": "#/definitions/absolute_path" + }, + "api_url": { + "description": "DEPRECATED: api_path should be used instead of api_url. This is due to values of api_url being tied to an environment which can cause problems when data is synced between environments. In time this field will be removed by the Publishing Platform team.", + "type": "string", + "format": "uri" + }, + "base_path": { + "$ref": "#/definitions/absolute_path" + }, + "content_id": { + "$ref": "#/definitions/guid" + }, + "document_type": { + "type": "string" + }, + "links": { + "type": "object", + "patternProperties": { + "^[a-z_]+$": { + "$ref": "#/definitions/frontend_links_with_base_path" + } + } + }, + "locale": { + "$ref": "#/definitions/locale" + }, + "public_updated_at": { + "oneOf": [ + { + "$ref": "#/definitions/public_updated_at" + }, + { + "type": "null" + } + ] + }, + "schema_name": { + "type": "string" + }, + "title": { + "type": "string" + }, + "web_url": { + "description": "DEPRECATED: base_path should be used instead of web_url. This is due to values of web_url being tied to an environment which can cause problems when data is synced between environments. In time this field will be removed by the Publishing Platform team.", + "type": "string", + "format": "uri" + } + } + } + }, + "govuk_request_id": { + "type": [ + "string", + "null" + ] + }, + "guid": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$" + }, + "guid_list": { + "type": "array", + "items": { + "$ref": "#/definitions/guid" + }, + "uniqueItems": true + }, + "locale": { + "type": "string", + "enum": [ + "ar", + "az", + "be", + "bg", + "bn", + "cs", + "cy", + "da", + "de", + "dr", + "el", + "en", + "es", + "es-419", + "et", + "fa", + "fi", + "fr", + "gd", + "gu", + "he", + "hi", + "hr", + "hu", + "hy", + "id", + "is", + "it", + "ja", + "ka", + "kk", + "ko", + "lt", + "lv", + "ms", + "mt", + "ne", + "nl", + "no", + "pa", + "pa-pk", + "pl", + "ps", + "pt", + "ro", + "ru", + "si", + "sk", + "sl", + "so", + "sq", + "sr", + "sv", + "sw", + "ta", + "th", + "tk", + "tr", + "uk", + "ur", + "uz", + "vi", + "yi", + "zh", + "zh-hk", + "zh-tw" + ] + }, + "payload_version": { + "description": "Counter to indicate when the payload was generated", + "type": "integer" + }, + "public_updated_at": { + "description": "When the content was last significantly changed (a major update). Shown to users. Automatically determined by the publishing-api, unless overridden by the publishing application.", + "type": "string", + "format": "date-time" + }, + "publishing_app_name": { + "description": "The application that published this item.", + "type": "string", + "enum": [ + "account-api", + "calculators", + "calendars", + "collections-publisher", + "contacts", + "content-publisher", + "content-tagger", + "email-alert-frontend", + "external-link-tracker", + "feedback", + "frontend", + "government-frontend", + "hmrc-manuals-api", + "local-links-manager", + "manuals-publisher", + "maslow", + "performanceplatform-big-screen-view", + "publisher", + "rummager", + "search-admin", + "search-api", + "service-manual-publisher", + "share-sale-publisher", + "short-url-manager", + "smartanswers", + "special-route-publisher", + "specialist-publisher", + "static", + "tariff", + "travel-advice-publisher", + "whitehall" + ] + }, + "publishing_request_id": { + "description": "A unique identifier used to track publishing requests to rendered content", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "title": { + "type": "string" + }, + "update_type": { + "enum": [ + "major", + "minor", + "republish" + ] + }, + "withdrawn_notice": { + "type": "object", + "additionalProperties": false, + "properties": { + "explanation": { + "type": "string" + }, + "withdrawn_at": { + "format": "date-time" + } + } + } + } +} diff --git a/content_schemas/dist/formats/content_block_tax_rate/publisher_v2/links.json b/content_schemas/dist/formats/content_block_tax_rate/publisher_v2/links.json new file mode 100644 index 000000000..d3e7fac0a --- /dev/null +++ b/content_schemas/dist/formats/content_block_tax_rate/publisher_v2/links.json @@ -0,0 +1,86 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "additionalProperties": false, + "properties": { + "bulk_publishing": { + "type": "boolean" + }, + "links": { + "type": "object", + "additionalProperties": false, + "properties": { + "finder": { + "description": "Powers links from content back to finders the content is surfaced on", + "$ref": "#/definitions/guid_list" + }, + "lead_organisations": { + "description": "DEPRECATED: A subset of organisations that should be emphasised in relation to this content item. All organisations specified here should also be part of the organisations array.", + "$ref": "#/definitions/guid_list" + }, + "mainstream_browse_pages": { + "description": "Powers the /browse section of the site. These are known as sections in some legacy apps.", + "$ref": "#/definitions/guid_list" + }, + "meets_user_needs": { + "description": "The user needs this piece of content meets.", + "$ref": "#/definitions/guid_list" + }, + "ordered_related_items": { + "description": "Related items, can be any page on GOV.UK. Mostly used for mainstream content to power the sidebar. Ordering of the links is determined by the editor in Content Tagger.", + "$ref": "#/definitions/guid_list" + }, + "ordered_related_items_overrides": { + "description": "Related items, can be any page on GOV.UK. Overrides 'more like this' automatically generated links in the beta navigation.", + "$ref": "#/definitions/guid_list" + }, + "organisations": { + "description": "All organisations linked to this content item. This should include lead organisations.", + "$ref": "#/definitions/guid_list" + }, + "original_primary_publishing_organisation": { + "description": "The organisation that published the original version of the page. Corresponds to the first of the 'Lead organisations' in Whitehall for the first edition, and is empty for all other publishing applications.", + "$ref": "#/definitions/guid_list" + }, + "parent": { + "description": "The parent content item.", + "$ref": "#/definitions/guid_list", + "maxItems": 1 + }, + "policy_areas": { + "description": "A largely deprecated tag currently only used to power email alerts.", + "$ref": "#/definitions/guid_list" + }, + "primary_publishing_organisation": { + "description": "The organisation that published the page. Corresponds to the first of the 'Lead organisations' in Whitehall, and is empty for all other publishing applications.", + "$ref": "#/definitions/guid_list", + "maxItems": 1 + }, + "suggested_ordered_related_items": { + "description": "Used for displaying related content on most pages, except for step-by-step and fatality notices. Links and their ordering are determined by the machine learning algorithms.", + "$ref": "#/definitions/guid_list" + }, + "taxons": { + "description": "Prototype-stage taxonomy label for this content item", + "$ref": "#/definitions/guid_list" + } + } + }, + "previous_version": { + "type": "string" + } + }, + "definitions": { + "guid": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$" + }, + "guid_list": { + "type": "array", + "items": { + "$ref": "#/definitions/guid" + }, + "uniqueItems": true + } + } +} diff --git a/content_schemas/dist/formats/content_block_tax_rate/publisher_v2/schema.json b/content_schemas/dist/formats/content_block_tax_rate/publisher_v2/schema.json new file mode 100644 index 000000000..2f9969593 --- /dev/null +++ b/content_schemas/dist/formats/content_block_tax_rate/publisher_v2/schema.json @@ -0,0 +1,323 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "required": [ + "details", + "document_type", + "publishing_app", + "schema_name", + "title" + ], + "additionalProperties": false, + "properties": { + "access_limited": { + "$ref": "#/definitions/access_limited" + }, + "analytics_identifier": { + "$ref": "#/definitions/analytics_identifier" + }, + "auth_bypass_ids": { + "description": "A list of ids that will allow access to this item for non-authenticated users", + "$ref": "#/definitions/guid_list" + }, + "base_path": { + "type": "null" + }, + "bulk_publishing": { + "type": "boolean" + }, + "change_note": { + "type": [ + "null", + "string" + ] + }, + "description": { + "$ref": "#/definitions/description_optional" + }, + "details": { + "$ref": "#/definitions/details" + }, + "document_type": { + "type": "string", + "enum": [ + "content_block_tax_rate" + ] + }, + "first_published_at": { + "$ref": "#/definitions/first_published_at" + }, + "last_edited_at": { + "description": "Last time when the content received a major or minor update.", + "type": "string", + "format": "date-time" + }, + "links": { + "type": "object", + "additionalProperties": false, + "properties": { + "policy_areas": { + "description": "A largely deprecated tag currently only used to power email alerts.", + "$ref": "#/definitions/guid_list" + } + } + }, + "locale": { + "$ref": "#/definitions/locale" + }, + "need_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "phase": { + "description": "The service design phase of this content item - https://www.gov.uk/service-manual/phases", + "type": "string", + "enum": [ + "alpha", + "beta", + "live" + ] + }, + "previous_version": { + "type": "string" + }, + "public_updated_at": { + "$ref": "#/definitions/public_updated_at" + }, + "publishing_app": { + "$ref": "#/definitions/publishing_app_name" + }, + "redirects": { + "type": "array", + "additionalItems": false, + "items": {} + }, + "rendering_app": { + "type": "null" + }, + "routes": { + "type": "array", + "additionalItems": false, + "items": {} + }, + "schema_name": { + "type": "string", + "enum": [ + "content_block_tax_rate" + ] + }, + "title": { + "$ref": "#/definitions/title" + }, + "update_type": { + "$ref": "#/definitions/update_type" + } + }, + "definitions": { + "description": { + "type": "string" + }, + "access_limited": { + "type": "object", + "additionalProperties": false, + "properties": { + "auth_bypass_ids": { + "description": "Deprecated: auth_bypass_ids should be sent as a separate field", + "$ref": "#/definitions/guid_list" + }, + "organisations": { + "description": "A list of organisation content ids permitted access to this item", + "$ref": "#/definitions/guid_list" + }, + "users": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "analytics_identifier": { + "description": "A short identifier we send to Google Analytics for multi-valued fields. This means we avoid the truncated values we would get if we sent the path or slug of eg organisations.", + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "description_optional": { + "anyOf": [ + { + "$ref": "#/definitions/description" + }, + { + "type": "null" + } + ] + }, + "details": { + "type": "object", + "required": [ + "band", + "income", + "rate" + ], + "additionalProperties": false, + "properties": { + "band": { + "type": "string" + }, + "income": { + "type": "string" + }, + "rate": { + "type": "string" + } + } + }, + "first_published_at": { + "description": "The date the content was first published. Automatically determined by the publishing-api, unless overridden by the publishing application.", + "type": "string", + "format": "date-time" + }, + "guid": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$" + }, + "guid_list": { + "type": "array", + "items": { + "$ref": "#/definitions/guid" + }, + "uniqueItems": true + }, + "locale": { + "type": "string", + "enum": [ + "ar", + "az", + "be", + "bg", + "bn", + "cs", + "cy", + "da", + "de", + "dr", + "el", + "en", + "es", + "es-419", + "et", + "fa", + "fi", + "fr", + "gd", + "gu", + "he", + "hi", + "hr", + "hu", + "hy", + "id", + "is", + "it", + "ja", + "ka", + "kk", + "ko", + "lt", + "lv", + "ms", + "mt", + "ne", + "nl", + "no", + "pa", + "pa-pk", + "pl", + "ps", + "pt", + "ro", + "ru", + "si", + "sk", + "sl", + "so", + "sq", + "sr", + "sv", + "sw", + "ta", + "th", + "tk", + "tr", + "uk", + "ur", + "uz", + "vi", + "yi", + "zh", + "zh-hk", + "zh-tw" + ] + }, + "public_updated_at": { + "description": "When the content was last significantly changed (a major update). Shown to users. Automatically determined by the publishing-api, unless overridden by the publishing application.", + "type": "string", + "format": "date-time" + }, + "publishing_app_name": { + "description": "The application that published this item.", + "type": "string", + "enum": [ + "account-api", + "calculators", + "calendars", + "collections-publisher", + "contacts", + "content-publisher", + "content-tagger", + "email-alert-frontend", + "external-link-tracker", + "feedback", + "frontend", + "government-frontend", + "hmrc-manuals-api", + "local-links-manager", + "manuals-publisher", + "maslow", + "performanceplatform-big-screen-view", + "publisher", + "rummager", + "search-admin", + "search-api", + "service-manual-publisher", + "share-sale-publisher", + "short-url-manager", + "smartanswers", + "special-route-publisher", + "specialist-publisher", + "static", + "tariff", + "travel-advice-publisher", + "whitehall" + ] + }, + "title": { + "type": "string" + }, + "update_type": { + "enum": [ + "major", + "minor", + "republish" + ] + } + } +} diff --git a/content_schemas/dist/formats/generic/frontend/schema.json b/content_schemas/dist/formats/generic/frontend/schema.json index 7c2f99ef3..89b0c6d6c 100644 --- a/content_schemas/dist/formats/generic/frontend/schema.json +++ b/content_schemas/dist/formats/generic/frontend/schema.json @@ -59,6 +59,7 @@ "closed_consultation", "cma_case", "content_block_email_address", + "content_block_tax_rate", "complaints_procedure", "completed_transaction", "consultation", diff --git a/content_schemas/dist/formats/generic/notification/schema.json b/content_schemas/dist/formats/generic/notification/schema.json index 9d6f0bb6c..c656bd290 100644 --- a/content_schemas/dist/formats/generic/notification/schema.json +++ b/content_schemas/dist/formats/generic/notification/schema.json @@ -83,6 +83,7 @@ "closed_consultation", "cma_case", "content_block_email_address", + "content_block_tax_rate", "complaints_procedure", "completed_transaction", "consultation", diff --git a/content_schemas/dist/formats/generic/publisher_v2/schema.json b/content_schemas/dist/formats/generic/publisher_v2/schema.json index fc9dab655..a1c9c994f 100644 --- a/content_schemas/dist/formats/generic/publisher_v2/schema.json +++ b/content_schemas/dist/formats/generic/publisher_v2/schema.json @@ -69,6 +69,7 @@ "closed_consultation", "cma_case", "content_block_email_address", + "content_block_tax_rate", "complaints_procedure", "completed_transaction", "consultation", diff --git a/content_schemas/dist/formats/generic_with_external_related_links/frontend/schema.json b/content_schemas/dist/formats/generic_with_external_related_links/frontend/schema.json index eb7b68bc0..47f51bfe5 100644 --- a/content_schemas/dist/formats/generic_with_external_related_links/frontend/schema.json +++ b/content_schemas/dist/formats/generic_with_external_related_links/frontend/schema.json @@ -59,6 +59,7 @@ "closed_consultation", "cma_case", "content_block_email_address", + "content_block_tax_rate", "complaints_procedure", "completed_transaction", "consultation", diff --git a/content_schemas/dist/formats/generic_with_external_related_links/notification/schema.json b/content_schemas/dist/formats/generic_with_external_related_links/notification/schema.json index f66968dab..452cdc7f6 100644 --- a/content_schemas/dist/formats/generic_with_external_related_links/notification/schema.json +++ b/content_schemas/dist/formats/generic_with_external_related_links/notification/schema.json @@ -83,6 +83,7 @@ "closed_consultation", "cma_case", "content_block_email_address", + "content_block_tax_rate", "complaints_procedure", "completed_transaction", "consultation", diff --git a/content_schemas/dist/formats/generic_with_external_related_links/publisher_v2/schema.json b/content_schemas/dist/formats/generic_with_external_related_links/publisher_v2/schema.json index d6f2f0f1d..83dee3a4b 100644 --- a/content_schemas/dist/formats/generic_with_external_related_links/publisher_v2/schema.json +++ b/content_schemas/dist/formats/generic_with_external_related_links/publisher_v2/schema.json @@ -69,6 +69,7 @@ "closed_consultation", "cma_case", "content_block_email_address", + "content_block_tax_rate", "complaints_procedure", "completed_transaction", "consultation", diff --git a/content_schemas/examples/content_block_tax_rate/publisher_v2/example.json b/content_schemas/examples/content_block_tax_rate/publisher_v2/example.json new file mode 100644 index 000000000..1f3446cef --- /dev/null +++ b/content_schemas/examples/content_block_tax_rate/publisher_v2/example.json @@ -0,0 +1,13 @@ +{ + "locale": "en", + "schema_name": "content_block_tax_rate", + "document_type": "content_block_tax_rate", + "title": "Personal Allowance income tax rate", + "description": "The tax rate on the Personal Allowance", + "details": { + "band": "Personal Allowance", + "income": "Up to £12,570", + "rate": "20" + }, + "publishing_app": "whitehall" +} diff --git a/content_schemas/formats/content_block_tax_rate.jsonnet b/content_schemas/formats/content_block_tax_rate.jsonnet new file mode 100644 index 000000000..90ffe1a5f --- /dev/null +++ b/content_schemas/formats/content_block_tax_rate.jsonnet @@ -0,0 +1,24 @@ +(import "shared/default_format.jsonnet") + { + document_type: "content_block_tax_rate", + base_path: "forbidden", + routes: "forbidden", + rendering_app: "forbidden", + definitions: { + details: { + type: "object", + additionalProperties: false, + required: ["band", "income", "rate"], + properties: { + band: { + type: "string", + }, + income: { + type: "string", + }, + rate: { + type: "string", + } + }, + }, + }, +}