@open-resource-discovery/specification 1.14.0 → 1.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -755,19 +755,19 @@
755
755
  },
756
756
  "visibility": {
757
757
  "type": "string",
758
- "description": "The visibility states who is allowed to \"see\" the described resource or capability.",
758
+ "description": "Defines metadata access control - which categories of consumers are allowed to discover and access the resource and its metadata.\n\nThis controls who can see that the resource exists and retrieve its metadata level information.\nIt does NOT control runtime access to the resource itself - that is managed separately through authentication and authorization mechanisms.\n\nUse this to prevent exposing internal implementation details to inappropriate consumer audiences.",
759
759
  "oneOf": [
760
760
  {
761
761
  "const": "public",
762
- "description": "Publicly visible to customers and 3rd parties.\nUsually this includes an contract on the API stability, e.g. the [SAP API Deprecation Policy](https://help.sap.com/viewer/84b35b9c39b247e3ba2a31f02beee46d/Cloud/en-US/5cbfda5a9efe4e97a3e24ddaf7ec5c16.html)."
762
+ "description": "Metadata can be discovered and accessed by anyone, including customers, partners, and unauthenticated external parties.\n\nPublic resources typically come with stability guarantees, expressed via versioning and follow formal API lifecycle management. For more details see [Version and Lifecycle](../index.md#version-and-lifecycle) section.\nand follow formal API lifecycle management and deprecation policies.\n\nExample: A REST API that customers use to integrate with your SaaS product."
763
763
  },
764
764
  {
765
765
  "const": "internal",
766
- "description": "Visible to other applications within the same [vendor](#vendor).\nHowever, they are not officially exposed and communicated to customers and 3rd parties.\nThey might not come with the same guarantees on API stability.\n\nInternal resources MUST NOT be made available to consumers without checking the necessary access permissions, e.g., a public API Catalog.\nInternal resources MAY be published through an internal API Catalog if the access permissions are ensured by it."
766
+ "description": "Metadata can only be discovered and accessed by vendor internal consumers (e.g. applications or services of the same vendor).\nMUST NOT be made available to external parties or vendor customers.\n\nInternal resources are intended for integration between a vendors own applications and services.\nAPI stability and maturity are explicitly defined via the `releaseStatus` property, which is a separate concern from visibility.\n\nInternal resources MUST NOT be made available without checking the necessary access permissions.\nInternal resources MAY be published through an internal API Catalog if access permissions are ensured by it."
767
767
  },
768
768
  {
769
769
  "const": "private",
770
- "description": "Visible only to the provider application or service, usually within the same system namespace / system type.\n\nPrivate resources MUST NOT be made available to public consumers or consumers outside of the \"private\" scope of the described application."
770
+ "description": "Metadata should not be discoverable outside the application / service's own deployment scope (e.g., outside of the provider application or the same system namespace / system type).\nUsed for metadata completeness when describing implementation details or dependencies.\n\nPrivate resources usually have no stability guarantees and can change or be removed at any time.\nThese are typically implementation details not meant for consumption by other services.\n\nExample: Services only used within a microservice architecture or APIs that are only used for the own UIs, not for general consumption.\n\nPrivate resources MUST NOT be made discoverable or accessible outside the application / service's own deployment scope."
771
771
  }
772
772
  ]
773
773
  },
@@ -1005,41 +1005,41 @@
1005
1005
  },
1006
1006
  "visibility": {
1007
1007
  "type": "string",
1008
- "description": "The visibility states who is allowed to \"see\" the described resource or capability.",
1008
+ "description": "Defines metadata access control - which categories of consumers are allowed to discover and access the resource and its metadata.\n\nThis controls who can see that the resource exists and retrieve its metadata level information.\nIt does NOT control runtime access to the resource itself - that is managed separately through authentication and authorization mechanisms.\n\nUse this to prevent exposing internal implementation details to inappropriate consumer audiences.",
1009
1009
  "oneOf": [
1010
1010
  {
1011
1011
  "const": "public",
1012
- "description": "Publicly visible to customers and 3rd parties.\nUsually this includes an contract on the API stability, e.g. the [SAP API Deprecation Policy](https://help.sap.com/viewer/84b35b9c39b247e3ba2a31f02beee46d/Cloud/en-US/5cbfda5a9efe4e97a3e24ddaf7ec5c16.html)."
1012
+ "description": "Metadata can be discovered and accessed by anyone, including customers, partners, and unauthenticated external parties.\n\nPublic resources typically come with stability guarantees, expressed via versioning and follow formal API lifecycle management. For more details see [Version and Lifecycle](../index.md#version-and-lifecycle) section.\nand follow formal API lifecycle management and deprecation policies.\n\nExample: A REST API that customers use to integrate with your SaaS product."
1013
1013
  },
1014
1014
  {
1015
1015
  "const": "internal",
1016
- "description": "Visible to other applications within the same [vendor](#vendor).\nHowever, they are not officially exposed and communicated to customers and 3rd parties.\nThey might not come with the same guarantees on API stability.\n\nInternal resources MUST NOT be made available to consumers without checking the necessary access permissions, e.g., a public API Catalog.\nInternal resources MAY be published through an internal API Catalog if the access permissions are ensured by it."
1016
+ "description": "Metadata can only be discovered and accessed by vendor internal consumers (e.g. applications or services of the same vendor).\nMUST NOT be made available to external parties or vendor customers.\n\nInternal resources are intended for integration between a vendors own applications and services.\nAPI stability and maturity are explicitly defined via the `releaseStatus` property, which is a separate concern from visibility.\n\nInternal resources MUST NOT be made available without checking the necessary access permissions.\nInternal resources MAY be published through an internal API Catalog if access permissions are ensured by it."
1017
1017
  },
1018
1018
  {
1019
1019
  "const": "private",
1020
- "description": "Visible only to the provider application or service, usually within the same system namespace / system type.\n\nPrivate resources MUST NOT be made available to public consumers or consumers outside of the \"private\" scope of the described application."
1020
+ "description": "Metadata should not be discoverable outside the application / service's own deployment scope (e.g., outside of the provider application or the same system namespace / system type).\nUsed for metadata completeness when describing implementation details or dependencies.\n\nPrivate resources usually have no stability guarantees and can change or be removed at any time.\nThese are typically implementation details not meant for consumption by other services.\n\nExample: Services only used within a microservice architecture or APIs that are only used for the own UIs, not for general consumption.\n\nPrivate resources MUST NOT be made discoverable or accessible outside the application / service's own deployment scope."
1021
1021
  }
1022
1022
  ]
1023
1023
  },
1024
1024
  "releaseStatus": {
1025
1025
  "type": "string",
1026
- "description": "The `releaseStatus` specifies the stability of the resource and its external contract.",
1026
+ "description": "Defines the maturity level and stability commitment for the resource's API contract (interface, behavior, data models).\n\nThis indicates whether the resource may undergo backward-incompatible changes. It helps consumers understand the risk\nof depending on the resource and whether it's suitable for production use.\n\nNote: This is independent of `visibility` and does not imply availability guarantees or SLAs - it concerns only the API contract stability.\n\nSee [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.",
1027
1027
  "oneOf": [
1028
1028
  {
1029
1029
  "const": "beta",
1030
- "description": "The contract for the resource is beta and may not be meant for productive use.\nResources of `beta` status MAY be changed or deleted at the providers discretion."
1030
+ "description": "The API contract has no stability guarantees. Breaking changes may occur at any time without notice or deprecation period.\n\nNot recommended for production use unless you can tolerate breaking changes. Suitable for experimentation, early adopters,\nand feedback gathering. Resources of `beta` status MAY be changed or removed at the provider's discretion."
1031
1031
  },
1032
1032
  {
1033
1033
  "const": "active",
1034
- "description": "Resource is meant for productive use and provides a stable API contract."
1034
+ "description": "The API contract is stable and recommended for production use.\n\nBreaking changes will only be introduced through proper deprecation cycles or new major versions,\nfollowing versioning and compatibility policies. Consumers can rely on active resources with confidence."
1035
1035
  },
1036
1036
  {
1037
1037
  "const": "deprecated",
1038
- "description": "Resource has been deprecated.\n\nIf the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.\n\nIf successor resources exist, they MUST be referenced through `successors`.\n\nA deprecated resource MAY be sunset (aka. decommissioned / removed) in the future, through setting a `Tombstone`.\nOnce the resource is sunset, its description MAY be removed from ORD, but could also be kept with `releaseStatus` set to `sunset`."
1038
+ "description": "The resource is still functional but scheduled for removal. No new development should depend on it.\n\nIf the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.\n\nIf successor resources exist, they MUST be referenced through `successors`.\n\nA deprecated resource MAY be sunset (decommissioned/removed) in the future through setting a `Tombstone`.\nOnce the resource is sunset, its description MAY be removed from ORD, but could also be kept with `releaseStatus` set to `sunset`."
1039
1039
  },
1040
1040
  {
1041
1041
  "const": "sunset",
1042
- "description": "Resource has been sunset, but is still described.\nIf the status is set to `sunset`, a `Tombstone` MUST be set as well and a `sunsetDate` MUST be provided."
1042
+ "description": "The resource has been decommissioned and is no longer available at runtime. This entry exists for historical reference only.\n\nIf the status is set to `sunset`, a `Tombstone` MUST be set as well and a `sunsetDate` MUST be provided."
1043
1043
  }
1044
1044
  ],
1045
1045
  "examples": [
@@ -1145,32 +1145,32 @@
1145
1145
  },
1146
1146
  {
1147
1147
  "const": "odata-v2",
1148
- "description": "[OData Version 2.0](https://www.odata.org/documentation/odata-version-2-0/) API.\nAn API Resource definition of type `edmx` MUST be provided.\nFor each API Resource definition: `type` MUST ONLY be set to `edmx`, `csdl-json`, `openapi-v2`, `openapi-v3`, `openapi-v3.1+`, `sap-csn-interop-effective-v1` or `custom`."
1148
+ "description": "[OData Version 2.0](https://www.odata.org/documentation/odata-version-2-0/) API.\nAn API Resource definition of type `edmx` MUST be provided.\nFor each API Resource definition: `type` MUST ONLY be set to `edmx`, `csdl-json`, `openapi-v2`, `openapi-v3`, `openapi-v3.1+`, `sap-csn-interop-effective-v1`, `custom` or any valid [Specification ID](../index.md#specification-id)."
1149
1149
  },
1150
1150
  {
1151
1151
  "const": "odata-v4",
1152
- "description": "[OData Version 4](https://www.odata.org/documentation/) API.\nAn OData V4 API MUST be described via a Common Schema Definition Language (CSDL).\nAn API Resource definition of type `edmx` MUST be provided.\nFor each API Resource definition: `type` MUST ONLY be set to `edmx`, `csdl-json`, `openapi-v2`, `openapi-v3`, `openapi-v3.1+`, `sap-csn-interop-effective-v1` or `custom`."
1152
+ "description": "[OData Version 4](https://www.odata.org/documentation/) API.\nAn OData V4 API MUST be described via a Common Schema Definition Language (CSDL).\nAn API Resource definition of type `edmx` MUST be provided.\nFor each API Resource definition: `type` MUST ONLY be set to `edmx`, `csdl-json`, `openapi-v2`, `openapi-v3`, `openapi-v3.1+`, `sap-csn-interop-effective-v1`, `custom` or any valid [Specification ID](../index.md#specification-id)."
1153
1153
  },
1154
1154
  {
1155
1155
  "const": "rest",
1156
- "description": "Generic [REST](https://en.wikipedia.org/wiki/Representational_state_transfer) API.\nPlease not that while OData is also a REST API, the most precise/opinionated `apiProtocol` MUST be chosen.\nAn API Resource definition of type `openapi-v3` (RECOMMENDED) or another appropriate option SHOULD be provided.\nFor each API Resource definition: `type` MUST ONLY be set to `openapi-v2`, `openapi-v3`, `openapi-v3.1+`, `raml-v1`, `sap-csn-interop-effective-v1` or `custom`."
1156
+ "description": "Generic [REST](https://en.wikipedia.org/wiki/Representational_state_transfer) API.\nPlease not that while OData is also a REST API, the most precise/opinionated `apiProtocol` MUST be chosen.\nAn API Resource definition of type `openapi-v3` (RECOMMENDED) or another appropriate option SHOULD be provided.\nFor each API Resource definition: `type` MUST ONLY be set to `openapi-v2`, `openapi-v3`, `openapi-v3.1+`, `raml-v1`, `sap-csn-interop-effective-v1`, `custom` or any valid [Specification ID](../index.md#specification-id)."
1157
1157
  },
1158
1158
  {
1159
1159
  "const": "graphql",
1160
- "description": "[GraphQL](https://graphql.org/) API.\nAn API Resource definition of type `graphql-sdl` SHOULD be provided.\nFor each API Resource definition: `type` MUST ONLY be set to `graphql-sdl`, `sap-csn-interop-effective-v1` or `custom`."
1160
+ "description": "[GraphQL](https://graphql.org/) API.\nAn API Resource definition of type `graphql-sdl` SHOULD be provided.\nFor each API Resource definition: `type` MUST ONLY be set to `graphql-sdl`, `sap-csn-interop-effective-v1`, `custom` or any valid [Specification ID](../index.md#specification-id)."
1161
1161
  },
1162
1162
  {
1163
1163
  "const": "delta-sharing",
1164
1164
  "x-introduced-in-version": "1.8.0",
1165
- "description": "[Delta Sharing](https://github.com/delta-io/delta-sharing/blob/main/PROTOCOL.md) Protocol, where one API Resource corresponds to a share.\nFor each API Resource definition: `type` MUST ONLY be set to `sap-csn-interop-effective-v1` or to `custom`.\nFor delta-sharing APIs the resource definition MAY be omitted, as the protocol itself allows for metadata discovery at runtime."
1165
+ "description": "[Delta Sharing](https://github.com/delta-io/delta-sharing/blob/main/PROTOCOL.md) Protocol, where one API Resource corresponds to a share.\nFor each API Resource definition: `type` MUST ONLY be set to `sap-csn-interop-effective-v1`, `custom` or any valid [Specification ID](../index.md#specification-id).\nFor delta-sharing APIs the resource definition MAY be omitted, as the protocol itself allows for metadata discovery at runtime."
1166
1166
  },
1167
1167
  {
1168
1168
  "const": "soap-inbound",
1169
- "description": "[SOAP](https://en.wikipedia.org/wiki/SOAP) API that provides inbound interfaces.\nAn API Resource definition of type `wsdl-v2` (RECOMMENDED) or `wsdl-v1` MUST be provided.\nFor each API Resource definition: `type` MUST ONLY be set to `wsdl-v1`, `wsdl-v2` or `custom`."
1169
+ "description": "[SOAP](https://en.wikipedia.org/wiki/SOAP) API that provides inbound interfaces.\nAn API Resource definition of type `wsdl-v2` (RECOMMENDED) or `wsdl-v1` MUST be provided.\nFor each API Resource definition: `type` MUST ONLY be set to `wsdl-v1`, `wsdl-v2`, `custom` or any valid [Specification ID](../index.md#specification-id)."
1170
1170
  },
1171
1171
  {
1172
1172
  "const": "soap-outbound",
1173
- "description": "[SOAP](https://en.wikipedia.org/wiki/SOAP) API that provides/describes outbound interfaces for async communication.\nAn API Resource definition of type `wsdl-v2` (RECOMMENDED) or `wsdl-v1` MUST be provided.\nFor each API Resource definition: `type` MUST ONLY be set to `wsdl-v1`, `wsdl-v2` or `custom`."
1173
+ "description": "[SOAP](https://en.wikipedia.org/wiki/SOAP) API that provides/describes outbound interfaces for async communication.\nAn API Resource definition of type `wsdl-v2` (RECOMMENDED) or `wsdl-v1` MUST be provided.\nFor each API Resource definition: `type` MUST ONLY be set to `wsdl-v1`, `wsdl-v2`, `custom` or any valid [Specification ID](../index.md#specification-id)."
1174
1174
  },
1175
1175
  {
1176
1176
  "const": "mcp",
@@ -1178,7 +1178,7 @@
1178
1178
  },
1179
1179
  {
1180
1180
  "const": "websocket",
1181
- "description": "Generic [WebSocket](https://datatracker.ietf.org/doc/html/rfc6455) Protocol.\nSince WebSocket is very generic, it is important to also define or least describe which semantics are concretely used, e.g. via an `implementationStandard`.\nThe API Resource definitions `type` MUST ONLY be set to `custom`."
1181
+ "description": "Generic [WebSocket](https://datatracker.ietf.org/doc/html/rfc6455) Protocol.\nSince WebSocket is very generic, it is important to also define or least describe which semantics are concretely used, e.g. via an `implementationStandard`.\nThe API Resource definitions `type` MUST ONLY be set to `custom` or any valid [Specification ID](../index.md#specification-id)."
1182
1182
  },
1183
1183
  {
1184
1184
  "const": "a2a",
@@ -1187,11 +1187,13 @@
1187
1187
  },
1188
1188
  {
1189
1189
  "const": "sap-rfc",
1190
- "description": "[SAP RFC](https://help.sap.com/viewer/753088fc00704d0a80e7fbd6803c8adb/202009.000/en-US/4888068ad9134076e10000000a42189d.html) (Remote Function Call) is the standard SAP interface for communication between SAP systems.\nRFC calls a function to be executed in a remote system.\nAn API Resource definition of type `sap-rfc-metadata-v1` MUST be provided.\nFor each API Resource definition: `type` MUST ONLY be set to `sap-rfc-metadata-v1` or `custom`."
1190
+ "x-introduced-in-version": "1.5.0",
1191
+ "description": "[SAP RFC](https://help.sap.com/viewer/753088fc00704d0a80e7fbd6803c8adb/202009.000/en-US/4888068ad9134076e10000000a42189d.html) (Remote Function Call) is the standard SAP interface for communication between SAP systems.\nRFC calls a function to be executed in a remote system.\nAn API Resource definition of type `sap-rfc-metadata-v1` MUST be provided.\nFor each API Resource definition: `type` MUST ONLY be set to `sap-rfc-metadata-v1`, `custom` or any valid [Specification ID](../index.md#specification-id)."
1191
1192
  },
1192
1193
  {
1193
1194
  "const": "sap-sql-api-v1",
1194
- "description": "SAP SQL API that follows the [SQL interface specification for SAP ecosystem](https://github.com/SAP/sql-interface-specification).\nAn API Resource definition of type `sap-sql-api-definition-v1` MUST be provided.\nFor each API Resource definition: `type` MUST ONLY be set to `sap-sql-api-definition-v1`, `sap-csn-interop-effective-v1` or `custom`."
1195
+ "x-introduced-in-version": "1.9.2",
1196
+ "description": "SAP SQL API that follows the [SQL interface specification for SAP ecosystem](https://github.com/SAP/sql-interface-specification).\nAn API Resource definition of type `sap-sql-api-definition-v1` SHOULD be provided.\nFor each API Resource definition: `type` MUST ONLY be set to `sap-sql-api-definition-v1`, `sap-csn-interop-effective-v1`, `custom` or any valid [Specification ID](../index.md#specification-id)."
1195
1197
  },
1196
1198
  {
1197
1199
  "const": "sap-ina-api-v1",
@@ -1835,41 +1837,41 @@
1835
1837
  },
1836
1838
  "visibility": {
1837
1839
  "type": "string",
1838
- "description": "The visibility states who is allowed to \"see\" the described resource or capability.",
1840
+ "description": "Defines metadata access control - which categories of consumers are allowed to discover and access the resource and its metadata.\n\nThis controls who can see that the resource exists and retrieve its metadata level information.\nIt does NOT control runtime access to the resource itself - that is managed separately through authentication and authorization mechanisms.\n\nUse this to prevent exposing internal implementation details to inappropriate consumer audiences.",
1839
1841
  "oneOf": [
1840
1842
  {
1841
1843
  "const": "public",
1842
- "description": "Publicly visible to customers and 3rd parties.\nUsually this includes an contract on the API stability, e.g. the [SAP API Deprecation Policy](https://help.sap.com/viewer/84b35b9c39b247e3ba2a31f02beee46d/Cloud/en-US/5cbfda5a9efe4e97a3e24ddaf7ec5c16.html)."
1844
+ "description": "Metadata can be discovered and accessed by anyone, including customers, partners, and unauthenticated external parties.\n\nPublic resources typically come with stability guarantees, expressed via versioning and follow formal API lifecycle management. For more details see [Version and Lifecycle](../index.md#version-and-lifecycle) section.\nand follow formal API lifecycle management and deprecation policies.\n\nExample: A REST API that customers use to integrate with your SaaS product."
1843
1845
  },
1844
1846
  {
1845
1847
  "const": "internal",
1846
- "description": "Visible to other applications within the same [vendor](#vendor).\nHowever, they are not officially exposed and communicated to customers and 3rd parties.\nThey might not come with the same guarantees on API stability.\n\nInternal resources MUST NOT be made available to consumers without checking the necessary access permissions, e.g., a public API Catalog.\nInternal resources MAY be published through an internal API Catalog if the access permissions are ensured by it."
1848
+ "description": "Metadata can only be discovered and accessed by vendor internal consumers (e.g. applications or services of the same vendor).\nMUST NOT be made available to external parties or vendor customers.\n\nInternal resources are intended for integration between a vendors own applications and services.\nAPI stability and maturity are explicitly defined via the `releaseStatus` property, which is a separate concern from visibility.\n\nInternal resources MUST NOT be made available without checking the necessary access permissions.\nInternal resources MAY be published through an internal API Catalog if access permissions are ensured by it."
1847
1849
  },
1848
1850
  {
1849
1851
  "const": "private",
1850
- "description": "Visible only to the provider application or service, usually within the same system namespace / system type.\n\nPrivate resources MUST NOT be made available to public consumers or consumers outside of the \"private\" scope of the described application."
1852
+ "description": "Metadata should not be discoverable outside the application / service's own deployment scope (e.g., outside of the provider application or the same system namespace / system type).\nUsed for metadata completeness when describing implementation details or dependencies.\n\nPrivate resources usually have no stability guarantees and can change or be removed at any time.\nThese are typically implementation details not meant for consumption by other services.\n\nExample: Services only used within a microservice architecture or APIs that are only used for the own UIs, not for general consumption.\n\nPrivate resources MUST NOT be made discoverable or accessible outside the application / service's own deployment scope."
1851
1853
  }
1852
1854
  ]
1853
1855
  },
1854
1856
  "releaseStatus": {
1855
1857
  "type": "string",
1856
- "description": "The `releaseStatus` specifies the stability of the resource and its external contract.",
1858
+ "description": "Defines the maturity level and stability commitment for the resource's API contract (interface, behavior, data models).\n\nThis indicates whether the resource may undergo backward-incompatible changes. It helps consumers understand the risk\nof depending on the resource and whether it's suitable for production use.\n\nNote: This is independent of `visibility` and does not imply availability guarantees or SLAs - it concerns only the API contract stability.\n\nSee [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.",
1857
1859
  "oneOf": [
1858
1860
  {
1859
1861
  "const": "beta",
1860
- "description": "The contract for the resource is beta and may not be meant for productive use.\nResources of `beta` status MAY be changed or deleted at the providers discretion."
1862
+ "description": "The API contract has no stability guarantees. Breaking changes may occur at any time without notice or deprecation period.\n\nNot recommended for production use unless you can tolerate breaking changes. Suitable for experimentation, early adopters,\nand feedback gathering. Resources of `beta` status MAY be changed or removed at the provider's discretion."
1861
1863
  },
1862
1864
  {
1863
1865
  "const": "active",
1864
- "description": "Resource is meant for productive use and provides a stable API contract."
1866
+ "description": "The API contract is stable and recommended for production use.\n\nBreaking changes will only be introduced through proper deprecation cycles or new major versions,\nfollowing versioning and compatibility policies. Consumers can rely on active resources with confidence."
1865
1867
  },
1866
1868
  {
1867
1869
  "const": "deprecated",
1868
- "description": "Resource has been deprecated.\n\nIf the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.\n\nIf successor resources exist, they MUST be referenced through `successors`.\n\nA deprecated resource MAY be sunset (aka. decommissioned / removed) in the future, through setting a `Tombstone`.\nOnce the resource is sunset, its description MAY be removed from ORD, but could also be kept with `releaseStatus` set to `sunset`."
1870
+ "description": "The resource is still functional but scheduled for removal. No new development should depend on it.\n\nIf the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.\n\nIf successor resources exist, they MUST be referenced through `successors`.\n\nA deprecated resource MAY be sunset (decommissioned/removed) in the future through setting a `Tombstone`.\nOnce the resource is sunset, its description MAY be removed from ORD, but could also be kept with `releaseStatus` set to `sunset`."
1869
1871
  },
1870
1872
  {
1871
1873
  "const": "sunset",
1872
- "description": "Resource has been sunset, but is still described.\nIf the status is set to `sunset`, a `Tombstone` MUST be set as well and a `sunsetDate` MUST be provided."
1874
+ "description": "The resource has been decommissioned and is no longer available at runtime. This entry exists for historical reference only.\n\nIf the status is set to `sunset`, a `Tombstone` MUST be set as well and a `sunsetDate` MUST be provided."
1873
1875
  }
1874
1876
  ],
1875
1877
  "examples": [
@@ -2497,41 +2499,41 @@
2497
2499
  },
2498
2500
  "visibility": {
2499
2501
  "type": "string",
2500
- "description": "The visibility states who is allowed to \"see\" the described resource or capability.",
2502
+ "description": "Defines metadata access control - which categories of consumers are allowed to discover and access the resource and its metadata.\n\nThis controls who can see that the resource exists and retrieve its metadata level information.\nIt does NOT control runtime access to the resource itself - that is managed separately through authentication and authorization mechanisms.\n\nUse this to prevent exposing internal implementation details to inappropriate consumer audiences.",
2501
2503
  "oneOf": [
2502
2504
  {
2503
2505
  "const": "public",
2504
- "description": "Publicly visible to customers and 3rd parties.\nUsually this includes an contract on the API stability, e.g. the [SAP API Deprecation Policy](https://help.sap.com/viewer/84b35b9c39b247e3ba2a31f02beee46d/Cloud/en-US/5cbfda5a9efe4e97a3e24ddaf7ec5c16.html)."
2506
+ "description": "Metadata can be discovered and accessed by anyone, including customers, partners, and unauthenticated external parties.\n\nPublic resources typically come with stability guarantees, expressed via versioning and follow formal API lifecycle management. For more details see [Version and Lifecycle](../index.md#version-and-lifecycle) section.\nand follow formal API lifecycle management and deprecation policies.\n\nExample: A REST API that customers use to integrate with your SaaS product."
2505
2507
  },
2506
2508
  {
2507
2509
  "const": "internal",
2508
- "description": "Visible to other applications within the same [vendor](#vendor).\nHowever, they are not officially exposed and communicated to customers and 3rd parties.\nThey might not come with the same guarantees on API stability.\n\nInternal resources MUST NOT be made available to consumers without checking the necessary access permissions, e.g., a public API Catalog.\nInternal resources MAY be published through an internal API Catalog if the access permissions are ensured by it."
2510
+ "description": "Metadata can only be discovered and accessed by vendor internal consumers (e.g. applications or services of the same vendor).\nMUST NOT be made available to external parties or vendor customers.\n\nInternal resources are intended for integration between a vendors own applications and services.\nAPI stability and maturity are explicitly defined via the `releaseStatus` property, which is a separate concern from visibility.\n\nInternal resources MUST NOT be made available without checking the necessary access permissions.\nInternal resources MAY be published through an internal API Catalog if access permissions are ensured by it."
2509
2511
  },
2510
2512
  {
2511
2513
  "const": "private",
2512
- "description": "Visible only to the provider application or service, usually within the same system namespace / system type.\n\nPrivate resources MUST NOT be made available to public consumers or consumers outside of the \"private\" scope of the described application."
2514
+ "description": "Metadata should not be discoverable outside the application / service's own deployment scope (e.g., outside of the provider application or the same system namespace / system type).\nUsed for metadata completeness when describing implementation details or dependencies.\n\nPrivate resources usually have no stability guarantees and can change or be removed at any time.\nThese are typically implementation details not meant for consumption by other services.\n\nExample: Services only used within a microservice architecture or APIs that are only used for the own UIs, not for general consumption.\n\nPrivate resources MUST NOT be made discoverable or accessible outside the application / service's own deployment scope."
2513
2515
  }
2514
2516
  ]
2515
2517
  },
2516
2518
  "releaseStatus": {
2517
2519
  "type": "string",
2518
- "description": "The `releaseStatus` specifies the stability of the resource and its external contract.",
2520
+ "description": "Defines the maturity level and stability commitment for the resource's API contract (interface, behavior, data models).\n\nThis indicates whether the resource may undergo backward-incompatible changes. It helps consumers understand the risk\nof depending on the resource and whether it's suitable for production use.\n\nNote: This is independent of `visibility` and does not imply availability guarantees or SLAs - it concerns only the API contract stability.\n\nSee [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.",
2519
2521
  "oneOf": [
2520
2522
  {
2521
2523
  "const": "beta",
2522
- "description": "The contract for the resource is beta and may not be meant for productive use.\nResources of `beta` status MAY be changed or deleted at the providers discretion."
2524
+ "description": "The API contract has no stability guarantees. Breaking changes may occur at any time without notice or deprecation period.\n\nNot recommended for production use unless you can tolerate breaking changes. Suitable for experimentation, early adopters,\nand feedback gathering. Resources of `beta` status MAY be changed or removed at the provider's discretion."
2523
2525
  },
2524
2526
  {
2525
2527
  "const": "active",
2526
- "description": "Resource is meant for productive use and provides a stable API contract."
2528
+ "description": "The API contract is stable and recommended for production use.\n\nBreaking changes will only be introduced through proper deprecation cycles or new major versions,\nfollowing versioning and compatibility policies. Consumers can rely on active resources with confidence."
2527
2529
  },
2528
2530
  {
2529
2531
  "const": "deprecated",
2530
- "description": "Resource has been deprecated.\n\nIf the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.\n\nIf successor resources exist, they MUST be referenced through `successors`.\n\nA deprecated resource MAY be sunset (aka. decommissioned / removed) in the future, through setting a `Tombstone`.\nOnce the resource is sunset, its description MAY be removed from ORD, but could also be kept with `releaseStatus` set to `sunset`."
2532
+ "description": "The resource is still functional but scheduled for removal. No new development should depend on it.\n\nIf the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.\n\nIf successor resources exist, they MUST be referenced through `successors`.\n\nA deprecated resource MAY be sunset (decommissioned/removed) in the future through setting a `Tombstone`.\nOnce the resource is sunset, its description MAY be removed from ORD, but could also be kept with `releaseStatus` set to `sunset`."
2531
2533
  },
2532
2534
  {
2533
2535
  "const": "sunset",
2534
- "description": "Resource has been sunset, but is still described.\nIf the status is set to `sunset`, a `Tombstone` MUST be set as well and a `sunsetDate` MUST be provided."
2536
+ "description": "The resource has been decommissioned and is no longer available at runtime. This entry exists for historical reference only.\n\nIf the status is set to `sunset`, a `Tombstone` MUST be set as well and a `sunsetDate` MUST be provided."
2535
2537
  }
2536
2538
  ],
2537
2539
  "examples": [
@@ -2854,15 +2856,15 @@
2854
2856
  "oneOf": [
2855
2857
  {
2856
2858
  "const": "public",
2857
- "description": "Publicly visible to customers and 3rd parties.\nUsually this includes an contract on the API stability, e.g. the [SAP API Deprecation Policy](https://help.sap.com/viewer/84b35b9c39b247e3ba2a31f02beee46d/Cloud/en-US/5cbfda5a9efe4e97a3e24ddaf7ec5c16.html)."
2859
+ "description": "Metadata can be discovered and accessed by anyone, including customers, partners, and unauthenticated external parties.\n\nPublic resources typically come with stability guarantees, expressed via versioning and follow formal API lifecycle management. For more details see [Version and Lifecycle](../index.md#version-and-lifecycle) section.\nand follow formal API lifecycle management and deprecation policies.\n\nExample: A REST API that customers use to integrate with your SaaS product."
2858
2860
  },
2859
2861
  {
2860
2862
  "const": "internal",
2861
- "description": "Visible to other applications within the same [vendor](#vendor).\nHowever, they are not officially exposed and communicated to customers and 3rd parties.\nThey might not come with the same guarantees on API stability.\n\nInternal resources MUST NOT be made available to consumers without checking the necessary access permissions, e.g., a public API Catalog.\nInternal resources MAY be published through an internal API Catalog if the access permissions are ensured by it."
2863
+ "description": "Metadata can only be discovered and accessed by vendor internal consumers (e.g. applications or services of the same vendor).\nMUST NOT be made available to external parties or vendor customers.\n\nInternal resources are intended for integration between a vendors own applications and services.\nAPI stability and maturity are explicitly defined via the `releaseStatus` property, which is a separate concern from visibility.\n\nInternal resources MUST NOT be made available without checking the necessary access permissions.\nInternal resources MAY be published through an internal API Catalog if access permissions are ensured by it."
2862
2864
  },
2863
2865
  {
2864
2866
  "const": "private",
2865
- "description": "Visible only to the provider application or service, usually within the same system namespace / system type.\n\nPrivate resources MUST NOT be made available to public consumers or consumers outside of the \"private\" scope of the described application."
2867
+ "description": "Metadata should not be discoverable outside the application / service's own deployment scope (e.g., outside of the provider application or the same system namespace / system type).\nUsed for metadata completeness when describing implementation details or dependencies.\n\nPrivate resources usually have no stability guarantees and can change or be removed at any time.\nThese are typically implementation details not meant for consumption by other services.\n\nExample: Services only used within a microservice architecture or APIs that are only used for the own UIs, not for general consumption.\n\nPrivate resources MUST NOT be made discoverable or accessible outside the application / service's own deployment scope."
2866
2868
  }
2867
2869
  ]
2868
2870
  },
@@ -2872,19 +2874,19 @@
2872
2874
  "oneOf": [
2873
2875
  {
2874
2876
  "const": "beta",
2875
- "description": "The contract for the resource is beta and may not be meant for productive use.\nResources of `beta` status MAY be changed or deleted at the providers discretion."
2877
+ "description": "The API contract has no stability guarantees. Breaking changes may occur at any time without notice or deprecation period.\n\nNot recommended for production use unless you can tolerate breaking changes. Suitable for experimentation, early adopters,\nand feedback gathering. Resources of `beta` status MAY be changed or removed at the provider's discretion."
2876
2878
  },
2877
2879
  {
2878
2880
  "const": "active",
2879
- "description": "Resource is meant for productive use and provides a stable API contract."
2881
+ "description": "The API contract is stable and recommended for production use.\n\nBreaking changes will only be introduced through proper deprecation cycles or new major versions,\nfollowing versioning and compatibility policies. Consumers can rely on active resources with confidence."
2880
2882
  },
2881
2883
  {
2882
2884
  "const": "deprecated",
2883
- "description": "Resource has been deprecated.\n\nIf the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.\n\nIf successor resources exist, they MUST be referenced through `successors`.\n\nA deprecated resource MAY be sunset (aka. decommissioned / removed) in the future, through setting a `Tombstone`.\nOnce the resource is sunset, its description MAY be removed from ORD, but could also be kept with `releaseStatus` set to `sunset`."
2885
+ "description": "The resource is still functional but scheduled for removal. No new development should depend on it.\n\nIf the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.\n\nIf successor resources exist, they MUST be referenced through `successors`.\n\nA deprecated resource MAY be sunset (decommissioned/removed) in the future through setting a `Tombstone`.\nOnce the resource is sunset, its description MAY be removed from ORD, but could also be kept with `releaseStatus` set to `sunset`."
2884
2886
  },
2885
2887
  {
2886
2888
  "const": "sunset",
2887
- "description": "Resource has been sunset, but is still described.\nIf the status is set to `sunset`, a `Tombstone` MUST be set as well and a `sunsetDate` MUST be provided."
2889
+ "description": "The resource has been decommissioned and is no longer available at runtime. This entry exists for historical reference only.\n\nIf the status is set to `sunset`, a `Tombstone` MUST be set as well and a `sunsetDate` MUST be provided."
2888
2890
  }
2889
2891
  ],
2890
2892
  "examples": [
@@ -3580,27 +3582,11 @@
3580
3582
  "mediaType": {
3581
3583
  "description": "The [Media Type](https://www.iana.org/assignments/media-types/media-types.xhtml) of the definition serialization format.\nA consuming application can use this information to know which file format parser it needs to use.\nFor example, for OpenAPI 3, it's valid to express the same definition in both YAML and JSON.\n\nIf no Media Type is registered for the referenced file,\n`text/plain` MAY be used for arbitrary plain-text and `application/octet-stream` for arbitrary binary data.\n",
3582
3584
  "type": "string",
3583
- "oneOf": [
3584
- {
3585
- "const": "application/json"
3586
- },
3587
- {
3588
- "const": "application/xml"
3589
- },
3590
- {
3591
- "const": "text/yaml"
3592
- },
3593
- {
3594
- "const": "text/plain",
3595
- "description": "For a plain-text format where no other serialization Media Type fits"
3596
- },
3597
- {
3598
- "const": "application/octet-stream",
3599
- "description": "For a binary format where no other serialization Media Type fits"
3600
- }
3601
- ],
3585
+ "pattern": "^(application|text)\\/[a-zA-Z0-9][a-zA-Z0-9.+\\-]*$",
3602
3586
  "examples": [
3603
- "application/json"
3587
+ "application/json",
3588
+ "text/plain",
3589
+ "application/xml"
3604
3590
  ]
3605
3591
  },
3606
3592
  "url": {
@@ -3618,15 +3604,15 @@
3618
3604
  "oneOf": [
3619
3605
  {
3620
3606
  "const": "public",
3621
- "description": "Publicly visible to customers and 3rd parties.\nUsually this includes an contract on the API stability, e.g. the [SAP API Deprecation Policy](https://help.sap.com/viewer/84b35b9c39b247e3ba2a31f02beee46d/Cloud/en-US/5cbfda5a9efe4e97a3e24ddaf7ec5c16.html)."
3607
+ "description": "Metadata can be discovered and accessed by anyone, including customers, partners, and unauthenticated external parties.\n\nPublic resources typically come with stability guarantees, expressed via versioning and follow formal API lifecycle management. For more details see [Version and Lifecycle](../index.md#version-and-lifecycle) section.\nand follow formal API lifecycle management and deprecation policies.\n\nExample: A REST API that customers use to integrate with your SaaS product."
3622
3608
  },
3623
3609
  {
3624
3610
  "const": "internal",
3625
- "description": "Visible to other applications within the same [vendor](#vendor).\nHowever, they are not officially exposed and communicated to customers and 3rd parties.\nThey might not come with the same guarantees on API stability.\n\nInternal resources MUST NOT be made available to consumers without checking the necessary access permissions, e.g., a public API Catalog.\nInternal resources MAY be published through an internal API Catalog if the access permissions are ensured by it."
3611
+ "description": "Metadata can only be discovered and accessed by vendor internal consumers (e.g. applications or services of the same vendor).\nMUST NOT be made available to external parties or vendor customers.\n\nInternal resources are intended for integration between a vendors own applications and services.\nAPI stability and maturity are explicitly defined via the `releaseStatus` property, which is a separate concern from visibility.\n\nInternal resources MUST NOT be made available without checking the necessary access permissions.\nInternal resources MAY be published through an internal API Catalog if access permissions are ensured by it."
3626
3612
  },
3627
3613
  {
3628
3614
  "const": "private",
3629
- "description": "Visible only to the provider application or service, usually within the same system namespace / system type.\n\nPrivate resources MUST NOT be made available to public consumers or consumers outside of the \"private\" scope of the described application."
3615
+ "description": "Metadata should not be discoverable outside the application / service's own deployment scope (e.g., outside of the provider application or the same system namespace / system type).\nUsed for metadata completeness when describing implementation details or dependencies.\n\nPrivate resources usually have no stability guarantees and can change or be removed at any time.\nThese are typically implementation details not meant for consumption by other services.\n\nExample: Services only used within a microservice architecture or APIs that are only used for the own UIs, not for general consumption.\n\nPrivate resources MUST NOT be made discoverable or accessible outside the application / service's own deployment scope."
3630
3616
  }
3631
3617
  ]
3632
3618
  },
@@ -3697,27 +3683,11 @@
3697
3683
  "mediaType": {
3698
3684
  "description": "The [Media Type](https://www.iana.org/assignments/media-types/media-types.xhtml) of the definition serialization format.\nA consuming application can use this information to know which file format parser it needs to use.\nFor example, for OpenAPI 3, it's valid to express the same definition in both YAML and JSON.\n\nIf no Media Type is registered for the referenced file,\n`text/plain` MAY be used for arbitrary plain-text and `application/octet-stream` for arbitrary binary data.\n",
3699
3685
  "type": "string",
3700
- "oneOf": [
3701
- {
3702
- "const": "application/json"
3703
- },
3704
- {
3705
- "const": "application/xml"
3706
- },
3707
- {
3708
- "const": "text/yaml"
3709
- },
3710
- {
3711
- "const": "text/plain",
3712
- "description": "For a plain-text format where no other serialization Media Type fits"
3713
- },
3714
- {
3715
- "const": "application/octet-stream",
3716
- "description": "For a binary format where no other serialization Media Type fits"
3717
- }
3718
- ],
3686
+ "pattern": "^(application|text)\\/[a-zA-Z0-9][a-zA-Z0-9.+\\-]*$",
3719
3687
  "examples": [
3720
- "application/json"
3688
+ "application/json",
3689
+ "text/plain",
3690
+ "application/xml"
3721
3691
  ]
3722
3692
  },
3723
3693
  "url": {
@@ -3749,15 +3719,15 @@
3749
3719
  "oneOf": [
3750
3720
  {
3751
3721
  "const": "public",
3752
- "description": "Publicly visible to customers and 3rd parties.\nUsually this includes an contract on the API stability, e.g. the [SAP API Deprecation Policy](https://help.sap.com/viewer/84b35b9c39b247e3ba2a31f02beee46d/Cloud/en-US/5cbfda5a9efe4e97a3e24ddaf7ec5c16.html)."
3722
+ "description": "Metadata can be discovered and accessed by anyone, including customers, partners, and unauthenticated external parties.\n\nPublic resources typically come with stability guarantees, expressed via versioning and follow formal API lifecycle management. For more details see [Version and Lifecycle](../index.md#version-and-lifecycle) section.\nand follow formal API lifecycle management and deprecation policies.\n\nExample: A REST API that customers use to integrate with your SaaS product."
3753
3723
  },
3754
3724
  {
3755
3725
  "const": "internal",
3756
- "description": "Visible to other applications within the same [vendor](#vendor).\nHowever, they are not officially exposed and communicated to customers and 3rd parties.\nThey might not come with the same guarantees on API stability.\n\nInternal resources MUST NOT be made available to consumers without checking the necessary access permissions, e.g., a public API Catalog.\nInternal resources MAY be published through an internal API Catalog if the access permissions are ensured by it."
3726
+ "description": "Metadata can only be discovered and accessed by vendor internal consumers (e.g. applications or services of the same vendor).\nMUST NOT be made available to external parties or vendor customers.\n\nInternal resources are intended for integration between a vendors own applications and services.\nAPI stability and maturity are explicitly defined via the `releaseStatus` property, which is a separate concern from visibility.\n\nInternal resources MUST NOT be made available without checking the necessary access permissions.\nInternal resources MAY be published through an internal API Catalog if access permissions are ensured by it."
3757
3727
  },
3758
3728
  {
3759
3729
  "const": "private",
3760
- "description": "Visible only to the provider application or service, usually within the same system namespace / system type.\n\nPrivate resources MUST NOT be made available to public consumers or consumers outside of the \"private\" scope of the described application."
3730
+ "description": "Metadata should not be discoverable outside the application / service's own deployment scope (e.g., outside of the provider application or the same system namespace / system type).\nUsed for metadata completeness when describing implementation details or dependencies.\n\nPrivate resources usually have no stability guarantees and can change or be removed at any time.\nThese are typically implementation details not meant for consumption by other services.\n\nExample: Services only used within a microservice architecture or APIs that are only used for the own UIs, not for general consumption.\n\nPrivate resources MUST NOT be made discoverable or accessible outside the application / service's own deployment scope."
3761
3731
  }
3762
3732
  ]
3763
3733
  }
@@ -3879,41 +3849,41 @@
3879
3849
  },
3880
3850
  "visibility": {
3881
3851
  "type": "string",
3882
- "description": "The visibility states who is allowed to \"see\" the described resource or capability.",
3852
+ "description": "Defines metadata access control - which categories of consumers are allowed to discover and access the resource and its metadata.\n\nThis controls who can see that the resource exists and retrieve its metadata level information.\nIt does NOT control runtime access to the resource itself - that is managed separately through authentication and authorization mechanisms.\n\nUse this to prevent exposing internal implementation details to inappropriate consumer audiences.",
3883
3853
  "oneOf": [
3884
3854
  {
3885
3855
  "const": "public",
3886
- "description": "Publicly visible to customers and 3rd parties.\nUsually this includes an contract on the API stability, e.g. the [SAP API Deprecation Policy](https://help.sap.com/viewer/84b35b9c39b247e3ba2a31f02beee46d/Cloud/en-US/5cbfda5a9efe4e97a3e24ddaf7ec5c16.html)."
3856
+ "description": "Metadata can be discovered and accessed by anyone, including customers, partners, and unauthenticated external parties.\n\nPublic resources typically come with stability guarantees, expressed via versioning and follow formal API lifecycle management. For more details see [Version and Lifecycle](../index.md#version-and-lifecycle) section.\nand follow formal API lifecycle management and deprecation policies.\n\nExample: A REST API that customers use to integrate with your SaaS product."
3887
3857
  },
3888
3858
  {
3889
3859
  "const": "internal",
3890
- "description": "Visible to other applications within the same [vendor](#vendor).\nHowever, they are not officially exposed and communicated to customers and 3rd parties.\nThey might not come with the same guarantees on API stability.\n\nInternal resources MUST NOT be made available to consumers without checking the necessary access permissions, e.g., a public API Catalog.\nInternal resources MAY be published through an internal API Catalog if the access permissions are ensured by it."
3860
+ "description": "Metadata can only be discovered and accessed by vendor internal consumers (e.g. applications or services of the same vendor).\nMUST NOT be made available to external parties or vendor customers.\n\nInternal resources are intended for integration between a vendors own applications and services.\nAPI stability and maturity are explicitly defined via the `releaseStatus` property, which is a separate concern from visibility.\n\nInternal resources MUST NOT be made available without checking the necessary access permissions.\nInternal resources MAY be published through an internal API Catalog if access permissions are ensured by it."
3891
3861
  },
3892
3862
  {
3893
3863
  "const": "private",
3894
- "description": "Visible only to the provider application or service, usually within the same system namespace / system type.\n\nPrivate resources MUST NOT be made available to public consumers or consumers outside of the \"private\" scope of the described application."
3864
+ "description": "Metadata should not be discoverable outside the application / service's own deployment scope (e.g., outside of the provider application or the same system namespace / system type).\nUsed for metadata completeness when describing implementation details or dependencies.\n\nPrivate resources usually have no stability guarantees and can change or be removed at any time.\nThese are typically implementation details not meant for consumption by other services.\n\nExample: Services only used within a microservice architecture or APIs that are only used for the own UIs, not for general consumption.\n\nPrivate resources MUST NOT be made discoverable or accessible outside the application / service's own deployment scope."
3895
3865
  }
3896
3866
  ]
3897
3867
  },
3898
3868
  "releaseStatus": {
3899
3869
  "type": "string",
3900
- "description": "The `releaseStatus` specifies the stability of the resource and its external contract.",
3870
+ "description": "Defines the maturity level and stability commitment for the resource's API contract (interface, behavior, data models).\n\nThis indicates whether the resource may undergo backward-incompatible changes. It helps consumers understand the risk\nof depending on the resource and whether it's suitable for production use.\n\nNote: This is independent of `visibility` and does not imply availability guarantees or SLAs - it concerns only the API contract stability.\n\nSee [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.",
3901
3871
  "oneOf": [
3902
3872
  {
3903
3873
  "const": "beta",
3904
- "description": "The contract for the resource is beta and may not be meant for productive use.\nResources of `beta` status MAY be changed or deleted at the providers discretion."
3874
+ "description": "The API contract has no stability guarantees. Breaking changes may occur at any time without notice or deprecation period.\n\nNot recommended for production use unless you can tolerate breaking changes. Suitable for experimentation, early adopters,\nand feedback gathering. Resources of `beta` status MAY be changed or removed at the provider's discretion."
3905
3875
  },
3906
3876
  {
3907
3877
  "const": "active",
3908
- "description": "Resource is meant for productive use and provides a stable API contract."
3878
+ "description": "The API contract is stable and recommended for production use.\n\nBreaking changes will only be introduced through proper deprecation cycles or new major versions,\nfollowing versioning and compatibility policies. Consumers can rely on active resources with confidence."
3909
3879
  },
3910
3880
  {
3911
3881
  "const": "deprecated",
3912
- "description": "Resource has been deprecated.\n\nIf the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.\n\nIf successor resources exist, they MUST be referenced through `successors`.\n\nA deprecated resource MAY be sunset (aka. decommissioned / removed) in the future, through setting a `Tombstone`.\nOnce the resource is sunset, its description MAY be removed from ORD, but could also be kept with `releaseStatus` set to `sunset`."
3882
+ "description": "The resource is still functional but scheduled for removal. No new development should depend on it.\n\nIf the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.\n\nIf successor resources exist, they MUST be referenced through `successors`.\n\nA deprecated resource MAY be sunset (decommissioned/removed) in the future through setting a `Tombstone`.\nOnce the resource is sunset, its description MAY be removed from ORD, but could also be kept with `releaseStatus` set to `sunset`."
3913
3883
  },
3914
3884
  {
3915
3885
  "const": "sunset",
3916
- "description": "Resource has been sunset, but is still described.\nIf the status is set to `sunset`, a `Tombstone` MUST be set as well and a `sunsetDate` MUST be provided."
3886
+ "description": "The resource has been decommissioned and is no longer available at runtime. This entry exists for historical reference only.\n\nIf the status is set to `sunset`, a `Tombstone` MUST be set as well and a `sunsetDate` MUST be provided."
3917
3887
  }
3918
3888
  ],
3919
3889
  "examples": [
@@ -4555,41 +4525,41 @@
4555
4525
  },
4556
4526
  "visibility": {
4557
4527
  "type": "string",
4558
- "description": "The visibility states who is allowed to \"see\" the described resource or capability.",
4528
+ "description": "Defines metadata access control - which categories of consumers are allowed to discover and access the resource and its metadata.\n\nThis controls who can see that the resource exists and retrieve its metadata level information.\nIt does NOT control runtime access to the resource itself - that is managed separately through authentication and authorization mechanisms.\n\nUse this to prevent exposing internal implementation details to inappropriate consumer audiences.",
4559
4529
  "oneOf": [
4560
4530
  {
4561
4531
  "const": "public",
4562
- "description": "Publicly visible to customers and 3rd parties.\nUsually this includes an contract on the API stability, e.g. the [SAP API Deprecation Policy](https://help.sap.com/viewer/84b35b9c39b247e3ba2a31f02beee46d/Cloud/en-US/5cbfda5a9efe4e97a3e24ddaf7ec5c16.html)."
4532
+ "description": "Metadata can be discovered and accessed by anyone, including customers, partners, and unauthenticated external parties.\n\nPublic resources typically come with stability guarantees, expressed via versioning and follow formal API lifecycle management. For more details see [Version and Lifecycle](../index.md#version-and-lifecycle) section.\nand follow formal API lifecycle management and deprecation policies.\n\nExample: A REST API that customers use to integrate with your SaaS product."
4563
4533
  },
4564
4534
  {
4565
4535
  "const": "internal",
4566
- "description": "Visible to other applications within the same [vendor](#vendor).\nHowever, they are not officially exposed and communicated to customers and 3rd parties.\nThey might not come with the same guarantees on API stability.\n\nInternal resources MUST NOT be made available to consumers without checking the necessary access permissions, e.g., a public API Catalog.\nInternal resources MAY be published through an internal API Catalog if the access permissions are ensured by it."
4536
+ "description": "Metadata can only be discovered and accessed by vendor internal consumers (e.g. applications or services of the same vendor).\nMUST NOT be made available to external parties or vendor customers.\n\nInternal resources are intended for integration between a vendors own applications and services.\nAPI stability and maturity are explicitly defined via the `releaseStatus` property, which is a separate concern from visibility.\n\nInternal resources MUST NOT be made available without checking the necessary access permissions.\nInternal resources MAY be published through an internal API Catalog if access permissions are ensured by it."
4567
4537
  },
4568
4538
  {
4569
4539
  "const": "private",
4570
- "description": "Visible only to the provider application or service, usually within the same system namespace / system type.\n\nPrivate resources MUST NOT be made available to public consumers or consumers outside of the \"private\" scope of the described application."
4540
+ "description": "Metadata should not be discoverable outside the application / service's own deployment scope (e.g., outside of the provider application or the same system namespace / system type).\nUsed for metadata completeness when describing implementation details or dependencies.\n\nPrivate resources usually have no stability guarantees and can change or be removed at any time.\nThese are typically implementation details not meant for consumption by other services.\n\nExample: Services only used within a microservice architecture or APIs that are only used for the own UIs, not for general consumption.\n\nPrivate resources MUST NOT be made discoverable or accessible outside the application / service's own deployment scope."
4571
4541
  }
4572
4542
  ]
4573
4543
  },
4574
4544
  "releaseStatus": {
4575
4545
  "type": "string",
4576
- "description": "The `releaseStatus` specifies the stability of the resource and its external contract.",
4546
+ "description": "Defines the maturity level and stability commitment for the resource's API contract (interface, behavior, data models).\n\nThis indicates whether the resource may undergo backward-incompatible changes. It helps consumers understand the risk\nof depending on the resource and whether it's suitable for production use.\n\nNote: This is independent of `visibility` and does not imply availability guarantees or SLAs - it concerns only the API contract stability.\n\nSee [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.",
4577
4547
  "oneOf": [
4578
4548
  {
4579
4549
  "const": "beta",
4580
- "description": "The contract for the resource is beta and may not be meant for productive use.\nResources of `beta` status MAY be changed or deleted at the providers discretion."
4550
+ "description": "The API contract has no stability guarantees. Breaking changes may occur at any time without notice or deprecation period.\n\nNot recommended for production use unless you can tolerate breaking changes. Suitable for experimentation, early adopters,\nand feedback gathering. Resources of `beta` status MAY be changed or removed at the provider's discretion."
4581
4551
  },
4582
4552
  {
4583
4553
  "const": "active",
4584
- "description": "Resource is meant for productive use and provides a stable API contract."
4554
+ "description": "The API contract is stable and recommended for production use.\n\nBreaking changes will only be introduced through proper deprecation cycles or new major versions,\nfollowing versioning and compatibility policies. Consumers can rely on active resources with confidence."
4585
4555
  },
4586
4556
  {
4587
4557
  "const": "deprecated",
4588
- "description": "Resource has been deprecated.\n\nIf the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.\n\nIf successor resources exist, they MUST be referenced through `successors`.\n\nA deprecated resource MAY be sunset (aka. decommissioned / removed) in the future, through setting a `Tombstone`.\nOnce the resource is sunset, its description MAY be removed from ORD, but could also be kept with `releaseStatus` set to `sunset`."
4558
+ "description": "The resource is still functional but scheduled for removal. No new development should depend on it.\n\nIf the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.\n\nIf successor resources exist, they MUST be referenced through `successors`.\n\nA deprecated resource MAY be sunset (decommissioned/removed) in the future through setting a `Tombstone`.\nOnce the resource is sunset, its description MAY be removed from ORD, but could also be kept with `releaseStatus` set to `sunset`."
4589
4559
  },
4590
4560
  {
4591
4561
  "const": "sunset",
4592
- "description": "Resource has been sunset, but is still described.\nIf the status is set to `sunset`, a `Tombstone` MUST be set as well and a `sunsetDate` MUST be provided."
4562
+ "description": "The resource has been decommissioned and is no longer available at runtime. This entry exists for historical reference only.\n\nIf the status is set to `sunset`, a `Tombstone` MUST be set as well and a `sunsetDate` MUST be provided."
4593
4563
  }
4594
4564
  ],
4595
4565
  "examples": [
@@ -4726,27 +4696,11 @@
4726
4696
  "mediaType": {
4727
4697
  "description": "The [Media Type](https://www.iana.org/assignments/media-types/media-types.xhtml) of the definition serialization format.\nA consuming application can use this information to know which file format parser it needs to use.\nFor example, for OpenAPI 3, it's valid to express the same definition in both YAML and JSON.\n\nIf no Media Type is registered for the referenced file,\n`text/plain` MAY be used for arbitrary plain-text and `application/octet-stream` for arbitrary binary data.\n",
4728
4698
  "type": "string",
4729
- "oneOf": [
4730
- {
4731
- "const": "application/json"
4732
- },
4733
- {
4734
- "const": "application/xml"
4735
- },
4736
- {
4737
- "const": "text/yaml"
4738
- },
4739
- {
4740
- "const": "text/plain",
4741
- "description": "For a plain-text format where no other serialization Media Type fits"
4742
- },
4743
- {
4744
- "const": "application/octet-stream",
4745
- "description": "For a binary format where no other serialization Media Type fits"
4746
- }
4747
- ],
4699
+ "pattern": "^(application|text)\\/[a-zA-Z0-9][a-zA-Z0-9.+\\-]*$",
4748
4700
  "examples": [
4749
- "application/json"
4701
+ "application/json",
4702
+ "text/plain",
4703
+ "application/xml"
4750
4704
  ]
4751
4705
  },
4752
4706
  "url": {
@@ -4778,15 +4732,15 @@
4778
4732
  "oneOf": [
4779
4733
  {
4780
4734
  "const": "public",
4781
- "description": "Publicly visible to customers and 3rd parties.\nUsually this includes an contract on the API stability, e.g. the [SAP API Deprecation Policy](https://help.sap.com/viewer/84b35b9c39b247e3ba2a31f02beee46d/Cloud/en-US/5cbfda5a9efe4e97a3e24ddaf7ec5c16.html)."
4735
+ "description": "Metadata can be discovered and accessed by anyone, including customers, partners, and unauthenticated external parties.\n\nPublic resources typically come with stability guarantees, expressed via versioning and follow formal API lifecycle management. For more details see [Version and Lifecycle](../index.md#version-and-lifecycle) section.\nand follow formal API lifecycle management and deprecation policies.\n\nExample: A REST API that customers use to integrate with your SaaS product."
4782
4736
  },
4783
4737
  {
4784
4738
  "const": "internal",
4785
- "description": "Visible to other applications within the same [vendor](#vendor).\nHowever, they are not officially exposed and communicated to customers and 3rd parties.\nThey might not come with the same guarantees on API stability.\n\nInternal resources MUST NOT be made available to consumers without checking the necessary access permissions, e.g., a public API Catalog.\nInternal resources MAY be published through an internal API Catalog if the access permissions are ensured by it."
4739
+ "description": "Metadata can only be discovered and accessed by vendor internal consumers (e.g. applications or services of the same vendor).\nMUST NOT be made available to external parties or vendor customers.\n\nInternal resources are intended for integration between a vendors own applications and services.\nAPI stability and maturity are explicitly defined via the `releaseStatus` property, which is a separate concern from visibility.\n\nInternal resources MUST NOT be made available without checking the necessary access permissions.\nInternal resources MAY be published through an internal API Catalog if access permissions are ensured by it."
4786
4740
  },
4787
4741
  {
4788
4742
  "const": "private",
4789
- "description": "Visible only to the provider application or service, usually within the same system namespace / system type.\n\nPrivate resources MUST NOT be made available to public consumers or consumers outside of the \"private\" scope of the described application."
4743
+ "description": "Metadata should not be discoverable outside the application / service's own deployment scope (e.g., outside of the provider application or the same system namespace / system type).\nUsed for metadata completeness when describing implementation details or dependencies.\n\nPrivate resources usually have no stability guarantees and can change or be removed at any time.\nThese are typically implementation details not meant for consumption by other services.\n\nExample: Services only used within a microservice architecture or APIs that are only used for the own UIs, not for general consumption.\n\nPrivate resources MUST NOT be made discoverable or accessible outside the application / service's own deployment scope."
4790
4744
  }
4791
4745
  ]
4792
4746
  }
@@ -4907,41 +4861,41 @@
4907
4861
  },
4908
4862
  "visibility": {
4909
4863
  "type": "string",
4910
- "description": "The visibility states who is allowed to \"see\" the described resource or capability.",
4864
+ "description": "Defines metadata access control - which categories of consumers are allowed to discover and access the resource and its metadata.\n\nThis controls who can see that the resource exists and retrieve its metadata level information.\nIt does NOT control runtime access to the resource itself - that is managed separately through authentication and authorization mechanisms.\n\nUse this to prevent exposing internal implementation details to inappropriate consumer audiences.",
4911
4865
  "oneOf": [
4912
4866
  {
4913
4867
  "const": "public",
4914
- "description": "Publicly visible to customers and 3rd parties.\nUsually this includes an contract on the API stability, e.g. the [SAP API Deprecation Policy](https://help.sap.com/viewer/84b35b9c39b247e3ba2a31f02beee46d/Cloud/en-US/5cbfda5a9efe4e97a3e24ddaf7ec5c16.html)."
4868
+ "description": "Metadata can be discovered and accessed by anyone, including customers, partners, and unauthenticated external parties.\n\nPublic resources typically come with stability guarantees, expressed via versioning and follow formal API lifecycle management. For more details see [Version and Lifecycle](../index.md#version-and-lifecycle) section.\nand follow formal API lifecycle management and deprecation policies.\n\nExample: A REST API that customers use to integrate with your SaaS product."
4915
4869
  },
4916
4870
  {
4917
4871
  "const": "internal",
4918
- "description": "Visible to other applications within the same [vendor](#vendor).\nHowever, they are not officially exposed and communicated to customers and 3rd parties.\nThey might not come with the same guarantees on API stability.\n\nInternal resources MUST NOT be made available to consumers without checking the necessary access permissions, e.g., a public API Catalog.\nInternal resources MAY be published through an internal API Catalog if the access permissions are ensured by it."
4872
+ "description": "Metadata can only be discovered and accessed by vendor internal consumers (e.g. applications or services of the same vendor).\nMUST NOT be made available to external parties or vendor customers.\n\nInternal resources are intended for integration between a vendors own applications and services.\nAPI stability and maturity are explicitly defined via the `releaseStatus` property, which is a separate concern from visibility.\n\nInternal resources MUST NOT be made available without checking the necessary access permissions.\nInternal resources MAY be published through an internal API Catalog if access permissions are ensured by it."
4919
4873
  },
4920
4874
  {
4921
4875
  "const": "private",
4922
- "description": "Visible only to the provider application or service, usually within the same system namespace / system type.\n\nPrivate resources MUST NOT be made available to public consumers or consumers outside of the \"private\" scope of the described application."
4876
+ "description": "Metadata should not be discoverable outside the application / service's own deployment scope (e.g., outside of the provider application or the same system namespace / system type).\nUsed for metadata completeness when describing implementation details or dependencies.\n\nPrivate resources usually have no stability guarantees and can change or be removed at any time.\nThese are typically implementation details not meant for consumption by other services.\n\nExample: Services only used within a microservice architecture or APIs that are only used for the own UIs, not for general consumption.\n\nPrivate resources MUST NOT be made discoverable or accessible outside the application / service's own deployment scope."
4923
4877
  }
4924
4878
  ]
4925
4879
  },
4926
4880
  "releaseStatus": {
4927
4881
  "type": "string",
4928
- "description": "The `releaseStatus` specifies the stability of the resource and its external contract.",
4882
+ "description": "Defines the maturity level and stability commitment for the resource's API contract (interface, behavior, data models).\n\nThis indicates whether the resource may undergo backward-incompatible changes. It helps consumers understand the risk\nof depending on the resource and whether it's suitable for production use.\n\nNote: This is independent of `visibility` and does not imply availability guarantees or SLAs - it concerns only the API contract stability.\n\nSee [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.",
4929
4883
  "oneOf": [
4930
4884
  {
4931
4885
  "const": "beta",
4932
- "description": "The contract for the resource is beta and may not be meant for productive use.\nResources of `beta` status MAY be changed or deleted at the providers discretion."
4886
+ "description": "The API contract has no stability guarantees. Breaking changes may occur at any time without notice or deprecation period.\n\nNot recommended for production use unless you can tolerate breaking changes. Suitable for experimentation, early adopters,\nand feedback gathering. Resources of `beta` status MAY be changed or removed at the provider's discretion."
4933
4887
  },
4934
4888
  {
4935
4889
  "const": "active",
4936
- "description": "Resource is meant for productive use and provides a stable API contract."
4890
+ "description": "The API contract is stable and recommended for production use.\n\nBreaking changes will only be introduced through proper deprecation cycles or new major versions,\nfollowing versioning and compatibility policies. Consumers can rely on active resources with confidence."
4937
4891
  },
4938
4892
  {
4939
4893
  "const": "deprecated",
4940
- "description": "Resource has been deprecated.\n\nIf the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.\n\nIf successor resources exist, they MUST be referenced through `successors`.\n\nA deprecated resource MAY be sunset (aka. decommissioned / removed) in the future, through setting a `Tombstone`.\nOnce the resource is sunset, its description MAY be removed from ORD, but could also be kept with `releaseStatus` set to `sunset`."
4894
+ "description": "The resource is still functional but scheduled for removal. No new development should depend on it.\n\nIf the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.\n\nIf successor resources exist, they MUST be referenced through `successors`.\n\nA deprecated resource MAY be sunset (decommissioned/removed) in the future through setting a `Tombstone`.\nOnce the resource is sunset, its description MAY be removed from ORD, but could also be kept with `releaseStatus` set to `sunset`."
4941
4895
  },
4942
4896
  {
4943
4897
  "const": "sunset",
4944
- "description": "Resource has been sunset, but is still described.\nIf the status is set to `sunset`, a `Tombstone` MUST be set as well and a `sunsetDate` MUST be provided."
4898
+ "description": "The resource has been decommissioned and is no longer available at runtime. This entry exists for historical reference only.\n\nIf the status is set to `sunset`, a `Tombstone` MUST be set as well and a `sunsetDate` MUST be provided."
4945
4899
  }
4946
4900
  ],
4947
4901
  "examples": [
@@ -5311,23 +5265,23 @@
5311
5265
  },
5312
5266
  "releaseStatus": {
5313
5267
  "type": "string",
5314
- "description": "The `releaseStatus` specifies the stability of the resource and its external contract.",
5268
+ "description": "Defines the maturity level and stability commitment for the resource's API contract (interface, behavior, data models).\n\nThis indicates whether the resource may undergo backward-incompatible changes. It helps consumers understand the risk\nof depending on the resource and whether it's suitable for production use.\n\nNote: This is independent of `visibility` and does not imply availability guarantees or SLAs - it concerns only the API contract stability.\n\nSee [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.",
5315
5269
  "oneOf": [
5316
5270
  {
5317
5271
  "const": "beta",
5318
- "description": "The contract for the resource is beta and may not be meant for productive use.\nResources of `beta` status MAY be changed or deleted at the providers discretion."
5272
+ "description": "The API contract has no stability guarantees. Breaking changes may occur at any time without notice or deprecation period.\n\nNot recommended for production use unless you can tolerate breaking changes. Suitable for experimentation, early adopters,\nand feedback gathering. Resources of `beta` status MAY be changed or removed at the provider's discretion."
5319
5273
  },
5320
5274
  {
5321
5275
  "const": "active",
5322
- "description": "Resource is meant for productive use and provides a stable API contract."
5276
+ "description": "The API contract is stable and recommended for production use.\n\nBreaking changes will only be introduced through proper deprecation cycles or new major versions,\nfollowing versioning and compatibility policies. Consumers can rely on active resources with confidence."
5323
5277
  },
5324
5278
  {
5325
5279
  "const": "deprecated",
5326
- "description": "Resource has been deprecated.\n\nIf the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.\n\nIf successor resources exist, they MUST be referenced through `successors`.\n\nA deprecated resource MAY be sunset (aka. decommissioned / removed) in the future, through setting a `Tombstone`.\nOnce the resource is sunset, its description MAY be removed from ORD, but could also be kept with `releaseStatus` set to `sunset`."
5280
+ "description": "The resource is still functional but scheduled for removal. No new development should depend on it.\n\nIf the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.\n\nIf successor resources exist, they MUST be referenced through `successors`.\n\nA deprecated resource MAY be sunset (decommissioned/removed) in the future through setting a `Tombstone`.\nOnce the resource is sunset, its description MAY be removed from ORD, but could also be kept with `releaseStatus` set to `sunset`."
5327
5281
  },
5328
5282
  {
5329
5283
  "const": "sunset",
5330
- "description": "Resource has been sunset, but is still described.\nIf the status is set to `sunset`, a `Tombstone` MUST be set as well and a `sunsetDate` MUST be provided."
5284
+ "description": "The resource has been decommissioned and is no longer available at runtime. This entry exists for historical reference only.\n\nIf the status is set to `sunset`, a `Tombstone` MUST be set as well and a `sunsetDate` MUST be provided."
5331
5285
  }
5332
5286
  ],
5333
5287
  "examples": [
@@ -6667,41 +6621,41 @@
6667
6621
  },
6668
6622
  "visibility": {
6669
6623
  "type": "string",
6670
- "description": "The visibility states who is allowed to \"see\" the described resource or capability.",
6624
+ "description": "Defines metadata access control - which categories of consumers are allowed to discover and access the resource and its metadata.\n\nThis controls who can see that the resource exists and retrieve its metadata level information.\nIt does NOT control runtime access to the resource itself - that is managed separately through authentication and authorization mechanisms.\n\nUse this to prevent exposing internal implementation details to inappropriate consumer audiences.",
6671
6625
  "oneOf": [
6672
6626
  {
6673
6627
  "const": "public",
6674
- "description": "Publicly visible to customers and 3rd parties.\nUsually this includes an contract on the API stability, e.g. the [SAP API Deprecation Policy](https://help.sap.com/viewer/84b35b9c39b247e3ba2a31f02beee46d/Cloud/en-US/5cbfda5a9efe4e97a3e24ddaf7ec5c16.html)."
6628
+ "description": "Metadata can be discovered and accessed by anyone, including customers, partners, and unauthenticated external parties.\n\nPublic resources typically come with stability guarantees, expressed via versioning and follow formal API lifecycle management. For more details see [Version and Lifecycle](../index.md#version-and-lifecycle) section.\nand follow formal API lifecycle management and deprecation policies.\n\nExample: A REST API that customers use to integrate with your SaaS product."
6675
6629
  },
6676
6630
  {
6677
6631
  "const": "internal",
6678
- "description": "Visible to other applications within the same [vendor](#vendor).\nHowever, they are not officially exposed and communicated to customers and 3rd parties.\nThey might not come with the same guarantees on API stability.\n\nInternal resources MUST NOT be made available to consumers without checking the necessary access permissions, e.g., a public API Catalog.\nInternal resources MAY be published through an internal API Catalog if the access permissions are ensured by it."
6632
+ "description": "Metadata can only be discovered and accessed by vendor internal consumers (e.g. applications or services of the same vendor).\nMUST NOT be made available to external parties or vendor customers.\n\nInternal resources are intended for integration between a vendors own applications and services.\nAPI stability and maturity are explicitly defined via the `releaseStatus` property, which is a separate concern from visibility.\n\nInternal resources MUST NOT be made available without checking the necessary access permissions.\nInternal resources MAY be published through an internal API Catalog if access permissions are ensured by it."
6679
6633
  },
6680
6634
  {
6681
6635
  "const": "private",
6682
- "description": "Visible only to the provider application or service, usually within the same system namespace / system type.\n\nPrivate resources MUST NOT be made available to public consumers or consumers outside of the \"private\" scope of the described application."
6636
+ "description": "Metadata should not be discoverable outside the application / service's own deployment scope (e.g., outside of the provider application or the same system namespace / system type).\nUsed for metadata completeness when describing implementation details or dependencies.\n\nPrivate resources usually have no stability guarantees and can change or be removed at any time.\nThese are typically implementation details not meant for consumption by other services.\n\nExample: Services only used within a microservice architecture or APIs that are only used for the own UIs, not for general consumption.\n\nPrivate resources MUST NOT be made discoverable or accessible outside the application / service's own deployment scope."
6683
6637
  }
6684
6638
  ]
6685
6639
  },
6686
6640
  "releaseStatus": {
6687
6641
  "type": "string",
6688
- "description": "The `releaseStatus` specifies the stability of the resource and its external contract.",
6642
+ "description": "Defines the maturity level and stability commitment for the resource's API contract (interface, behavior, data models).\n\nThis indicates whether the resource may undergo backward-incompatible changes. It helps consumers understand the risk\nof depending on the resource and whether it's suitable for production use.\n\nNote: This is independent of `visibility` and does not imply availability guarantees or SLAs - it concerns only the API contract stability.\n\nSee [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.",
6689
6643
  "oneOf": [
6690
6644
  {
6691
6645
  "const": "beta",
6692
- "description": "The contract for the resource is beta and may not be meant for productive use.\nResources of `beta` status MAY be changed or deleted at the providers discretion."
6646
+ "description": "The API contract has no stability guarantees. Breaking changes may occur at any time without notice or deprecation period.\n\nNot recommended for production use unless you can tolerate breaking changes. Suitable for experimentation, early adopters,\nand feedback gathering. Resources of `beta` status MAY be changed or removed at the provider's discretion."
6693
6647
  },
6694
6648
  {
6695
6649
  "const": "active",
6696
- "description": "Resource is meant for productive use and provides a stable API contract."
6650
+ "description": "The API contract is stable and recommended for production use.\n\nBreaking changes will only be introduced through proper deprecation cycles or new major versions,\nfollowing versioning and compatibility policies. Consumers can rely on active resources with confidence."
6697
6651
  },
6698
6652
  {
6699
6653
  "const": "deprecated",
6700
- "description": "Resource has been deprecated.\n\nIf the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.\n\nIf successor resources exist, they MUST be referenced through `successors`.\n\nA deprecated resource MAY be sunset (aka. decommissioned / removed) in the future, through setting a `Tombstone`.\nOnce the resource is sunset, its description MAY be removed from ORD, but could also be kept with `releaseStatus` set to `sunset`."
6654
+ "description": "The resource is still functional but scheduled for removal. No new development should depend on it.\n\nIf the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.\n\nIf successor resources exist, they MUST be referenced through `successors`.\n\nA deprecated resource MAY be sunset (decommissioned/removed) in the future through setting a `Tombstone`.\nOnce the resource is sunset, its description MAY be removed from ORD, but could also be kept with `releaseStatus` set to `sunset`."
6701
6655
  },
6702
6656
  {
6703
6657
  "const": "sunset",
6704
- "description": "Resource has been sunset, but is still described.\nIf the status is set to `sunset`, a `Tombstone` MUST be set as well and a `sunsetDate` MUST be provided."
6658
+ "description": "The resource has been decommissioned and is no longer available at runtime. This entry exists for historical reference only.\n\nIf the status is set to `sunset`, a `Tombstone` MUST be set as well and a `sunsetDate` MUST be provided."
6705
6659
  }
6706
6660
  ],
6707
6661
  "examples": [
@@ -438,11 +438,23 @@ export interface ApiResource {
438
438
  */
439
439
  abstract?: boolean;
440
440
  /**
441
- * The visibility states who is allowed to "see" the described resource or capability.
441
+ * Defines metadata access control - which categories of consumers are allowed to discover and access the resource and its metadata.
442
+ *
443
+ * This controls who can see that the resource exists and retrieve its metadata level information.
444
+ * It does NOT control runtime access to the resource itself - that is managed separately through authentication and authorization mechanisms.
445
+ *
446
+ * Use this to prevent exposing internal implementation details to inappropriate consumer audiences.
442
447
  */
443
448
  visibility: "public" | "internal" | "private";
444
449
  /**
445
- * The `releaseStatus` specifies the stability of the resource and its external contract.
450
+ * Defines the maturity level and stability commitment for the resource's API contract (interface, behavior, data models).
451
+ *
452
+ * This indicates whether the resource may undergo backward-incompatible changes. It helps consumers understand the risk
453
+ * of depending on the resource and whether it's suitable for production use.
454
+ *
455
+ * Note: This is independent of `visibility` and does not imply availability guarantees or SLAs - it concerns only the API contract stability.
456
+ *
457
+ * See [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.
446
458
  */
447
459
  releaseStatus: "beta" | "active" | "deprecated" | "sunset";
448
460
  /**
@@ -720,7 +732,14 @@ export interface ChangelogEntry {
720
732
  */
721
733
  version: string;
722
734
  /**
723
- * The `releaseStatus` specifies the stability of the resource and its external contract.
735
+ * Defines the maturity level and stability commitment for the resource's API contract (interface, behavior, data models).
736
+ *
737
+ * This indicates whether the resource may undergo backward-incompatible changes. It helps consumers understand the risk
738
+ * of depending on the resource and whether it's suitable for production use.
739
+ *
740
+ * Note: This is independent of `visibility` and does not imply availability guarantees or SLAs - it concerns only the API contract stability.
741
+ *
742
+ * See [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.
724
743
  */
725
744
  releaseStatus: "beta" | "active" | "deprecated" | "sunset";
726
745
  /**
@@ -770,7 +789,7 @@ export interface ApiResourceDefinition {
770
789
  * `text/plain` MAY be used for arbitrary plain-text and `application/octet-stream` for arbitrary binary data.
771
790
  *
772
791
  */
773
- mediaType: "application/json" | "application/xml" | "text/yaml" | "text/plain" | "application/octet-stream";
792
+ mediaType: string;
774
793
  /**
775
794
  * [URL reference](https://tools.ietf.org/html/rfc3986#section-4.1) (URL or relative reference) to the resource definition file.
776
795
  *
@@ -1195,11 +1214,23 @@ export interface EventResource {
1195
1214
  */
1196
1215
  abstract?: boolean;
1197
1216
  /**
1198
- * The visibility states who is allowed to "see" the described resource or capability.
1217
+ * Defines metadata access control - which categories of consumers are allowed to discover and access the resource and its metadata.
1218
+ *
1219
+ * This controls who can see that the resource exists and retrieve its metadata level information.
1220
+ * It does NOT control runtime access to the resource itself - that is managed separately through authentication and authorization mechanisms.
1221
+ *
1222
+ * Use this to prevent exposing internal implementation details to inappropriate consumer audiences.
1199
1223
  */
1200
1224
  visibility: "public" | "internal" | "private";
1201
1225
  /**
1202
- * The `releaseStatus` specifies the stability of the resource and its external contract.
1226
+ * Defines the maturity level and stability commitment for the resource's API contract (interface, behavior, data models).
1227
+ *
1228
+ * This indicates whether the resource may undergo backward-incompatible changes. It helps consumers understand the risk
1229
+ * of depending on the resource and whether it's suitable for production use.
1230
+ *
1231
+ * Note: This is independent of `visibility` and does not imply availability guarantees or SLAs - it concerns only the API contract stability.
1232
+ *
1233
+ * See [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.
1203
1234
  */
1204
1235
  releaseStatus: "beta" | "active" | "deprecated" | "sunset";
1205
1236
  /**
@@ -1424,7 +1455,7 @@ export interface EventResourceDefinition {
1424
1455
  * `text/plain` MAY be used for arbitrary plain-text and `application/octet-stream` for arbitrary binary data.
1425
1456
  *
1426
1457
  */
1427
- mediaType: "application/json" | "application/xml" | "text/yaml" | "text/plain" | "application/octet-stream";
1458
+ mediaType: string;
1428
1459
  /**
1429
1460
  * [URL reference](https://tools.ietf.org/html/rfc3986#section-4.1) (URL or relative reference) to the resource definition file.
1430
1461
  *
@@ -1592,11 +1623,23 @@ export interface EntityType {
1592
1623
  */
1593
1624
  lastUpdate?: string;
1594
1625
  /**
1595
- * The visibility states who is allowed to "see" the described resource or capability.
1626
+ * Defines metadata access control - which categories of consumers are allowed to discover and access the resource and its metadata.
1627
+ *
1628
+ * This controls who can see that the resource exists and retrieve its metadata level information.
1629
+ * It does NOT control runtime access to the resource itself - that is managed separately through authentication and authorization mechanisms.
1630
+ *
1631
+ * Use this to prevent exposing internal implementation details to inappropriate consumer audiences.
1596
1632
  */
1597
1633
  visibility: "public" | "internal" | "private";
1598
1634
  /**
1599
- * The `releaseStatus` specifies the stability of the resource and its external contract.
1635
+ * Defines the maturity level and stability commitment for the resource's API contract (interface, behavior, data models).
1636
+ *
1637
+ * This indicates whether the resource may undergo backward-incompatible changes. It helps consumers understand the risk
1638
+ * of depending on the resource and whether it's suitable for production use.
1639
+ *
1640
+ * Note: This is independent of `visibility` and does not imply availability guarantees or SLAs - it concerns only the API contract stability.
1641
+ *
1642
+ * See [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.
1600
1643
  */
1601
1644
  releaseStatus: "beta" | "active" | "deprecated" | "sunset";
1602
1645
  /**
@@ -1835,11 +1878,23 @@ export interface Capability {
1835
1878
  */
1836
1879
  lastUpdate?: string;
1837
1880
  /**
1838
- * The visibility states who is allowed to "see" the described resource or capability.
1881
+ * Defines metadata access control - which categories of consumers are allowed to discover and access the resource and its metadata.
1882
+ *
1883
+ * This controls who can see that the resource exists and retrieve its metadata level information.
1884
+ * It does NOT control runtime access to the resource itself - that is managed separately through authentication and authorization mechanisms.
1885
+ *
1886
+ * Use this to prevent exposing internal implementation details to inappropriate consumer audiences.
1839
1887
  */
1840
1888
  visibility: "public" | "internal" | "private";
1841
1889
  /**
1842
- * The `releaseStatus` specifies the stability of the resource and its external contract.
1890
+ * Defines the maturity level and stability commitment for the resource's API contract (interface, behavior, data models).
1891
+ *
1892
+ * This indicates whether the resource may undergo backward-incompatible changes. It helps consumers understand the risk
1893
+ * of depending on the resource and whether it's suitable for production use.
1894
+ *
1895
+ * Note: This is independent of `visibility` and does not imply availability guarantees or SLAs - it concerns only the API contract stability.
1896
+ *
1897
+ * See [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.
1843
1898
  */
1844
1899
  releaseStatus: "beta" | "active" | "deprecated" | "sunset";
1845
1900
  /**
@@ -1932,7 +1987,7 @@ export interface CapabilityDefinition {
1932
1987
  * `text/plain` MAY be used for arbitrary plain-text and `application/octet-stream` for arbitrary binary data.
1933
1988
  *
1934
1989
  */
1935
- mediaType: "application/json" | "application/xml" | "text/yaml" | "text/plain" | "application/octet-stream";
1990
+ mediaType: string;
1936
1991
  /**
1937
1992
  * [URL reference](https://tools.ietf.org/html/rfc3986#section-4.1) (URL or relative reference) to the resource definition file.
1938
1993
  *
@@ -2428,11 +2483,23 @@ export interface Agent {
2428
2483
  */
2429
2484
  lastUpdate?: string;
2430
2485
  /**
2431
- * The visibility states who is allowed to "see" the described resource or capability.
2486
+ * Defines metadata access control - which categories of consumers are allowed to discover and access the resource and its metadata.
2487
+ *
2488
+ * This controls who can see that the resource exists and retrieve its metadata level information.
2489
+ * It does NOT control runtime access to the resource itself - that is managed separately through authentication and authorization mechanisms.
2490
+ *
2491
+ * Use this to prevent exposing internal implementation details to inappropriate consumer audiences.
2432
2492
  */
2433
2493
  visibility: "public" | "internal" | "private";
2434
2494
  /**
2435
- * The `releaseStatus` specifies the stability of the resource and its external contract.
2495
+ * Defines the maturity level and stability commitment for the resource's API contract (interface, behavior, data models).
2496
+ *
2497
+ * This indicates whether the resource may undergo backward-incompatible changes. It helps consumers understand the risk
2498
+ * of depending on the resource and whether it's suitable for production use.
2499
+ *
2500
+ * Note: This is independent of `visibility` and does not imply availability guarantees or SLAs - it concerns only the API contract stability.
2501
+ *
2502
+ * See [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.
2436
2503
  */
2437
2504
  releaseStatus: "beta" | "active" | "deprecated" | "sunset";
2438
2505
  /**
@@ -2694,11 +2761,23 @@ export interface IntegrationDependency {
2694
2761
  */
2695
2762
  lastUpdate?: string;
2696
2763
  /**
2697
- * The visibility states who is allowed to "see" the described resource or capability.
2764
+ * Defines metadata access control - which categories of consumers are allowed to discover and access the resource and its metadata.
2765
+ *
2766
+ * This controls who can see that the resource exists and retrieve its metadata level information.
2767
+ * It does NOT control runtime access to the resource itself - that is managed separately through authentication and authorization mechanisms.
2768
+ *
2769
+ * Use this to prevent exposing internal implementation details to inappropriate consumer audiences.
2698
2770
  */
2699
2771
  visibility: "public" | "internal" | "private";
2700
2772
  /**
2701
- * The `releaseStatus` specifies the stability of the resource and its external contract.
2773
+ * Defines the maturity level and stability commitment for the resource's API contract (interface, behavior, data models).
2774
+ *
2775
+ * This indicates whether the resource may undergo backward-incompatible changes. It helps consumers understand the risk
2776
+ * of depending on the resource and whether it's suitable for production use.
2777
+ *
2778
+ * Note: This is independent of `visibility` and does not imply availability guarantees or SLAs - it concerns only the API contract stability.
2779
+ *
2780
+ * See [Lifecycle](../index.md#lifecycle) and [Compatibility](../concepts/compatibility.md) for more details.
2702
2781
  */
2703
2782
  releaseStatus: "beta" | "active" | "deprecated" | "sunset";
2704
2783
  /**
@@ -3281,7 +3360,12 @@ export interface ConsumptionBundle {
3281
3360
  */
3282
3361
  lastUpdate?: string;
3283
3362
  /**
3284
- * The visibility states who is allowed to "see" the described resource or capability.
3363
+ * Defines metadata access control - which categories of consumers are allowed to discover and access the resource and its metadata.
3364
+ *
3365
+ * This controls who can see that the resource exists and retrieve its metadata level information.
3366
+ * It does NOT control runtime access to the resource itself - that is managed separately through authentication and authorization mechanisms.
3367
+ *
3368
+ * Use this to prevent exposing internal implementation details to inappropriate consumer audiences.
3285
3369
  */
3286
3370
  visibility?: "public" | "internal" | "private";
3287
3371
  /**
package/package.json CHANGED
@@ -1,54 +1,60 @@
1
1
  {
2
- "$schema": "http://json.schemastore.org/package",
3
- "name": "@open-resource-discovery/specification",
4
- "version": "1.14.0",
5
- "description": "Open Resource Discovery (ORD) Specification",
6
- "author": "SAP SE",
7
- "license": "Apache-2.0",
8
- "main": "dist/index.js",
9
- "types": "dist/index.d.ts",
10
- "engines": {
11
- "node": ">=22.0.0",
12
- "npm": ">=10.0.0"
13
- },
14
- "repository": {
15
- "type": "git",
16
- "url": "git+https://github.com/open-resource-discovery/specification.git"
17
- },
18
- "files": [
19
- "README.md",
20
- "dist/index.js",
21
- "dist/index.d.ts",
22
- "dist/generated/spec/v1"
23
- ],
24
- "scripts": {
25
- "docusaurus": "docusaurus",
26
- "build": "npm run generate && npm run build-ts && npm run build-docusaurus",
27
- "clean": "node src/helper/clean.mjs",
28
- "build-ts": "tsc -p ./tsconfig.json",
29
- "build-docusaurus": "docusaurus build",
30
- "serve": "docusaurus serve",
31
- "start": "docusaurus start",
32
- "deploy": "npm run build && gh-pages -d ./build",
33
- "pregenerate": "npm run clean",
34
- "generate": "npx @open-resource-discovery/spec-toolkit -c ./spec-toolkit.config.json",
35
- "postgenerate": "ts-node ./src/helper/copyGeneratedToDestination.ts"
36
- },
37
- "devDependencies": {
38
- "@docusaurus/core": "3.9.2",
39
- "@docusaurus/plugin-client-redirects": "3.9.2",
40
- "@docusaurus/preset-classic": "3.9.2",
41
- "@docusaurus/theme-mermaid": "3.9.2",
42
- "@easyops-cn/docusaurus-search-local": "0.52.2",
43
- "@mdx-js/react": "3.1.1",
44
- "@open-resource-discovery/spec-toolkit": "0.7.0",
45
- "@types/fs-extra": "11.0.4",
46
- "clsx": "2.1.1",
47
- "fs-extra": "11.3.3",
48
- "lefthook": "2.0.15",
49
- "prism-react-renderer": "2.4.1",
50
- "react": "18.3.1",
51
- "react-dom": "18.3.1",
52
- "ts-node": "10.9.2"
53
- }
2
+ "$schema": "http://json.schemastore.org/package",
3
+ "name": "@open-resource-discovery/specification",
4
+ "version": "1.14.1",
5
+ "description": "Open Resource Discovery (ORD) Specification",
6
+ "author": "SAP SE",
7
+ "license": "Apache-2.0",
8
+ "main": "dist/index.js",
9
+ "types": "dist/index.d.ts",
10
+ "engines": {
11
+ "node": ">=22.0.0",
12
+ "npm": ">=10.0.0"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/open-resource-discovery/specification.git"
17
+ },
18
+ "files": [
19
+ "README.md",
20
+ "dist/index.js",
21
+ "dist/index.d.ts",
22
+ "dist/generated/spec/v1"
23
+ ],
24
+ "scripts": {
25
+ "docusaurus": "docusaurus",
26
+ "build": "npm run generate && npm run build-ts && npm run build-docusaurus",
27
+ "clean": "node src/helper/clean.mjs",
28
+ "build-ts": "tsc -p ./tsconfig.json",
29
+ "build-docusaurus": "docusaurus build",
30
+ "format": "biome format --write .",
31
+ "lint": "biome lint .",
32
+ "test": "npm run build-ts && node --test dist/**/*.test.js",
33
+ "serve": "docusaurus serve",
34
+ "start": "docusaurus start",
35
+ "deploy": "npm run build && gh-pages -d ./build",
36
+ "pregenerate": "npm run clean",
37
+ "generate": "npx @open-resource-discovery/spec-toolkit -c ./spec-toolkit.config.json",
38
+ "postgenerate": "ts-node ./src/helper/copyGeneratedToDestination.ts"
39
+ },
40
+ "devDependencies": {
41
+ "@biomejs/biome": "2.4.6",
42
+ "@docusaurus/core": "3.9.2",
43
+ "@docusaurus/plugin-client-redirects": "3.9.2",
44
+ "@docusaurus/preset-classic": "3.9.2",
45
+ "@docusaurus/theme-mermaid": "3.9.2",
46
+ "@easyops-cn/docusaurus-search-local": "0.55.1",
47
+ "@mdx-js/react": "3.1.1",
48
+ "@open-resource-discovery/spec-toolkit": "0.7.1",
49
+ "@types/fs-extra": "11.0.4",
50
+ "ajv": "8.18.0",
51
+ "ajv-formats": "3.0.1",
52
+ "clsx": "2.1.1",
53
+ "fs-extra": "11.3.4",
54
+ "lefthook": "2.1.4",
55
+ "prism-react-renderer": "2.4.1",
56
+ "react": "18.3.1",
57
+ "react-dom": "18.3.1",
58
+ "ts-node": "10.9.2"
59
+ }
54
60
  }