|
498 | 498 | "type": "string", |
499 | 499 | "title": "Id", |
500 | 500 | "description": "An entry's ID as defined in section Definition of Terms.\n\n- **Type**: string.\n\n- **Requirements/Conventions**:\n - **Support**: MUST be supported by all implementations, MUST NOT be `null`.\n - **Query**: MUST be a queryable property with support for all mandatory filter features.\n - **Response**: REQUIRED in the response.\n\n- **Examples**:\n - `\"db/1234567\"`\n - `\"cod/2000000\"`\n - `\"cod/2000000@1234567\"`\n - `\"nomad/L1234567890\"`\n - `\"42\"`", |
501 | | - "x-optimade-queryable": "must", |
502 | | - "x-optimade-support": "must" |
| 501 | + "x-optimade-support": "must", |
| 502 | + "x-optimade-queryable": "must" |
503 | 503 | }, |
504 | 504 | "type": { |
505 | 505 | "type": "string", |
506 | 506 | "title": "Type", |
507 | 507 | "description": "The name of the type of an entry.\n\n- **Type**: string.\n\n- **Requirements/Conventions**:\n - **Support**: MUST be supported by all implementations, MUST NOT be `null`.\n - **Query**: MUST be a queryable property with support for all mandatory filter features.\n - **Response**: REQUIRED in the response.\n - MUST be an existing entry type.\n - The entry of type `<type>` and ID `<id>` MUST be returned in response to a request for `/<type>/<id>` under the versioned base URL.\n\n- **Example**: `\"structures\"`", |
508 | | - "x-optimade-queryable": "must", |
509 | | - "x-optimade-support": "must" |
| 508 | + "x-optimade-support": "must", |
| 509 | + "x-optimade-queryable": "must" |
510 | 510 | }, |
511 | 511 | "links": { |
512 | 512 | "allOf": [ |
|
560 | 560 | "type": "string", |
561 | 561 | "title": "Immutable Id", |
562 | 562 | "description": "The entry's immutable ID (e.g., an UUID). This is important for databases having preferred IDs that point to \"the latest version\" of a record, but still offer access to older variants. This ID maps to the version-specific record, in case it changes in the future.\n\n- **Type**: string.\n\n- **Requirements/Conventions**:\n - **Support**: OPTIONAL support in implementations, i.e., MAY be `null`.\n - **Query**: MUST be a queryable property with support for all mandatory filter features.\n\n- **Examples**:\n - `\"8bd3e750-b477-41a0-9b11-3a799f21b44f\"`\n - `\"fjeiwoj,54;@=%<>#32\"` (Strings that are not URL-safe are allowed.)", |
563 | | - "x-optimade-queryable": "must", |
564 | | - "x-optimade-support": "optional" |
| 563 | + "x-optimade-support": "optional", |
| 564 | + "x-optimade-queryable": "must" |
565 | 565 | }, |
566 | 566 | "last_modified": { |
567 | 567 | "type": "string", |
568 | 568 | "format": "date-time", |
569 | 569 | "title": "Last Modified", |
570 | 570 | "description": "Date and time representing when the entry was last modified.\n\n- **Type**: timestamp.\n\n- **Requirements/Conventions**:\n - **Support**: SHOULD be supported by all implementations, i.e., SHOULD NOT be `null`.\n - **Query**: MUST be a queryable property with support for all mandatory filter features.\n - **Response**: REQUIRED in the response unless the query parameter `response_fields` is present and does not include this property.\n\n- **Example**:\n - As part of JSON response format: `\"2007-04-05T14:30:20Z\"` (i.e., encoded as an [RFC 3339 Internet Date/Time Format](https://tools.ietf.org/html/rfc3339#section-5.6) string.)", |
571 | | - "x-optimade-queryable": "must", |
572 | | - "x-optimade-support": "should" |
| 571 | + "x-optimade-support": "should", |
| 572 | + "x-optimade-queryable": "must" |
573 | 573 | } |
574 | 574 | }, |
575 | 575 | "type": "object", |
|
887 | 887 | "title": "Entry Types By Format", |
888 | 888 | "description": "Available entry endpoints as a function of output formats." |
889 | 889 | }, |
| 890 | + "license": { |
| 891 | + "anyOf": [ |
| 892 | + { |
| 893 | + "$ref": "#/components/schemas/Link" |
| 894 | + }, |
| 895 | + { |
| 896 | + "type": "string", |
| 897 | + "maxLength": 65536, |
| 898 | + "minLength": 1, |
| 899 | + "format": "uri" |
| 900 | + } |
| 901 | + ], |
| 902 | + "title": "License", |
| 903 | + "description": "A [JSON API links object](http://jsonapi.org/format/1.0/#document-links) giving a URL to a web page containing a human-readable text describing the license (or licensing options if there are multiple) covering all the data and metadata provided by this database.\nClients are advised not to try automated parsing of this link or its content, but rather rely on the field `available_licenses` instead." |
| 904 | + }, |
| 905 | + "available_licenses": { |
| 906 | + "items": { |
| 907 | + "type": "string" |
| 908 | + }, |
| 909 | + "type": "array", |
| 910 | + "title": "Available Licenses", |
| 911 | + "description": "List of [SPDX license identifiers](https://spdx.org/licenses/) specifying a set of alternative licenses under which the client is granted access to all the data and metadata in this database.\n\nIf the data and metadata is available under multiple alternative licenses, identifiers of these multiple licenses SHOULD be provided to let clients know under which conditions the data and metadata can be used.\nInclusion of a license identifier in the list is a commitment of the database that the rights are in place to grant clients access to all the data and metadata according to the terms of either of these licenses (at the choice of the client).\nIf the licensing information provided via the field `license` omits licensing options specified in `available_licenses`, or if it otherwise contradicts them, a client MUST still be allowed to interpret the inclusion of a license in `available_licenses` as a full commitment from the database that the data and metadata is available, without exceptions, under the respective licenses.\nIf the database cannot make that commitment, e.g., if only part of the data is available under a license, the corresponding license identifier MUST NOT appear in `available_licenses` (but, rather, the field `license` is to be used to clarify the licensing situation.)\nAn empty list indicates that none of the SPDX licenses apply for the entirety of the database and that the licensing situation is clarified in human readable form in the field `license`." |
| 912 | + }, |
890 | 913 | "is_index": { |
891 | 914 | "type": "boolean", |
892 | 915 | "title": "Is Index", |
|
899 | 922 | "api_version", |
900 | 923 | "available_api_versions", |
901 | 924 | "available_endpoints", |
902 | | - "entry_types_by_format" |
| 925 | + "entry_types_by_format", |
| 926 | + "license", |
| 927 | + "available_licenses" |
903 | 928 | ], |
904 | 929 | "title": "IndexInfoAttributes", |
905 | 930 | "description": "Attributes for Base URL Info endpoint for an Index Meta-Database" |
|
1107 | 1132 | "type": "string", |
1108 | 1133 | "title": "Id", |
1109 | 1134 | "description": "An entry's ID as defined in section Definition of Terms.\n\n- **Type**: string.\n\n- **Requirements/Conventions**:\n - **Support**: MUST be supported by all implementations, MUST NOT be `null`.\n - **Query**: MUST be a queryable property with support for all mandatory filter features.\n - **Response**: REQUIRED in the response.\n\n- **Examples**:\n - `\"db/1234567\"`\n - `\"cod/2000000\"`\n - `\"cod/2000000@1234567\"`\n - `\"nomad/L1234567890\"`\n - `\"42\"`", |
1110 | | - "x-optimade-queryable": "must", |
1111 | | - "x-optimade-support": "must" |
| 1135 | + "x-optimade-support": "must", |
| 1136 | + "x-optimade-queryable": "must" |
1112 | 1137 | }, |
1113 | 1138 | "type": { |
1114 | 1139 | "type": "string", |
|
1700 | 1725 | "description": "response string from the server" |
1701 | 1726 | }, |
1702 | 1727 | "request_delay": { |
1703 | | - "title": "Request Delay", |
1704 | | - "minimum": 0.0, |
1705 | 1728 | "type": "number", |
| 1729 | + "minimum": 0.0, |
| 1730 | + "title": "Request Delay", |
1706 | 1731 | "description": "A non-negative float giving time in seconds that the client is suggested to wait before issuing a subsequent request." |
1707 | 1732 | }, |
1708 | 1733 | "implementation": { |
|
0 commit comments