@open-resource-discovery/specification 1.11.0 → 1.12.0

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 CHANGED
@@ -22,7 +22,7 @@ If you have feedback, questions or problems, please create a [GitHub issue](http
22
22
 
23
23
  ## Ownership and Governance
24
24
 
25
- The ORD development is driven by SAP internally, but public feedback, suggestions and contributions are welcome.
25
+ The ORD standard is governed by the [Linux Foundation](https://www.linuxfoundation.org/) / [NeoNephos](https://neonephos.org/projects/open-resource-discovery-ord/), a neutral nonprofit organization that supports the development of open-source projects and standards. See [ORD steering committee](https://github.com/open-resource-discovery/steering#readme).
26
26
 
27
27
  ## Resources
28
28
 
@@ -51,6 +51,18 @@ export interface ORDV1DocumentDescription {
51
51
  * either the baseUrl or a full URL to the document MUST be provided.
52
52
  */
53
53
  url: string;
54
+ /**
55
+ * With ORD it's possible to describe a system from a static or a dynamic [perspective](../index.md#perspectives) (for more details, follow the link).
56
+ *
57
+ * It is strongly RECOMMENDED to mark all static ORD documents with perspective `system-version`.
58
+ *
59
+ * It is RECOMMENDED to describe dynamic metadata in both static system-version perspective and additionally describe the system-instance perspective where it diverges from the static metadata.
60
+ *
61
+ * If not provided, this defaults to `system-instance`, which is the most precise description but also the most costly to replicate.
62
+ *
63
+ * Please read the [article on perspectives](../concepts/perspectives) for more explanations.
64
+ */
65
+ perspective?: "system-version" | "system-instance" | "system-independent";
54
66
  /**
55
67
  * Whether the information in the ORD document is **system instance aware**.
56
68
  *
@@ -87,7 +99,7 @@ export interface AccessStrategy {
87
99
  /**
88
100
  * Defines the authentication/authorization strategy through which the referenced ORD Documents can be accessed.
89
101
  */
90
- type: "open" | "sap:oauth-client-credentials:v1" | "sap:cmp-mtls:v1" | "sap.businesshub:basic-auth:v1" | "custom";
102
+ type: (string | "open" | "sap:oauth-client-credentials:v1" | "sap:cmp-mtls:v1" | "sap.businesshub:basic-auth:v1" | "custom") & string;
91
103
  /**
92
104
  * If the fixed `type` enum values need to be extended, an arbitrary `customType` can be provided.
93
105
  *
@@ -17,7 +17,7 @@ export interface ORDDocument {
17
17
  /**
18
18
  * Version of the Open Resource Discovery specification that is used to describe this document.
19
19
  */
20
- openResourceDiscovery: "1.0" | "1.1" | "1.2" | "1.3" | "1.4" | "1.5" | "1.6" | "1.7" | "1.8" | "1.9" | "1.10" | "1.11";
20
+ openResourceDiscovery: "1.0" | "1.1" | "1.2" | "1.3" | "1.4" | "1.5" | "1.6" | "1.7" | "1.8" | "1.9" | "1.10" | "1.11" | "1.12";
21
21
  /**
22
22
  * Optional description of the ORD document itself.
23
23
  * Please note that this information is NOT further processed or considered by an ORD aggregator.
@@ -25,6 +25,18 @@ export interface ORDDocument {
25
25
  * Notated in [CommonMark](https://spec.commonmark.org/) (Markdown).
26
26
  */
27
27
  description?: string;
28
+ /**
29
+ * With ORD it's possible to describe a system from a static or a dynamic [perspective](../index.md#perspectives) (for more details, follow the link).
30
+ *
31
+ * It is strongly RECOMMENDED to mark all static ORD documents with perspective `system-version`.
32
+ *
33
+ * It is RECOMMENDED to describe dynamic metadata in both static system-version perspective and additionally describe the system-instance perspective where it diverges from the static metadata.
34
+ *
35
+ * If not provided, this defaults to `system-instance`, which is the most precise description but also the most costly to replicate.
36
+ *
37
+ * Please read the [article on perspectives](../concepts/perspectives) for more explanations.
38
+ */
39
+ perspective?: "system-version" | "system-instance" | "system-independent";
28
40
  describedSystemInstance?: SystemInstance;
29
41
  describedSystemType?: SystemType;
30
42
  describedSystemVersion?: SystemVersion;
@@ -102,8 +114,8 @@ export interface ORDDocument {
102
114
  */
103
115
  groupTypes?: GroupType[];
104
116
  /**
105
- * List of ORD information (resources or taxonomy) that have been "tombstoned"/removed.
106
- * This MUST be indicated explicitly, so that ORD aggregators and consumers can learn about the removal.
117
+ * List of ORD information (resources or taxonomy) that have been "tombstoned", indicating removal or archival.
118
+ * This MUST be indicated explicitly, just removing the ORD information itself is not sufficient.
107
119
  *
108
120
  * A tombstone entry MAY be removed after a grace period of 31 days.
109
121
  */
@@ -231,9 +243,13 @@ export interface SystemType {
231
243
  */
232
244
  export interface SystemVersion {
233
245
  /**
234
- * The version number of the system instance (run-time) or the version of the described static system type.
246
+ * The version of the system instance (run-time) or the version of the described system-version perspective.
235
247
  *
236
248
  * It MUST follow the [Semantic Versioning 2.0.0](https://semver.org/) standard.
249
+ *
250
+ * MUST be provided if the ORD document is `perspective`: `system-version`.
251
+ *
252
+ * For continuous-delivery systems, the version MAY be fixed to the same value, e.g. `1.0.0`, but be aware that phased rollouts may benefit from a more precise versioning like adding a build number.
237
253
  */
238
254
  version?: string;
239
255
  /**
@@ -384,7 +400,7 @@ export interface APIResource {
384
400
  * It SHOULD express minor and patch changes that don't lead to incompatible changes.
385
401
  *
386
402
  * When the `version` major version changes, the [ORD ID](../index.md#ord-id) `<majorVersion>` fragment MUST be updated to be identical.
387
- * In 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.
403
+ * In case that a resource definition file also contains a version number (e.g. [OpenAPI `info`.`version`](https://spec.openapis.org/oas/v3.1.1.html#info-object)), it MUST be equal with the resource `version` to avoid inconsistencies.
388
404
  *
389
405
  * If the resource has been extended by the user, the change MUST be indicated via `lastUpdate`.
390
406
  * The `version` MUST not be bumped for changes in extensions.
@@ -405,7 +421,7 @@ export interface APIResource {
405
421
  *
406
422
  * If 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.
407
423
  *
408
- * Together with `systemInstanceAware`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
424
+ * Together with `perspectives`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
409
425
  */
410
426
  lastUpdate?: string;
411
427
  /**
@@ -415,7 +431,7 @@ export interface APIResource {
415
431
  /**
416
432
  * The `releaseStatus` specifies the stability of the resource and its external contract.
417
433
  */
418
- releaseStatus: "active" | "beta" | "deprecated";
434
+ releaseStatus: "beta" | "active" | "deprecated" | "sunset";
419
435
  /**
420
436
  * Indicates that this resource is currently not available for consumption at runtime, but could be configured to be so.
421
437
  * This can happen either because it has not been setup for use or disabled by an admin / user.
@@ -436,15 +452,13 @@ export interface APIResource {
436
452
  minSystemVersion?: string;
437
453
  /**
438
454
  * The deprecation date defines when the resource has been set as deprecated.
439
- * This is not to be confused with the `sunsetDate` which defines when the resource will be actually decommissioned / removed.
440
- *
441
- * If the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.
455
+ * This is not to be confused with the `sunsetDate` which defines when the resource will be actually sunset, aka. decommissioned / removed / archived.
442
456
  *
443
457
  * The date format MUST comply with [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).
444
458
  */
445
459
  deprecationDate?: string;
446
460
  /**
447
- * The sunset date defines when the resource is scheduled to be decommissioned/removed.
461
+ * The sunset date defines when the resource is scheduled to be decommissioned / removed / archived.
448
462
  *
449
463
  * If the `releaseStatus` is set to `deprecated`, the `sunsetDate` SHOULD be provided (if already known).
450
464
  * Once the sunset date is known and ready to be communicated externally, it MUST be provided here.
@@ -498,7 +512,7 @@ export interface APIResource {
498
512
  /**
499
513
  * API Protocol including the protocol version if applicable
500
514
  */
501
- apiProtocol: (string | "odata-v2" | "odata-v4" | "rest" | "graphql" | "delta-sharing" | "soap-inbound" | "soap-outbound" | "websocket" | "sap-rfc" | "sap-sql-api-v1" | "sap-ina-api-v1") & string;
515
+ apiProtocol: (string | "odata-v2" | "odata-v4" | "rest" | "graphql" | "delta-sharing" | "soap-inbound" | "soap-outbound" | "mcp" | "websocket" | "sap-rfc" | "sap-sql-api-v1" | "sap-ina-api-v1") & string;
502
516
  /**
503
517
  * List of available machine-readable definitions, which describe the resource or capability in detail.
504
518
  *
@@ -533,8 +547,8 @@ export interface APIResource {
533
547
  */
534
548
  customImplementationStandardDescription?: string;
535
549
  /**
536
- * Declares this API is a compatible implementation of the referenced API contract(s).
537
- * This is also sometimes known as [Service Provider Interface](https://en.wikipedia.org/wiki/Service_provider_interface).
550
+ * A reference to the interface (API contract) that this API implements.
551
+ * Serves as a declaration of compatible implementation of API contract, effectively functioning as an "implementationOf" relationship.
538
552
  *
539
553
  * MUST be a valid reference to an (usually external) [API Resource](#api-resource) ORD ID.
540
554
  *
@@ -594,14 +608,14 @@ export interface APIResource {
594
608
  *
595
609
  * `lineOfBusiness` that are assigned to a `Package` are inherited to all of the ORD resources it contains.
596
610
  */
597
- lineOfBusiness?: ((string | "Asset Management" | "Commerce" | "Finance" | "Human Resources" | "Manufacturing" | "Marketing" | "R&D Engineering" | "Sales" | "Service" | "Sourcing and Procurement" | "Supply Chain" | "Sustainability" | "Metering" | "Grid Operations and Maintenance" | "Plant Operations and Maintenance" | "Maintenance and Engineering") & string)[];
611
+ lineOfBusiness?: ((string | "Asset Management" | "Commerce" | "Finance" | "Human Resources" | "Manufacturing" | "Marketing" | "R&D Engineering" | "Sales" | "Service" | "Sourcing and Procurement" | "Strategy, Compliance, and Governance" | "Supply Chain" | "Sustainability" | "Metering" | "Grid Operations and Maintenance" | "Plant Operations and Maintenance" | "Maintenance and Engineering") & string)[];
598
612
  /**
599
613
  * List of industry tags.
600
614
  * No special characters are allowed except `-`, `_`, `.`, `/` and ` `.
601
615
  *
602
616
  * `industry` that are assigned to a `Package` are inherited to all of the ORD resources it contains.
603
617
  */
604
- industry?: ((string | "Aerospace and Defense" | "Automotive" | "Banking" | "Chemicals" | "Consumer Products" | "Defense and Security" | "Engineering Construction and Operations" | "Healthcare" | "Higher Education and Research" | "High Tech" | "Industrial Machinery and Components" | "Insurance" | "Life Sciences" | "Media" | "Mill Products" | "Mining" | "Oil and Gas" | "Professional Services" | "Public Sector" | "Retail" | "Sports and Entertainment" | "Telecommunications" | "Travel and Transportation" | "Utilities" | "Wholesale Distribution") & string)[];
618
+ industry?: ((string | "Aerospace and Defense" | "Agribusiness" | "Automotive" | "Banking" | "Chemicals" | "Consumer Industries" | "Consumer Products" | "Defense and Security" | "Discrete Industries" | "Energy and Natural Resources" | "Engineering Construction and Operations" | "Financial Services" | "Future Cities" | "Healthcare" | "High Tech" | "Higher Education and Research" | "Industrial Machinery and Components" | "Insurance" | "Life Sciences" | "Media" | "Mill Products" | "Mining" | "Oil and Gas" | "Professional Services" | "Public Sector" | "Public Services" | "Retail" | "Service Industries" | "Sports and Entertainment" | "Telecommunications" | "Travel and Transportation" | "Utilities" | "Wholesale Distribution") & string)[];
605
619
  /**
606
620
  * List of free text style tags.
607
621
  * No special characters are allowed except `-`, `_`, `.`, `/` and ` `.
@@ -637,6 +651,9 @@ export interface APIResource {
637
651
  */
638
652
  policyLevels?: string[];
639
653
  /**
654
+ * All resources that are [system instance aware](../index.md#def-system-instance-aware) should now be put together in one ORD document that has `perspective`: `system-instance`.
655
+ * All resources that are [system instance unaware](../index.md#def-system-instance-unaware) should now be put together in one ORD document that has `perspective`: `system-version`.
656
+ *
640
657
  * Defines whether this ORD resource is **system instance aware**.
641
658
  * This is the case (and relevant) when the referenced resource definitions are potentially different between **system instances**.
642
659
  *
@@ -681,7 +698,7 @@ export interface ChangelogEntry {
681
698
  /**
682
699
  * The `releaseStatus` specifies the stability of the resource and its external contract.
683
700
  */
684
- releaseStatus: "active" | "beta" | "deprecated";
701
+ releaseStatus: "beta" | "active" | "deprecated" | "sunset";
685
702
  /**
686
703
  * Date of change, without time or timezone information.
687
704
  *
@@ -711,7 +728,7 @@ export interface APIResourceDefinition {
711
728
  * Type of the API Resource Definition
712
729
  * If "custom" is chosen, a customType MUST be provided
713
730
  */
714
- type: (string | "openapi-v2" | "openapi-v3" | "raml-v1" | "edmx" | "csdl-json" | "graphql-sdl" | "wsdl-v1" | "wsdl-v2" | "sap-rfc-metadata-v1" | "sap-sql-api-definition-v1" | "sap-csn-interop-effective-v1" | "custom") & string;
731
+ type: (string | "openapi-v2" | "openapi-v3" | "openapi-v3.1+" | "raml-v1" | "edmx" | "csdl-json" | "graphql-sdl" | "wsdl-v1" | "wsdl-v2" | "sap-rfc-metadata-v1" | "sap-sql-api-definition-v1" | "sap-csn-interop-effective-v1" | "custom") & string;
715
732
  /**
716
733
  * If the fixed `type` enum values need to be extended, an arbitrary `customType` can be provided.
717
734
  *
@@ -1088,7 +1105,7 @@ export interface EventResource {
1088
1105
  * It SHOULD express minor and patch changes that don't lead to incompatible changes.
1089
1106
  *
1090
1107
  * When the `version` major version changes, the [ORD ID](../index.md#ord-id) `<majorVersion>` fragment MUST be updated to be identical.
1091
- * In 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.
1108
+ * In case that a resource definition file also contains a version number (e.g. [OpenAPI `info`.`version`](https://spec.openapis.org/oas/v3.1.1.html#info-object)), it MUST be equal with the resource `version` to avoid inconsistencies.
1092
1109
  *
1093
1110
  * If the resource has been extended by the user, the change MUST be indicated via `lastUpdate`.
1094
1111
  * The `version` MUST not be bumped for changes in extensions.
@@ -1109,7 +1126,7 @@ export interface EventResource {
1109
1126
  *
1110
1127
  * If 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.
1111
1128
  *
1112
- * Together with `systemInstanceAware`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
1129
+ * Together with `perspectives`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
1113
1130
  */
1114
1131
  lastUpdate?: string;
1115
1132
  /**
@@ -1119,7 +1136,7 @@ export interface EventResource {
1119
1136
  /**
1120
1137
  * The `releaseStatus` specifies the stability of the resource and its external contract.
1121
1138
  */
1122
- releaseStatus: "active" | "beta" | "deprecated";
1139
+ releaseStatus: "beta" | "active" | "deprecated" | "sunset";
1123
1140
  /**
1124
1141
  * Indicates that this resource is currently not available for consumption at runtime, but could be configured to be so.
1125
1142
  * This can happen either because it has not been setup for use or disabled by an admin / user.
@@ -1140,15 +1157,13 @@ export interface EventResource {
1140
1157
  minSystemVersion?: string;
1141
1158
  /**
1142
1159
  * The deprecation date defines when the resource has been set as deprecated.
1143
- * This is not to be confused with the `sunsetDate` which defines when the resource will be actually decommissioned / removed.
1144
- *
1145
- * If the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.
1160
+ * This is not to be confused with the `sunsetDate` which defines when the resource will be actually sunset, aka. decommissioned / removed / archived.
1146
1161
  *
1147
1162
  * The date format MUST comply with [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).
1148
1163
  */
1149
1164
  deprecationDate?: string;
1150
1165
  /**
1151
- * The sunset date defines when the resource is scheduled to be decommissioned/removed.
1166
+ * The sunset date defines when the resource is scheduled to be decommissioned / removed / archived.
1152
1167
  *
1153
1168
  * If the `releaseStatus` is set to `deprecated`, the `sunsetDate` SHOULD be provided (if already known).
1154
1169
  * Once the sunset date is known and ready to be communicated externally, it MUST be provided here.
@@ -1256,14 +1271,14 @@ export interface EventResource {
1256
1271
  *
1257
1272
  * `lineOfBusiness` that are assigned to a `Package` are inherited to all of the ORD resources it contains.
1258
1273
  */
1259
- lineOfBusiness?: ((string | "Asset Management" | "Commerce" | "Finance" | "Human Resources" | "Manufacturing" | "Marketing" | "R&D Engineering" | "Sales" | "Service" | "Sourcing and Procurement" | "Supply Chain" | "Sustainability" | "Metering" | "Grid Operations and Maintenance" | "Plant Operations and Maintenance" | "Maintenance and Engineering") & string)[];
1274
+ lineOfBusiness?: ((string | "Asset Management" | "Commerce" | "Finance" | "Human Resources" | "Manufacturing" | "Marketing" | "R&D Engineering" | "Sales" | "Service" | "Sourcing and Procurement" | "Strategy, Compliance, and Governance" | "Supply Chain" | "Sustainability" | "Metering" | "Grid Operations and Maintenance" | "Plant Operations and Maintenance" | "Maintenance and Engineering") & string)[];
1260
1275
  /**
1261
1276
  * List of industry tags.
1262
1277
  * No special characters are allowed except `-`, `_`, `.`, `/` and ` `.
1263
1278
  *
1264
1279
  * `industry` that are assigned to a `Package` are inherited to all of the ORD resources it contains.
1265
1280
  */
1266
- industry?: ((string | "Aerospace and Defense" | "Automotive" | "Banking" | "Chemicals" | "Consumer Products" | "Defense and Security" | "Engineering Construction and Operations" | "Healthcare" | "Higher Education and Research" | "High Tech" | "Industrial Machinery and Components" | "Insurance" | "Life Sciences" | "Media" | "Mill Products" | "Mining" | "Oil and Gas" | "Professional Services" | "Public Sector" | "Retail" | "Sports and Entertainment" | "Telecommunications" | "Travel and Transportation" | "Utilities" | "Wholesale Distribution") & string)[];
1281
+ industry?: ((string | "Aerospace and Defense" | "Agribusiness" | "Automotive" | "Banking" | "Chemicals" | "Consumer Industries" | "Consumer Products" | "Defense and Security" | "Discrete Industries" | "Energy and Natural Resources" | "Engineering Construction and Operations" | "Financial Services" | "Future Cities" | "Healthcare" | "High Tech" | "Higher Education and Research" | "Industrial Machinery and Components" | "Insurance" | "Life Sciences" | "Media" | "Mill Products" | "Mining" | "Oil and Gas" | "Professional Services" | "Public Sector" | "Public Services" | "Retail" | "Service Industries" | "Sports and Entertainment" | "Telecommunications" | "Travel and Transportation" | "Utilities" | "Wholesale Distribution") & string)[];
1267
1282
  /**
1268
1283
  * List of free text style tags.
1269
1284
  * No special characters are allowed except `-`, `_`, `.`, `/` and ` `.
@@ -1299,6 +1314,9 @@ export interface EventResource {
1299
1314
  */
1300
1315
  policyLevels?: string[];
1301
1316
  /**
1317
+ * All resources that are [system instance aware](../index.md#def-system-instance-aware) should now be put together in one ORD document that has `perspective`: `system-instance`.
1318
+ * All resources that are [system instance unaware](../index.md#def-system-instance-unaware) should now be put together in one ORD document that has `perspective`: `system-version`.
1319
+ *
1302
1320
  * Defines whether this ORD resource is **system instance aware**.
1303
1321
  * This is the case (and relevant) when the referenced resource definitions are potentially different between **system instances**.
1304
1322
  *
@@ -1445,7 +1463,7 @@ export interface EntityType {
1445
1463
  * It SHOULD express minor and patch changes that don't lead to incompatible changes.
1446
1464
  *
1447
1465
  * When the `version` major version changes, the [ORD ID](../index.md#ord-id) `<majorVersion>` fragment MUST be updated to be identical.
1448
- * In 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.
1466
+ * In case that a resource definition file also contains a version number (e.g. [OpenAPI `info`.`version`](https://spec.openapis.org/oas/v3.1.1.html#info-object)), it MUST be equal with the resource `version` to avoid inconsistencies.
1449
1467
  *
1450
1468
  * If the resource has been extended by the user, the change MUST be indicated via `lastUpdate`.
1451
1469
  * The `version` MUST not be bumped for changes in extensions.
@@ -1466,7 +1484,7 @@ export interface EntityType {
1466
1484
  *
1467
1485
  * If 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.
1468
1486
  *
1469
- * Together with `systemInstanceAware`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
1487
+ * Together with `perspectives`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
1470
1488
  */
1471
1489
  lastUpdate?: string;
1472
1490
  /**
@@ -1476,18 +1494,16 @@ export interface EntityType {
1476
1494
  /**
1477
1495
  * The `releaseStatus` specifies the stability of the resource and its external contract.
1478
1496
  */
1479
- releaseStatus: "active" | "beta" | "deprecated";
1497
+ releaseStatus: "beta" | "active" | "deprecated" | "sunset";
1480
1498
  /**
1481
1499
  * The deprecation date defines when the resource has been set as deprecated.
1482
- * This is not to be confused with the `sunsetDate` which defines when the resource will be actually decommissioned / removed.
1483
- *
1484
- * If the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.
1500
+ * This is not to be confused with the `sunsetDate` which defines when the resource will be actually sunset, aka. decommissioned / removed / archived.
1485
1501
  *
1486
1502
  * The date format MUST comply with [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).
1487
1503
  */
1488
1504
  deprecationDate?: string;
1489
1505
  /**
1490
- * The sunset date defines when the resource is scheduled to be decommissioned/removed.
1506
+ * The sunset date defines when the resource is scheduled to be decommissioned / removed / archived.
1491
1507
  *
1492
1508
  * If the `releaseStatus` is set to `deprecated`, the `sunsetDate` SHOULD be provided (if already known).
1493
1509
  * Once the sunset date is known and ready to be communicated externally, it MUST be provided here.
@@ -1567,6 +1583,9 @@ export interface EntityType {
1567
1583
  */
1568
1584
  policyLevels?: string[];
1569
1585
  /**
1586
+ * All resources that are [system instance aware](../index.md#def-system-instance-aware) should now be put together in one ORD document that has `perspective`: `system-instance`.
1587
+ * All resources that are [system instance unaware](../index.md#def-system-instance-unaware) should now be put together in one ORD document that has `perspective`: `system-version`.
1588
+ *
1570
1589
  * Defines whether this ORD resource is **system instance aware**.
1571
1590
  * This is the case (and relevant) when the referenced resource definitions are potentially different between **system instances**.
1572
1591
  *
@@ -1577,8 +1596,7 @@ export interface EntityType {
1577
1596
  systemInstanceAware?: boolean;
1578
1597
  }
1579
1598
  /**
1580
- * Defines which Entity Type is related (via its ORD ID).
1581
- * In the future, this could include stating the relationship type, too.
1599
+ * Defines the relation between Entity Types (via its ORD ID).
1582
1600
  */
1583
1601
  export interface RelatedEntityType {
1584
1602
  /**
@@ -1587,6 +1605,12 @@ export interface RelatedEntityType {
1587
1605
  * It MUST be a valid [ORD ID](../index.md#ord-id) of the appropriate ORD type.
1588
1606
  */
1589
1607
  ordId: string;
1608
+ /**
1609
+ * Optional type of the relationship, which defines a stricter semantic what the relationship implies.
1610
+ *
1611
+ * If not provided, the relationship type has no semantics, it's "related somehow".
1612
+ */
1613
+ relationType?: "part-of" | "can-share-identity";
1590
1614
  }
1591
1615
  /**
1592
1616
  * Capabilities can be used to describe use case specific capabilities, most notably supported features or additional information (like configuration) that needs to be understood from outside.
@@ -1681,7 +1705,7 @@ export interface Capability {
1681
1705
  * It SHOULD express minor and patch changes that don't lead to incompatible changes.
1682
1706
  *
1683
1707
  * When the `version` major version changes, the [ORD ID](../index.md#ord-id) `<majorVersion>` fragment MUST be updated to be identical.
1684
- * In 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.
1708
+ * In case that a resource definition file also contains a version number (e.g. [OpenAPI `info`.`version`](https://spec.openapis.org/oas/v3.1.1.html#info-object)), it MUST be equal with the resource `version` to avoid inconsistencies.
1685
1709
  *
1686
1710
  * If the resource has been extended by the user, the change MUST be indicated via `lastUpdate`.
1687
1711
  * The `version` MUST not be bumped for changes in extensions.
@@ -1702,7 +1726,7 @@ export interface Capability {
1702
1726
  *
1703
1727
  * If 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.
1704
1728
  *
1705
- * Together with `systemInstanceAware`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
1729
+ * Together with `perspectives`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
1706
1730
  */
1707
1731
  lastUpdate?: string;
1708
1732
  /**
@@ -1712,7 +1736,7 @@ export interface Capability {
1712
1736
  /**
1713
1737
  * The `releaseStatus` specifies the stability of the resource and its external contract.
1714
1738
  */
1715
- releaseStatus: "active" | "beta" | "deprecated";
1739
+ releaseStatus: "beta" | "active" | "deprecated" | "sunset";
1716
1740
  /**
1717
1741
  * Indicates that this resource is currently not available for consumption at runtime, but could be configured to be so.
1718
1742
  * This can happen either because it has not been setup for use or disabled by an admin / user.
@@ -1761,6 +1785,9 @@ export interface Capability {
1761
1785
  labels?: Labels;
1762
1786
  documentationLabels?: DocumentationLabels;
1763
1787
  /**
1788
+ * All resources that are [system instance aware](../index.md#def-system-instance-aware) should now be put together in one ORD document that has `perspective`: `system-instance`.
1789
+ * All resources that are [system instance unaware](../index.md#def-system-instance-unaware) should now be put together in one ORD document that has `perspective`: `system-version`.
1790
+ *
1764
1791
  * Defines whether this ORD resource is **system instance aware**.
1765
1792
  * This is the case (and relevant) when the referenced resource definitions are potentially different between **system instances**.
1766
1793
  *
@@ -1905,7 +1932,7 @@ export interface DataProduct {
1905
1932
  * It SHOULD express minor and patch changes that don't lead to incompatible changes.
1906
1933
  *
1907
1934
  * When the `version` major version changes, the [ORD ID](../index.md#ord-id) `<majorVersion>` fragment MUST be updated to be identical.
1908
- * In 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.
1935
+ * In case that a resource definition file also contains a version number (e.g. [OpenAPI `info`.`version`](https://spec.openapis.org/oas/v3.1.1.html#info-object)), it MUST be equal with the resource `version` to avoid inconsistencies.
1909
1936
  *
1910
1937
  * If the resource has been extended by the user, the change MUST be indicated via `lastUpdate`.
1911
1938
  * The `version` MUST not be bumped for changes in extensions.
@@ -1926,7 +1953,7 @@ export interface DataProduct {
1926
1953
  *
1927
1954
  * If 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.
1928
1955
  *
1929
- * Together with `systemInstanceAware`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
1956
+ * Together with `perspectives`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
1930
1957
  */
1931
1958
  lastUpdate?: string;
1932
1959
  /**
@@ -1938,7 +1965,7 @@ export interface DataProduct {
1938
1965
  * In the context of data products, it it covers only properties on the data product level.
1939
1966
  * APIs that are part of the input and output ports have their own independent `releaseStatus` and `version`.
1940
1967
  */
1941
- releaseStatus: "active" | "beta" | "deprecated";
1968
+ releaseStatus: "beta" | "active" | "deprecated" | "sunset";
1942
1969
  /**
1943
1970
  * Indicates that this resource is currently not available for consumption at runtime, but could be configured to be so.
1944
1971
  * This can happen either because it has not been setup for use or disabled by an admin / user.
@@ -1966,15 +1993,13 @@ export interface DataProduct {
1966
1993
  lifecycleStatus?: "inactive" | "provisioning" | "active" | "deprovisioning" | "active-with-errors" | "provisioning-error" | "deprovisioning-error";
1967
1994
  /**
1968
1995
  * The deprecation date defines when the resource has been set as deprecated.
1969
- * This is not to be confused with the `sunsetDate` which defines when the resource will be actually decommissioned / removed.
1970
- *
1971
- * If the `releaseStatus` is set to `deprecated`, the `deprecationDate` SHOULD be provided.
1996
+ * This is not to be confused with the `sunsetDate` which defines when the resource will be actually sunset, aka. decommissioned / removed / archived.
1972
1997
  *
1973
1998
  * The date format MUST comply with [RFC 3339, section 5.6](https://tools.ietf.org/html/rfc3339#section-5.6).
1974
1999
  */
1975
2000
  deprecationDate?: string;
1976
2001
  /**
1977
- * The sunset date defines when the resource is scheduled to be decommissioned/removed.
2002
+ * The sunset date defines when the resource is scheduled to be decommissioned / removed / archived.
1978
2003
  *
1979
2004
  * If the `releaseStatus` is set to `deprecated`, the `sunsetDate` SHOULD be provided (if already known).
1980
2005
  * Once the sunset date is known and ready to be communicated externally, it MUST be provided here.
@@ -2051,14 +2076,14 @@ export interface DataProduct {
2051
2076
  *
2052
2077
  * `industry` that are assigned to a `Package` are inherited to all of the ORD resources it contains.
2053
2078
  */
2054
- industry?: ((string | "Aerospace and Defense" | "Automotive" | "Banking" | "Chemicals" | "Consumer Products" | "Defense and Security" | "Engineering Construction and Operations" | "Healthcare" | "Higher Education and Research" | "High Tech" | "Industrial Machinery and Components" | "Insurance" | "Life Sciences" | "Media" | "Mill Products" | "Mining" | "Oil and Gas" | "Professional Services" | "Public Sector" | "Retail" | "Sports and Entertainment" | "Telecommunications" | "Travel and Transportation" | "Utilities" | "Wholesale Distribution") & string)[];
2079
+ industry?: ((string | "Aerospace and Defense" | "Agribusiness" | "Automotive" | "Banking" | "Chemicals" | "Consumer Industries" | "Consumer Products" | "Defense and Security" | "Discrete Industries" | "Energy and Natural Resources" | "Engineering Construction and Operations" | "Financial Services" | "Future Cities" | "Healthcare" | "High Tech" | "Higher Education and Research" | "Industrial Machinery and Components" | "Insurance" | "Life Sciences" | "Media" | "Mill Products" | "Mining" | "Oil and Gas" | "Professional Services" | "Public Sector" | "Public Services" | "Retail" | "Service Industries" | "Sports and Entertainment" | "Telecommunications" | "Travel and Transportation" | "Utilities" | "Wholesale Distribution") & string)[];
2055
2080
  /**
2056
2081
  * List of line of business tags.
2057
2082
  * No special characters are allowed except `-`, `_`, `.`, `/` and ` `.
2058
2083
  *
2059
2084
  * `lineOfBusiness` that are assigned to a `Package` are inherited to all of the ORD resources it contains.
2060
2085
  */
2061
- lineOfBusiness?: ((string | "Asset Management" | "Commerce" | "Finance" | "Human Resources" | "Manufacturing" | "Marketing" | "R&D Engineering" | "Sales" | "Service" | "Sourcing and Procurement" | "Supply Chain" | "Sustainability" | "Metering" | "Grid Operations and Maintenance" | "Plant Operations and Maintenance" | "Maintenance and Engineering") & string)[];
2086
+ lineOfBusiness?: ((string | "Asset Management" | "Commerce" | "Finance" | "Human Resources" | "Manufacturing" | "Marketing" | "R&D Engineering" | "Sales" | "Service" | "Sourcing and Procurement" | "Strategy, Compliance, and Governance" | "Supply Chain" | "Sustainability" | "Metering" | "Grid Operations and Maintenance" | "Plant Operations and Maintenance" | "Maintenance and Engineering") & string)[];
2062
2087
  /**
2063
2088
  * List of countries that the package resources are applicable to.
2064
2089
  *
@@ -2102,6 +2127,9 @@ export interface DataProduct {
2102
2127
  */
2103
2128
  policyLevels?: string[];
2104
2129
  /**
2130
+ * All resources that are [system instance aware](../index.md#def-system-instance-aware) should now be put together in one ORD document that has `perspective`: `system-instance`.
2131
+ * All resources that are [system instance unaware](../index.md#def-system-instance-unaware) should now be put together in one ORD document that has `perspective`: `system-version`.
2132
+ *
2105
2133
  * Defines whether this ORD resource is **system instance aware**.
2106
2134
  * This is the case (and relevant) when the referenced resource definitions are potentially different between **system instances**.
2107
2135
  *
@@ -2257,7 +2285,7 @@ export interface IntegrationDependency {
2257
2285
  * It SHOULD express minor and patch changes that don't lead to incompatible changes.
2258
2286
  *
2259
2287
  * When the `version` major version changes, the [ORD ID](../index.md#ord-id) `<majorVersion>` fragment MUST be updated to be identical.
2260
- * In 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.
2288
+ * In case that a resource definition file also contains a version number (e.g. [OpenAPI `info`.`version`](https://spec.openapis.org/oas/v3.1.1.html#info-object)), it MUST be equal with the resource `version` to avoid inconsistencies.
2261
2289
  *
2262
2290
  * If the resource has been extended by the user, the change MUST be indicated via `lastUpdate`.
2263
2291
  * The `version` MUST not be bumped for changes in extensions.
@@ -2278,7 +2306,7 @@ export interface IntegrationDependency {
2278
2306
  *
2279
2307
  * If 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.
2280
2308
  *
2281
- * Together with `systemInstanceAware`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
2309
+ * Together with `perspectives`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
2282
2310
  */
2283
2311
  lastUpdate?: string;
2284
2312
  /**
@@ -2288,9 +2316,9 @@ export interface IntegrationDependency {
2288
2316
  /**
2289
2317
  * The `releaseStatus` specifies the stability of the resource and its external contract.
2290
2318
  */
2291
- releaseStatus: "active" | "beta" | "deprecated";
2319
+ releaseStatus: "beta" | "active" | "deprecated" | "sunset";
2292
2320
  /**
2293
- * The sunset date defines when the resource is scheduled to be decommissioned/removed.
2321
+ * The sunset date defines when the resource is scheduled to be decommissioned / removed / archived.
2294
2322
  *
2295
2323
  * If the `releaseStatus` is set to `deprecated`, the `sunsetDate` SHOULD be provided (if already known).
2296
2324
  * Once the sunset date is known and ready to be communicated externally, it MUST be provided here.
@@ -2615,7 +2643,7 @@ export interface Package {
2615
2643
  * It SHOULD express minor and patch changes that don't lead to incompatible changes.
2616
2644
  *
2617
2645
  * When the `version` major version changes, the [ORD ID](../index.md#ord-id) `<majorVersion>` fragment MUST be updated to be identical.
2618
- * In 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.
2646
+ * In case that a resource definition file also contains a version number (e.g. [OpenAPI `info`.`version`](https://spec.openapis.org/oas/v3.1.1.html#info-object)), it MUST be equal with the resource `version` to avoid inconsistencies.
2619
2647
  *
2620
2648
  * If the resource has been extended by the user, the change MUST be indicated via `lastUpdate`.
2621
2649
  * The `version` MUST not be bumped for changes in extensions.
@@ -2710,14 +2738,14 @@ export interface Package {
2710
2738
  *
2711
2739
  * `lineOfBusiness` that are assigned to a `Package` are inherited to all of the ORD resources it contains.
2712
2740
  */
2713
- lineOfBusiness?: ((string | "Asset Management" | "Commerce" | "Finance" | "Human Resources" | "Manufacturing" | "Marketing" | "R&D Engineering" | "Sales" | "Service" | "Sourcing and Procurement" | "Supply Chain" | "Sustainability" | "Metering" | "Grid Operations and Maintenance" | "Plant Operations and Maintenance" | "Maintenance and Engineering") & string)[];
2741
+ lineOfBusiness?: ((string | "Asset Management" | "Commerce" | "Finance" | "Human Resources" | "Manufacturing" | "Marketing" | "R&D Engineering" | "Sales" | "Service" | "Sourcing and Procurement" | "Strategy, Compliance, and Governance" | "Supply Chain" | "Sustainability" | "Metering" | "Grid Operations and Maintenance" | "Plant Operations and Maintenance" | "Maintenance and Engineering") & string)[];
2714
2742
  /**
2715
2743
  * List of industry tags.
2716
2744
  * No special characters are allowed except `-`, `_`, `.`, `/` and ` `.
2717
2745
  *
2718
2746
  * `industry` that are assigned to a `Package` are inherited to all of the ORD resources it contains.
2719
2747
  */
2720
- industry?: ((string | "Aerospace and Defense" | "Automotive" | "Banking" | "Chemicals" | "Consumer Products" | "Defense and Security" | "Engineering Construction and Operations" | "Healthcare" | "Higher Education and Research" | "High Tech" | "Industrial Machinery and Components" | "Insurance" | "Life Sciences" | "Media" | "Mill Products" | "Mining" | "Oil and Gas" | "Professional Services" | "Public Sector" | "Retail" | "Sports and Entertainment" | "Telecommunications" | "Travel and Transportation" | "Utilities" | "Wholesale Distribution") & string)[];
2748
+ industry?: ((string | "Aerospace and Defense" | "Agribusiness" | "Automotive" | "Banking" | "Chemicals" | "Consumer Industries" | "Consumer Products" | "Defense and Security" | "Discrete Industries" | "Energy and Natural Resources" | "Engineering Construction and Operations" | "Financial Services" | "Future Cities" | "Healthcare" | "High Tech" | "Higher Education and Research" | "Industrial Machinery and Components" | "Insurance" | "Life Sciences" | "Media" | "Mill Products" | "Mining" | "Oil and Gas" | "Professional Services" | "Public Sector" | "Public Services" | "Retail" | "Service Industries" | "Sports and Entertainment" | "Telecommunications" | "Travel and Transportation" | "Utilities" | "Wholesale Distribution") & string)[];
2721
2749
  /**
2722
2750
  * If provided, all resources that are part of this package can only run on the listed runtime.
2723
2751
  *
@@ -2825,7 +2853,7 @@ export interface ConsumptionBundle {
2825
2853
  * It SHOULD express minor and patch changes that don't lead to incompatible changes.
2826
2854
  *
2827
2855
  * When the `version` major version changes, the [ORD ID](../index.md#ord-id) `<majorVersion>` fragment MUST be updated to be identical.
2828
- * In 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.
2856
+ * In case that a resource definition file also contains a version number (e.g. [OpenAPI `info`.`version`](https://spec.openapis.org/oas/v3.1.1.html#info-object)), it MUST be equal with the resource `version` to avoid inconsistencies.
2829
2857
  *
2830
2858
  * If the resource has been extended by the user, the change MUST be indicated via `lastUpdate`.
2831
2859
  * The `version` MUST not be bumped for changes in extensions.
@@ -2846,7 +2874,7 @@ export interface ConsumptionBundle {
2846
2874
  *
2847
2875
  * If 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.
2848
2876
  *
2849
- * Together with `systemInstanceAware`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
2877
+ * Together with `perspectives`, this property SHOULD be used to optimize the metadata crawling process of the ORD aggregators.
2850
2878
  */
2851
2879
  lastUpdate?: string;
2852
2880
  /**
@@ -2981,13 +3009,12 @@ export interface GroupType {
2981
3009
  [k: string]: any | undefined;
2982
3010
  }
2983
3011
  /**
2984
- * A tombstone indicates that a previously published ORD resource or taxonomy has been removed / decommissioned.
3012
+ * A tombstone indicates that a previously published ORD resource or taxonomy has been removed / decommissioned / archived.
2985
3013
  * This MUST be indicated explicitly, so ORD aggregators and consumers can learn about the removal.
2986
3014
  *
2987
3015
  * Exactly one of the IDs MUST be provided to state which ORD resource or taxonomy item the Tombstone addresses.
2988
3016
  *
2989
- * It MUST be kept sufficiently long so that all ORD aggregators can learn about the tombstone.
2990
- * After that it MAY be removed.
3017
+ * The tombstone MUST be kept sufficiently long (at least 31 days) so that all ORD aggregators can learn about the tombstone.
2991
3018
  */
2992
3019
  export interface Tombstone {
2993
3020
  /**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "http://json.schemastore.org/package",
3
3
  "name": "@open-resource-discovery/specification",
4
- "version": "1.11.0",
4
+ "version": "1.12.0",
5
5
  "description": "Open Resource Discovery (ORD) Specification",
6
6
  "author": "SAP SE",
7
7
  "license": "Apache-2.0",
@@ -26,10 +26,10 @@
26
26
  "deploy": "npm run build && gh-pages -d ./build"
27
27
  },
28
28
  "devDependencies": {
29
- "@docusaurus/core": "3.8.0",
30
- "@docusaurus/preset-classic": "3.8.0",
31
- "@docusaurus/theme-mermaid": "3.8.0",
32
- "@easyops-cn/docusaurus-search-local": "0.49.2",
29
+ "@docusaurus/core": "3.8.1",
30
+ "@docusaurus/preset-classic": "3.8.1",
31
+ "@docusaurus/theme-mermaid": "3.8.1",
32
+ "@easyops-cn/docusaurus-search-local": "0.51.1",
33
33
  "@mdx-js/react": "3.1.0",
34
34
  "clsx": "2.1.1",
35
35
  "prism-react-renderer": "2.4.1",