openapi: '3.0.0' info: title: Data Catalogue Metadata API description: | This API allows you to search, create, update and delete metadata records about data assets published in any data catalogue that implements the [data-catalogue-metadata JSON schema](https://co-cddo.github.io/data-catalogue-metadata/schema). This JSON schema is based on the [Data Catalog Vocabulary (DCAT) - Version 3](https://www.w3.org/TR/vocab-dcat-3/). An example of a data catalogue implementing this schema is the [CDDO Data Marketplace](https://datamarketplace.gov.uk). version: 3.1.2 contact: name: CDDO Developer Portal url: https://developer.datamarketplace.gov.uk #TBC servers: - description: Sandbox url: https://api.sandbox.datamarketplace.gov.uk/v1 - description: Production url: https://api.datamarketplace.gov.uk/v1 tags: - name: Cataloged Resources description: >- Operations concerning the *cataloged-resource* model. - name: Datasets description: >- Operations concerning the *dataset* model. - name: Data Services description: >- Operations concerning the *data-service* model. paths: /cataloged-resources: get: operationId: queryDataAssets summary: Search your datasets description: | You can enter a search term to filter your organisation's datasets in the Data Marketplace. tags: - Cataloged Resources security: - ClientCredentialsScheme: - discover parameters: - name: filter in: query description: >- This is your search term. The system will look for matches against these fields: - title - keywords - supplier identifier required: false schema: type: string maxLength: 30 example: demographics responses: '200': description: Success content: application/json: schema: type: array maxItems: 1000 items: $ref: '#/components/schemas/CatalogedResource' examples: Ex1: summary: '*cataloged-resources* were returned by the query.' value: [ { "identifier": "8d085327-21b6-4d8b-9705-88faad231d22", "supplierIdentifier": "acme-123", "modified": "2023-12-09T16:09:53+00:00", "status": "Published", "title": "Advance Passenger Information", "description": "Travel data and personal data given to airlines by passenger. API covers both inbound and outbound air passengers. API includes the passenger’s full name, nationality, date of birth, gender and travel document number, type and country of issue.The data does not include those arriving by sea or rail routes, by private aircraft or via the Common Travel Area (CTA).", "type": "Data Set", "theme": [ "Transport and infrastructure", "Population and society" ], "keyword": [ "Air travel", "Passport", "Airports", "leaving UK", "entering UK" ], "contactPoint": [ { "name": "Rob Nichols", "email": "robert.nichols@digital.cabinet-office.gov.uk", "role": "contact" } ], "publisher": "academy-for-social-justice", "securityClassification": "OFFICIAL", "accessRights": "OPEN", "distribution": [ { "accessService": ["8d085327-21b6-4d8b-9705-88faad231d23"], "downloadURL": "http://example.com/path/to/file.csv", "mediaType":["text/csv"] } ] } , { "identifier": "8d085327-21b6-4d8b-9705-88faad231d23", "supplierIdentifier": "acme-123", "modified": "2023-12-09T16:09:53+00:00", "status": "Published", "title": "Advance Passenger Information", "description": "Travel data and personal data given to airlines by passenger. API covers both inbound and outbound air passengers. API includes the passenger’s full name, nationality, date of birth, gender and travel document number, type and country of issue.The data does not include those arriving by sea or rail routes, by private aircraft or via the Common Travel Area (CTA).", "type": "Data Service", "apiType": "REST", "serviceType": "Transactional", "theme": [ "Transport and infrastructure", "Population and society" ], "keyword": [ "Air travel", "Passport", "Airports", "leaving UK", "entering UK" ], "contactPoint": [ { "name": "Rob Nichols", "email": "robert.nichols@digital.cabinet-office.gov.uk", "role": "contact" } ], "publisher": "academy-for-social-justice", "securityClassification": "OFFICIAL", "accessRights": "OPEN", "endpointDescription": "http://example.com/path/to/swagger", "endpointURL": "http://example.com/api/v1", "servesDataset": [ "8d085327-21b6-4d8b-9705-88faad231d22" ] } ] NoRecords: summary: No *cataloged-resources* were returned by this query. value: [] /datasets: post: operationId: CreateDataSet summary: Submit dataset description: >- Creates a dataset resource. The path to the newly created resource will be returned in the *Location* response header. tags: - Datasets security: - ClientCredentialsScheme: - publish requestBody: content: application/json: schema: $ref: '#/components/schemas/Dataset' examples: Ex1: summary: Creates a resource that describes a dataset with a CSV file distribution. value: { "identifier": "8d085327-21b6-4d8b-9705-88faad231d22", "supplierIdentifier": "acme-123", "modified": "2023-12-09T16:09:53+00:00", "status": "Draft", "title": "Advance Passenger Information", "description": "Travel data and personal data given to airlines by passenger. API covers both inbound and outbound air passengers. API includes the passenger’s full name, nationality, date of birth, gender and travel document number, type and country of issue.The data does not include those arriving by sea or rail routes, by private aircraft or via the Common Travel Area (CTA).", "type": "Data Set", "theme": [ "Transport and infrastructure", "Population and society" ], "keyword": [ "Air travel", "Passport", "Airports", "leaving UK", "entering UK" ], "contactPoint": [ { "name": "Rob Nichols", "email": "robert.nichols@digital.cabinet-office.gov.uk", "role": "contact" } ], "publisher": "academy-for-social-justice", "securityClassification": "OFFICIAL", "accessRights": "OPEN", "distribution": [ { "accessService": ["8d085327-21b6-4d8b-9705-88faad231d23"], "downloadURL": "http://example.com/path/to/file.csv", "mediaType":["text/csv"] } ] } responses: '201': description: Created headers: Location: description: Contains the absolute or relative URL of a newly created resource, alongside a 201 response status. schema: type: string maxLength: 1024 example: /datasets/cb29c1af-6b4c-47cc-b394-563871d601dc '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' examples: 400-DatasetValidation: $ref: '#/components/examples/400-DatasetValidation' 400-DatasetPublisherValidation: $ref: '#/components/examples/400-DatasetPublisherValidation' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' examples: DuplicateRecord: summary: Internal service conflict. value: message: 'The datset cannot be created because a dataset with identifier already exists. To update an existing dataset please call operation PATCH /datasets/{dataset-id} operation instead.' code: DM00014 errors: [] /datasets/{dataset-id}: get: operationId: RetrieveDataset summary: Get dataset description: | Retrieves a dataset resource by identifier. tags: - Datasets security: - ClientCredentialsScheme: - discover parameters: - $ref: '#/components/parameters/DatasetId' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Dataset' examples: Ex1: summary: Gets a resource that describes a dataset with a CSV file distribution. value: { "identifier": "8d085327-21b6-4d8b-9705-88faad231d22", "supplierIdentifier": "acme-123", "modified": "2023-12-09T16:09:53+00:00", "status": "Published", "title": "Advance Passenger Information", "description": "Travel data and personal data given to airlines by passenger. API covers both inbound and outbound air passengers. API includes the passenger’s full name, nationality, date of birth, gender and travel document number, type and country of issue.The data does not include those arriving by sea or rail routes, by private aircraft or via the Common Travel Area (CTA).", "type": "Data Set", "theme": [ "Transport and infrastructure", "Population and society" ], "keyword": [ "Air travel", "Passport", "Airports", "leaving UK", "entering UK" ], "contactPoint": [ { "name": "Rob Nichols", "email": "robert.nichols@digital.cabinet-office.gov.uk", "role": "contact" } ], "publisher": "academy-for-social-justice", "securityClassification": "OFFICIAL", "accessRights": "OPEN", "distribution": [ { "accessService": ["8d085327-21b6-4d8b-9705-88faad231d23"], "downloadURL": "http://example.com/path/to/file.csv", "mediaType":["text/csv"] } ] } '404': $ref: '#/components/responses/404-DatasetNotFound' patch: operationId: UpdateDataset summary: Update dataset description: | Updates a dataset resource by identifier. Implements JSON Merge Patch [https://www.rfc-editor.org/rfc/rfc7396](https://www.rfc-editor.org/rfc/rfc7396) tags: - Datasets security: - ClientCredentialsScheme: - publish parameters: - $ref: '#/components/parameters/DatasetId' requestBody: content: application/json: schema: $ref: '#/components/schemas/DatasetJsonMergePatchModel' examples: Ex1: summary: Add a new keyword value: { "keyword": [ "Air travel", "Passport", "Airports", "leaving UK", "entering UK", "New keyword here!" ] } Ex2: summary: Change the contact point name value: { "contactPoint": [ { "name": "Tom Redfern", "email": "tom.redfern@digital.cabinet-office.gov.uk" } ] } responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Dataset' examples: Ex1: summary: Keyword added value: { "identifier": "8d085327-21b6-4d8b-9705-88faad231d22", "supplierIdentifier": "acme-123", "modified": "2023-12-09T16:09:53+00:00", "status": "Published", "title": "Advance Passenger Information", "description": "Travel data and personal data given to airlines by passenger. API covers both inbound and outbound air passengers. API includes the passenger’s full name, nationality, date of birth, gender and travel document number, type and country of issue.The data does not include those arriving by sea or rail routes, by private aircraft or via the Common Travel Area (CTA).", "type": "Data Set", "theme": [ "Transport and infrastructure", "Population and society" ], "keyword": [ "Air travel", "Passport", "Airports", "leaving UK", "entering UK", "New keyword here!" ], "contactPoint": [ { "name": "Rob Nichols", "email": "robert.nichols@digital.cabinet-office.gov.uk", "role": "contact" } ], "publisher": "academy-for-social-justice", "securityClassification": "OFFICIAL", "accessRights": "OPEN", "distribution": [ { "accessService": ["8d085327-21b6-4d8b-9705-88faad231d23"], "downloadURL": "http://example.com/path/to/file.csv", "mediaType":["text/csv"] } ] } Ex2: summary: Contact point name changed value: { "identifier": "8d085327-21b6-4d8b-9705-88faad231d22", "supplierIdentifier": "acme-123", "modified": "2023-12-09T16:09:53+00:00", "status": "Published", "title": "Advance Passenger Information", "description": "Travel data and personal data given to airlines by passenger. API covers both inbound and outbound air passengers. API includes the passenger’s full name, nationality, date of birth, gender and travel document number, type and country of issue.The data does not include those arriving by sea or rail routes, by private aircraft or via the Common Travel Area (CTA).", "type": "Data Set", "theme": [ "Transport and infrastructure", "Population and society" ], "keyword": [ "Air travel", "Passport", "Airports", "leaving UK", "entering UK" ], "contactPoint": [ { "name": "Tom Redfern", "email": "tom.redfern@digital.cabinet-office.gov.uk", "role": "contact" } ], "publisher": "academy-for-social-justice", "securityClassification": "OFFICIAL", "accessRights": "OPEN", "distribution": [ { "accessService": ["8d085327-21b6-4d8b-9705-88faad231d23"], "downloadURL": "http://example.com/path/to/file.csv", "mediaType":["text/csv"] } ] } '400': description: >- A 400 Bad Request response status is returned for validation or other business errors. content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' examples: 400-DatasetValidation: $ref: '#/components/examples/400-DatasetValidation' '404': $ref: '#/components/responses/404-DatasetNotFound' delete: operationId: RemoveDataset summary: Delete dataset description: | Deletes a dataset resource by identifier. tags: - Datasets security: - ClientCredentialsScheme: - delete parameters: - $ref: '#/components/parameters/DatasetId' responses: '204': description: No Content '404': $ref: '#/components/responses/404-DatasetNotFound' /data-services: post: operationId: CreateDataService summary: Submit Data Service description: >- Creates a data service resource. The path to the newly created resource will be returned in the *Location* response header. tags: - Data Services security: - ClientCredentialsScheme: - publish requestBody: content: application/json: schema: $ref: '#/components/schemas/DataService' examples: Ex1: summary: Creates a resource that describes a data service containing a reference to a dataset. value: { "identifier": "8d085327-21b6-4d8b-9705-88faad231d23", "supplierIdentifier": "acme-123", "modified": "2023-12-09T16:09:53+00:00", "status": "Published", "title": "Advance Passenger Information", "description": "Travel data and personal data given to airlines by passenger. API covers both inbound and outbound air passengers. API includes the passenger’s full name, nationality, date of birth, gender and travel document number, type and country of issue.The data does not include those arriving by sea or rail routes, by private aircraft or via the Common Travel Area (CTA).", "type": "Data Service", "apiType": "REST", "serviceType": "Transactional", "theme": [ "Transport and infrastructure", "Population and society" ], "keyword": [ "Air travel", "Passport", "Airports", "leaving UK", "entering UK" ], "contactPoint": [ { "name": "Rob Nichols", "email": "robert.nichols@digital.cabinet-office.gov.uk", "role": "contact" } ], "publisher": "academy-for-social-justice", "securityClassification": "OFFICIAL", "accessRights": "OPEN", "endpointDescription": "http://example.com/path/to/swagger", "endpointURL": "http://example.com/api/v1", "servesDataset": [ "8d085327-21b6-4d8b-9705-88faad231d22" ] } responses: '201': description: Created headers: Location: description: Contains the absolute or relative URL of a newly created resource, alongside a 201 response status. schema: type: string maxLength: 1024 example: /data-services/8d085327-21b6-4d8b-9705-88faad231d62 '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' examples: 400-DataServiceValidation: $ref: '#/components/examples/400-DataServiceValidation' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' examples: DuplicateRecord: summary: Internal service conflict. value: message: 'The data service cannot be created because a data service with identifier already exists. To update an existing data service please call operation PATCH /data-services/{data-service-id} operation instead.' code: DM00014 errors: [] /data-services/{data-service-id}: get: operationId: RetrieveDataService summary: Get Data Service description: | Retrieves a data service resource by identifier. tags: - Data Services security: - ClientCredentialsScheme: - discover parameters: - $ref: '#/components/parameters/DataServiceId' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/DataService' examples: Ex1: summary: Returns a data service which contains a dataset reference. value: { "identifier": "8d085327-21b6-4d8b-9705-88faad231d23", "supplierIdentifier": "acme-123", "modified": "2023-12-09T16:09:53+00:00", "status": "Published", "title": "Advance Passenger Information", "description": "Travel data and personal data given to airlines by passenger. API covers both inbound and outbound air passengers. API includes the passenger’s full name, nationality, date of birth, gender and travel document number, type and country of issue.The data does not include those arriving by sea or rail routes, by private aircraft or via the Common Travel Area (CTA).", "type": "Data Service", "apiType": "REST", "serviceType": "Transactional", "theme": [ "Transport and infrastructure", "Population and society" ], "keyword": [ "Air travel", "Passport", "Airports", "leaving UK", "entering UK" ], "contactPoint": [ { "name": "Rob Nichols", "email": "robert.nichols@digital.cabinet-office.gov.uk", "role": "contact" } ], "publisher": "academy-for-social-justice", "securityClassification": "OFFICIAL", "accessRights": "OPEN", "endpointDescription": "http://example.com/path/to/swagger", "endpointURL": "http://example.com/api/v1", "servesDataset": [ "8d085327-21b6-4d8b-9705-88faad231d22" ] } '404': $ref: '#/components/responses/404-DataServiceNotFound' patch: operationId: UpdateDataService summary: Update Data Service description: | Updates a data service resource by identifier. Implements JSON Merge Patch [https://www.rfc-editor.org/rfc/rfc7396](https://www.rfc-editor.org/rfc/rfc7396) tags: - Data Services security: - ClientCredentialsScheme: - publish parameters: - $ref: '#/components/parameters/DataServiceId' requestBody: content: application/json: schema: $ref: '#/components/schemas/DataServiceJsonMergePatchModel' examples: Ex1: summary: Modify the API endpoint address value: { "endpointURL": "http://example.com/v2/api" } Ex2: summary: Add some keywords value: { "keyword": [ "Air travel", "Passport", "Airports", "leaving UK", "entering UK", "New keyword here!" ] } responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/DataService' examples: Ex1: summary: API endpoint address updated value: { "identifier": "8d085327-21b6-4d8b-9705-88faad231d23", "supplierIdentifier": "acme-123", "modified": "2023-12-09T16:09:53+00:00", "status": "Published", "title": "Advance Passenger Information", "description": "Travel data and personal data given to airlines by passenger. API covers both inbound and outbound air passengers. API includes the passenger’s full name, nationality, date of birth, gender and travel document number, type and country of issue.The data does not include those arriving by sea or rail routes, by private aircraft or via the Common Travel Area (CTA).", "type": "Data Service", "apiType": "REST", "serviceType": "Transactional", "theme": [ "Transport and infrastructure", "Population and society" ], "keyword": [ "Air travel", "Passport", "Airports", "leaving UK", "entering UK" ], "contactPoint": [ { "name": "Rob Nichols", "email": "robert.nichols@digital.cabinet-office.gov.uk", "role": "contact" } ], "publisher": "academy-for-social-justice", "securityClassification": "OFFICIAL", "accessRights": "OPEN", "endpointDescription": "http://example.com/path/to/swagger", "endpointURL": "http://example.com/v2/api", "servesDataset": [ "8d085327-21b6-4d8b-9705-88faad231d22" ] } Ex2: summary: Keywords added value: { "identifier": "8d085327-21b6-4d8b-9705-88faad231d23", "supplierIdentifier": "acme-123", "modified": "2023-12-09T16:09:53+00:00", "status": "Published", "title": "Advance Passenger Information", "description": "Travel data and personal data given to airlines by passenger. API covers both inbound and outbound air passengers. API includes the passenger’s full name, nationality, date of birth, gender and travel document number, type and country of issue.The data does not include those arriving by sea or rail routes, by private aircraft or via the Common Travel Area (CTA).", "type": "Data Service", "apiType": "REST", "serviceType": "Transactional", "theme": [ "Transport and infrastructure", "Population and society" ], "keyword": [ "Air travel", "Passport", "Airports", "leaving UK", "entering UK", "New keyword here!" ], "contactPoint": [ { "name": "Rob Nichols", "email": "robert.nichols@digital.cabinet-office.gov.uk", "role": "contact" } ], "publisher": "academy-for-social-justice", "securityClassification": "OFFICIAL", "accessRights": "OPEN", "endpointDescription": "http://example.com/path/to/swagger", "endpointURL": "http://example.com/api/v1", "servesDataset": [ "8d085327-21b6-4d8b-9705-88faad231d22" ] } '400': description: >- A 400 Bad Request response status is returned for validation or other business errors. content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' examples: 400-DataServiceValidation: $ref: '#/components/examples/400-DataServiceValidation' '404': $ref: '#/components/responses/404-DataServiceNotFound' delete: operationId: RemoveDataService summary: Delete Data Service description: | Deletes a data service resource by identifier. tags: - Data Services security: - ClientCredentialsScheme: - delete parameters: - $ref: '#/components/parameters/DataServiceId' responses: '204': description: No Content '404': $ref: '#/components/responses/404-DataServiceNotFound' components: securitySchemes: ClientCredentialsScheme: type: oauth2 flows: clientCredentials: tokenUrl: /ClientAuth/get-token scopes: discover: Discover data assets in the catalogue publish: Publish data assets to the catalogue delete: Remove data assets from the catalogue parameters: DatasetId: name: dataset-id in: path description: The identifier of the dataset to be retrieved. required: true schema: type: string format: uuid example: cb29c1af-6b4c-47cc-b394-563871d601dc DataServiceId: name: data-service-id in: path description: The identifier of the dataset to be retrieved. required: true schema: type: string format: uuid example: 8d085327-21b6-4d8b-9705-88faad231d62 schemas: CatalogedResource: $ref: 'https://co-cddo.github.io/data-catalogue-metadata/schema/cataloged_resource_schema.json' Dataset: $ref: 'https://co-cddo.github.io/data-catalogue-metadata/schema/dataset_schema.json' DataService: $ref: 'https://co-cddo.github.io/data-catalogue-metadata/schema/data_service_schema.json' ErrorMessage: $ref: 'https://co-cddo.github.io/data-catalogue-metadata/schema/error_schema.json' dateOrDateTime: $ref: 'https://co-cddo.github.io/data-catalogue-metadata/schema/shared_schema.json#/schemas/dateOrDateTime' DatasetJsonMergePatchModel: description: Json Merge Patch schema definition for a Data Marketplace Metadata schema for a Dataset type: object additionalProperties: false properties: accessRights: description: A rights statement that concerns how the distribution is accessed. type: string enum: - INTERNAL - OPEN - COMMERCIAL contactPoint: description: Contact information type: array items: type: object properties: name: type: string maxLength: 50 email: type: string pattern: "^[a-zA-Z0-9_.+\\-]+@[a-zA-Z0-9\\-]+\\.[a-zA-Z0-9\\-.]+$" role: type: string enum: - owner - contact required: - name - email description: description: A concise narrative of the content of a *cataloged-resource*. type: string maxLength: 4096 identifier: description: A unique number, code, or reference value assigned to a *cataloged-resource* within the catalogue. type: string maxLength: 50 keyword: description: Uncontrolled terms (words or phrases) assigned to describe an information resource. type: array items: type: string maxLength: 75 modified: "$ref": "#/components/schemas/dateOrDateTime" publisher: description: The entity responsible for making the *cataloged-resource* available in the catalogue. type: string maxLength: 75 securityClassification: description: An information security designation that identifies the minimum level of protection assigned to an information resource. type: string enum: - OFFICIAL - SECRET - TOP_SECRET - NOT_APPLICABLE status: description: Lifecycle status of a *cataloged-resource* within the catalogue. type: string enum: - Draft - Published - Withdrawn - Deleted supplierIdentifier: description: A unique number, code, or reference value assigned to a *cataloged-resource* in a third party (supplier's) system. type: string maxLength: 50 theme: description: 'Topic: A controlled term that expresses the broad topical content of an information resource. Subject: A controlled term that expresses a topic of the intellectual content of an information resource.' type: array items: type: string enum: - Agriculture, fisheries and forestry - Business, economics and finance - Crime and justice - Culture, leisure and sport - Education - Energy - Environment and nature - Geography - Government and public sector - Health and care - Population and society - Science and technology - Transport and infrastructure title: description: The full and formal name given to an information resource. A name given to the distribution. type: string maxLength: 200 type: description: 'Topic: A controlled term that expresses the broad topical content of an information resource. Subject: A controlled term that expresses a topic of the intellectual content of an information resource.' type: string enum: - Data Set - Data Service - Data Group - Data Share distribution: description: A collection of distributions type: array items: type: object properties: accessService: description: A reference to the service that provided the data type: array items: type: string maxLength: 50 downloadURL: description: The location from which the Dataset can be downloaded type: string maxLength: 250 mediaType: description: The IANA media type, or file format, type, or extention, of the distribution file. type: array items: type: string maxLength: 100 issued: "$ref": "#/components/schemas/dateOrDateTime" updateFrequency: description: The schedule for how often the data is updated type: string DataServiceJsonMergePatchModel: description: Json Merge Patch schema definition for a Data Marketplace Metadata schema for a Dataservice type: object additionalProperties: false properties: accessRights: description: A rights statement that concerns how the distribution is accessed. type: string enum: - INTERNAL - OPEN - COMMERCIAL contactPoint: description: Contact information type: array items: type: object properties: name: type: string maxLength: 50 email: type: string pattern: "^[a-zA-Z0-9_.+\\-]+@[a-zA-Z0-9\\-]+\\.[a-zA-Z0-9\\-.]+$" role: type: string enum: - owner - contact required: - name - email description: description: A concise narrative of the content of a *cataloged-resource*. type: string maxLength: 4096 identifier: description: A unique number, code, or reference value assigned to a *cataloged-resource* within the catalogue. type: string maxLength: 50 keyword: description: Uncontrolled terms (words or phrases) assigned to describe an information resource. type: array items: type: string maxLength: 75 modified: "$ref": "#/components/schemas/dateOrDateTime" publisher: description: The entity responsible for making the *cataloged-resource* available in the catalogue. type: string maxLength: 75 securityClassification: description: An information security designation that identifies the minimum level of protection assigned to an information resource. type: string enum: - OFFICIAL - SECRET - TOP_SECRET - NOT_APPLICABLE status: description: Lifecycle status of a *cataloged-resource* within the catalogue. type: string enum: - Draft - Published - Withdrawn - Deleted supplierIdentifier: description: A unique number, code, or reference value assigned to a *cataloged-resource* in a third party (supplier's) system. type: string maxLength: 50 theme: description: 'Topic: A controlled term that expresses the broad topical content of an information resource. Subject: A controlled term that expresses a topic of the intellectual content of an information resource.' type: array items: type: string enum: - Agriculture, fisheries and forestry - Business, economics and finance - Crime and justice - Culture, leisure and sport - Education - Energy - Environment and nature - Geography - Government and public sector - Health and care - Population and society - Science and technology - Transport and infrastructure title: description: The full and formal name given to an information resource. A name given to the distribution. type: string maxLength: 200 type: description: 'Topic: A controlled term that expresses the broad topical content of an information resource. Subject: A controlled term that expresses a topic of the intellectual content of an information resource.' type: string enum: - Data Set - Data Service - Data Group - Data Share distribution: description: A collection of distributions type: array items: type: object properties: accessService: description: A reference to the service that provided the data type: array items: type: string maxLength: 50 downloadURL: description: The location from which the Dataset can be downloaded type: string maxLength: 250 mediaType: description: The IANA media type, or file format, type, or extention, of the distribution file. type: array items: type: string maxLength: 100 issued: "$ref": "#/components/schemas/dateOrDateTime" updateFrequency: description: The schedule for how often the data is updated type: string apiType: description: The API type. type: string enum: - REST - SOAP - Event - RPC - GraphQL endpointDescription: description: A concise narrative of the content of end point service. type: string maxLength: 4096 endpointURL: description: A concise narrative of the content of end point service. type: string maxLength: 250 servesDataset: description: A collection of datasets, or the references to the datasets, that this data service can distribute. type: array items: type: string maxLength: 250 serviceType: description: The Service type. type: string enum: - Bulk - Transactional - Information examples: 400-DatasetValidation: summary: Validation problems with Dataset metadata. value: message: Validation failures code: DM00012 errors: - type: Fatal detail: The attribute 'summary' is too long. It should be less than 250 characters location: "/summary" - type: Fatal detail: The distribution byteSize of '1Mb' is not an integer location: "/distribution/byteSize" 400-DatasetPublisherValidation: summary: API client does not have permissions to publish as the specified publisher. value: message: Validation failures code: DM00012 errors: - type: Fatal detail: You cannot create datasets for the specified 'publisher' location: "/publisher" 400-DataServiceValidation: summary: Validation problems with Data Service metadata. value: message: Validation failures code: DM00012 errors: - type: Fatal detail: The value 'some.non-uri.template' is not a valid URI. location: "/endpointURL" responses: 404-DatasetNotFound: description: Resource does not exist. content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' examples: DatasetNotFound: summary: Dataset not found value: message: Dataset with identifier does not exist. code: DM00010 errors: [] 404-DataServiceNotFound: description: Resource does not exist. content: application/json: schema: $ref: '#/components/schemas/ErrorMessage' examples: DatasetNotFound: summary: Data service not found value: message: Data service with identifier does not exist. code: DM00010 errors: []