@open-resource-discovery/specification 1.10.0 → 1.10.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.
- package/README.md +2 -1
- package/dist/types/v1/Document.d.ts +47 -21
- package/package.json +2 -2
- package/static/spec-v1/interfaces/Configuration.annotated.schema.json +1 -1
- package/static/spec-v1/interfaces/Configuration.schema.json +1 -1
- package/static/spec-v1/interfaces/Document.annotated.schema.json +344 -18
- package/static/spec-v1/interfaces/Document.schema.json +190 -15
@@ -1,6 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
3
3
|
"$id": "https://open-resource-discovery.github.io/specification/spec-v1/interfaces/Document.schema.json#",
|
4
|
+
"title": "ORD Document",
|
4
5
|
"description": "The [ORD Document](../index.md#ord-document) object serves as a wrapper for the **ORD resources** and **ORD taxonomy** and adds further top-level information\nthat are specific to the document/the service it describes.\n\nThe constraints and considerations on [ORD Documents](../index.md#ord-document) MUST be followed.",
|
5
6
|
"definitions": {
|
6
7
|
"Package": {
|
@@ -19,7 +20,7 @@
|
|
19
20
|
},
|
20
21
|
"localId": {
|
21
22
|
"type": "string",
|
22
|
-
"description": "
|
23
|
+
"description": "The locally unique ID under which this resource can be looked up / resolved in the described system itself.\nUnlike the ORD ID it's not globally unique, but it may be useful to document the original ID / technical name.\n\nIt MAY also be used as the `<resourceName>` fragment in the ORD ID, IF it can fulfill the charset and length limitations within the ORD ID.\nBut since this is not always possible, no assumptions MUST be made about the local ID being the same as the `<resourceName>` fragment in the ORD ID.",
|
23
24
|
"maxLength": 255,
|
24
25
|
"examples": [
|
25
26
|
"SuccessFactorsRecruiting",
|
@@ -149,7 +150,7 @@
|
|
149
150
|
},
|
150
151
|
"partOfProducts": {
|
151
152
|
"type": "array",
|
152
|
-
"description": "List of products
|
153
|
+
"description": "List of products the resources of the package are a part of.\n\nMUST be a valid reference to a [Product](#product) ORD ID.\n\n`partOfProducts` that are assigned to a `Package` are inherited to all of the ORD resources it contains.",
|
153
154
|
"items": {
|
154
155
|
"type": "string",
|
155
156
|
"pattern": "^([a-z0-9]+(?:[.][a-z0-9]+)*):(product):([a-zA-Z0-9._\\-]+):()$",
|
@@ -398,7 +399,7 @@
|
|
398
399
|
},
|
399
400
|
"localId": {
|
400
401
|
"type": "string",
|
401
|
-
"description": "
|
402
|
+
"description": "The locally unique ID under which this resource can be looked up / resolved in the described system itself.\nUnlike the ORD ID it's not globally unique, but it may be useful to document the original ID / technical name.\n\nIt MAY also be used as the `<resourceName>` fragment in the ORD ID, IF it can fulfill the charset and length limitations within the ORD ID.\nBut since this is not always possible, no assumptions MUST be made about the local ID being the same as the `<resourceName>` fragment in the ORD ID.",
|
402
403
|
"maxLength": 255,
|
403
404
|
"examples": [
|
404
405
|
"SuccessFactorsRecruiting",
|
@@ -563,7 +564,7 @@
|
|
563
564
|
},
|
564
565
|
"localId": {
|
565
566
|
"type": "string",
|
566
|
-
"description": "
|
567
|
+
"description": "The locally unique ID under which this resource can be looked up / resolved in the described system itself.\nUnlike the ORD ID it's not globally unique, but it may be useful to document the original ID / technical name.\n\nIt MAY also be used as the `<resourceName>` fragment in the ORD ID, IF it can fulfill the charset and length limitations within the ORD ID.\nBut since this is not always possible, no assumptions MUST be made about the local ID being the same as the `<resourceName>` fragment in the ORD ID.",
|
567
568
|
"maxLength": 255,
|
568
569
|
"examples": [
|
569
570
|
"API_BILL_OF_MATERIAL_SRV"
|
@@ -651,7 +652,7 @@
|
|
651
652
|
},
|
652
653
|
"partOfProducts": {
|
653
654
|
"type": "array",
|
654
|
-
"description": "List of products
|
655
|
+
"description": "List of products the resources of the package are a part of.\n\nMUST be a valid reference to a [Product](#product) ORD ID.\n\n`partOfProducts` that are assigned to a `Package` are inherited to all of the ORD resources it contains.",
|
655
656
|
"items": {
|
656
657
|
"type": "string",
|
657
658
|
"pattern": "^([a-z0-9]+(?:[.][a-z0-9]+)*):(product):([a-zA-Z0-9._\\-]+):()$",
|
@@ -865,7 +866,7 @@
|
|
865
866
|
"oneOf": [
|
866
867
|
{
|
867
868
|
"const": "sap:ord-document-api:v1",
|
868
|
-
"description": "API follows the Open Resource Discovery v1 [Document API](../index.md#ord-
|
869
|
+
"description": "API follows the Open Resource Discovery v1 [Document API](../index.md#ord-provider-api) contract."
|
869
870
|
},
|
870
871
|
{
|
871
872
|
"const": "cff:open-service-broker:v2",
|
@@ -1303,7 +1304,7 @@
|
|
1303
1304
|
},
|
1304
1305
|
"localId": {
|
1305
1306
|
"type": "string",
|
1306
|
-
"description": "
|
1307
|
+
"description": "The locally unique ID under which this resource can be looked up / resolved in the described system itself.\nUnlike the ORD ID it's not globally unique, but it may be useful to document the original ID / technical name.\n\nIt MAY also be used as the `<resourceName>` fragment in the ORD ID, IF it can fulfill the charset and length limitations within the ORD ID.\nBut since this is not always possible, no assumptions MUST be made about the local ID being the same as the `<resourceName>` fragment in the ORD ID.",
|
1307
1308
|
"maxLength": 255,
|
1308
1309
|
"examples": [
|
1309
1310
|
"BusinessEvents_SubscriptionEvents"
|
@@ -1392,7 +1393,7 @@
|
|
1392
1393
|
},
|
1393
1394
|
"partOfProducts": {
|
1394
1395
|
"type": "array",
|
1395
|
-
"description": "List of products
|
1396
|
+
"description": "List of products the resources of the package are a part of.\n\nMUST be a valid reference to a [Product](#product) ORD ID.\n\n`partOfProducts` that are assigned to a `Package` are inherited to all of the ORD resources it contains.",
|
1396
1397
|
"items": {
|
1397
1398
|
"type": "string",
|
1398
1399
|
"pattern": "^([a-z0-9]+(?:[.][a-z0-9]+)*):(product):([a-zA-Z0-9._\\-]+):()$",
|
@@ -1880,7 +1881,7 @@
|
|
1880
1881
|
},
|
1881
1882
|
"localId": {
|
1882
1883
|
"type": "string",
|
1883
|
-
"description": "
|
1884
|
+
"description": "The locally unique ID under which this resource can be looked up / resolved in the described system itself.\nUnlike the ORD ID it's not globally unique, but it may be useful to document the original ID / technical name.\n\nIt MAY also be used as the `<resourceName>` fragment in the ORD ID, IF it can fulfill the charset and length limitations within the ORD ID.\nBut since this is not always possible, no assumptions MUST be made about the local ID being the same as the `<resourceName>` fragment in the ORD ID.",
|
1884
1885
|
"maxLength": 255,
|
1885
1886
|
"examples": [
|
1886
1887
|
"BusinessPartner",
|
@@ -1959,7 +1960,7 @@
|
|
1959
1960
|
},
|
1960
1961
|
"partOfProducts": {
|
1961
1962
|
"type": "array",
|
1962
|
-
"description": "List of products
|
1963
|
+
"description": "List of products the resources of the package are a part of.\n\nMUST be a valid reference to a [Product](#product) ORD ID.\n\n`partOfProducts` that are assigned to a `Package` are inherited to all of the ORD resources it contains.",
|
1963
1964
|
"items": {
|
1964
1965
|
"type": "string",
|
1965
1966
|
"pattern": "^([a-z0-9]+(?:[.][a-z0-9]+)*):(product):([a-zA-Z0-9._\\-]+):()$",
|
@@ -2218,7 +2219,7 @@
|
|
2218
2219
|
},
|
2219
2220
|
"localId": {
|
2220
2221
|
"type": "string",
|
2221
|
-
"description": "
|
2222
|
+
"description": "The locally unique ID under which this resource can be looked up / resolved in the described system itself.\nUnlike the ORD ID it's not globally unique, but it may be useful to document the original ID / technical name.\n\nIt MAY also be used as the `<resourceName>` fragment in the ORD ID, IF it can fulfill the charset and length limitations within the ORD ID.\nBut since this is not always possible, no assumptions MUST be made about the local ID being the same as the `<resourceName>` fragment in the ORD ID.",
|
2222
2223
|
"maxLength": 255,
|
2223
2224
|
"examples": [
|
2224
2225
|
"CustomerOrder"
|
@@ -2281,6 +2282,21 @@
|
|
2281
2282
|
},
|
2282
2283
|
"description": "Defines which groups the resource is assigned to.\n\nThe property is optional, but if given the value MUST be an array of valid Group IDs.\n\nGroups are a lightweight custom taxonomy concept.\nThey express a \"part of\" relationship to the chosen group concept.\nIf an \"identity / equals\" relationship needs to be expressed, use the `correlationIds` instead.\n\nAll resources that share the same group ID assignment are effectively grouped together."
|
2283
2284
|
},
|
2285
|
+
"partOfProducts": {
|
2286
|
+
"type": "array",
|
2287
|
+
"description": "List of products this Data Product is a part of or is related to, its e.g. data source systems.\n\nMUST be a valid reference to a [Product](#product) ORD ID.\n\n`partOfProducts` that are assigned to a `Package` are inherited to all of the ORD resources it contains.",
|
2288
|
+
"items": {
|
2289
|
+
"type": "string",
|
2290
|
+
"pattern": "^([a-z0-9]+(?:[.][a-z0-9]+)*):(product):([a-zA-Z0-9._\\-]+):()$",
|
2291
|
+
"maxLength": 255
|
2292
|
+
},
|
2293
|
+
"minItems": 0,
|
2294
|
+
"examples": [
|
2295
|
+
[
|
2296
|
+
"sap:product:S4HANA_OD:"
|
2297
|
+
]
|
2298
|
+
]
|
2299
|
+
},
|
2284
2300
|
"version": {
|
2285
2301
|
"type": "string",
|
2286
2302
|
"description": "The complete [SemVer](https://semver.org/) version string.\n\nIt MUST follow the [Semantic Versioning 2.0.0](https://semver.org/) standard.\nIt SHOULD be changed if the ORD information or referenced resource definitions changed.\nIt SHOULD express minor and patch changes that don't lead to incompatible changes.\n\nWhen the `version` major version changes, the [ORD ID](../index.md#ord-id) `<majorVersion>` fragment MUST be updated to be identical.\nIn case that a resource definition file also contains a version number (e.g. [OpenAPI `info`.`version`](https://swagger.io/specification/#info-object)), it MUST be equal with the resource `version` to avoid inconsistencies.\n\nIf the resource has been extended by the user, the change MUST be indicated via `lastUpdate`.\nThe `version` MUST not be bumped for changes in extensions.\n\nThe general [Version and Lifecycle](../index.md#version-and-lifecycle) flow MUST be followed.\n\nNote: A change is only relevant for a version increment, if it affects the ORD resource or ORD taxonomy directly.\nFor example: If a resource within a `Package` changes, but the package itself did not, the package version does not need to be incremented.",
|
@@ -3185,7 +3201,7 @@
|
|
3185
3201
|
},
|
3186
3202
|
"localId": {
|
3187
3203
|
"type": "string",
|
3188
|
-
"description": "
|
3204
|
+
"description": "The locally unique ID under which this resource can be looked up / resolved in the described system itself.\nUnlike the ORD ID it's not globally unique, but it may be useful to document the original ID / technical name.\n\nIt MAY also be used as the `<resourceName>` fragment in the ORD ID, IF it can fulfill the charset and length limitations within the ORD ID.\nBut since this is not always possible, no assumptions MUST be made about the local ID being the same as the `<resourceName>` fragment in the ORD ID.",
|
3189
3205
|
"maxLength": 255,
|
3190
3206
|
"examples": [
|
3191
3207
|
"SuccessFactorsRecruiting",
|
@@ -3512,7 +3528,7 @@
|
|
3512
3528
|
},
|
3513
3529
|
"localId": {
|
3514
3530
|
"type": "string",
|
3515
|
-
"description": "
|
3531
|
+
"description": "The locally unique ID under which this resource can be looked up / resolved in the described system itself.\nUnlike the ORD ID it's not globally unique, but it may be useful to document the original ID / technical name.\n\nIt MAY also be used as the `<resourceName>` fragment in the ORD ID, IF it can fulfill the charset and length limitations within the ORD ID.\nBut since this is not always possible, no assumptions MUST be made about the local ID being the same as the `<resourceName>` fragment in the ORD ID.",
|
3516
3532
|
"maxLength": 255,
|
3517
3533
|
"examples": [
|
3518
3534
|
"SuccessFactorsRecruiting",
|
@@ -4712,7 +4728,7 @@
|
|
4712
4728
|
"EntityTypeMapping": {
|
4713
4729
|
"title": "Entity Type Mapping",
|
4714
4730
|
"type": "object",
|
4715
|
-
"description": "An API or Event resource may optionally define its `entityTypeMappings`.\nThis is used to map and correlate the API models to the underlying, conceptual **entity types**.\n\nIf the mapping from API resource to entity types is not defined,\ncertain use-cases that rely on this explicit connection will not be possible.\n\nThis mapping is meant to be rather fine granular.\nTherefore, the mapping needs to be done on basis of one of the referenced resource definitions,\nas only there we know the details and the actual contents of the API Model of the API resource.\n\nFor the various resource definition formats the selection of API models may need to be expressed differently.\nAs a consequence, there are different types of selectors that are specialized toward certain resource definition formats.\n\nThe target of the mapping is a correlation to an entity type via a [Correlation ID](../../#/v1/README?id=correlation-id)\nor to an [ORD ID](../../spec-v1/#ord-id) of an entity type.\nIt is assumed that the entity types are described in more detail or on a different abstraction level via metadata.\nWhen the correlation ID is used, an ORD consumer may need to know how to access the entity type metadata through conventions.\nThis can be determined either by the namespace of the correlation ID,\nor through a defined and known `implementationStandard` that can resolve the `localId` fragment of the correlation ID .\n\nAt SAP, the metadata about entity types could be retrieved via the CSN_EXPOSURE service.\nTo indicate this, the service needs to be implemented and described in ORD with `implementationStandard` set to `sap:csn-exposure:v1`).\n\nODM 2.0 relies on the entity type mappings and uses the the mapping to express the relationship of an API to the\ncorresponding ODM entity. ORD consumers like SAP Business Accelerator Hub consume the mapping to make the relationships
|
4731
|
+
"description": "An API or Event resource may optionally define its `entityTypeMappings`.\nThis is used to map and correlate the API models to the underlying, conceptual **entity types**.\n\nIf the mapping from API resource to entity types is not defined,\ncertain use-cases that rely on this explicit connection will not be possible.\n\nThis mapping is meant to be rather fine granular.\nTherefore, the mapping needs to be done on basis of one of the referenced resource definitions,\nas only there we know the details and the actual contents of the API Model of the API resource.\n\nFor the various resource definition formats the selection of API models may need to be expressed differently.\nAs a consequence, there are different types of selectors that are specialized toward certain resource definition formats.\n\nThe target of the mapping is a correlation to an entity type via a [Correlation ID](../../#/v1/README?id=correlation-id)\nor to an [ORD ID](../../spec-v1/#ord-id) of an entity type.\nIt is assumed that the entity types are described in more detail or on a different abstraction level via metadata.\nWhen the correlation ID is used, an ORD consumer may need to know how to access the entity type metadata through conventions.\nThis can be determined either by the namespace of the correlation ID,\nor through a defined and known `implementationStandard` that can resolve the `localId` fragment of the correlation ID .\n\nAt SAP, the metadata about entity types could be retrieved via the CSN_EXPOSURE service.\nTo indicate this, the service needs to be implemented and described in ORD with `implementationStandard` set to `sap:csn-exposure:v1`).\n\nODM 2.0 relies on the entity type mappings and uses the the mapping to express the relationship of an API to the\ncorresponding ODM entity. ORD consumers like SAP Business Accelerator Hub consume the mapping to make the relationships navigate-able for customers.",
|
4716
4732
|
"properties": {
|
4717
4733
|
"apiModelSelectors": {
|
4718
4734
|
"type": "array",
|
@@ -4937,9 +4953,168 @@
|
|
4937
4953
|
"removalDate": "2020-12-02T14:12:59Z"
|
4938
4954
|
}
|
4939
4955
|
]
|
4956
|
+
},
|
4957
|
+
"OrdResource": {
|
4958
|
+
"type": "object",
|
4959
|
+
"title": "ORD Resource (abstract)",
|
4960
|
+
"description": "Abstract definition of shared properties across ORD Resources.",
|
4961
|
+
"properties": {
|
4962
|
+
"ordId": {
|
4963
|
+
"type": "string",
|
4964
|
+
"description": "The ORD ID is a stable, globally unique ID for ORD resources or taxonomy.\n\nIt MUST be a valid [ORD ID](../index.md#ord-id) of the appropriate ORD type.",
|
4965
|
+
"pattern": "^([a-z0-9-]+(?:[.][a-z0-9-]+)*):(apiResource|eventResource|capability|dataProduct):([a-zA-Z0-9._\\-]+):(v0|v[1-9][0-9]*|)$",
|
4966
|
+
"maxLength": 255,
|
4967
|
+
"examples": []
|
4968
|
+
},
|
4969
|
+
"localId": {
|
4970
|
+
"type": "string",
|
4971
|
+
"description": "The locally unique ID under which this resource can be looked up / resolved in the described system itself.\nUnlike the ORD ID it's not globally unique, but it may be useful to document the original ID / technical name.\n\nIt MAY also be used as the `<resourceName>` fragment in the ORD ID, IF it can fulfill the charset and length limitations within the ORD ID.\nBut since this is not always possible, no assumptions MUST be made about the local ID being the same as the `<resourceName>` fragment in the ORD ID.",
|
4972
|
+
"maxLength": 255,
|
4973
|
+
"examples": []
|
4974
|
+
},
|
4975
|
+
"correlationIds": {
|
4976
|
+
"type": "array",
|
4977
|
+
"description": "Correlation IDs can be used to create a reference to related data in other repositories (especially to the system of record).\n\nThey express an \"identity\" / \"equals\" / \"mappable\" relationship to the target ID.\n\nIf a \"part of\" relationship needs to be expressed, use the `partOfGroups` assignment instead.\n\nMUST be a valid [Correlation ID](../index.md#correlation-id).",
|
4978
|
+
"items": {
|
4979
|
+
"type": "string",
|
4980
|
+
"pattern": "^([a-z0-9]+(?:[.][a-z0-9]+)*):([a-zA-Z0-9._\\-\\/]+):([a-zA-Z0-9._\\-\\/]+)$",
|
4981
|
+
"maxLength": 255
|
4982
|
+
},
|
4983
|
+
"examples": []
|
4984
|
+
},
|
4985
|
+
"title": {
|
4986
|
+
"type": "string",
|
4987
|
+
"description": "Human-readable title.\n\nMUST NOT exceed 255 chars.\nMUST NOT contain line breaks.",
|
4988
|
+
"minLength": 1,
|
4989
|
+
"maxLength": 255,
|
4990
|
+
"examples": []
|
4991
|
+
},
|
4992
|
+
"shortDescription": {
|
4993
|
+
"type": "string",
|
4994
|
+
"description": "Plain text short description.\n\nMUST NOT exceed 255 chars.\nMUST NOT contain line breaks.",
|
4995
|
+
"minLength": 1,
|
4996
|
+
"maxLength": 255,
|
4997
|
+
"examples": []
|
4998
|
+
},
|
4999
|
+
"description": {
|
5000
|
+
"type": "string",
|
5001
|
+
"minLength": 1,
|
5002
|
+
"description": "Full description, notated in [CommonMark](https://spec.commonmark.org/) (Markdown).\n\nThe description SHOULD not be excessive in length and is not meant to provide full documentation.\nDetailed documentation SHOULD be attached as (typed) links.",
|
5003
|
+
"examples": []
|
5004
|
+
},
|
5005
|
+
"partOfPackage": {
|
5006
|
+
"type": "string",
|
5007
|
+
"pattern": "^([a-z0-9]+(?:[.][a-z0-9]+)*):(package):([a-zA-Z0-9._\\-]+):(v0|v[1-9][0-9]*)$",
|
5008
|
+
"maxLength": 255,
|
5009
|
+
"description": "Defines which Package the resource is part of.\n\nMUST be a valid reference to a [Package](#package) ORD ID.\n\nEvery resource MUST be part of one package.",
|
5010
|
+
"examples": []
|
5011
|
+
},
|
5012
|
+
"partOfGroups": {
|
5013
|
+
"type": "array",
|
5014
|
+
"items": {
|
5015
|
+
"type": "string",
|
5016
|
+
"pattern": "^([a-z0-9-]+(?:[.][a-z0-9-]+)*):([a-zA-Z0-9._\\-\\/]+):([a-z0-9-]+(?:[.][a-z0-9-]+)*):([a-zA-Z0-9._\\-\\/]+)$"
|
5017
|
+
},
|
5018
|
+
"description": "Defines which groups the resource is assigned to.\n\nThe property is optional, but if given the value MUST be an array of valid Group IDs.\n\nGroups are a lightweight custom taxonomy concept.\nThey express a \"part of\" relationship to the chosen group concept.\nIf an \"identity / equals\" relationship needs to be expressed, use the `correlationIds` instead.\n\nAll resources that share the same group ID assignment are effectively grouped together.",
|
5019
|
+
"examples": []
|
5020
|
+
},
|
5021
|
+
"version": {
|
5022
|
+
"type": "string",
|
5023
|
+
"description": "The complete [SemVer](https://semver.org/) version string.\n\nIt MUST follow the [Semantic Versioning 2.0.0](https://semver.org/) standard.\nIt SHOULD be changed if the ORD information or referenced resource definitions changed.\nIt SHOULD express minor and patch changes that don't lead to incompatible changes.\n\nWhen the `version` major version changes, the [ORD ID](../index.md#ord-id) `<majorVersion>` fragment MUST be updated to be identical.\nIn case that a resource definition file also contains a version number (e.g. [OpenAPI `info`.`version`](https://swagger.io/specification/#info-object)), it MUST be equal with the resource `version` to avoid inconsistencies.\n\nIf the resource has been extended by the user, the change MUST be indicated via `lastUpdate`.\nThe `version` MUST not be bumped for changes in extensions.\n\nThe general [Version and Lifecycle](../index.md#version-and-lifecycle) flow MUST be followed.\n\nNote: A change is only relevant for a version increment, if it affects the ORD resource or ORD taxonomy directly.\nFor example: If a resource within a `Package` changes, but the package itself did not, the package version does not need to be incremented.",
|
5024
|
+
"pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
|
5025
|
+
"examples": [
|
5026
|
+
"1.2.3",
|
5027
|
+
"1.0.0-alpha.1"
|
5028
|
+
]
|
5029
|
+
},
|
5030
|
+
"lastUpdate": {
|
5031
|
+
"type": "string",
|
5032
|
+
"format": "date-time",
|
5033
|
+
"description": "Optional, but RECOMMENDED indicator when (date-time) the last change to the resource (including its definitions) happened.\n\nThe date format MUST comply with [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).\n\nWhen retrieved from an ORD aggregator, `lastUpdate` will be reliable there and reflect either the provider based update time or the aggregator processing time.\nTherefore consumers MAY rely on it to detect changes to the metadata and the attached resource definition files.\n\nIf the resource has attached definitions, either the `version` or `lastUpdate` property MUST be defined and updated to let the ORD aggregator know that they need to be fetched again.\n\nTogether with `systemInstanceAware`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.",
|
5034
|
+
"examples": [
|
5035
|
+
"2022-12-19T15:47:04+00:00"
|
5036
|
+
]
|
5037
|
+
},
|
5038
|
+
"visibility": {
|
5039
|
+
"type": "string",
|
5040
|
+
"description": "The visibility states who is allowed to \"see\" the described resource or capability.",
|
5041
|
+
"oneOf": [
|
5042
|
+
{
|
5043
|
+
"const": "public",
|
5044
|
+
"description": "Resources are 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)."
|
5045
|
+
},
|
5046
|
+
{
|
5047
|
+
"const": "internal",
|
5048
|
+
"description": "Resources are 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."
|
5049
|
+
},
|
5050
|
+
{
|
5051
|
+
"const": "private",
|
5052
|
+
"description": "Resources that are exclusive within an application or service.\nThis includes resources that may be called from outside but serve purely private purposes and are not supposed to be known by other outside parties.\nE.g., webhooks for provisioning callbacks or backing services.\n\nPrivate resources MUST NOT be made available to public consumers or consumers outside of the \"private\" scope or without the necessary access permissions."
|
5053
|
+
}
|
5054
|
+
]
|
5055
|
+
},
|
5056
|
+
"releaseStatus": {
|
5057
|
+
"type": "string",
|
5058
|
+
"description": "The `releaseStatus` specifies the stability of the resource and its external contract.",
|
5059
|
+
"oneOf": [
|
5060
|
+
{
|
5061
|
+
"const": "active",
|
5062
|
+
"description": "Resource is meant for productive use and provides a stable API contract."
|
5063
|
+
},
|
5064
|
+
{
|
5065
|
+
"const": "beta",
|
5066
|
+
"description": "The contract for the resource is beta and MAY not be meant for productive use.\nIn the SAP context, `beta` APIs may be changed or deleted at SAPs discretion."
|
5067
|
+
},
|
5068
|
+
{
|
5069
|
+
"const": "deprecated",
|
5070
|
+
"description": "Resource has been deprecated.\n\nIf successor resources exist, they MUST be referenced through `successors`.\nIf it is deprecated without defining its `successors`, a `sunsetDate` SHOULD be provided.\n\nA deprecated resource MAY be decommissioned (removed) in the future, through setting a `Tombstone`.\nOnce the resource is decommissioned, it MUST be removed from ORD (which is why there is no release status for decommissioned)."
|
5071
|
+
}
|
5072
|
+
],
|
5073
|
+
"examples": [
|
5074
|
+
"active"
|
5075
|
+
]
|
5076
|
+
},
|
5077
|
+
"links": {
|
5078
|
+
"type": "array",
|
5079
|
+
"description": "Generic links with arbitrary meaning and content.\n\n`packageLinks` MUST be preferred if applicable.",
|
5080
|
+
"items": {
|
5081
|
+
"$ref": "#/definitions/Link"
|
5082
|
+
}
|
5083
|
+
},
|
5084
|
+
"tags": {
|
5085
|
+
"type": "array",
|
5086
|
+
"items": {
|
5087
|
+
"type": "string",
|
5088
|
+
"pattern": "^[a-zA-Z0-9-_.\\/ ]*$",
|
5089
|
+
"minLength": 1
|
5090
|
+
},
|
5091
|
+
"description": "List of free text style tags.\nNo special characters are allowed except `-`, `_`, `.`, `/` and ` `.\n\nTags that are assigned to a `Package` are inherited to all of the ORD resources it contains.",
|
5092
|
+
"examples": [
|
5093
|
+
[
|
5094
|
+
"storage",
|
5095
|
+
"high-availability"
|
5096
|
+
]
|
5097
|
+
]
|
5098
|
+
},
|
5099
|
+
"labels": {
|
5100
|
+
"$ref": "#/definitions/Labels"
|
5101
|
+
},
|
5102
|
+
"documentationLabels": {
|
5103
|
+
"$ref": "#/definitions/DocumentationLabels"
|
5104
|
+
}
|
5105
|
+
},
|
5106
|
+
"required": [
|
5107
|
+
"ordId",
|
5108
|
+
"title",
|
5109
|
+
"description",
|
5110
|
+
"version",
|
5111
|
+
"visibility",
|
5112
|
+
"releaseStatus",
|
5113
|
+
"partOfPackage"
|
5114
|
+
],
|
5115
|
+
"additionalProperties": true
|
4940
5116
|
}
|
4941
5117
|
},
|
4942
|
-
"title": "ORD Document",
|
4943
5118
|
"type": "object",
|
4944
5119
|
"properties": {
|
4945
5120
|
"$schema": {
|