@open-resource-discovery/specification 1.10.1 → 1.11.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 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
 
@@ -7,7 +7,7 @@
7
7
  */
8
8
  export interface ORDConfiguration {
9
9
  /**
10
- * Optional URL to the ORD document schema (defined as JSON Schema).
10
+ * Optional URL to the ORD Configuration schema (defined as JSON Schema).
11
11
  * If given, this enables code intelligence and validation in supported editors (like VSCode) and tools.
12
12
  */
13
13
  $schema?: (string | "https://open-resource-discovery.github.io/specification/spec-v1/interfaces/Configuration.schema.json#") & string;
@@ -35,6 +35,7 @@ export interface ORDV1Support {
35
35
  * For more details how to implement this correctly, please refer to the [ORD configuration endpoint](../index.md#ord-configuration-endpoint) section and the [considerations on the granularity of ORD documents](../index.md#considerations-on-the-granularity-of-ord-documents).
36
36
  */
37
37
  documents?: ORDV1DocumentDescription[];
38
+ capabilities?: ORDV1Capabilities;
38
39
  }
39
40
  /**
40
41
  * Describes an [ORD Document](../index.md#ord-document) that is available for pull transport consumption.
@@ -102,3 +103,13 @@ export interface AccessStrategy {
102
103
  */
103
104
  customDescription?: string;
104
105
  }
106
+ /**
107
+ * List of capabilities that are supported by the ORD provider.
108
+ */
109
+ export interface ORDV1Capabilities {
110
+ /**
111
+ * Whether the ORD provider supports the optional [select parameter](../index.md#select-parameter) for retrieving the ORD config and ORD documents.
112
+ */
113
+ selector?: boolean;
114
+ [k: string]: any | undefined;
115
+ }
@@ -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";
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";
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.
@@ -35,7 +35,7 @@ export interface ORDDocument {
35
35
  * The policy level can be defined on ORD Document level, but also be overwritten on an individual package or resource level.
36
36
  *
37
37
  */
38
- policyLevel?: "none" | "sap:base:v1" | "sap:core:v1" | "sap:dp:v1" | "custom";
38
+ policyLevel?: (string | "none" | "sap:base:v1" | "sap:core:v1" | "sap:dp:v1" | "custom") & string;
39
39
  /**
40
40
  * If the fixed `policyLevel` values need to be extended, an arbitrary `customPolicyLevel` can be provided.
41
41
  * The policy level is inherited from packages to resources they contain, but can be overwritten at resource level.
@@ -384,7 +384,7 @@ export interface APIResource {
384
384
  * It SHOULD express minor and patch changes that don't lead to incompatible changes.
385
385
  *
386
386
  * 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.
387
+ * 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
388
  *
389
389
  * If the resource has been extended by the user, the change MUST be indicated via `lastUpdate`.
390
390
  * The `version` MUST not be bumped for changes in extensions.
@@ -498,7 +498,7 @@ export interface APIResource {
498
498
  /**
499
499
  * API Protocol including the protocol version if applicable
500
500
  */
501
- apiProtocol: "odata-v2" | "odata-v4" | "rest" | "graphql" | "delta-sharing" | "soap-inbound" | "soap-outbound" | "websocket" | "sap-rfc" | "sap-sql-api-v1" | "sap-ina-api-v1";
501
+ 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
502
  /**
503
503
  * List of available machine-readable definitions, which describe the resource or capability in detail.
504
504
  *
@@ -515,7 +515,7 @@ export interface APIResource {
515
515
  *
516
516
  * All APIs that share the same implementation standard MAY be treated the same or similar by a consumer client.
517
517
  */
518
- implementationStandard?: "sap:ord-document-api:v1" | "cff:open-service-broker:v2" | "sap:csn-exposure:v1" | "sap:ape-api:v1" | "sap:cdi-api:v1" | "sap:delta-sharing:v1" | "sap:hana-cloud-sql:v1" | "sap.dp:data-subscription-api:v1" | "custom";
518
+ implementationStandard?: (string | "sap:ord-document-api:v1" | "cff:open-service-broker:v2" | "sap:csn-exposure:v1" | "sap:ape-api:v1" | "sap:cdi-api:v1" | "sap:delta-sharing:v1" | "sap:hana-cloud-sql:v1" | "sap.dp:data-subscription-api:v1" | "custom") & string;
519
519
  /**
520
520
  * If the fixed `implementationStandard` values need to be extended, an arbitrary `customImplementationStandard` can be provided.
521
521
  *
@@ -533,8 +533,8 @@ export interface APIResource {
533
533
  */
534
534
  customImplementationStandardDescription?: string;
535
535
  /**
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).
536
+ * A reference to the interface (API contract) that this API implements.
537
+ * Serves as a declaration of compatible implementation of API contract, effectively functioning as an "implementationOf" relationship.
538
538
  *
539
539
  * MUST be a valid reference to an (usually external) [API Resource](#api-resource) ORD ID.
540
540
  *
@@ -555,12 +555,20 @@ export interface APIResource {
555
555
  *
556
556
  * If no array is defined, it is assumed that this information is not provided.
557
557
  */
558
- supportedUseCases?: ("data-federation" | "snapshot" | "incremental" | "streaming")[];
558
+ supportedUseCases?: ((string | "data-federation" | "snapshot" | "incremental" | "streaming") & string)[];
559
559
  usage?: Usage;
560
560
  /**
561
561
  * Describes mappings between the API Models of the described resource to the underlying, conceptual entity types.
562
562
  */
563
563
  entityTypeMappings?: EntityTypeMapping[];
564
+ /**
565
+ * Optional list of [entity types](#entity-type) that are exposed by the resource.
566
+ *
567
+ * This replaces `entityTypeMappings`. If both is given, the `exposedEntityTypes` wins.
568
+ *
569
+ * MUST be a valid reference to an [EntityType](#entity-type) ORD ID.
570
+ */
571
+ exposedEntityTypes?: ExposedEntityType[];
564
572
  /**
565
573
  * Links with semantic meaning that are specific to API Resources.
566
574
  */
@@ -586,14 +594,14 @@ export interface APIResource {
586
594
  *
587
595
  * `lineOfBusiness` that are assigned to a `Package` are inherited to all of the ORD resources it contains.
588
596
  */
589
- 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)[];
597
+ 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)[];
590
598
  /**
591
599
  * List of industry tags.
592
600
  * No special characters are allowed except `-`, `_`, `.`, `/` and ` `.
593
601
  *
594
602
  * `industry` that are assigned to a `Package` are inherited to all of the ORD resources it contains.
595
603
  */
596
- 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)[];
604
+ 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)[];
597
605
  /**
598
606
  * List of free text style tags.
599
607
  * No special characters are allowed except `-`, `_`, `.`, `/` and ` `.
@@ -610,7 +618,7 @@ export interface APIResource {
610
618
  * The policy level can be defined on ORD Document level, but also be overwritten on an individual package or resource level.
611
619
  *
612
620
  */
613
- policyLevel?: "none" | "sap:base:v1" | "sap:core:v1" | "sap:dp:v1" | "custom";
621
+ policyLevel?: (string | "none" | "sap:base:v1" | "sap:core:v1" | "sap:dp:v1" | "custom") & string;
614
622
  /**
615
623
  * If the fixed `policyLevel` values need to be extended, an arbitrary `customPolicyLevel` can be provided.
616
624
  * The policy level is inherited from packages to resources they contain, but can be overwritten at resource level.
@@ -703,7 +711,7 @@ export interface APIResourceDefinition {
703
711
  * Type of the API Resource Definition
704
712
  * If "custom" is chosen, a customType MUST be provided
705
713
  */
706
- type: "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";
714
+ 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;
707
715
  /**
708
716
  * If the fixed `type` enum values need to be extended, an arbitrary `customType` can be provided.
709
717
  *
@@ -749,7 +757,7 @@ export interface AccessStrategy {
749
757
  /**
750
758
  * Defines the authentication/authorization strategy through which the referenced `resourceDefinitions` are accessible.
751
759
  */
752
- type: "open" | "sap:oauth-client-credentials:v1" | "sap:cmp-mtls:v1" | "sap.businesshub:basic-auth:v1" | "custom";
760
+ type: (string | "open" | "sap:oauth-client-credentials:v1" | "sap:cmp-mtls:v1" | "sap.businesshub:basic-auth:v1" | "custom") & string;
753
761
  /**
754
762
  * If the fixed `type` enum values need to be extended, an arbitrary `customType` can be provided.
755
763
  *
@@ -881,6 +889,17 @@ export interface EntityTypeTargetORDID {
881
889
  export interface EntityTypeTargetCorrelationID {
882
890
  correlationId: string;
883
891
  }
892
+ /**
893
+ * Defines which Entity Type is exposed through (via its ORD ID).
894
+ */
895
+ export interface ExposedEntityType {
896
+ /**
897
+ * The ORD ID is a stable, globally unique ID for ORD resources or taxonomy.
898
+ *
899
+ * It MUST be a valid [ORD ID](../index.md#ord-id) of the appropriate ORD type.
900
+ */
901
+ ordId: string;
902
+ }
884
903
  /**
885
904
  * Links with specific semantic meaning that are related to API or event resources.
886
905
  *
@@ -890,7 +909,7 @@ export interface APIAndEventResourceLink {
890
909
  /**
891
910
  * See also: [WADG0001 WebAPI type extension](https://webapi-discovery.github.io/rfcs/rfc0001.html#webapiactions)
892
911
  */
893
- type: "api-documentation" | "authentication" | "client-registration" | "console" | "payment" | "service-level-agreement" | "support" | "custom";
912
+ type: (string | "api-documentation" | "authentication" | "client-registration" | "console" | "payment" | "service-level-agreement" | "support" | "custom") & string;
894
913
  /**
895
914
  * If the fixed `type` enum values need to be extended, an arbitrary `customType` can be provided.
896
915
  *
@@ -1069,7 +1088,7 @@ export interface EventResource {
1069
1088
  * It SHOULD express minor and patch changes that don't lead to incompatible changes.
1070
1089
  *
1071
1090
  * When the `version` major version changes, the [ORD ID](../index.md#ord-id) `<majorVersion>` fragment MUST be updated to be identical.
1072
- * 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.
1091
+ * 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.
1073
1092
  *
1074
1093
  * If the resource has been extended by the user, the change MUST be indicated via `lastUpdate`.
1075
1094
  * The `version` MUST not be bumped for changes in extensions.
@@ -1170,7 +1189,7 @@ export interface EventResource {
1170
1189
  *
1171
1190
  * As of now, only custom implementation standards are supported.
1172
1191
  */
1173
- implementationStandard?: "custom";
1192
+ implementationStandard?: (string | "custom") & string;
1174
1193
  /**
1175
1194
  * If the fixed `implementationStandard` values need to be extended, an arbitrary `customImplementationStandard` can be provided.
1176
1195
  *
@@ -1204,6 +1223,14 @@ export interface EventResource {
1204
1223
  * Describes mappings between the API Models of the described resource to the underlying, conceptual entity types.
1205
1224
  */
1206
1225
  entityTypeMappings?: EntityTypeMapping[];
1226
+ /**
1227
+ * Optional list of [entity types](#entity-type) that are exposed by the resource.
1228
+ *
1229
+ * This replaces `entityTypeMappings`. If both is given, the `exposedEntityTypes` wins.
1230
+ *
1231
+ * MUST be a valid reference to an [EntityType](#entity-type) ORD ID.
1232
+ */
1233
+ exposedEntityTypes?: ExposedEntityType[];
1207
1234
  /**
1208
1235
  * Links with semantic meaning that are specific to event resources.
1209
1236
  *
@@ -1229,14 +1256,14 @@ export interface EventResource {
1229
1256
  *
1230
1257
  * `lineOfBusiness` that are assigned to a `Package` are inherited to all of the ORD resources it contains.
1231
1258
  */
1232
- 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)[];
1259
+ 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)[];
1233
1260
  /**
1234
1261
  * List of industry tags.
1235
1262
  * No special characters are allowed except `-`, `_`, `.`, `/` and ` `.
1236
1263
  *
1237
1264
  * `industry` that are assigned to a `Package` are inherited to all of the ORD resources it contains.
1238
1265
  */
1239
- 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)[];
1266
+ 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)[];
1240
1267
  /**
1241
1268
  * List of free text style tags.
1242
1269
  * No special characters are allowed except `-`, `_`, `.`, `/` and ` `.
@@ -1253,7 +1280,7 @@ export interface EventResource {
1253
1280
  * The policy level can be defined on ORD Document level, but also be overwritten on an individual package or resource level.
1254
1281
  *
1255
1282
  */
1256
- policyLevel?: "none" | "sap:base:v1" | "sap:core:v1" | "sap:dp:v1" | "custom";
1283
+ policyLevel?: (string | "none" | "sap:base:v1" | "sap:core:v1" | "sap:dp:v1" | "custom") & string;
1257
1284
  /**
1258
1285
  * If the fixed `policyLevel` values need to be extended, an arbitrary `customPolicyLevel` can be provided.
1259
1286
  * The policy level is inherited from packages to resources they contain, but can be overwritten at resource level.
@@ -1289,7 +1316,7 @@ export interface EventResourceDefinition {
1289
1316
  /**
1290
1317
  * Type of the event resource definition
1291
1318
  */
1292
- type: "asyncapi-v2" | "sap-csn-interop-effective-v1" | "custom";
1319
+ type: (string | "asyncapi-v2" | "sap-csn-interop-effective-v1" | "custom") & string;
1293
1320
  /**
1294
1321
  * If the fixed `type` enum values need to be extended, an arbitrary `customType` can be provided.
1295
1322
  *
@@ -1329,10 +1356,10 @@ export interface EventResourceDefinition {
1329
1356
  accessStrategies?: [AccessStrategy, ...AccessStrategy[]];
1330
1357
  }
1331
1358
  /**
1332
- * An [**Entity Type**](../../details/articles/grouping-and-bundling#entity-type) describes either a business concept / term or an underlying conceptual model.
1359
+ * An [**Entity Type**](../concepts/grouping-and-bundling#entity-type) describes either a business concept / term or an underlying conceptual model.
1333
1360
  * The same entity type can be exposed through one or multiple API and events resources.
1334
1361
  *
1335
- * To learn more about the concept, see [Entity Type](../../details/articles/grouping-and-bundling#entity-type).
1362
+ * To learn more about the concept, see [Entity Type](../concepts/grouping-and-bundling#entity-type).
1336
1363
  */
1337
1364
  export interface EntityType {
1338
1365
  /**
@@ -1418,7 +1445,7 @@ export interface EntityType {
1418
1445
  * It SHOULD express minor and patch changes that don't lead to incompatible changes.
1419
1446
  *
1420
1447
  * When the `version` major version changes, the [ORD ID](../index.md#ord-id) `<majorVersion>` fragment MUST be updated to be identical.
1421
- * 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.
1448
+ * 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.
1422
1449
  *
1423
1450
  * If the resource has been extended by the user, the change MUST be indicated via `lastUpdate`.
1424
1451
  * The `version` MUST not be bumped for changes in extensions.
@@ -1486,7 +1513,7 @@ export interface EntityType {
1486
1513
  *
1487
1514
  * In Domain-Driven Design, there is a concept of entities and aggregates.
1488
1515
  * There are root entities which may contain further sub entities by composition.
1489
- * The complete package is then called an aggregate, which gets its name and identity from the root entity.
1516
+ * The complete "package" is then called an aggregate, which gets its name and identity from the root entity.
1490
1517
  * An aggregate is a cluster of domain objects that can be treated as a single unit.
1491
1518
  * The root is the entity that is referenced from outside the aggregate. There must be only one root per aggregate.
1492
1519
  * The root ensures the integrity of the aggregate. A sub entity is any other non-root entity in the aggregate.
@@ -1521,7 +1548,7 @@ export interface EntityType {
1521
1548
  * The policy level can be defined on ORD Document level, but also be overwritten on an individual package or resource level.
1522
1549
  *
1523
1550
  */
1524
- policyLevel?: "none" | "sap:base:v1" | "sap:core:v1" | "sap:dp:v1" | "custom";
1551
+ policyLevel?: (string | "none" | "sap:base:v1" | "sap:core:v1" | "sap:dp:v1" | "custom") & string;
1525
1552
  /**
1526
1553
  * If the fixed `policyLevel` values need to be extended, an arbitrary `customPolicyLevel` can be provided.
1527
1554
  * The policy level is inherited from packages to resources they contain, but can be overwritten at resource level.
@@ -1596,7 +1623,7 @@ export interface Capability {
1596
1623
  /**
1597
1624
  * Type of the Capability
1598
1625
  */
1599
- type: "custom" | "sap.mdo:mdi-capability:v1";
1626
+ type: (string | "sap.mdo:mdi-capability:v1" | "custom") & string;
1600
1627
  /**
1601
1628
  * If the fixed `type` enum values need to be extended, an arbitrary `customType` can be provided.
1602
1629
  *
@@ -1654,7 +1681,7 @@ export interface Capability {
1654
1681
  * It SHOULD express minor and patch changes that don't lead to incompatible changes.
1655
1682
  *
1656
1683
  * When the `version` major version changes, the [ORD ID](../index.md#ord-id) `<majorVersion>` fragment MUST be updated to be identical.
1657
- * 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.
1684
+ * 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.
1658
1685
  *
1659
1686
  * If the resource has been extended by the user, the change MUST be indicated via `lastUpdate`.
1660
1687
  * The `version` MUST not be bumped for changes in extensions.
@@ -1706,7 +1733,6 @@ export interface Capability {
1706
1733
  minSystemVersion?: string;
1707
1734
  /**
1708
1735
  * Optional list of related EntityType Resources.
1709
- *
1710
1736
  * MUST be a valid reference to an [EntityType Resource](#entity-type) ORD ID.
1711
1737
  */
1712
1738
  relatedEntityTypes?: string[];
@@ -1751,7 +1777,7 @@ export interface CapabilityDefinition {
1751
1777
  /**
1752
1778
  * Type of the capability resource definition
1753
1779
  */
1754
- type: "custom" | "sap.mdo:mdi-capability-definition:v1";
1780
+ type: (string | "sap.mdo:mdi-capability-definition:v1" | "custom") & string;
1755
1781
  /**
1756
1782
  * If the fixed `type` enum values need to be extended, an arbitrary `customType` can be provided.
1757
1783
  *
@@ -1791,9 +1817,9 @@ export interface CapabilityDefinition {
1791
1817
  accessStrategies?: [AccessStrategy, ...AccessStrategy[]];
1792
1818
  }
1793
1819
  /**
1794
- * A [Data Product](../../details/articles/data-product) is a data set exposed for consumption outside the boundaries of the producing application via APIs and described by high quality metadata that can be accessed through the [ORD Aggregator](../../spec-v1/#ord-aggregator).
1820
+ * A [Data Product](../concepts/data-product) is a data set exposed for consumption outside the boundaries of the producing application via APIs and described by high quality metadata that can be accessed through the [ORD Aggregator](../../spec-v1/#ord-aggregator).
1795
1821
  *
1796
- * Please note that this concept is in beta, see [Data Product - Beta Status](../../details/articles/data-product#beta-status).
1822
+ * Please note that this concept is in beta, see [Data Product - Beta Status](../concepts/data-product#beta-status).
1797
1823
  */
1798
1824
  export interface DataProduct {
1799
1825
  /**
@@ -1879,7 +1905,7 @@ export interface DataProduct {
1879
1905
  * It SHOULD express minor and patch changes that don't lead to incompatible changes.
1880
1906
  *
1881
1907
  * When the `version` major version changes, the [ORD ID](../index.md#ord-id) `<majorVersion>` fragment MUST be updated to be identical.
1882
- * 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.
1908
+ * 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.
1883
1909
  *
1884
1910
  * If the resource has been extended by the user, the change MUST be indicated via `lastUpdate`.
1885
1911
  * The `version` MUST not be bumped for changes in extensions.
@@ -1974,11 +2000,11 @@ export interface DataProduct {
1974
2000
  */
1975
2001
  type: "primary" | "derived";
1976
2002
  /**
1977
- * Category of the data-set within data product. Based on its definition, a data product is a data set - which can include on the values below.
2003
+ * Category of the data-set within data product. Based on its definition, a data product is a "data set" - which can include on the values below.
1978
2004
  * Based on the type some properties of a data product may become optional/mandatory.
1979
2005
  * Consumers might still do analytics on business object like data products.
1980
2006
  */
1981
- category: "business-object" | "analytical" | "other";
2007
+ category: (string | "business-object" | "analytical" | "other") & string;
1982
2008
  /**
1983
2009
  * Aggregated list of entity types that are at least partially exposed by the data product. Detailed mapping can be found on the output port schema level.
1984
2010
  */
@@ -2025,14 +2051,14 @@ export interface DataProduct {
2025
2051
  *
2026
2052
  * `industry` that are assigned to a `Package` are inherited to all of the ORD resources it contains.
2027
2053
  */
2028
- 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)[];
2054
+ 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)[];
2029
2055
  /**
2030
2056
  * List of line of business tags.
2031
2057
  * No special characters are allowed except `-`, `_`, `.`, `/` and ` `.
2032
2058
  *
2033
2059
  * `lineOfBusiness` that are assigned to a `Package` are inherited to all of the ORD resources it contains.
2034
2060
  */
2035
- 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)[];
2061
+ 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)[];
2036
2062
  /**
2037
2063
  * List of countries that the package resources are applicable to.
2038
2064
  *
@@ -2057,7 +2083,7 @@ export interface DataProduct {
2057
2083
  * The policy level can be defined on ORD Document level, but also be overwritten on an individual package or resource level.
2058
2084
  *
2059
2085
  */
2060
- policyLevel?: "none" | "sap:base:v1" | "sap:core:v1" | "sap:dp:v1" | "custom";
2086
+ policyLevel?: (string | "none" | "sap:base:v1" | "sap:core:v1" | "sap:dp:v1" | "custom") & string;
2061
2087
  /**
2062
2088
  * If the fixed `policyLevel` values need to be extended, an arbitrary `customPolicyLevel` can be provided.
2063
2089
  * The policy level is inherited from packages to resources they contain, but can be overwritten at resource level.
@@ -2119,7 +2145,7 @@ export interface DataProductOutputPort {
2119
2145
  * If a generic [Link](#link) can also be expressed via Data Product Link, the latter MUST be chosen.
2120
2146
  */
2121
2147
  export interface DataProductLink {
2122
- type: "payment" | "terms-of-use" | "service-level-agreement" | "support" | "custom";
2148
+ type: (string | "payment" | "terms-of-use" | "service-level-agreement" | "support" | "custom") & string;
2123
2149
  /**
2124
2150
  * If the fixed `type` enum values need to be extended, an arbitrary `customType` can be provided.
2125
2151
  *
@@ -2137,7 +2163,7 @@ export interface DataProductLink {
2137
2163
  url: string;
2138
2164
  }
2139
2165
  /**
2140
- * An [Integration Dependency](../../details/articles/integration-dependency) states that the described system (self) can integrate with external systems (integration target) to achieve an integration purpose.
2166
+ * An [Integration Dependency](../concepts/integration-dependency) states that the described system (self) can integrate with external systems (integration target) to achieve an integration purpose.
2141
2167
  * The purpose could be to enable a certain feature or integration scenario, but it could also be a mandatory prerequisite for the described system to work.
2142
2168
  *
2143
2169
  * The integration dependency includes a list of individual **aspects** that the integration consists of.
@@ -2155,7 +2181,7 @@ export interface DataProductLink {
2155
2181
  * An integration dependency is also not meant to describe a bigger process.
2156
2182
  * Instead it focuses on the technical necessaries to create an integration for one particular purpose.
2157
2183
  *
2158
- * To learn more about the concept, see [Integration Dependency](../../details/articles/integration-dependency).
2184
+ * To learn more about the concept, see [Integration Dependency](../concepts/integration-dependency).
2159
2185
  */
2160
2186
  export interface IntegrationDependency {
2161
2187
  /**
@@ -2231,7 +2257,7 @@ export interface IntegrationDependency {
2231
2257
  * It SHOULD express minor and patch changes that don't lead to incompatible changes.
2232
2258
  *
2233
2259
  * When the `version` major version changes, the [ORD ID](../index.md#ord-id) `<majorVersion>` fragment MUST be updated to be identical.
2234
- * 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.
2260
+ * 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.
2235
2261
  *
2236
2262
  * If the resource has been extended by the user, the change MUST be indicated via `lastUpdate`.
2237
2263
  * The `version` MUST not be bumped for changes in extensions.
@@ -2530,7 +2556,7 @@ export interface Product {
2530
2556
  documentationLabels?: DocumentationLabels;
2531
2557
  }
2532
2558
  /**
2533
- * A [**Package**](../../details/articles/grouping-and-bundling#package) organizes a set of related resources together, by publishing and catalog presentation concerns.
2559
+ * A [**Package**](../concepts/grouping-and-bundling#package) organizes a set of related resources together, by publishing and catalog presentation concerns.
2534
2560
  *
2535
2561
  * The Package can also be used to indicate which products or vendors provided the packaged resources.
2536
2562
  * For partner or customer content, the package can indicate this via the `vendor` and `partOfProducts` assignments.
@@ -2543,7 +2569,7 @@ export interface Product {
2543
2569
  * A package does not have a `visibility` property.
2544
2570
  * Whether it is displayed is decided by the fact, whether it contains any visible resources according to the visibility role of the aggregator.
2545
2571
  *
2546
- * To learn more about the concept and further guidance, see [Package](../../details/articles/grouping-and-bundling#package).
2572
+ * To learn more about the concept and further guidance, see [Package](../concepts/grouping-and-bundling#package).
2547
2573
  */
2548
2574
  export interface Package {
2549
2575
  /**
@@ -2589,7 +2615,7 @@ export interface Package {
2589
2615
  * It SHOULD express minor and patch changes that don't lead to incompatible changes.
2590
2616
  *
2591
2617
  * When the `version` major version changes, the [ORD ID](../index.md#ord-id) `<majorVersion>` fragment MUST be updated to be identical.
2592
- * 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.
2618
+ * 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.
2593
2619
  *
2594
2620
  * If the resource has been extended by the user, the change MUST be indicated via `lastUpdate`.
2595
2621
  * The `version` MUST not be bumped for changes in extensions.
@@ -2607,7 +2633,7 @@ export interface Package {
2607
2633
  * The policy level can be defined on ORD Document level, but also be overwritten on an individual package or resource level.
2608
2634
  *
2609
2635
  */
2610
- policyLevel?: "none" | "sap:base:v1" | "sap:core:v1" | "sap:dp:v1" | "custom";
2636
+ policyLevel?: (string | "none" | "sap:base:v1" | "sap:core:v1" | "sap:dp:v1" | "custom") & string;
2611
2637
  /**
2612
2638
  * If the fixed `policyLevel` values need to be extended, an arbitrary `customPolicyLevel` can be provided.
2613
2639
  * The policy level is inherited from packages to resources they contain, but can be overwritten at resource level.
@@ -2684,18 +2710,18 @@ export interface Package {
2684
2710
  *
2685
2711
  * `lineOfBusiness` that are assigned to a `Package` are inherited to all of the ORD resources it contains.
2686
2712
  */
2687
- 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)[];
2713
+ 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)[];
2688
2714
  /**
2689
2715
  * List of industry tags.
2690
2716
  * No special characters are allowed except `-`, `_`, `.`, `/` and ` `.
2691
2717
  *
2692
2718
  * `industry` that are assigned to a `Package` are inherited to all of the ORD resources it contains.
2693
2719
  */
2694
- 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)[];
2720
+ 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)[];
2695
2721
  /**
2696
2722
  * If provided, all resources that are part of this package can only run on the listed runtime.
2697
2723
  *
2698
- * MUST be a valid [System Namespace](../index.md#system-namespace).
2724
+ * MUST be a valid [system namespace](../index.md#system-namespace).
2699
2725
  */
2700
2726
  runtimeRestriction?: string;
2701
2727
  /**
@@ -2714,7 +2740,7 @@ export interface Package {
2714
2740
  * If a generic [Link](#link) can also be expressed via a Package Link, the latter MUST be chosen.
2715
2741
  */
2716
2742
  export interface PackageLink {
2717
- type: "terms-of-service" | "license" | "client-registration" | "payment" | "sandbox" | "service-level-agreement" | "support" | "custom";
2743
+ type: (string | "terms-of-service" | "license" | "client-registration" | "payment" | "sandbox" | "service-level-agreement" | "support" | "custom") & string;
2718
2744
  /**
2719
2745
  * If the fixed `type` enum values need to be extended, an arbitrary `customType` can be provided.
2720
2746
  *
@@ -2732,10 +2758,10 @@ export interface PackageLink {
2732
2758
  [k: string]: any | undefined;
2733
2759
  }
2734
2760
  /**
2735
- * A [**Consumption Bundle**](../../details/articles/grouping-and-bundling#consumption-bundle) groups APIs and Events together that can be consumed with the credentials and auth mechanism.
2761
+ * A [**Consumption Bundle**](../concepts/grouping-and-bundling#consumption-bundle) groups APIs and Events together that can be consumed with the credentials and auth mechanism.
2736
2762
  * Ideally it also includes instructions and details how to request access and credentials for resources.
2737
2763
  *
2738
- * For more documentation and guidance how to correctly this correctly, see [Consumption Bundle details](../../details/articles/grouping-and-bundling#consumption-bundle).
2764
+ * For more documentation and guidance how to correctly this correctly, see [Consumption Bundle details](../concepts/grouping-and-bundling#consumption-bundle).
2739
2765
  *
2740
2766
  * A consumption bundle SHOULD have at least one association with a resource (0..n). Avoid empty consumption bundles.
2741
2767
  * A consumption bundle MUST NOT contain APIs and Events that are NOT defined in the ORD document(s) returned
@@ -2743,7 +2769,7 @@ export interface PackageLink {
2743
2769
  *
2744
2770
  * Please note that some ORD consumer use cases MAY depend on consumption bundle assignments to work with the resources.
2745
2771
  *
2746
- * To learn more about the concept, see [Consumption Bundle](../../details/articles/grouping-and-bundling#consumption-bundle).
2772
+ * To learn more about the concept, see [Consumption Bundle](../concepts/grouping-and-bundling#consumption-bundle).
2747
2773
  */
2748
2774
  export interface ConsumptionBundle {
2749
2775
  /**
@@ -2799,7 +2825,7 @@ export interface ConsumptionBundle {
2799
2825
  * It SHOULD express minor and patch changes that don't lead to incompatible changes.
2800
2826
  *
2801
2827
  * When the `version` major version changes, the [ORD ID](../index.md#ord-id) `<majorVersion>` fragment MUST be updated to be identical.
2802
- * 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.
2828
+ * 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.
2803
2829
  *
2804
2830
  * If the resource has been extended by the user, the change MUST be indicated via `lastUpdate`.
2805
2831
  * The `version` MUST not be bumped for changes in extensions.
@@ -2861,7 +2887,7 @@ export interface CredentialExchangeStrategy {
2861
2887
  /**
2862
2888
  * The type of credential exchange strategy.
2863
2889
  */
2864
- type: "custom";
2890
+ type: (string | "custom") & string;
2865
2891
  /**
2866
2892
  * If the fixed `type` enum values need to be extended, an arbitrary `customType` can be provided.
2867
2893
  *
@@ -2897,7 +2923,7 @@ export interface CredentialExchangeStrategy {
2897
2923
  * They express a "part of" relationship to the chosen group concept.
2898
2924
  * If an "identity / equals" relationship needs to be expressed, use the `correlationIds` instead.
2899
2925
  *
2900
- * To learn more about the concept, see [Group Concept Documentation](../../details/articles/grouping-and-bundling#Groups).
2926
+ * To learn more about the concept, see [Group Concept Documentation](../concepts/grouping-and-bundling#Groups).
2901
2927
  */
2902
2928
  export interface Group {
2903
2929
  /**
@@ -2934,7 +2960,7 @@ export interface Group {
2934
2960
  *
2935
2961
  * Group Types can be defined centrally (ownership by authority namespace) or decentrally (defined by application / service itself).
2936
2962
  *
2937
- * To learn more about the concept, see [Group Concept Documentation](../../details/articles/grouping-and-bundling#Groups).
2963
+ * To learn more about the concept, see [Group Concept Documentation](../concepts/grouping-and-bundling#Groups).
2938
2964
  */
2939
2965
  export interface GroupType {
2940
2966
  /**
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.10.1",
4
+ "version": "1.11.1",
5
5
  "description": "Open Resource Discovery (ORD) Specification",
6
6
  "author": "SAP SE",
7
7
  "license": "Apache-2.0",
@@ -26,9 +26,9 @@
26
26
  "deploy": "npm run build && gh-pages -d ./build"
27
27
  },
28
28
  "devDependencies": {
29
- "@docusaurus/core": "3.7.0",
30
- "@docusaurus/preset-classic": "3.7.0",
31
- "@docusaurus/theme-mermaid": "3.7.0",
29
+ "@docusaurus/core": "3.8.1",
30
+ "@docusaurus/preset-classic": "3.8.1",
31
+ "@docusaurus/theme-mermaid": "3.8.1",
32
32
  "@easyops-cn/docusaurus-search-local": "0.49.2",
33
33
  "@mdx-js/react": "3.1.0",
34
34
  "clsx": "2.1.1",
@@ -15,6 +15,9 @@
15
15
  "items": {
16
16
  "$ref": "#/definitions/V1DocumentDescription"
17
17
  }
18
+ },
19
+ "capabilities": {
20
+ "$ref": "#/definitions/V1Capabilities"
18
21
  }
19
22
  },
20
23
  "additionalProperties": false
@@ -57,6 +60,18 @@
57
60
  "accessStrategies"
58
61
  ]
59
62
  },
63
+ "V1Capabilities": {
64
+ "type": "object",
65
+ "title": "ORD V1 Capabilities",
66
+ "description": "List of capabilities that are supported by the ORD provider.",
67
+ "properties": {
68
+ "selector": {
69
+ "type": "boolean",
70
+ "default": false,
71
+ "description": "Whether the ORD provider supports the optional [select parameter](../index.md#select-parameter) for retrieving the ORD config and ORD documents."
72
+ }
73
+ }
74
+ },
60
75
  "AccessStrategy": {
61
76
  "type": "object",
62
77
  "title": "Access Strategy",
@@ -130,7 +145,7 @@
130
145
  "$schema": {
131
146
  "type": "string",
132
147
  "format": "uri-reference",
133
- "description": "Optional URL to the ORD document schema (defined as JSON Schema).\nIf given, this enables code intelligence and validation in supported editors (like VSCode) and tools.",
148
+ "description": "Optional URL to the ORD Configuration schema (defined as JSON Schema).\nIf given, this enables code intelligence and validation in supported editors (like VSCode) and tools.",
134
149
  "anyOf": [
135
150
  {
136
151
  "type": "string",