@twin.org/federated-catalogue-service 0.0.1-next.10

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.
Files changed (45) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +21 -0
  3. package/dist/cjs/index.cjs +2122 -0
  4. package/dist/esm/index.mjs +2104 -0
  5. package/dist/types/entities/dataResourceEntry.d.ts +59 -0
  6. package/dist/types/entities/dataSpaceConnectorEntry.d.ts +66 -0
  7. package/dist/types/entities/participantEntry.d.ts +42 -0
  8. package/dist/types/entities/serviceOfferingEntry.d.ts +55 -0
  9. package/dist/types/federatedCatalogueRoutes.d.ts +113 -0
  10. package/dist/types/federatedCatalogueService.d.ts +142 -0
  11. package/dist/types/index.d.ts +10 -0
  12. package/dist/types/models/IFederatedCatalogueServiceConfig.d.ts +15 -0
  13. package/dist/types/models/IFederatedCatalogueServiceConstructorOptions.d.ts +38 -0
  14. package/dist/types/restEntryPoints.d.ts +2 -0
  15. package/dist/types/schema.d.ts +4 -0
  16. package/dist/types/verification/complianceCredentialVerificationService.d.ts +32 -0
  17. package/docs/changelog.md +143 -0
  18. package/docs/examples.md +1 -0
  19. package/docs/open-api/spec.json +3434 -0
  20. package/docs/reference/classes/DataResourceEntry.md +118 -0
  21. package/docs/reference/classes/DataSpaceConnectorEntry.md +133 -0
  22. package/docs/reference/classes/FederatedCatalogueService.md +389 -0
  23. package/docs/reference/classes/ParticipantEntry.md +85 -0
  24. package/docs/reference/classes/ServiceOfferingEntry.md +109 -0
  25. package/docs/reference/functions/complianceCredentialPresentation.md +37 -0
  26. package/docs/reference/functions/dataResourceCredentialPresentation.md +37 -0
  27. package/docs/reference/functions/dataResourceGet.md +31 -0
  28. package/docs/reference/functions/dataResourceList.md +31 -0
  29. package/docs/reference/functions/dataSpaceConnectorCredentialPresentation.md +37 -0
  30. package/docs/reference/functions/dataSpaceConnectorGet.md +31 -0
  31. package/docs/reference/functions/dataSpaceConnectorList.md +31 -0
  32. package/docs/reference/functions/generateRestRoutesFederatedCatalogue.md +25 -0
  33. package/docs/reference/functions/initSchema.md +9 -0
  34. package/docs/reference/functions/participantGet.md +31 -0
  35. package/docs/reference/functions/participantList.md +31 -0
  36. package/docs/reference/functions/serviceOfferingCredentialPresentation.md +37 -0
  37. package/docs/reference/functions/serviceOfferingGet.md +31 -0
  38. package/docs/reference/functions/serviceOfferingList.md +31 -0
  39. package/docs/reference/index.md +36 -0
  40. package/docs/reference/interfaces/IFederatedCatalogueServiceConfig.md +21 -0
  41. package/docs/reference/interfaces/IFederatedCatalogueServiceConstructorOptions.md +83 -0
  42. package/docs/reference/variables/restEntryPoints.md +3 -0
  43. package/docs/reference/variables/tagsFederatedCatalogue.md +5 -0
  44. package/locales/en.json +21 -0
  45. package/package.json +52 -0
@@ -0,0 +1,3434 @@
1
+ {
2
+ "openapi": "3.1.0",
3
+ "info": {
4
+ "title": "TWIN - Test Endpoints",
5
+ "description": "REST API for TWIN - Test Endpoints.",
6
+ "version": "1.0.0",
7
+ "license": {
8
+ "name": "Apache 2.0 License",
9
+ "url": "https://opensource.org/licenses/Apache-2.0"
10
+ }
11
+ },
12
+ "servers": [
13
+ {
14
+ "url": "https://localhost"
15
+ }
16
+ ],
17
+ "tags": [
18
+ {
19
+ "name": "Federated Catalogue",
20
+ "description": "Endpoints to access a Federated Catalogue."
21
+ }
22
+ ],
23
+ "paths": {
24
+ "/federated-catalogue/participant-credentials": {
25
+ "post": {
26
+ "operationId": "compliancePresentationRequest",
27
+ "summary": "Present a Compliance Credential",
28
+ "tags": [
29
+ "Federated Catalogue"
30
+ ],
31
+ "security": [
32
+ {
33
+ "jwtBearerAuthScheme": []
34
+ }
35
+ ],
36
+ "requestBody": {
37
+ "description": "Register a new Compliance Credential.",
38
+ "required": true,
39
+ "content": {
40
+ "application/jwt": {
41
+ "schema": {
42
+ "$ref": "#/components/schemas/CompliancePresentationRequest"
43
+ },
44
+ "examples": {
45
+ "compliancePresentationRequestExample": {
46
+ "value": "ey..."
47
+ }
48
+ }
49
+ }
50
+ }
51
+ },
52
+ "responses": {
53
+ "201": {
54
+ "description": "The rest request ended in created response."
55
+ },
56
+ "400": {
57
+ "description": "The server cannot process the request, see the content for more details.",
58
+ "content": {
59
+ "application/json": {
60
+ "schema": {
61
+ "$ref": "#/components/schemas/Error"
62
+ },
63
+ "examples": {
64
+ "exampleResponse": {
65
+ "value": {
66
+ "name": "GeneralError",
67
+ "message": "component.error",
68
+ "properties": {
69
+ "foo": "bar"
70
+ }
71
+ }
72
+ }
73
+ }
74
+ }
75
+ }
76
+ },
77
+ "401": {
78
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
79
+ "content": {
80
+ "application/json": {
81
+ "schema": {
82
+ "$ref": "#/components/schemas/Error"
83
+ },
84
+ "examples": {
85
+ "exampleResponse": {
86
+ "value": {
87
+ "name": "UnauthorizedError",
88
+ "message": "component.error"
89
+ }
90
+ }
91
+ }
92
+ }
93
+ }
94
+ },
95
+ "422": {
96
+ "description": "The server cannot process the request, see the content for more details.",
97
+ "content": {
98
+ "application/json": {
99
+ "schema": {
100
+ "$ref": "#/components/schemas/Error"
101
+ },
102
+ "examples": {
103
+ "exampleResponse": {
104
+ "value": {
105
+ "name": "UnprocessableError",
106
+ "message": "component.error"
107
+ }
108
+ }
109
+ }
110
+ }
111
+ }
112
+ },
113
+ "500": {
114
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
115
+ "content": {
116
+ "application/json": {
117
+ "schema": {
118
+ "$ref": "#/components/schemas/Error"
119
+ },
120
+ "examples": {
121
+ "exampleResponse": {
122
+ "value": {
123
+ "name": "InternalServerError",
124
+ "message": "component.error"
125
+ }
126
+ }
127
+ }
128
+ }
129
+ }
130
+ }
131
+ }
132
+ }
133
+ },
134
+ "/federated-catalogue/service-offering-credentials": {
135
+ "post": {
136
+ "operationId": "serviceOfferingPresentationRequest",
137
+ "summary": "Present a Service Offering Credential",
138
+ "tags": [
139
+ "Federated Catalogue"
140
+ ],
141
+ "security": [
142
+ {
143
+ "jwtBearerAuthScheme": []
144
+ }
145
+ ],
146
+ "requestBody": {
147
+ "description": "Register a new Compliance Credential.",
148
+ "required": true,
149
+ "content": {
150
+ "application/jwt": {
151
+ "schema": {
152
+ "$ref": "#/components/schemas/CompliancePresentationRequest"
153
+ },
154
+ "examples": {
155
+ "serviceOfferingPresentationRequestExample": {
156
+ "value": "ey..."
157
+ }
158
+ }
159
+ }
160
+ }
161
+ },
162
+ "responses": {
163
+ "201": {
164
+ "description": "The rest request ended in created response."
165
+ },
166
+ "400": {
167
+ "description": "The server cannot process the request, see the content for more details.",
168
+ "content": {
169
+ "application/json": {
170
+ "schema": {
171
+ "$ref": "#/components/schemas/Error"
172
+ },
173
+ "examples": {
174
+ "exampleResponse": {
175
+ "value": {
176
+ "name": "GeneralError",
177
+ "message": "component.error",
178
+ "properties": {
179
+ "foo": "bar"
180
+ }
181
+ }
182
+ }
183
+ }
184
+ }
185
+ }
186
+ },
187
+ "401": {
188
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
189
+ "content": {
190
+ "application/json": {
191
+ "schema": {
192
+ "$ref": "#/components/schemas/Error"
193
+ },
194
+ "examples": {
195
+ "exampleResponse": {
196
+ "value": {
197
+ "name": "UnauthorizedError",
198
+ "message": "component.error"
199
+ }
200
+ }
201
+ }
202
+ }
203
+ }
204
+ },
205
+ "422": {
206
+ "description": "The server cannot process the request, see the content for more details.",
207
+ "content": {
208
+ "application/json": {
209
+ "schema": {
210
+ "$ref": "#/components/schemas/Error"
211
+ },
212
+ "examples": {
213
+ "exampleResponse": {
214
+ "value": {
215
+ "name": "UnprocessableError",
216
+ "message": "component.error"
217
+ }
218
+ }
219
+ }
220
+ }
221
+ }
222
+ },
223
+ "500": {
224
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
225
+ "content": {
226
+ "application/json": {
227
+ "schema": {
228
+ "$ref": "#/components/schemas/Error"
229
+ },
230
+ "examples": {
231
+ "exampleResponse": {
232
+ "value": {
233
+ "name": "InternalServerError",
234
+ "message": "component.error"
235
+ }
236
+ }
237
+ }
238
+ }
239
+ }
240
+ }
241
+ }
242
+ }
243
+ },
244
+ "/federated-catalogue/data-resource-credentials": {
245
+ "post": {
246
+ "operationId": "dataResourcePresentationRequest",
247
+ "summary": "Present a Data Resource Credential",
248
+ "tags": [
249
+ "Federated Catalogue"
250
+ ],
251
+ "security": [
252
+ {
253
+ "jwtBearerAuthScheme": []
254
+ }
255
+ ],
256
+ "requestBody": {
257
+ "description": "Register a new Compliance Credential.",
258
+ "required": true,
259
+ "content": {
260
+ "application/jwt": {
261
+ "schema": {
262
+ "$ref": "#/components/schemas/CompliancePresentationRequest"
263
+ },
264
+ "examples": {
265
+ "dataResourcePresentationRequestExample": {
266
+ "value": "ey..."
267
+ }
268
+ }
269
+ }
270
+ }
271
+ },
272
+ "responses": {
273
+ "201": {
274
+ "description": "The rest request ended in created response."
275
+ },
276
+ "400": {
277
+ "description": "The server cannot process the request, see the content for more details.",
278
+ "content": {
279
+ "application/json": {
280
+ "schema": {
281
+ "$ref": "#/components/schemas/Error"
282
+ },
283
+ "examples": {
284
+ "exampleResponse": {
285
+ "value": {
286
+ "name": "GeneralError",
287
+ "message": "component.error",
288
+ "properties": {
289
+ "foo": "bar"
290
+ }
291
+ }
292
+ }
293
+ }
294
+ }
295
+ }
296
+ },
297
+ "401": {
298
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
299
+ "content": {
300
+ "application/json": {
301
+ "schema": {
302
+ "$ref": "#/components/schemas/Error"
303
+ },
304
+ "examples": {
305
+ "exampleResponse": {
306
+ "value": {
307
+ "name": "UnauthorizedError",
308
+ "message": "component.error"
309
+ }
310
+ }
311
+ }
312
+ }
313
+ }
314
+ },
315
+ "422": {
316
+ "description": "The server cannot process the request, see the content for more details.",
317
+ "content": {
318
+ "application/json": {
319
+ "schema": {
320
+ "$ref": "#/components/schemas/Error"
321
+ },
322
+ "examples": {
323
+ "exampleResponse": {
324
+ "value": {
325
+ "name": "UnprocessableError",
326
+ "message": "component.error"
327
+ }
328
+ }
329
+ }
330
+ }
331
+ }
332
+ },
333
+ "500": {
334
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
335
+ "content": {
336
+ "application/json": {
337
+ "schema": {
338
+ "$ref": "#/components/schemas/Error"
339
+ },
340
+ "examples": {
341
+ "exampleResponse": {
342
+ "value": {
343
+ "name": "InternalServerError",
344
+ "message": "component.error"
345
+ }
346
+ }
347
+ }
348
+ }
349
+ }
350
+ }
351
+ }
352
+ }
353
+ },
354
+ "/federated-catalogue/data-space-connector-credentials": {
355
+ "post": {
356
+ "operationId": "dataSpaceConnectorPresentationRequest",
357
+ "summary": "Present a Data Space Connector Credential",
358
+ "tags": [
359
+ "Federated Catalogue"
360
+ ],
361
+ "security": [
362
+ {
363
+ "jwtBearerAuthScheme": []
364
+ }
365
+ ],
366
+ "requestBody": {
367
+ "description": "Register a new Compliance Credential.",
368
+ "required": true,
369
+ "content": {
370
+ "application/jwt": {
371
+ "schema": {
372
+ "$ref": "#/components/schemas/CompliancePresentationRequest"
373
+ },
374
+ "examples": {
375
+ "dataSpaceConnectorPresentationRequestExample": {
376
+ "value": "ey..."
377
+ }
378
+ }
379
+ }
380
+ }
381
+ },
382
+ "responses": {
383
+ "201": {
384
+ "description": "The rest request ended in created response."
385
+ },
386
+ "400": {
387
+ "description": "The server cannot process the request, see the content for more details.",
388
+ "content": {
389
+ "application/json": {
390
+ "schema": {
391
+ "$ref": "#/components/schemas/Error"
392
+ },
393
+ "examples": {
394
+ "exampleResponse": {
395
+ "value": {
396
+ "name": "GeneralError",
397
+ "message": "component.error",
398
+ "properties": {
399
+ "foo": "bar"
400
+ }
401
+ }
402
+ }
403
+ }
404
+ }
405
+ }
406
+ },
407
+ "401": {
408
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
409
+ "content": {
410
+ "application/json": {
411
+ "schema": {
412
+ "$ref": "#/components/schemas/Error"
413
+ },
414
+ "examples": {
415
+ "exampleResponse": {
416
+ "value": {
417
+ "name": "UnauthorizedError",
418
+ "message": "component.error"
419
+ }
420
+ }
421
+ }
422
+ }
423
+ }
424
+ },
425
+ "422": {
426
+ "description": "The server cannot process the request, see the content for more details.",
427
+ "content": {
428
+ "application/json": {
429
+ "schema": {
430
+ "$ref": "#/components/schemas/Error"
431
+ },
432
+ "examples": {
433
+ "exampleResponse": {
434
+ "value": {
435
+ "name": "UnprocessableError",
436
+ "message": "component.error"
437
+ }
438
+ }
439
+ }
440
+ }
441
+ }
442
+ },
443
+ "500": {
444
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
445
+ "content": {
446
+ "application/json": {
447
+ "schema": {
448
+ "$ref": "#/components/schemas/Error"
449
+ },
450
+ "examples": {
451
+ "exampleResponse": {
452
+ "value": {
453
+ "name": "InternalServerError",
454
+ "message": "component.error"
455
+ }
456
+ }
457
+ }
458
+ }
459
+ }
460
+ }
461
+ }
462
+ }
463
+ },
464
+ "/federated-catalogue/participants": {
465
+ "get": {
466
+ "operationId": "federatedCatalogueListParticipants",
467
+ "summary": "Get a list of the participant entries",
468
+ "tags": [
469
+ "Federated Catalogue"
470
+ ],
471
+ "parameters": [
472
+ {
473
+ "name": "id",
474
+ "description": "The participant Id.",
475
+ "in": "query",
476
+ "required": false,
477
+ "schema": {
478
+ "type": "string"
479
+ }
480
+ },
481
+ {
482
+ "name": "registrationNumber",
483
+ "description": "The legal registration number.",
484
+ "in": "query",
485
+ "required": false,
486
+ "schema": {
487
+ "type": "string"
488
+ },
489
+ "example": "abc"
490
+ },
491
+ {
492
+ "name": "lrnType",
493
+ "description": "The legal registration number type.",
494
+ "in": "query",
495
+ "required": false,
496
+ "schema": {
497
+ "type": "string"
498
+ }
499
+ },
500
+ {
501
+ "name": "cursor",
502
+ "description": "The optional cursor to get next chunk.",
503
+ "in": "query",
504
+ "required": false,
505
+ "schema": {
506
+ "type": "string"
507
+ }
508
+ },
509
+ {
510
+ "name": "pageSize",
511
+ "description": "The maximum number of entities in a page.",
512
+ "in": "query",
513
+ "required": false,
514
+ "schema": {
515
+ "type": "number"
516
+ }
517
+ },
518
+ {
519
+ "name": "accept",
520
+ "in": "header",
521
+ "required": true,
522
+ "schema": {
523
+ "type": "string"
524
+ },
525
+ "style": "simple"
526
+ }
527
+ ],
528
+ "security": [
529
+ {
530
+ "jwtBearerAuthScheme": []
531
+ }
532
+ ],
533
+ "responses": {
534
+ "200": {
535
+ "description": "Response for participant list query",
536
+ "content": {
537
+ "application/json": {
538
+ "schema": {
539
+ "$ref": "#/components/schemas/ParticipantList"
540
+ },
541
+ "examples": {
542
+ "participantListResponseExample": {
543
+ "value": {
544
+ "@context": [
545
+ "https://schema.org",
546
+ "https://w3id.org/gaia-x/development",
547
+ "https://schema.twindev.org/federated-catalogue/"
548
+ ],
549
+ "type": "ItemList",
550
+ "itemListElement": [
551
+ {
552
+ "@context": [
553
+ "https://schema.org",
554
+ "https://w3id.org/gaia-x/development",
555
+ "https://schema.twindev.org/federated-catalogue/"
556
+ ],
557
+ "id": "did:iota:xxx",
558
+ "type": "LegalPerson",
559
+ "registrationNumber": {
560
+ "type": "LocalRegistrationNumber",
561
+ "local": "P1234567"
562
+ },
563
+ "legalName": "A Inc.",
564
+ "issuer": "did:iota:zzz",
565
+ "legalAddress": {
566
+ "type": "Address",
567
+ "countryCode": "KE"
568
+ },
569
+ "validFrom": "2024-08-01T12:00:00Z",
570
+ "validUntil": "2025-08-01T12:00:00Z",
571
+ "dateCreated": "2024-08-02T13:45:00Z",
572
+ "evidence": [
573
+ "https://credentials.example.org/1234567"
574
+ ]
575
+ }
576
+ ]
577
+ }
578
+ }
579
+ }
580
+ }
581
+ }
582
+ },
583
+ "400": {
584
+ "description": "The server cannot process the request, see the content for more details.",
585
+ "content": {
586
+ "application/json": {
587
+ "schema": {
588
+ "$ref": "#/components/schemas/Error"
589
+ },
590
+ "examples": {
591
+ "exampleResponse": {
592
+ "value": {
593
+ "name": "GeneralError",
594
+ "message": "component.error",
595
+ "properties": {
596
+ "foo": "bar"
597
+ }
598
+ }
599
+ }
600
+ }
601
+ }
602
+ }
603
+ },
604
+ "401": {
605
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
606
+ "content": {
607
+ "application/json": {
608
+ "schema": {
609
+ "$ref": "#/components/schemas/Error"
610
+ },
611
+ "examples": {
612
+ "exampleResponse": {
613
+ "value": {
614
+ "name": "UnauthorizedError",
615
+ "message": "component.error"
616
+ }
617
+ }
618
+ }
619
+ }
620
+ }
621
+ },
622
+ "500": {
623
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
624
+ "content": {
625
+ "application/json": {
626
+ "schema": {
627
+ "$ref": "#/components/schemas/Error"
628
+ },
629
+ "examples": {
630
+ "exampleResponse": {
631
+ "value": {
632
+ "name": "InternalServerError",
633
+ "message": "component.error"
634
+ }
635
+ }
636
+ }
637
+ }
638
+ }
639
+ }
640
+ }
641
+ }
642
+ },
643
+ "/federated-catalogue/participants/{id}": {
644
+ "get": {
645
+ "operationId": "federatedCatalogueGetParticipant",
646
+ "summary": "Get a participant",
647
+ "tags": [
648
+ "Federated Catalogue"
649
+ ],
650
+ "parameters": [
651
+ {
652
+ "name": "id",
653
+ "description": "The ID of the entry (Participant, Service, etc.) to get.",
654
+ "in": "path",
655
+ "required": true,
656
+ "schema": {
657
+ "type": "string"
658
+ },
659
+ "style": "simple",
660
+ "example": "did:iota:123456"
661
+ },
662
+ {
663
+ "name": "accept",
664
+ "in": "header",
665
+ "required": true,
666
+ "schema": {
667
+ "type": "string"
668
+ },
669
+ "style": "simple"
670
+ }
671
+ ],
672
+ "security": [
673
+ {
674
+ "jwtBearerAuthScheme": []
675
+ }
676
+ ],
677
+ "responses": {
678
+ "200": {
679
+ "description": "Response for a Participant Entry.",
680
+ "content": {
681
+ "application/json": {
682
+ "schema": {
683
+ "$ref": "#/components/schemas/ParticipantEntry"
684
+ },
685
+ "examples": {
686
+ "participantGetResponseExample": {
687
+ "value": {
688
+ "@context": [
689
+ "https://schema.org",
690
+ "https://w3id.org/gaia-x/development",
691
+ "https://schema.twindev.org/federated-catalogue/"
692
+ ],
693
+ "id": "did:iota:xxx",
694
+ "type": "LegalPerson",
695
+ "registrationNumber": {
696
+ "type": "LocalRegistrationNumber",
697
+ "local": "P1234567"
698
+ },
699
+ "legalName": "A Inc.",
700
+ "issuer": "did:iota:zzz",
701
+ "legalAddress": {
702
+ "type": "Address",
703
+ "countryCode": "KE"
704
+ },
705
+ "validFrom": "2024-08-01T12:00:00Z",
706
+ "validUntil": "2025-08-01T12:00:00Z",
707
+ "dateCreated": "2024-08-02T13:45:00Z",
708
+ "evidence": [
709
+ "https://credentials.example.org/1234567"
710
+ ]
711
+ }
712
+ }
713
+ }
714
+ }
715
+ }
716
+ },
717
+ "400": {
718
+ "description": "The server cannot process the request, see the content for more details.",
719
+ "content": {
720
+ "application/json": {
721
+ "schema": {
722
+ "$ref": "#/components/schemas/Error"
723
+ },
724
+ "examples": {
725
+ "exampleResponse": {
726
+ "value": {
727
+ "name": "GeneralError",
728
+ "message": "component.error",
729
+ "properties": {
730
+ "foo": "bar"
731
+ }
732
+ }
733
+ }
734
+ }
735
+ }
736
+ }
737
+ },
738
+ "401": {
739
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
740
+ "content": {
741
+ "application/json": {
742
+ "schema": {
743
+ "$ref": "#/components/schemas/Error"
744
+ },
745
+ "examples": {
746
+ "exampleResponse": {
747
+ "value": {
748
+ "name": "UnauthorizedError",
749
+ "message": "component.error"
750
+ }
751
+ }
752
+ }
753
+ }
754
+ }
755
+ },
756
+ "500": {
757
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
758
+ "content": {
759
+ "application/json": {
760
+ "schema": {
761
+ "$ref": "#/components/schemas/Error"
762
+ },
763
+ "examples": {
764
+ "exampleResponse": {
765
+ "value": {
766
+ "name": "InternalServerError",
767
+ "message": "component.error"
768
+ }
769
+ }
770
+ }
771
+ }
772
+ }
773
+ }
774
+ }
775
+ }
776
+ },
777
+ "/federated-catalogue/service-offerings": {
778
+ "get": {
779
+ "operationId": "federatedCatalogueListServices",
780
+ "summary": "Get a list of the service entries",
781
+ "tags": [
782
+ "Federated Catalogue"
783
+ ],
784
+ "parameters": [
785
+ {
786
+ "name": "id",
787
+ "description": "The Service Offering Id.",
788
+ "in": "query",
789
+ "required": false,
790
+ "schema": {
791
+ "type": "string"
792
+ }
793
+ },
794
+ {
795
+ "name": "providedBy",
796
+ "description": "The service provider.",
797
+ "in": "query",
798
+ "required": false,
799
+ "schema": {
800
+ "type": "string"
801
+ },
802
+ "example": "did:iota:1234"
803
+ },
804
+ {
805
+ "name": "cursor",
806
+ "description": "The optional cursor to get next chunk.",
807
+ "in": "query",
808
+ "required": false,
809
+ "schema": {
810
+ "type": "string"
811
+ }
812
+ },
813
+ {
814
+ "name": "pageSize",
815
+ "description": "The maximum number of entities in a page.",
816
+ "in": "query",
817
+ "required": false,
818
+ "schema": {
819
+ "type": "number"
820
+ }
821
+ },
822
+ {
823
+ "name": "accept",
824
+ "in": "header",
825
+ "required": true,
826
+ "schema": {
827
+ "type": "string"
828
+ },
829
+ "style": "simple"
830
+ }
831
+ ],
832
+ "security": [
833
+ {
834
+ "jwtBearerAuthScheme": []
835
+ }
836
+ ],
837
+ "responses": {
838
+ "200": {
839
+ "description": "Response for Service Offering list",
840
+ "content": {
841
+ "application/json": {
842
+ "schema": {
843
+ "$ref": "#/components/schemas/ServiceOfferingList"
844
+ },
845
+ "examples": {
846
+ "serviceOfferingListResponseExample": {
847
+ "value": {
848
+ "@context": [
849
+ "https://schema.org",
850
+ "https://w3id.org/gaia-x/development",
851
+ "https://schema.twindev.org/federated-catalogue/"
852
+ ],
853
+ "type": "ItemList",
854
+ "itemListElement": [
855
+ {
856
+ "@context": [
857
+ "https://schema.org",
858
+ "https://w3id.org/gaia-x/development",
859
+ "https://schema.twindev.org/federated-catalogue/"
860
+ ],
861
+ "id": "http://example.org/is123456",
862
+ "name": "Service 1",
863
+ "type": "ServiceOffering",
864
+ "servicePolicy": [
865
+ {
866
+ "@context": [
867
+ "https://www.w3.org/ns/odrl/2/",
868
+ {
869
+ "twin": "https://schema.twindev.org/odrl/",
870
+ "jsonPathSelector": "twin:jsonPathSelector"
871
+ }
872
+ ],
873
+ "@type": "Agreement",
874
+ "uid": "http://example.com/policy:1010",
875
+ "assigner": "did:iota:testnet:0x1a7bded4d22dc54722435d624e4323e10fcbc570cd57462eabbf3a5ab2ced24f",
876
+ "assignee": "did:iota:testnet:0x119adb64d01d3b0fa0d308c67db90ab1c6e0df6aebe5b7e0250783f57cd10c21",
877
+ "permission": [
878
+ {
879
+ "target": {
880
+ "type": "https://vocabulary.uncefact.org/Document",
881
+ "refinement": {
882
+ "leftOperand": {
883
+ "@id": "https://w3id.org/twin/odrl/propertyValue",
884
+ "jsonPathSelector": ".documentTypeCode"
885
+ },
886
+ "operator": "eq",
887
+ "rightOperand": "https://vocabulary.uncefact.org/DocumentCodeList#331"
888
+ }
889
+ },
890
+ "action": "extract"
891
+ }
892
+ ]
893
+ }
894
+ ],
895
+ "endpoint": {
896
+ "type": "Endpoint",
897
+ "endpointURL": "https://endpoint.example.org/api"
898
+ },
899
+ "issuer": "did:iota:7890",
900
+ "providedBy": "did:iota:1234567",
901
+ "validFrom": "2024-08-01T12:00:00Z",
902
+ "validUntil": "2025-08-01T12:00:00Z",
903
+ "dateCreated": "2024-08-02T13:45:00Z",
904
+ "evidence": [
905
+ "https://credentials.example.org/1234567"
906
+ ]
907
+ }
908
+ ]
909
+ }
910
+ }
911
+ }
912
+ }
913
+ }
914
+ },
915
+ "400": {
916
+ "description": "The server cannot process the request, see the content for more details.",
917
+ "content": {
918
+ "application/json": {
919
+ "schema": {
920
+ "$ref": "#/components/schemas/Error"
921
+ },
922
+ "examples": {
923
+ "exampleResponse": {
924
+ "value": {
925
+ "name": "GeneralError",
926
+ "message": "component.error",
927
+ "properties": {
928
+ "foo": "bar"
929
+ }
930
+ }
931
+ }
932
+ }
933
+ }
934
+ }
935
+ },
936
+ "401": {
937
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
938
+ "content": {
939
+ "application/json": {
940
+ "schema": {
941
+ "$ref": "#/components/schemas/Error"
942
+ },
943
+ "examples": {
944
+ "exampleResponse": {
945
+ "value": {
946
+ "name": "UnauthorizedError",
947
+ "message": "component.error"
948
+ }
949
+ }
950
+ }
951
+ }
952
+ }
953
+ },
954
+ "500": {
955
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
956
+ "content": {
957
+ "application/json": {
958
+ "schema": {
959
+ "$ref": "#/components/schemas/Error"
960
+ },
961
+ "examples": {
962
+ "exampleResponse": {
963
+ "value": {
964
+ "name": "InternalServerError",
965
+ "message": "component.error"
966
+ }
967
+ }
968
+ }
969
+ }
970
+ }
971
+ }
972
+ }
973
+ }
974
+ },
975
+ "/federated-catalogue/service-offerings/{id}": {
976
+ "get": {
977
+ "operationId": "federatedCatalogueGetService",
978
+ "summary": "Get a Service Offering entry",
979
+ "tags": [
980
+ "Federated Catalogue"
981
+ ],
982
+ "parameters": [
983
+ {
984
+ "name": "id",
985
+ "description": "",
986
+ "in": "path",
987
+ "required": true,
988
+ "schema": {
989
+ "type": "string"
990
+ },
991
+ "style": "simple",
992
+ "example": "https://my-services.example.org/service1"
993
+ }
994
+ ],
995
+ "security": [
996
+ {
997
+ "jwtBearerAuthScheme": []
998
+ }
999
+ ],
1000
+ "responses": {
1001
+ "200": {
1002
+ "description": "Service Offering response",
1003
+ "content": {
1004
+ "application/json": {
1005
+ "schema": {
1006
+ "$ref": "#/components/schemas/ServiceOfferingEntry"
1007
+ },
1008
+ "examples": {
1009
+ "serviceOfferingGetResponseExample": {
1010
+ "value": {
1011
+ "@context": [
1012
+ "https://schema.org",
1013
+ "https://w3id.org/gaia-x/development",
1014
+ "https://schema.twindev.org/federated-catalogue/"
1015
+ ],
1016
+ "id": "http://example.org/is123456",
1017
+ "name": "Service 1",
1018
+ "type": "ServiceOffering",
1019
+ "servicePolicy": [
1020
+ {
1021
+ "@context": [
1022
+ "https://www.w3.org/ns/odrl/2/",
1023
+ {
1024
+ "twin": "https://schema.twindev.org/odrl/",
1025
+ "jsonPathSelector": "twin:jsonPathSelector"
1026
+ }
1027
+ ],
1028
+ "@type": "Agreement",
1029
+ "uid": "http://example.com/policy:1010",
1030
+ "assigner": "did:iota:testnet:0x1a7bded4d22dc54722435d624e4323e10fcbc570cd57462eabbf3a5ab2ced24f",
1031
+ "assignee": "did:iota:testnet:0x119adb64d01d3b0fa0d308c67db90ab1c6e0df6aebe5b7e0250783f57cd10c21",
1032
+ "permission": [
1033
+ {
1034
+ "target": {
1035
+ "type": "https://vocabulary.uncefact.org/Document",
1036
+ "refinement": {
1037
+ "leftOperand": {
1038
+ "@id": "https://w3id.org/twin/odrl/propertyValue",
1039
+ "jsonPathSelector": ".documentTypeCode"
1040
+ },
1041
+ "operator": "eq",
1042
+ "rightOperand": "https://vocabulary.uncefact.org/DocumentCodeList#331"
1043
+ }
1044
+ },
1045
+ "action": "extract"
1046
+ }
1047
+ ]
1048
+ }
1049
+ ],
1050
+ "endpoint": {
1051
+ "type": "Endpoint",
1052
+ "endpointURL": "https://endpoint.example.org/api"
1053
+ },
1054
+ "issuer": "did:iota:7890",
1055
+ "providedBy": "did:iota:1234567",
1056
+ "validFrom": "2024-08-01T12:00:00Z",
1057
+ "validUntil": "2025-08-01T12:00:00Z",
1058
+ "dateCreated": "2024-08-02T13:45:00Z",
1059
+ "evidence": [
1060
+ "https://credentials.example.org/1234567"
1061
+ ]
1062
+ }
1063
+ }
1064
+ }
1065
+ }
1066
+ }
1067
+ },
1068
+ "400": {
1069
+ "description": "The server cannot process the request, see the content for more details.",
1070
+ "content": {
1071
+ "application/json": {
1072
+ "schema": {
1073
+ "$ref": "#/components/schemas/Error"
1074
+ },
1075
+ "examples": {
1076
+ "exampleResponse": {
1077
+ "value": {
1078
+ "name": "GeneralError",
1079
+ "message": "component.error",
1080
+ "properties": {
1081
+ "foo": "bar"
1082
+ }
1083
+ }
1084
+ }
1085
+ }
1086
+ }
1087
+ }
1088
+ },
1089
+ "401": {
1090
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
1091
+ "content": {
1092
+ "application/json": {
1093
+ "schema": {
1094
+ "$ref": "#/components/schemas/Error"
1095
+ },
1096
+ "examples": {
1097
+ "exampleResponse": {
1098
+ "value": {
1099
+ "name": "UnauthorizedError",
1100
+ "message": "component.error"
1101
+ }
1102
+ }
1103
+ }
1104
+ }
1105
+ }
1106
+ },
1107
+ "500": {
1108
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
1109
+ "content": {
1110
+ "application/json": {
1111
+ "schema": {
1112
+ "$ref": "#/components/schemas/Error"
1113
+ },
1114
+ "examples": {
1115
+ "exampleResponse": {
1116
+ "value": {
1117
+ "name": "InternalServerError",
1118
+ "message": "component.error"
1119
+ }
1120
+ }
1121
+ }
1122
+ }
1123
+ }
1124
+ }
1125
+ }
1126
+ }
1127
+ },
1128
+ "/federated-catalogue/data-resources": {
1129
+ "get": {
1130
+ "operationId": "federatedCatalogueListResources",
1131
+ "summary": "Get a list of the data resource entries",
1132
+ "tags": [
1133
+ "Federated Catalogue"
1134
+ ],
1135
+ "parameters": [
1136
+ {
1137
+ "name": "id",
1138
+ "description": "The Id of the Data Resource.",
1139
+ "in": "query",
1140
+ "required": false,
1141
+ "schema": {
1142
+ "type": "string"
1143
+ }
1144
+ },
1145
+ {
1146
+ "name": "producedBy",
1147
+ "description": "The service provider.",
1148
+ "in": "query",
1149
+ "required": false,
1150
+ "schema": {
1151
+ "type": "string"
1152
+ },
1153
+ "example": "did:iota:1234"
1154
+ },
1155
+ {
1156
+ "name": "cursor",
1157
+ "description": "The optional cursor to get next chunk.",
1158
+ "in": "query",
1159
+ "required": false,
1160
+ "schema": {
1161
+ "type": "string"
1162
+ }
1163
+ },
1164
+ {
1165
+ "name": "pageSize",
1166
+ "description": "The maximum number of entities in a page.",
1167
+ "in": "query",
1168
+ "required": false,
1169
+ "schema": {
1170
+ "type": "number"
1171
+ }
1172
+ },
1173
+ {
1174
+ "name": "accept",
1175
+ "in": "header",
1176
+ "required": true,
1177
+ "schema": {
1178
+ "type": "string"
1179
+ },
1180
+ "style": "simple"
1181
+ }
1182
+ ],
1183
+ "security": [
1184
+ {
1185
+ "jwtBearerAuthScheme": []
1186
+ }
1187
+ ],
1188
+ "responses": {
1189
+ "200": {
1190
+ "description": "Response fo data resource list.",
1191
+ "content": {
1192
+ "application/json": {
1193
+ "schema": {
1194
+ "$ref": "#/components/schemas/DataResourceList"
1195
+ },
1196
+ "examples": {
1197
+ "dataResourceListResponseExample": {
1198
+ "value": {
1199
+ "@context": [
1200
+ "https://schema.org",
1201
+ "https://w3id.org/gaia-x/development",
1202
+ "https://schema.twindev.org/federated-catalogue/"
1203
+ ],
1204
+ "type": "ItemList",
1205
+ "itemListElement": [
1206
+ {
1207
+ "@context": [
1208
+ "https://schema.org",
1209
+ "https://w3id.org/gaia-x/development",
1210
+ "https://schema.twindev.org/federated-catalogue/"
1211
+ ],
1212
+ "id": "http://example.org/is123456",
1213
+ "name": "Data Resource 1",
1214
+ "type": "DataResource",
1215
+ "copyrightOwnedBy": "did:iota:1234",
1216
+ "license": "http://licenses.example.org/12345",
1217
+ "resourcePolicy": [
1218
+ {
1219
+ "@context": "https://www.w3.org/ns/odrl/2/",
1220
+ "@type": "Offer",
1221
+ "uid": "http://example.com/policy:1010",
1222
+ "assigner": "did:iota:testnet:0x1a7bded4d22dc54722435d624e4323e10fcbc570cd57462eabbf3a5ab2ced24f",
1223
+ "permission": [
1224
+ {
1225
+ "target": {
1226
+ "type": "https://vocabulary.uncefact.org/Document"
1227
+ },
1228
+ "action": "extract"
1229
+ }
1230
+ ]
1231
+ }
1232
+ ],
1233
+ "exposedThrough": "https://ds-connectors.example.org/ds1",
1234
+ "producedBy": "did:iota:1234567",
1235
+ "issuer": "did:iota:987654",
1236
+ "validFrom": "2024-08-01T12:00:00Z",
1237
+ "validUntil": "2025-08-01T12:00:00Z",
1238
+ "dateCreated": "2024-08-02T13:45:00Z",
1239
+ "evidence": [
1240
+ "https://credentials.example.org/1234567"
1241
+ ]
1242
+ }
1243
+ ]
1244
+ }
1245
+ }
1246
+ }
1247
+ }
1248
+ }
1249
+ },
1250
+ "400": {
1251
+ "description": "The server cannot process the request, see the content for more details.",
1252
+ "content": {
1253
+ "application/json": {
1254
+ "schema": {
1255
+ "$ref": "#/components/schemas/Error"
1256
+ },
1257
+ "examples": {
1258
+ "exampleResponse": {
1259
+ "value": {
1260
+ "name": "GeneralError",
1261
+ "message": "component.error",
1262
+ "properties": {
1263
+ "foo": "bar"
1264
+ }
1265
+ }
1266
+ }
1267
+ }
1268
+ }
1269
+ }
1270
+ },
1271
+ "401": {
1272
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
1273
+ "content": {
1274
+ "application/json": {
1275
+ "schema": {
1276
+ "$ref": "#/components/schemas/Error"
1277
+ },
1278
+ "examples": {
1279
+ "exampleResponse": {
1280
+ "value": {
1281
+ "name": "UnauthorizedError",
1282
+ "message": "component.error"
1283
+ }
1284
+ }
1285
+ }
1286
+ }
1287
+ }
1288
+ },
1289
+ "500": {
1290
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
1291
+ "content": {
1292
+ "application/json": {
1293
+ "schema": {
1294
+ "$ref": "#/components/schemas/Error"
1295
+ },
1296
+ "examples": {
1297
+ "exampleResponse": {
1298
+ "value": {
1299
+ "name": "InternalServerError",
1300
+ "message": "component.error"
1301
+ }
1302
+ }
1303
+ }
1304
+ }
1305
+ }
1306
+ }
1307
+ }
1308
+ }
1309
+ },
1310
+ "/federated-catalogue/data-resources/{id}": {
1311
+ "get": {
1312
+ "operationId": "federatedCatalogueGetDataResource",
1313
+ "summary": "Get a Data Resource entry",
1314
+ "tags": [
1315
+ "Federated Catalogue"
1316
+ ],
1317
+ "parameters": [
1318
+ {
1319
+ "name": "id",
1320
+ "description": "",
1321
+ "in": "path",
1322
+ "required": true,
1323
+ "schema": {
1324
+ "type": "string"
1325
+ },
1326
+ "style": "simple",
1327
+ "example": "https://data-resources.example.org/drs1"
1328
+ }
1329
+ ],
1330
+ "security": [
1331
+ {
1332
+ "jwtBearerAuthScheme": []
1333
+ }
1334
+ ],
1335
+ "responses": {
1336
+ "200": {
1337
+ "description": "Service Offering response",
1338
+ "content": {
1339
+ "application/json": {
1340
+ "schema": {
1341
+ "$ref": "#/components/schemas/DataResourceEntry"
1342
+ },
1343
+ "examples": {
1344
+ "dataResourceGetResponseExample": {
1345
+ "value": {
1346
+ "@context": [
1347
+ "https://schema.org",
1348
+ "https://w3id.org/gaia-x/development",
1349
+ "https://schema.twindev.org/federated-catalogue/"
1350
+ ],
1351
+ "id": "http://example.org/is123456",
1352
+ "name": "Data Resource 1",
1353
+ "type": "DataResource",
1354
+ "copyrightOwnedBy": "did:iota:1234",
1355
+ "license": "http://licenses.example.org/12345",
1356
+ "resourcePolicy": [
1357
+ {
1358
+ "@context": "https://www.w3.org/ns/odrl/2/",
1359
+ "@type": "Offer",
1360
+ "uid": "http://example.com/policy:1010",
1361
+ "assigner": "did:iota:testnet:0x1a7bded4d22dc54722435d624e4323e10fcbc570cd57462eabbf3a5ab2ced24f",
1362
+ "permission": [
1363
+ {
1364
+ "target": {
1365
+ "type": "https://vocabulary.uncefact.org/Document"
1366
+ },
1367
+ "action": "extract"
1368
+ }
1369
+ ]
1370
+ }
1371
+ ],
1372
+ "exposedThrough": "https://ds-connectors.example.org/ds1",
1373
+ "producedBy": "did:iota:1234567",
1374
+ "issuer": "did:iota:987654",
1375
+ "validFrom": "2024-08-01T12:00:00Z",
1376
+ "validUntil": "2025-08-01T12:00:00Z",
1377
+ "dateCreated": "2024-08-02T13:45:00Z",
1378
+ "evidence": [
1379
+ "https://credentials.example.org/1234567"
1380
+ ]
1381
+ }
1382
+ }
1383
+ }
1384
+ }
1385
+ }
1386
+ },
1387
+ "400": {
1388
+ "description": "The server cannot process the request, see the content for more details.",
1389
+ "content": {
1390
+ "application/json": {
1391
+ "schema": {
1392
+ "$ref": "#/components/schemas/Error"
1393
+ },
1394
+ "examples": {
1395
+ "exampleResponse": {
1396
+ "value": {
1397
+ "name": "GeneralError",
1398
+ "message": "component.error",
1399
+ "properties": {
1400
+ "foo": "bar"
1401
+ }
1402
+ }
1403
+ }
1404
+ }
1405
+ }
1406
+ }
1407
+ },
1408
+ "401": {
1409
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
1410
+ "content": {
1411
+ "application/json": {
1412
+ "schema": {
1413
+ "$ref": "#/components/schemas/Error"
1414
+ },
1415
+ "examples": {
1416
+ "exampleResponse": {
1417
+ "value": {
1418
+ "name": "UnauthorizedError",
1419
+ "message": "component.error"
1420
+ }
1421
+ }
1422
+ }
1423
+ }
1424
+ }
1425
+ },
1426
+ "500": {
1427
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
1428
+ "content": {
1429
+ "application/json": {
1430
+ "schema": {
1431
+ "$ref": "#/components/schemas/Error"
1432
+ },
1433
+ "examples": {
1434
+ "exampleResponse": {
1435
+ "value": {
1436
+ "name": "InternalServerError",
1437
+ "message": "component.error"
1438
+ }
1439
+ }
1440
+ }
1441
+ }
1442
+ }
1443
+ }
1444
+ }
1445
+ }
1446
+ },
1447
+ "/federated-catalogue/data-space-connectors": {
1448
+ "get": {
1449
+ "operationId": "federatedCatalogueListDataSpaceConnectors",
1450
+ "summary": "Get a list of the Data Space connectors entries",
1451
+ "tags": [
1452
+ "Federated Catalogue"
1453
+ ],
1454
+ "parameters": [
1455
+ {
1456
+ "name": "id",
1457
+ "description": "The id of the Data Space Connector.",
1458
+ "in": "query",
1459
+ "required": false,
1460
+ "schema": {
1461
+ "type": "string"
1462
+ }
1463
+ },
1464
+ {
1465
+ "name": "maintainedBy",
1466
+ "description": "The maintainer",
1467
+ "in": "query",
1468
+ "required": false,
1469
+ "schema": {
1470
+ "type": "string"
1471
+ },
1472
+ "example": "did:iota:1234"
1473
+ },
1474
+ {
1475
+ "name": "cursor",
1476
+ "description": "The optional cursor to get next chunk.",
1477
+ "in": "query",
1478
+ "required": false,
1479
+ "schema": {
1480
+ "type": "string"
1481
+ }
1482
+ },
1483
+ {
1484
+ "name": "pageSize",
1485
+ "description": "The maximum number of entities in a page.",
1486
+ "in": "query",
1487
+ "required": false,
1488
+ "schema": {
1489
+ "type": "number"
1490
+ }
1491
+ },
1492
+ {
1493
+ "name": "accept",
1494
+ "in": "header",
1495
+ "required": true,
1496
+ "schema": {
1497
+ "type": "string"
1498
+ },
1499
+ "style": "simple"
1500
+ }
1501
+ ],
1502
+ "security": [
1503
+ {
1504
+ "jwtBearerAuthScheme": []
1505
+ }
1506
+ ],
1507
+ "responses": {
1508
+ "200": {
1509
+ "description": "Response for Data Space Connector list",
1510
+ "content": {
1511
+ "application/json": {
1512
+ "schema": {
1513
+ "$ref": "#/components/schemas/DataSpaceConnectorList"
1514
+ },
1515
+ "examples": {
1516
+ "dataSpaceConnectorListResponseExample": {
1517
+ "value": {
1518
+ "@context": [
1519
+ "https://schema.org",
1520
+ "https://w3id.org/gaia-x/development",
1521
+ "https://schema.twindev.org/federated-catalogue/"
1522
+ ],
1523
+ "type": "ItemList",
1524
+ "itemListElement": [
1525
+ {
1526
+ "@context": [
1527
+ "https://schema.org",
1528
+ "https://w3id.org/gaia-x/development",
1529
+ "https://schema.twindev.org/federated-catalogue/"
1530
+ ],
1531
+ "id": "https://my-ds-connectors.example.org/ds-connector-ABCD",
1532
+ "type": [
1533
+ "DataExchangeComponent",
1534
+ "DataSpaceConnector"
1535
+ ],
1536
+ "identity": "did:iota:testnet:123456",
1537
+ "defaultEndpoint": {
1538
+ "type": "Endpoint",
1539
+ "endpointURL": "https://my-twin-node.example.org:9000/twin-ds-connector"
1540
+ },
1541
+ "subscriptionActivityEndpoint": {
1542
+ "type": "Endpoint",
1543
+ "endpointURL": "/subscriptions"
1544
+ },
1545
+ "pushActivityEndpoint": {
1546
+ "type": "Endpoint",
1547
+ "endpointURL": "/notify"
1548
+ },
1549
+ "pullDataEndpoint": {
1550
+ "type": "Endpoint",
1551
+ "endpointURL": "/data"
1552
+ },
1553
+ "maintainer": "did:iota:99999",
1554
+ "offeredResource": [
1555
+ "https://my-data-resource.example.org"
1556
+ ],
1557
+ "issuer": "did:iota:987654",
1558
+ "validFrom": "2024-08-01T12:00:00Z",
1559
+ "validUntil": "2025-08-01T12:00:00Z",
1560
+ "dateCreated": "2024-08-02T13:45:00Z",
1561
+ "evidence": [
1562
+ "https://credentials.example.org/1234567"
1563
+ ]
1564
+ }
1565
+ ]
1566
+ }
1567
+ }
1568
+ }
1569
+ }
1570
+ }
1571
+ },
1572
+ "400": {
1573
+ "description": "The server cannot process the request, see the content for more details.",
1574
+ "content": {
1575
+ "application/json": {
1576
+ "schema": {
1577
+ "$ref": "#/components/schemas/Error"
1578
+ },
1579
+ "examples": {
1580
+ "exampleResponse": {
1581
+ "value": {
1582
+ "name": "GeneralError",
1583
+ "message": "component.error",
1584
+ "properties": {
1585
+ "foo": "bar"
1586
+ }
1587
+ }
1588
+ }
1589
+ }
1590
+ }
1591
+ }
1592
+ },
1593
+ "401": {
1594
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
1595
+ "content": {
1596
+ "application/json": {
1597
+ "schema": {
1598
+ "$ref": "#/components/schemas/Error"
1599
+ },
1600
+ "examples": {
1601
+ "exampleResponse": {
1602
+ "value": {
1603
+ "name": "UnauthorizedError",
1604
+ "message": "component.error"
1605
+ }
1606
+ }
1607
+ }
1608
+ }
1609
+ }
1610
+ },
1611
+ "500": {
1612
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
1613
+ "content": {
1614
+ "application/json": {
1615
+ "schema": {
1616
+ "$ref": "#/components/schemas/Error"
1617
+ },
1618
+ "examples": {
1619
+ "exampleResponse": {
1620
+ "value": {
1621
+ "name": "InternalServerError",
1622
+ "message": "component.error"
1623
+ }
1624
+ }
1625
+ }
1626
+ }
1627
+ }
1628
+ }
1629
+ }
1630
+ }
1631
+ },
1632
+ "/federated-catalogue/data-space-connectors/{id}": {
1633
+ "get": {
1634
+ "operationId": "federatedCatalogueGetDataSpaceConnector",
1635
+ "summary": "Get a Data Space Connector entry",
1636
+ "tags": [
1637
+ "Federated Catalogue"
1638
+ ],
1639
+ "parameters": [
1640
+ {
1641
+ "name": "id",
1642
+ "description": "",
1643
+ "in": "path",
1644
+ "required": true,
1645
+ "schema": {
1646
+ "type": "string"
1647
+ },
1648
+ "style": "simple",
1649
+ "example": "https://ds-connectors.example.org/ds1"
1650
+ }
1651
+ ],
1652
+ "security": [
1653
+ {
1654
+ "jwtBearerAuthScheme": []
1655
+ }
1656
+ ],
1657
+ "responses": {
1658
+ "200": {
1659
+ "description": "Service Offering response",
1660
+ "content": {
1661
+ "application/json": {
1662
+ "schema": {
1663
+ "$ref": "#/components/schemas/DataSpaceConnectorEntry"
1664
+ },
1665
+ "examples": {
1666
+ "dataSpaceConnectorGetResponseExample": {
1667
+ "value": {
1668
+ "@context": [
1669
+ "https://schema.org",
1670
+ "https://w3id.org/gaia-x/development",
1671
+ "https://schema.twindev.org/federated-catalogue/"
1672
+ ],
1673
+ "id": "https://my-ds-connectors.example.org/ds-connector-ABCD",
1674
+ "type": [
1675
+ "DataExchangeComponent",
1676
+ "DataSpaceConnector"
1677
+ ],
1678
+ "identity": "did:iota:testnet:123456",
1679
+ "defaultEndpoint": {
1680
+ "type": "Endpoint",
1681
+ "endpointURL": "https://my-twin-node.example.org:9000/twin-ds-connector"
1682
+ },
1683
+ "subscriptionActivityEndpoint": {
1684
+ "type": "Endpoint",
1685
+ "endpointURL": "/subscriptions"
1686
+ },
1687
+ "pushActivityEndpoint": {
1688
+ "type": "Endpoint",
1689
+ "endpointURL": "/notify"
1690
+ },
1691
+ "pullDataEndpoint": {
1692
+ "type": "Endpoint",
1693
+ "endpointURL": "/data"
1694
+ },
1695
+ "maintainer": "did:iota:99999",
1696
+ "offeredResource": [
1697
+ "https://my-data-resource.example.org"
1698
+ ],
1699
+ "issuer": "did:iota:987654",
1700
+ "validFrom": "2024-08-01T12:00:00Z",
1701
+ "validUntil": "2025-08-01T12:00:00Z",
1702
+ "dateCreated": "2024-08-02T13:45:00Z",
1703
+ "evidence": [
1704
+ "https://credentials.example.org/1234567"
1705
+ ]
1706
+ }
1707
+ }
1708
+ }
1709
+ }
1710
+ }
1711
+ },
1712
+ "400": {
1713
+ "description": "The server cannot process the request, see the content for more details.",
1714
+ "content": {
1715
+ "application/json": {
1716
+ "schema": {
1717
+ "$ref": "#/components/schemas/Error"
1718
+ },
1719
+ "examples": {
1720
+ "exampleResponse": {
1721
+ "value": {
1722
+ "name": "GeneralError",
1723
+ "message": "component.error",
1724
+ "properties": {
1725
+ "foo": "bar"
1726
+ }
1727
+ }
1728
+ }
1729
+ }
1730
+ }
1731
+ }
1732
+ },
1733
+ "401": {
1734
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
1735
+ "content": {
1736
+ "application/json": {
1737
+ "schema": {
1738
+ "$ref": "#/components/schemas/Error"
1739
+ },
1740
+ "examples": {
1741
+ "exampleResponse": {
1742
+ "value": {
1743
+ "name": "UnauthorizedError",
1744
+ "message": "component.error"
1745
+ }
1746
+ }
1747
+ }
1748
+ }
1749
+ }
1750
+ },
1751
+ "500": {
1752
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
1753
+ "content": {
1754
+ "application/json": {
1755
+ "schema": {
1756
+ "$ref": "#/components/schemas/Error"
1757
+ },
1758
+ "examples": {
1759
+ "exampleResponse": {
1760
+ "value": {
1761
+ "name": "InternalServerError",
1762
+ "message": "component.error"
1763
+ }
1764
+ }
1765
+ }
1766
+ }
1767
+ }
1768
+ }
1769
+ }
1770
+ }
1771
+ }
1772
+ },
1773
+ "components": {
1774
+ "schemas": {
1775
+ "CompliancePresentationRequest": {
1776
+ "type": "string",
1777
+ "description": "The data to be used in the create."
1778
+ },
1779
+ "DataResourceEntry": {
1780
+ "type": "object",
1781
+ "properties": {
1782
+ "producedBy": {
1783
+ "type": "string",
1784
+ "description": "Overwriting producedBy as we only store the identifier"
1785
+ },
1786
+ "copyrightOwnedBy": {
1787
+ "type": "string",
1788
+ "description": "Overwriting copyrightOwnedBy as we only store the identifier"
1789
+ },
1790
+ "exposedThrough": {
1791
+ "type": "string",
1792
+ "description": "Overwriting exposedThrough as we only store the id of the Data Exchange Component"
1793
+ },
1794
+ "resourcePolicy": {
1795
+ "type": "array",
1796
+ "description": "Overwriting to ensure always an array is stored",
1797
+ "prefixItems": [
1798
+ {
1799
+ "$ref": "https://schema.twindev.org/odrl/OdrlPolicy"
1800
+ }
1801
+ ]
1802
+ },
1803
+ "issuer": {
1804
+ "type": "string",
1805
+ "description": "The trusted issuer of the compliance credential"
1806
+ },
1807
+ "validFrom": {
1808
+ "type": "string",
1809
+ "description": "Valid from (as per W3C VC Data Model v2)"
1810
+ },
1811
+ "validUntil": {
1812
+ "type": "string",
1813
+ "description": "Valid until (as per W3C VC Data Model v2)"
1814
+ },
1815
+ "dateCreated": {
1816
+ "type": "string",
1817
+ "description": "The creation date."
1818
+ },
1819
+ "evidence": {
1820
+ "type": "array",
1821
+ "description": "The evidences concerning the data resource.",
1822
+ "prefixItems": [
1823
+ {
1824
+ "type": "string"
1825
+ }
1826
+ ]
1827
+ },
1828
+ "id": {
1829
+ "type": "string",
1830
+ "description": "Subject Id"
1831
+ },
1832
+ "type": {
1833
+ "type": "string",
1834
+ "const": "DataResource",
1835
+ "description": "Subject type"
1836
+ },
1837
+ "description": {
1838
+ "type": "string",
1839
+ "description": "Description"
1840
+ },
1841
+ "name": {
1842
+ "type": "string",
1843
+ "description": "The Resource Name"
1844
+ },
1845
+ "license": {
1846
+ "type": "string",
1847
+ "description": "Pointer (URL) to the license"
1848
+ },
1849
+ "@id": {
1850
+ "anyOf": [
1851
+ {
1852
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
1853
+ },
1854
+ {
1855
+ "type": "array",
1856
+ "prefixItems": [
1857
+ {
1858
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
1859
+ }
1860
+ ]
1861
+ },
1862
+ {
1863
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
1864
+ },
1865
+ {
1866
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
1867
+ },
1868
+ {
1869
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
1870
+ },
1871
+ {
1872
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
1873
+ },
1874
+ {
1875
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
1876
+ }
1877
+ ]
1878
+ },
1879
+ "@included": {
1880
+ "anyOf": [
1881
+ {
1882
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
1883
+ },
1884
+ {
1885
+ "type": "array",
1886
+ "prefixItems": [
1887
+ {
1888
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
1889
+ }
1890
+ ]
1891
+ },
1892
+ {
1893
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
1894
+ },
1895
+ {
1896
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
1897
+ },
1898
+ {
1899
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
1900
+ },
1901
+ {
1902
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
1903
+ },
1904
+ {
1905
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
1906
+ }
1907
+ ]
1908
+ },
1909
+ "@graph": {
1910
+ "anyOf": [
1911
+ {
1912
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
1913
+ },
1914
+ {
1915
+ "type": "array",
1916
+ "prefixItems": [
1917
+ {
1918
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
1919
+ }
1920
+ ]
1921
+ },
1922
+ {
1923
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
1924
+ },
1925
+ {
1926
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
1927
+ },
1928
+ {
1929
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
1930
+ },
1931
+ {
1932
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
1933
+ },
1934
+ {
1935
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
1936
+ }
1937
+ ]
1938
+ },
1939
+ "@nest": {
1940
+ "anyOf": [
1941
+ {
1942
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
1943
+ },
1944
+ {
1945
+ "type": "array",
1946
+ "prefixItems": [
1947
+ {
1948
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
1949
+ }
1950
+ ]
1951
+ },
1952
+ {
1953
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
1954
+ },
1955
+ {
1956
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
1957
+ },
1958
+ {
1959
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
1960
+ },
1961
+ {
1962
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
1963
+ },
1964
+ {
1965
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
1966
+ }
1967
+ ]
1968
+ },
1969
+ "@type": {
1970
+ "anyOf": [
1971
+ {
1972
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
1973
+ },
1974
+ {
1975
+ "type": "array",
1976
+ "prefixItems": [
1977
+ {
1978
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
1979
+ }
1980
+ ]
1981
+ },
1982
+ {
1983
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
1984
+ },
1985
+ {
1986
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
1987
+ },
1988
+ {
1989
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
1990
+ },
1991
+ {
1992
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
1993
+ },
1994
+ {
1995
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
1996
+ }
1997
+ ]
1998
+ },
1999
+ "@reverse": {
2000
+ "anyOf": [
2001
+ {
2002
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2003
+ },
2004
+ {
2005
+ "type": "array",
2006
+ "prefixItems": [
2007
+ {
2008
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2009
+ }
2010
+ ]
2011
+ },
2012
+ {
2013
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2014
+ },
2015
+ {
2016
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2017
+ },
2018
+ {
2019
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2020
+ },
2021
+ {
2022
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2023
+ },
2024
+ {
2025
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2026
+ }
2027
+ ]
2028
+ },
2029
+ "@index": {
2030
+ "anyOf": [
2031
+ {
2032
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2033
+ },
2034
+ {
2035
+ "type": "array",
2036
+ "prefixItems": [
2037
+ {
2038
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2039
+ }
2040
+ ]
2041
+ },
2042
+ {
2043
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2044
+ },
2045
+ {
2046
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2047
+ },
2048
+ {
2049
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2050
+ },
2051
+ {
2052
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2053
+ },
2054
+ {
2055
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2056
+ }
2057
+ ]
2058
+ }
2059
+ },
2060
+ "required": [
2061
+ "producedBy",
2062
+ "copyrightOwnedBy",
2063
+ "exposedThrough",
2064
+ "resourcePolicy",
2065
+ "issuer",
2066
+ "validFrom",
2067
+ "validUntil",
2068
+ "dateCreated",
2069
+ "evidence",
2070
+ "id",
2071
+ "type",
2072
+ "name",
2073
+ "license",
2074
+ "@id",
2075
+ "@included",
2076
+ "@graph",
2077
+ "@nest",
2078
+ "@type",
2079
+ "@reverse",
2080
+ "@index"
2081
+ ],
2082
+ "additionalProperties": false
2083
+ },
2084
+ "DataResourceList": {
2085
+ "type": "object",
2086
+ "properties": {
2087
+ "@context": {
2088
+ "$ref": "#/components/schemas/FederatedCatalogueContextType"
2089
+ },
2090
+ "type": {
2091
+ "type": "string",
2092
+ "const": "ItemList",
2093
+ "description": "The type"
2094
+ },
2095
+ "itemListElement": {
2096
+ "type": "array",
2097
+ "description": "The components of the Collection",
2098
+ "prefixItems": [
2099
+ {
2100
+ "$ref": "#/components/schemas/DataResourceEntry"
2101
+ }
2102
+ ]
2103
+ },
2104
+ "nextItem": {
2105
+ "type": "string",
2106
+ "description": "Next item cursor."
2107
+ }
2108
+ },
2109
+ "required": [
2110
+ "@context",
2111
+ "type",
2112
+ "itemListElement"
2113
+ ],
2114
+ "additionalProperties": false,
2115
+ "description": "Interface describing a list of Data Resource entries."
2116
+ },
2117
+ "DataSpaceConnectorEntry": {
2118
+ "type": "object",
2119
+ "properties": {
2120
+ "offeredResource": {
2121
+ "type": "array",
2122
+ "description": "Offered resources. Probably in the future this wll be separated in a different entry so that a Data Space Connector entry does not need to be modified when a new Data Resource is offered.",
2123
+ "prefixItems": [
2124
+ {
2125
+ "type": "string"
2126
+ }
2127
+ ]
2128
+ },
2129
+ "id": {
2130
+ "type": "string",
2131
+ "description": "A unique identifier given to this Data Space Connector."
2132
+ },
2133
+ "type": {
2134
+ "type": "array",
2135
+ "minItems": 2,
2136
+ "description": "A Connector is a Data Exchange Component",
2137
+ "prefixItems": [
2138
+ {
2139
+ "type": "string",
2140
+ "const": "DataExchangeComponent"
2141
+ },
2142
+ {
2143
+ "type": "string",
2144
+ "const": "DataSpaceConnector"
2145
+ }
2146
+ ],
2147
+ "items": {
2148
+ "type": "string"
2149
+ }
2150
+ },
2151
+ "identity": {
2152
+ "type": "string",
2153
+ "description": "Connector's Identity that allows to know public key of this Connector."
2154
+ },
2155
+ "maintainer": {
2156
+ "type": "string",
2157
+ "description": "Who maintains this Data Space Connector."
2158
+ },
2159
+ "name": {
2160
+ "type": "string",
2161
+ "description": "The name of this Data Space Connector"
2162
+ },
2163
+ "description": {
2164
+ "type": "string",
2165
+ "description": "A description of this Data Space Connector"
2166
+ },
2167
+ "defaultEndpoint": {
2168
+ "$ref": "https://schema.twindev.org/gaia-x/Endpoint"
2169
+ },
2170
+ "subscriptionActivityEndpoint": {
2171
+ "$ref": "https://schema.twindev.org/gaia-x/Endpoint"
2172
+ },
2173
+ "pushActivityEndpoint": {
2174
+ "$ref": "https://schema.twindev.org/gaia-x/Endpoint"
2175
+ },
2176
+ "pullDataEndpoint": {
2177
+ "$ref": "https://schema.twindev.org/gaia-x/Endpoint"
2178
+ },
2179
+ "@id": {
2180
+ "anyOf": [
2181
+ {
2182
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2183
+ },
2184
+ {
2185
+ "type": "array",
2186
+ "prefixItems": [
2187
+ {
2188
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2189
+ }
2190
+ ]
2191
+ },
2192
+ {
2193
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2194
+ },
2195
+ {
2196
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2197
+ },
2198
+ {
2199
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2200
+ },
2201
+ {
2202
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2203
+ },
2204
+ {
2205
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2206
+ }
2207
+ ]
2208
+ },
2209
+ "@included": {
2210
+ "anyOf": [
2211
+ {
2212
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2213
+ },
2214
+ {
2215
+ "type": "array",
2216
+ "prefixItems": [
2217
+ {
2218
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2219
+ }
2220
+ ]
2221
+ },
2222
+ {
2223
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2224
+ },
2225
+ {
2226
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2227
+ },
2228
+ {
2229
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2230
+ },
2231
+ {
2232
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2233
+ },
2234
+ {
2235
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2236
+ }
2237
+ ]
2238
+ },
2239
+ "@graph": {
2240
+ "anyOf": [
2241
+ {
2242
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2243
+ },
2244
+ {
2245
+ "type": "array",
2246
+ "prefixItems": [
2247
+ {
2248
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2249
+ }
2250
+ ]
2251
+ },
2252
+ {
2253
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2254
+ },
2255
+ {
2256
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2257
+ },
2258
+ {
2259
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2260
+ },
2261
+ {
2262
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2263
+ },
2264
+ {
2265
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2266
+ }
2267
+ ]
2268
+ },
2269
+ "@nest": {
2270
+ "anyOf": [
2271
+ {
2272
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2273
+ },
2274
+ {
2275
+ "type": "array",
2276
+ "prefixItems": [
2277
+ {
2278
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2279
+ }
2280
+ ]
2281
+ },
2282
+ {
2283
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2284
+ },
2285
+ {
2286
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2287
+ },
2288
+ {
2289
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2290
+ },
2291
+ {
2292
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2293
+ },
2294
+ {
2295
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2296
+ }
2297
+ ]
2298
+ },
2299
+ "@type": {
2300
+ "anyOf": [
2301
+ {
2302
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2303
+ },
2304
+ {
2305
+ "type": "array",
2306
+ "prefixItems": [
2307
+ {
2308
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2309
+ }
2310
+ ]
2311
+ },
2312
+ {
2313
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2314
+ },
2315
+ {
2316
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2317
+ },
2318
+ {
2319
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2320
+ },
2321
+ {
2322
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2323
+ },
2324
+ {
2325
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2326
+ }
2327
+ ]
2328
+ },
2329
+ "@reverse": {
2330
+ "anyOf": [
2331
+ {
2332
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2333
+ },
2334
+ {
2335
+ "type": "array",
2336
+ "prefixItems": [
2337
+ {
2338
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2339
+ }
2340
+ ]
2341
+ },
2342
+ {
2343
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2344
+ },
2345
+ {
2346
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2347
+ },
2348
+ {
2349
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2350
+ },
2351
+ {
2352
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2353
+ },
2354
+ {
2355
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2356
+ }
2357
+ ]
2358
+ },
2359
+ "@index": {
2360
+ "anyOf": [
2361
+ {
2362
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2363
+ },
2364
+ {
2365
+ "type": "array",
2366
+ "prefixItems": [
2367
+ {
2368
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2369
+ }
2370
+ ]
2371
+ },
2372
+ {
2373
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2374
+ },
2375
+ {
2376
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2377
+ },
2378
+ {
2379
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2380
+ },
2381
+ {
2382
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2383
+ },
2384
+ {
2385
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2386
+ }
2387
+ ]
2388
+ },
2389
+ "issuer": {
2390
+ "anyOf": [
2391
+ {
2392
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2393
+ },
2394
+ {
2395
+ "type": "array",
2396
+ "prefixItems": [
2397
+ {
2398
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2399
+ }
2400
+ ]
2401
+ },
2402
+ {
2403
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2404
+ },
2405
+ {
2406
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2407
+ },
2408
+ {
2409
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2410
+ },
2411
+ {
2412
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2413
+ },
2414
+ {
2415
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2416
+ }
2417
+ ]
2418
+ },
2419
+ "validFrom": {
2420
+ "anyOf": [
2421
+ {
2422
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2423
+ },
2424
+ {
2425
+ "type": "array",
2426
+ "prefixItems": [
2427
+ {
2428
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2429
+ }
2430
+ ]
2431
+ },
2432
+ {
2433
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2434
+ },
2435
+ {
2436
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2437
+ },
2438
+ {
2439
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2440
+ },
2441
+ {
2442
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2443
+ },
2444
+ {
2445
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2446
+ }
2447
+ ]
2448
+ },
2449
+ "validUntil": {
2450
+ "anyOf": [
2451
+ {
2452
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2453
+ },
2454
+ {
2455
+ "type": "array",
2456
+ "prefixItems": [
2457
+ {
2458
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2459
+ }
2460
+ ]
2461
+ },
2462
+ {
2463
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2464
+ },
2465
+ {
2466
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2467
+ },
2468
+ {
2469
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2470
+ },
2471
+ {
2472
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2473
+ },
2474
+ {
2475
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2476
+ }
2477
+ ]
2478
+ },
2479
+ "dateCreated": {
2480
+ "anyOf": [
2481
+ {
2482
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2483
+ },
2484
+ {
2485
+ "type": "array",
2486
+ "prefixItems": [
2487
+ {
2488
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2489
+ }
2490
+ ]
2491
+ },
2492
+ {
2493
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2494
+ },
2495
+ {
2496
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2497
+ },
2498
+ {
2499
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2500
+ },
2501
+ {
2502
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2503
+ },
2504
+ {
2505
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2506
+ }
2507
+ ]
2508
+ },
2509
+ "evidence": {
2510
+ "anyOf": [
2511
+ {
2512
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2513
+ },
2514
+ {
2515
+ "type": "array",
2516
+ "prefixItems": [
2517
+ {
2518
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2519
+ }
2520
+ ]
2521
+ },
2522
+ {
2523
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2524
+ },
2525
+ {
2526
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2527
+ },
2528
+ {
2529
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2530
+ },
2531
+ {
2532
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2533
+ },
2534
+ {
2535
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2536
+ }
2537
+ ]
2538
+ }
2539
+ },
2540
+ "required": [
2541
+ "offeredResource",
2542
+ "id",
2543
+ "type",
2544
+ "identity",
2545
+ "maintainer",
2546
+ "defaultEndpoint",
2547
+ "pushActivityEndpoint",
2548
+ "pullDataEndpoint",
2549
+ "@id",
2550
+ "@included",
2551
+ "@graph",
2552
+ "@nest",
2553
+ "@type",
2554
+ "@reverse",
2555
+ "@index",
2556
+ "issuer",
2557
+ "validFrom",
2558
+ "validUntil",
2559
+ "dateCreated",
2560
+ "evidence"
2561
+ ],
2562
+ "additionalProperties": false
2563
+ },
2564
+ "DataSpaceConnectorList": {
2565
+ "type": "object",
2566
+ "properties": {
2567
+ "@context": {
2568
+ "$ref": "#/components/schemas/FederatedCatalogueContextType"
2569
+ },
2570
+ "type": {
2571
+ "type": "string",
2572
+ "const": "ItemList",
2573
+ "description": "The type"
2574
+ },
2575
+ "itemListElement": {
2576
+ "type": "array",
2577
+ "description": "The components of the Collection",
2578
+ "prefixItems": [
2579
+ {
2580
+ "$ref": "#/components/schemas/DataSpaceConnectorEntry"
2581
+ }
2582
+ ]
2583
+ },
2584
+ "nextItem": {
2585
+ "type": "string",
2586
+ "description": "Next item cursor."
2587
+ }
2588
+ },
2589
+ "required": [
2590
+ "@context",
2591
+ "type",
2592
+ "itemListElement"
2593
+ ],
2594
+ "additionalProperties": false,
2595
+ "description": "Interface describing a list of Data Space Connectors."
2596
+ },
2597
+ "Error": {
2598
+ "type": "object",
2599
+ "properties": {
2600
+ "name": {
2601
+ "type": "string",
2602
+ "description": "The name for the error."
2603
+ },
2604
+ "message": {
2605
+ "type": "string",
2606
+ "description": "The message for the error."
2607
+ },
2608
+ "source": {
2609
+ "type": "string",
2610
+ "description": "The source of the error."
2611
+ },
2612
+ "properties": {
2613
+ "type": "object",
2614
+ "additionalProperties": {},
2615
+ "description": "Any additional information for the error."
2616
+ },
2617
+ "stack": {
2618
+ "type": "string",
2619
+ "description": "The stack trace for the error."
2620
+ },
2621
+ "inner": {
2622
+ "$ref": "#/components/schemas/Error"
2623
+ }
2624
+ },
2625
+ "required": [
2626
+ "name",
2627
+ "message"
2628
+ ],
2629
+ "additionalProperties": false,
2630
+ "description": "Model to describe serialized error."
2631
+ },
2632
+ "FederatedCatalogueContextType": {
2633
+ "type": "array",
2634
+ "minItems": 3,
2635
+ "maxItems": 3,
2636
+ "description": "Type that defines the LD Context for the Federated Catalogue entities and entries.",
2637
+ "prefixItems": [
2638
+ {
2639
+ "type": "string",
2640
+ "const": "https://schema.org"
2641
+ },
2642
+ {
2643
+ "type": "string",
2644
+ "const": "https://w3id.org/gaia-x/development"
2645
+ },
2646
+ {
2647
+ "type": "string",
2648
+ "const": "https://schema.twindev.org/federated-catalogue/"
2649
+ }
2650
+ ]
2651
+ },
2652
+ "ParticipantEntry": {
2653
+ "type": "object",
2654
+ "properties": {
2655
+ "id": {
2656
+ "type": "string",
2657
+ "description": "The participant Id."
2658
+ },
2659
+ "type": {
2660
+ "type": "string",
2661
+ "const": "LegalPerson",
2662
+ "description": "JSON-LD type."
2663
+ },
2664
+ "registrationNumber": {
2665
+ "$ref": "https://schema.twindev.org/gaia-x/RegistrationNumber"
2666
+ },
2667
+ "legalName": {
2668
+ "type": "string",
2669
+ "description": "The legal name."
2670
+ },
2671
+ "legalAddress": {
2672
+ "$ref": "https://schema.twindev.org/gaia-x/Address"
2673
+ },
2674
+ "@id": {
2675
+ "anyOf": [
2676
+ {
2677
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2678
+ },
2679
+ {
2680
+ "type": "array",
2681
+ "prefixItems": [
2682
+ {
2683
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2684
+ }
2685
+ ]
2686
+ },
2687
+ {
2688
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2689
+ },
2690
+ {
2691
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2692
+ },
2693
+ {
2694
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2695
+ },
2696
+ {
2697
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2698
+ },
2699
+ {
2700
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2701
+ }
2702
+ ]
2703
+ },
2704
+ "@included": {
2705
+ "anyOf": [
2706
+ {
2707
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2708
+ },
2709
+ {
2710
+ "type": "array",
2711
+ "prefixItems": [
2712
+ {
2713
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2714
+ }
2715
+ ]
2716
+ },
2717
+ {
2718
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2719
+ },
2720
+ {
2721
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2722
+ },
2723
+ {
2724
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2725
+ },
2726
+ {
2727
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2728
+ },
2729
+ {
2730
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2731
+ }
2732
+ ]
2733
+ },
2734
+ "@graph": {
2735
+ "anyOf": [
2736
+ {
2737
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2738
+ },
2739
+ {
2740
+ "type": "array",
2741
+ "prefixItems": [
2742
+ {
2743
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2744
+ }
2745
+ ]
2746
+ },
2747
+ {
2748
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2749
+ },
2750
+ {
2751
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2752
+ },
2753
+ {
2754
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2755
+ },
2756
+ {
2757
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2758
+ },
2759
+ {
2760
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2761
+ }
2762
+ ]
2763
+ },
2764
+ "@nest": {
2765
+ "anyOf": [
2766
+ {
2767
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2768
+ },
2769
+ {
2770
+ "type": "array",
2771
+ "prefixItems": [
2772
+ {
2773
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2774
+ }
2775
+ ]
2776
+ },
2777
+ {
2778
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2779
+ },
2780
+ {
2781
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2782
+ },
2783
+ {
2784
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2785
+ },
2786
+ {
2787
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2788
+ },
2789
+ {
2790
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2791
+ }
2792
+ ]
2793
+ },
2794
+ "@type": {
2795
+ "anyOf": [
2796
+ {
2797
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2798
+ },
2799
+ {
2800
+ "type": "array",
2801
+ "prefixItems": [
2802
+ {
2803
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2804
+ }
2805
+ ]
2806
+ },
2807
+ {
2808
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2809
+ },
2810
+ {
2811
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2812
+ },
2813
+ {
2814
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2815
+ },
2816
+ {
2817
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2818
+ },
2819
+ {
2820
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2821
+ }
2822
+ ]
2823
+ },
2824
+ "@reverse": {
2825
+ "anyOf": [
2826
+ {
2827
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2828
+ },
2829
+ {
2830
+ "type": "array",
2831
+ "prefixItems": [
2832
+ {
2833
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2834
+ }
2835
+ ]
2836
+ },
2837
+ {
2838
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2839
+ },
2840
+ {
2841
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2842
+ },
2843
+ {
2844
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2845
+ },
2846
+ {
2847
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2848
+ },
2849
+ {
2850
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2851
+ }
2852
+ ]
2853
+ },
2854
+ "@index": {
2855
+ "anyOf": [
2856
+ {
2857
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2858
+ },
2859
+ {
2860
+ "type": "array",
2861
+ "prefixItems": [
2862
+ {
2863
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2864
+ }
2865
+ ]
2866
+ },
2867
+ {
2868
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2869
+ },
2870
+ {
2871
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2872
+ },
2873
+ {
2874
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2875
+ },
2876
+ {
2877
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2878
+ },
2879
+ {
2880
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2881
+ }
2882
+ ]
2883
+ },
2884
+ "issuer": {
2885
+ "anyOf": [
2886
+ {
2887
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2888
+ },
2889
+ {
2890
+ "type": "array",
2891
+ "prefixItems": [
2892
+ {
2893
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2894
+ }
2895
+ ]
2896
+ },
2897
+ {
2898
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2899
+ },
2900
+ {
2901
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2902
+ },
2903
+ {
2904
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2905
+ },
2906
+ {
2907
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2908
+ },
2909
+ {
2910
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2911
+ }
2912
+ ]
2913
+ },
2914
+ "validFrom": {
2915
+ "anyOf": [
2916
+ {
2917
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2918
+ },
2919
+ {
2920
+ "type": "array",
2921
+ "prefixItems": [
2922
+ {
2923
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2924
+ }
2925
+ ]
2926
+ },
2927
+ {
2928
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2929
+ },
2930
+ {
2931
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2932
+ },
2933
+ {
2934
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2935
+ },
2936
+ {
2937
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2938
+ },
2939
+ {
2940
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2941
+ }
2942
+ ]
2943
+ },
2944
+ "validUntil": {
2945
+ "anyOf": [
2946
+ {
2947
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2948
+ },
2949
+ {
2950
+ "type": "array",
2951
+ "prefixItems": [
2952
+ {
2953
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2954
+ }
2955
+ ]
2956
+ },
2957
+ {
2958
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2959
+ },
2960
+ {
2961
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2962
+ },
2963
+ {
2964
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2965
+ },
2966
+ {
2967
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2968
+ },
2969
+ {
2970
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
2971
+ }
2972
+ ]
2973
+ },
2974
+ "dateCreated": {
2975
+ "anyOf": [
2976
+ {
2977
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2978
+ },
2979
+ {
2980
+ "type": "array",
2981
+ "prefixItems": [
2982
+ {
2983
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
2984
+ }
2985
+ ]
2986
+ },
2987
+ {
2988
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
2989
+ },
2990
+ {
2991
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
2992
+ },
2993
+ {
2994
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
2995
+ },
2996
+ {
2997
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
2998
+ },
2999
+ {
3000
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
3001
+ }
3002
+ ]
3003
+ },
3004
+ "evidence": {
3005
+ "anyOf": [
3006
+ {
3007
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
3008
+ },
3009
+ {
3010
+ "type": "array",
3011
+ "prefixItems": [
3012
+ {
3013
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
3014
+ }
3015
+ ]
3016
+ },
3017
+ {
3018
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
3019
+ },
3020
+ {
3021
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
3022
+ },
3023
+ {
3024
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
3025
+ },
3026
+ {
3027
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
3028
+ },
3029
+ {
3030
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
3031
+ }
3032
+ ]
3033
+ }
3034
+ },
3035
+ "required": [
3036
+ "id",
3037
+ "type",
3038
+ "registrationNumber",
3039
+ "legalName",
3040
+ "legalAddress",
3041
+ "@id",
3042
+ "@included",
3043
+ "@graph",
3044
+ "@nest",
3045
+ "@type",
3046
+ "@reverse",
3047
+ "@index",
3048
+ "issuer",
3049
+ "validFrom",
3050
+ "validUntil",
3051
+ "dateCreated",
3052
+ "evidence"
3053
+ ],
3054
+ "additionalProperties": false
3055
+ },
3056
+ "ParticipantList": {
3057
+ "type": "object",
3058
+ "properties": {
3059
+ "@context": {
3060
+ "$ref": "#/components/schemas/FederatedCatalogueContextType"
3061
+ },
3062
+ "type": {
3063
+ "type": "string",
3064
+ "const": "ItemList",
3065
+ "description": "The type"
3066
+ },
3067
+ "itemListElement": {
3068
+ "type": "array",
3069
+ "description": "The components of the Collection",
3070
+ "prefixItems": [
3071
+ {
3072
+ "$ref": "#/components/schemas/ParticipantEntry"
3073
+ }
3074
+ ]
3075
+ },
3076
+ "nextItem": {
3077
+ "type": "string",
3078
+ "description": "Next item cursor."
3079
+ }
3080
+ },
3081
+ "required": [
3082
+ "@context",
3083
+ "type",
3084
+ "itemListElement"
3085
+ ],
3086
+ "additionalProperties": false,
3087
+ "description": "Interface describing a participant entry list."
3088
+ },
3089
+ "ServiceOfferingEntry": {
3090
+ "type": "object",
3091
+ "properties": {
3092
+ "providedBy": {
3093
+ "type": "string",
3094
+ "description": "Overwrites providedBy as we only store identifier as string"
3095
+ },
3096
+ "aggregationOfResources": {
3097
+ "type": "array",
3098
+ "description": "Overwrites aggregationOfResources as we only store identifier as string",
3099
+ "prefixItems": [
3100
+ {
3101
+ "type": "string"
3102
+ }
3103
+ ]
3104
+ },
3105
+ "servicePolicy": {
3106
+ "type": "array",
3107
+ "description": "The service policy is always stored as an array",
3108
+ "prefixItems": [
3109
+ {
3110
+ "$ref": "https://schema.twindev.org/odrl/OdrlPolicy"
3111
+ }
3112
+ ]
3113
+ },
3114
+ "issuer": {
3115
+ "type": "string",
3116
+ "description": "The trusted issuer of the compliance credential"
3117
+ },
3118
+ "validFrom": {
3119
+ "type": "string",
3120
+ "description": "Valid from (as per W3C VC Data Model v2)"
3121
+ },
3122
+ "validUntil": {
3123
+ "type": "string",
3124
+ "description": "Valid until (as per W3C VC Data Model v2)"
3125
+ },
3126
+ "dateCreated": {
3127
+ "type": "string",
3128
+ "description": "The creation date."
3129
+ },
3130
+ "evidence": {
3131
+ "type": "array",
3132
+ "description": "The evidences concerning the data resource.",
3133
+ "prefixItems": [
3134
+ {
3135
+ "type": "string"
3136
+ }
3137
+ ]
3138
+ },
3139
+ "id": {
3140
+ "type": "string",
3141
+ "description": "Id"
3142
+ },
3143
+ "type": {
3144
+ "type": "string",
3145
+ "const": "ServiceOffering",
3146
+ "description": "Type"
3147
+ },
3148
+ "description": {
3149
+ "type": "string",
3150
+ "description": "Description"
3151
+ },
3152
+ "name": {
3153
+ "type": "string",
3154
+ "description": "Name"
3155
+ },
3156
+ "endpoint": {
3157
+ "$ref": "https://schema.twindev.org/gaia-x/Endpoint"
3158
+ },
3159
+ "@id": {
3160
+ "anyOf": [
3161
+ {
3162
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
3163
+ },
3164
+ {
3165
+ "type": "array",
3166
+ "prefixItems": [
3167
+ {
3168
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
3169
+ }
3170
+ ]
3171
+ },
3172
+ {
3173
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
3174
+ },
3175
+ {
3176
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
3177
+ },
3178
+ {
3179
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
3180
+ },
3181
+ {
3182
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
3183
+ },
3184
+ {
3185
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
3186
+ }
3187
+ ]
3188
+ },
3189
+ "@included": {
3190
+ "anyOf": [
3191
+ {
3192
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
3193
+ },
3194
+ {
3195
+ "type": "array",
3196
+ "prefixItems": [
3197
+ {
3198
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
3199
+ }
3200
+ ]
3201
+ },
3202
+ {
3203
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
3204
+ },
3205
+ {
3206
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
3207
+ },
3208
+ {
3209
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
3210
+ },
3211
+ {
3212
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
3213
+ },
3214
+ {
3215
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
3216
+ }
3217
+ ]
3218
+ },
3219
+ "@graph": {
3220
+ "anyOf": [
3221
+ {
3222
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
3223
+ },
3224
+ {
3225
+ "type": "array",
3226
+ "prefixItems": [
3227
+ {
3228
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
3229
+ }
3230
+ ]
3231
+ },
3232
+ {
3233
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
3234
+ },
3235
+ {
3236
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
3237
+ },
3238
+ {
3239
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
3240
+ },
3241
+ {
3242
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
3243
+ },
3244
+ {
3245
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
3246
+ }
3247
+ ]
3248
+ },
3249
+ "@nest": {
3250
+ "anyOf": [
3251
+ {
3252
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
3253
+ },
3254
+ {
3255
+ "type": "array",
3256
+ "prefixItems": [
3257
+ {
3258
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
3259
+ }
3260
+ ]
3261
+ },
3262
+ {
3263
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
3264
+ },
3265
+ {
3266
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
3267
+ },
3268
+ {
3269
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
3270
+ },
3271
+ {
3272
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
3273
+ },
3274
+ {
3275
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
3276
+ }
3277
+ ]
3278
+ },
3279
+ "@type": {
3280
+ "anyOf": [
3281
+ {
3282
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
3283
+ },
3284
+ {
3285
+ "type": "array",
3286
+ "prefixItems": [
3287
+ {
3288
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
3289
+ }
3290
+ ]
3291
+ },
3292
+ {
3293
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
3294
+ },
3295
+ {
3296
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
3297
+ },
3298
+ {
3299
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
3300
+ },
3301
+ {
3302
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
3303
+ },
3304
+ {
3305
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
3306
+ }
3307
+ ]
3308
+ },
3309
+ "@reverse": {
3310
+ "anyOf": [
3311
+ {
3312
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
3313
+ },
3314
+ {
3315
+ "type": "array",
3316
+ "prefixItems": [
3317
+ {
3318
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
3319
+ }
3320
+ ]
3321
+ },
3322
+ {
3323
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
3324
+ },
3325
+ {
3326
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
3327
+ },
3328
+ {
3329
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
3330
+ },
3331
+ {
3332
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
3333
+ },
3334
+ {
3335
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
3336
+ }
3337
+ ]
3338
+ },
3339
+ "@index": {
3340
+ "anyOf": [
3341
+ {
3342
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
3343
+ },
3344
+ {
3345
+ "type": "array",
3346
+ "prefixItems": [
3347
+ {
3348
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdNodePrimitive"
3349
+ }
3350
+ ]
3351
+ },
3352
+ {
3353
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdLanguageMap"
3354
+ },
3355
+ {
3356
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIndexMap"
3357
+ },
3358
+ {
3359
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIncludedBlock"
3360
+ },
3361
+ {
3362
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdIdMap"
3363
+ },
3364
+ {
3365
+ "$ref": "https://schema.twindev.org/json-ld/JsonLdTypeMap"
3366
+ }
3367
+ ]
3368
+ }
3369
+ },
3370
+ "required": [
3371
+ "providedBy",
3372
+ "servicePolicy",
3373
+ "issuer",
3374
+ "validFrom",
3375
+ "validUntil",
3376
+ "dateCreated",
3377
+ "evidence",
3378
+ "id",
3379
+ "type",
3380
+ "name",
3381
+ "endpoint",
3382
+ "@id",
3383
+ "@included",
3384
+ "@graph",
3385
+ "@nest",
3386
+ "@type",
3387
+ "@reverse",
3388
+ "@index"
3389
+ ],
3390
+ "additionalProperties": false
3391
+ },
3392
+ "ServiceOfferingList": {
3393
+ "type": "object",
3394
+ "properties": {
3395
+ "@context": {
3396
+ "$ref": "#/components/schemas/FederatedCatalogueContextType"
3397
+ },
3398
+ "type": {
3399
+ "type": "string",
3400
+ "const": "ItemList",
3401
+ "description": "The type"
3402
+ },
3403
+ "itemListElement": {
3404
+ "type": "array",
3405
+ "description": "The components of the Collection",
3406
+ "prefixItems": [
3407
+ {
3408
+ "$ref": "#/components/schemas/ServiceOfferingEntry"
3409
+ }
3410
+ ]
3411
+ },
3412
+ "nextItem": {
3413
+ "type": "string",
3414
+ "description": "Next item cursor."
3415
+ }
3416
+ },
3417
+ "required": [
3418
+ "@context",
3419
+ "type",
3420
+ "itemListElement"
3421
+ ],
3422
+ "additionalProperties": false,
3423
+ "description": "Interface describing a list of Service Offering Entries."
3424
+ }
3425
+ },
3426
+ "securitySchemes": {
3427
+ "jwtBearerAuthScheme": {
3428
+ "type": "http",
3429
+ "scheme": "bearer",
3430
+ "bearerFormat": "JWT"
3431
+ }
3432
+ }
3433
+ }
3434
+ }