@twin.org/rights-management-service 0.0.1-next.3

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.
@@ -0,0 +1,3984 @@
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": "Policy Administration Point",
20
+ "description": "Endpoints for managing ODRL policies in the Policy Administration Point"
21
+ }
22
+ ],
23
+ "paths": {
24
+ "/rights-management/pap": {
25
+ "post": {
26
+ "operationId": "papStore",
27
+ "summary": "Store a policy",
28
+ "tags": [
29
+ "Policy Administration Point"
30
+ ],
31
+ "security": [
32
+ {
33
+ "jwtBearerAuthScheme": []
34
+ }
35
+ ],
36
+ "requestBody": {
37
+ "description": "The request structure for storing a policy.",
38
+ "required": true,
39
+ "content": {
40
+ "application/json": {
41
+ "schema": {
42
+ "$ref": "#/components/schemas/PapStoreRequest"
43
+ },
44
+ "examples": {
45
+ "papStoreExample": {
46
+ "value": {
47
+ "policy": {
48
+ "@context": "https://www.w3.org/ns/odrl.jsonld",
49
+ "@type": "Set",
50
+ "uid": "http://example.com/policy/1",
51
+ "permission": [
52
+ {
53
+ "target": "http://example.com/asset/1",
54
+ "action": "use"
55
+ }
56
+ ]
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
62
+ }
63
+ },
64
+ "responses": {
65
+ "201": {
66
+ "description": "The rest request ended in created response.",
67
+ "headers": {
68
+ "location": {
69
+ "schema": {
70
+ "type": "string"
71
+ },
72
+ "description": "e.g. http://example.com/policy/1"
73
+ }
74
+ }
75
+ },
76
+ "400": {
77
+ "description": "The server cannot process the request, see the content for more details.",
78
+ "content": {
79
+ "application/json": {
80
+ "schema": {
81
+ "$ref": "#/components/schemas/Error"
82
+ },
83
+ "examples": {
84
+ "exampleResponse": {
85
+ "value": {
86
+ "name": "GeneralError",
87
+ "message": "component.error",
88
+ "properties": {
89
+ "foo": "bar"
90
+ }
91
+ }
92
+ }
93
+ }
94
+ }
95
+ }
96
+ },
97
+ "401": {
98
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
99
+ "content": {
100
+ "application/json": {
101
+ "schema": {
102
+ "$ref": "#/components/schemas/Error"
103
+ },
104
+ "examples": {
105
+ "exampleResponse": {
106
+ "value": {
107
+ "name": "UnauthorizedError",
108
+ "message": "component.error"
109
+ }
110
+ }
111
+ }
112
+ }
113
+ }
114
+ },
115
+ "500": {
116
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
117
+ "content": {
118
+ "application/json": {
119
+ "schema": {
120
+ "$ref": "#/components/schemas/Error"
121
+ },
122
+ "examples": {
123
+ "exampleResponse": {
124
+ "value": {
125
+ "name": "InternalServerError",
126
+ "message": "component.error"
127
+ }
128
+ }
129
+ }
130
+ }
131
+ }
132
+ }
133
+ }
134
+ }
135
+ },
136
+ "/rights-management/pap/{id}": {
137
+ "get": {
138
+ "operationId": "papRetrieve",
139
+ "summary": "Retrieve a policy",
140
+ "tags": [
141
+ "Policy Administration Point"
142
+ ],
143
+ "parameters": [
144
+ {
145
+ "name": "id",
146
+ "description": "The ID of the policy to retrieve.",
147
+ "in": "path",
148
+ "required": true,
149
+ "schema": {
150
+ "type": "string"
151
+ },
152
+ "style": "simple",
153
+ "example": "http://example.com/policy/1"
154
+ }
155
+ ],
156
+ "security": [
157
+ {
158
+ "jwtBearerAuthScheme": []
159
+ }
160
+ ],
161
+ "responses": {
162
+ "200": {
163
+ "description": "The response structure for retrieving a policy.",
164
+ "content": {
165
+ "application/json": {
166
+ "schema": {
167
+ "$ref": "#/components/schemas/OdrlPolicy"
168
+ },
169
+ "examples": {
170
+ "papRetrieveResponseExample": {
171
+ "value": {
172
+ "@context": "https://www.w3.org/ns/odrl.jsonld",
173
+ "@type": "Set",
174
+ "uid": "http://example.com/policy/1",
175
+ "permission": [
176
+ {
177
+ "target": "http://example.com/asset/1",
178
+ "action": "use"
179
+ }
180
+ ]
181
+ }
182
+ }
183
+ }
184
+ }
185
+ }
186
+ },
187
+ "400": {
188
+ "description": "The server cannot process the request, 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": "GeneralError",
198
+ "message": "component.error",
199
+ "properties": {
200
+ "foo": "bar"
201
+ }
202
+ }
203
+ }
204
+ }
205
+ }
206
+ }
207
+ },
208
+ "401": {
209
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
210
+ "content": {
211
+ "application/json": {
212
+ "schema": {
213
+ "$ref": "#/components/schemas/Error"
214
+ },
215
+ "examples": {
216
+ "exampleResponse": {
217
+ "value": {
218
+ "name": "UnauthorizedError",
219
+ "message": "component.error"
220
+ }
221
+ }
222
+ }
223
+ }
224
+ }
225
+ },
226
+ "500": {
227
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
228
+ "content": {
229
+ "application/json": {
230
+ "schema": {
231
+ "$ref": "#/components/schemas/Error"
232
+ },
233
+ "examples": {
234
+ "exampleResponse": {
235
+ "value": {
236
+ "name": "InternalServerError",
237
+ "message": "component.error"
238
+ }
239
+ }
240
+ }
241
+ }
242
+ }
243
+ }
244
+ }
245
+ },
246
+ "delete": {
247
+ "operationId": "papRemove",
248
+ "summary": "Remove a policy",
249
+ "tags": [
250
+ "Policy Administration Point"
251
+ ],
252
+ "parameters": [
253
+ {
254
+ "name": "id",
255
+ "description": "The ID of the policy to remove.",
256
+ "in": "path",
257
+ "required": true,
258
+ "schema": {
259
+ "type": "string"
260
+ },
261
+ "style": "simple",
262
+ "example": "http://example.com/policy/1"
263
+ }
264
+ ],
265
+ "security": [
266
+ {
267
+ "jwtBearerAuthScheme": []
268
+ }
269
+ ],
270
+ "responses": {
271
+ "204": {
272
+ "description": "The rest request ended in success with no data."
273
+ },
274
+ "400": {
275
+ "description": "The server cannot process the request, see the content for more details.",
276
+ "content": {
277
+ "application/json": {
278
+ "schema": {
279
+ "$ref": "#/components/schemas/Error"
280
+ },
281
+ "examples": {
282
+ "exampleResponse": {
283
+ "value": {
284
+ "name": "GeneralError",
285
+ "message": "component.error",
286
+ "properties": {
287
+ "foo": "bar"
288
+ }
289
+ }
290
+ }
291
+ }
292
+ }
293
+ }
294
+ },
295
+ "401": {
296
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
297
+ "content": {
298
+ "application/json": {
299
+ "schema": {
300
+ "$ref": "#/components/schemas/Error"
301
+ },
302
+ "examples": {
303
+ "exampleResponse": {
304
+ "value": {
305
+ "name": "UnauthorizedError",
306
+ "message": "component.error"
307
+ }
308
+ }
309
+ }
310
+ }
311
+ }
312
+ },
313
+ "500": {
314
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
315
+ "content": {
316
+ "application/json": {
317
+ "schema": {
318
+ "$ref": "#/components/schemas/Error"
319
+ },
320
+ "examples": {
321
+ "exampleResponse": {
322
+ "value": {
323
+ "name": "InternalServerError",
324
+ "message": "component.error"
325
+ }
326
+ }
327
+ }
328
+ }
329
+ }
330
+ }
331
+ }
332
+ }
333
+ },
334
+ "/rights-management/pap/query": {
335
+ "post": {
336
+ "operationId": "papQuery",
337
+ "summary": "Query policies",
338
+ "tags": [
339
+ "Policy Administration Point"
340
+ ],
341
+ "parameters": [
342
+ {
343
+ "name": "conditions",
344
+ "description": "The condition for the query.",
345
+ "in": "query",
346
+ "required": false,
347
+ "schema": {
348
+ "type": "string"
349
+ }
350
+ },
351
+ {
352
+ "name": "pageSize",
353
+ "description": "The number of entries to return per page.",
354
+ "in": "query",
355
+ "required": false,
356
+ "schema": {
357
+ "type": "string"
358
+ }
359
+ },
360
+ {
361
+ "name": "cursor",
362
+ "description": "The cursor to get next chunk of data, returned in previous response.",
363
+ "in": "query",
364
+ "required": false,
365
+ "schema": {
366
+ "type": "string"
367
+ },
368
+ "example": "optional-pagination-cursor"
369
+ }
370
+ ],
371
+ "security": [
372
+ {
373
+ "jwtBearerAuthScheme": []
374
+ }
375
+ ],
376
+ "responses": {
377
+ "200": {
378
+ "description": "The response structure for querying policies.",
379
+ "content": {
380
+ "application/json": {
381
+ "schema": {
382
+ "$ref": "#/components/schemas/PapQueryResponse"
383
+ },
384
+ "examples": {
385
+ "papQueryResponseExample": {
386
+ "value": {
387
+ "cursor": "next-page-cursor",
388
+ "policies": [
389
+ {
390
+ "@context": "https://www.w3.org/ns/odrl.jsonld",
391
+ "@type": "Set",
392
+ "uid": "http://example.com/policy/1",
393
+ "permission": [
394
+ {
395
+ "target": "http://example.com/asset/1",
396
+ "action": "use"
397
+ }
398
+ ]
399
+ }
400
+ ]
401
+ }
402
+ }
403
+ }
404
+ }
405
+ }
406
+ },
407
+ "400": {
408
+ "description": "The server cannot process the request, 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": "GeneralError",
418
+ "message": "component.error",
419
+ "properties": {
420
+ "foo": "bar"
421
+ }
422
+ }
423
+ }
424
+ }
425
+ }
426
+ }
427
+ },
428
+ "401": {
429
+ "description": "You are not authorized to use the API or no credentials were supplied, see the content for more details.",
430
+ "content": {
431
+ "application/json": {
432
+ "schema": {
433
+ "$ref": "#/components/schemas/Error"
434
+ },
435
+ "examples": {
436
+ "exampleResponse": {
437
+ "value": {
438
+ "name": "UnauthorizedError",
439
+ "message": "component.error"
440
+ }
441
+ }
442
+ }
443
+ }
444
+ }
445
+ },
446
+ "500": {
447
+ "description": "The server has encountered a situation it does not know how to handle, see the content for more details.",
448
+ "content": {
449
+ "application/json": {
450
+ "schema": {
451
+ "$ref": "#/components/schemas/Error"
452
+ },
453
+ "examples": {
454
+ "exampleResponse": {
455
+ "value": {
456
+ "name": "InternalServerError",
457
+ "message": "component.error"
458
+ }
459
+ }
460
+ }
461
+ }
462
+ }
463
+ }
464
+ }
465
+ }
466
+ }
467
+ },
468
+ "components": {
469
+ "schemas": {
470
+ "ActionType": {
471
+ "anyOf": [
472
+ {
473
+ "type": "string",
474
+ "const": "use",
475
+ "description": "To use the Asset - actions that involve general usage by parties."
476
+ },
477
+ {
478
+ "type": "string",
479
+ "const": "transfer",
480
+ "description": "To transfer the ownership to third parties."
481
+ },
482
+ {
483
+ "type": "string",
484
+ "const": "acceptTracking",
485
+ "description": "To accept that the use of the Asset may be tracked."
486
+ },
487
+ {
488
+ "type": "string",
489
+ "const": "aggregate",
490
+ "description": "To use the Asset or parts of it as part of a composite collection."
491
+ },
492
+ {
493
+ "type": "string",
494
+ "const": "annotate",
495
+ "description": "To add explanatory notations/commentaries to the Asset without modifying the Asset in any other way."
496
+ },
497
+ {
498
+ "type": "string",
499
+ "const": "anonymize",
500
+ "description": "To anonymize all or parts of the Asset."
501
+ },
502
+ {
503
+ "type": "string",
504
+ "const": "archive",
505
+ "description": "To store the Asset (in a non-transient form)."
506
+ },
507
+ {
508
+ "type": "string",
509
+ "const": "attribute",
510
+ "description": "To attribute the use of the Asset."
511
+ },
512
+ {
513
+ "type": "string",
514
+ "const": "attribution",
515
+ "description": "Credit be given to copyright holder and/or author."
516
+ },
517
+ {
518
+ "type": "string",
519
+ "const": "commercialUse",
520
+ "description": "Exercising rights for commercial purposes."
521
+ },
522
+ {
523
+ "type": "string",
524
+ "const": "compensate",
525
+ "description": "To compensate by transfer of some amount of value for using or selling the Asset."
526
+ },
527
+ {
528
+ "type": "string",
529
+ "const": "concurrentUse",
530
+ "description": "To create multiple copies of the Asset that are being concurrently used."
531
+ },
532
+ {
533
+ "type": "string",
534
+ "const": "delete",
535
+ "description": "To permanently remove all copies of the Asset after it has been used."
536
+ },
537
+ {
538
+ "type": "string",
539
+ "const": "derive",
540
+ "description": "To create a new derivative Asset from this Asset and to edit or modify the derivative."
541
+ },
542
+ {
543
+ "type": "string",
544
+ "const": "derivativeWorks",
545
+ "description": "Distribution of derivative works."
546
+ },
547
+ {
548
+ "type": "string",
549
+ "const": "digitize",
550
+ "description": "To produce a digital copy of (or otherwise digitize) the Asset from its analogue form."
551
+ },
552
+ {
553
+ "type": "string",
554
+ "const": "display",
555
+ "description": "To create a static and transient rendition of an Asset."
556
+ },
557
+ {
558
+ "type": "string",
559
+ "const": "distribute",
560
+ "description": "To supply the Asset to third-parties."
561
+ },
562
+ {
563
+ "type": "string",
564
+ "const": "distribution",
565
+ "description": "Distribution, public display, and publicly performance."
566
+ },
567
+ {
568
+ "type": "string",
569
+ "const": "ensureExclusivity",
570
+ "description": "To ensure that the Rule on the Asset is exclusive."
571
+ },
572
+ {
573
+ "type": "string",
574
+ "const": "execute",
575
+ "description": "To run the computer program Asset."
576
+ },
577
+ {
578
+ "type": "string",
579
+ "const": "extract",
580
+ "description": "To extract parts of the Asset and to use it as a new Asset."
581
+ },
582
+ {
583
+ "type": "string",
584
+ "const": "give",
585
+ "description": "To transfer the ownership without compensation and while deleting the original asset."
586
+ },
587
+ {
588
+ "type": "string",
589
+ "const": "grantUse",
590
+ "description": "To grant the use of the Asset to third parties."
591
+ },
592
+ {
593
+ "type": "string",
594
+ "const": "include",
595
+ "description": "To include other related assets in the Asset."
596
+ },
597
+ {
598
+ "type": "string",
599
+ "const": "index",
600
+ "description": "To record the Asset in an index."
601
+ },
602
+ {
603
+ "type": "string",
604
+ "const": "inform",
605
+ "description": "To inform that an action has been performed on or in relation to the Asset."
606
+ },
607
+ {
608
+ "type": "string",
609
+ "const": "install",
610
+ "description": "To load the computer program Asset onto a storage device."
611
+ },
612
+ {
613
+ "type": "string",
614
+ "const": "modify",
615
+ "description": "To change existing content of the Asset without creating a new asset."
616
+ },
617
+ {
618
+ "type": "string",
619
+ "const": "move",
620
+ "description": "To move the Asset from one digital location to another including deleting the original copy."
621
+ },
622
+ {
623
+ "type": "string",
624
+ "const": "nextPolicy",
625
+ "description": "To grant the specified Policy to a third party for their use of the Asset."
626
+ },
627
+ {
628
+ "type": "string",
629
+ "const": "notice",
630
+ "description": "Copyright and license notices be kept intact."
631
+ },
632
+ {
633
+ "type": "string",
634
+ "const": "obtainConsent",
635
+ "description": "To obtain verifiable consent to perform the requested action."
636
+ },
637
+ {
638
+ "type": "string",
639
+ "const": "play",
640
+ "description": "To create a sequential and transient rendition of an Asset."
641
+ },
642
+ {
643
+ "type": "string",
644
+ "const": "present",
645
+ "description": "To publicly perform the Asset."
646
+ },
647
+ {
648
+ "type": "string",
649
+ "const": "print",
650
+ "description": "To create a tangible and permanent rendition of an Asset."
651
+ },
652
+ {
653
+ "type": "string",
654
+ "const": "read",
655
+ "description": "To obtain data from the Asset."
656
+ },
657
+ {
658
+ "type": "string",
659
+ "const": "reproduce",
660
+ "description": "To make duplicate copies of the Asset in any material form."
661
+ },
662
+ {
663
+ "type": "string",
664
+ "const": "reproduction",
665
+ "description": "Making multiple copies."
666
+ },
667
+ {
668
+ "type": "string",
669
+ "const": "reviewPolicy",
670
+ "description": "To review the Policy applicable to the Asset."
671
+ },
672
+ {
673
+ "type": "string",
674
+ "const": "sell",
675
+ "description": "To transfer the ownership with compensation and while deleting the original asset."
676
+ },
677
+ {
678
+ "type": "string",
679
+ "const": "shareAlike",
680
+ "description": "Derivative works be licensed under the same terms or compatible terms."
681
+ },
682
+ {
683
+ "type": "string",
684
+ "const": "sharing",
685
+ "description": "Permits commercial derivatives, but only non-commercial distribution."
686
+ },
687
+ {
688
+ "type": "string",
689
+ "const": "sourceCode",
690
+ "description": "Source code must be provided when exercising some rights."
691
+ },
692
+ {
693
+ "type": "string",
694
+ "const": "stream",
695
+ "description": "To deliver the Asset in real-time."
696
+ },
697
+ {
698
+ "type": "string",
699
+ "const": "synchronize",
700
+ "description": "To use the Asset in timed relations with media elements of another Asset."
701
+ },
702
+ {
703
+ "type": "string",
704
+ "const": "textToSpeech",
705
+ "description": "To have a text Asset read out loud."
706
+ },
707
+ {
708
+ "type": "string",
709
+ "const": "transform",
710
+ "description": "To convert the Asset into a different format."
711
+ },
712
+ {
713
+ "type": "string",
714
+ "const": "translate",
715
+ "description": "To translate the Asset into another natural language."
716
+ },
717
+ {
718
+ "type": "string",
719
+ "const": "uninstall",
720
+ "description": "To unload and delete the computer program Asset."
721
+ },
722
+ {
723
+ "type": "string",
724
+ "const": "watermark",
725
+ "description": "To apply a watermark to the Asset."
726
+ }
727
+ ],
728
+ "description": "The types for ODRL Actions."
729
+ },
730
+ "ConflictStrategyType": {
731
+ "anyOf": [
732
+ {
733
+ "type": "string",
734
+ "const": "perm",
735
+ "description": "Permission type."
736
+ },
737
+ {
738
+ "type": "string",
739
+ "const": "prohibit",
740
+ "description": "Prohibition type."
741
+ },
742
+ {
743
+ "type": "string",
744
+ "const": "invalid",
745
+ "description": "Invalid type."
746
+ }
747
+ ],
748
+ "description": "The types for ODRL Conflict Resolution Strategies."
749
+ },
750
+ "DataType": {
751
+ "anyOf": [
752
+ {
753
+ "type": "string",
754
+ "const": "xsd:string",
755
+ "description": "String type."
756
+ },
757
+ {
758
+ "type": "string",
759
+ "const": "xsd:boolean",
760
+ "description": "Boolean type."
761
+ },
762
+ {
763
+ "type": "string",
764
+ "const": "xsd:integer",
765
+ "description": "Integer type."
766
+ },
767
+ {
768
+ "type": "string",
769
+ "const": "xsd:decimal",
770
+ "description": "Decimal type."
771
+ },
772
+ {
773
+ "type": "string",
774
+ "const": "xsd:double",
775
+ "description": "Double type."
776
+ },
777
+ {
778
+ "type": "string",
779
+ "const": "xsd:date",
780
+ "description": "Date type."
781
+ },
782
+ {
783
+ "type": "string",
784
+ "const": "xsd:dateTime",
785
+ "description": "DateTime type."
786
+ }
787
+ ],
788
+ "description": "The types for ODRL Data Types."
789
+ },
790
+ "Error": {
791
+ "type": "object",
792
+ "properties": {
793
+ "name": {
794
+ "type": "string",
795
+ "description": "The name for the error."
796
+ },
797
+ "message": {
798
+ "type": "string",
799
+ "description": "The message for the error."
800
+ },
801
+ "source": {
802
+ "type": "string",
803
+ "description": "The source of the error."
804
+ },
805
+ "properties": {
806
+ "type": "object",
807
+ "additionalProperties": {},
808
+ "description": "Any additional information for the error."
809
+ },
810
+ "stack": {
811
+ "type": "string",
812
+ "description": "The stack trace for the error."
813
+ },
814
+ "inner": {
815
+ "$ref": "#/components/schemas/Error"
816
+ }
817
+ },
818
+ "required": [
819
+ "name",
820
+ "message"
821
+ ],
822
+ "additionalProperties": false,
823
+ "description": "Model to describe serialized error."
824
+ },
825
+ "JsonLdContainerType": {
826
+ "type": "string",
827
+ "enum": [
828
+ "@language",
829
+ "@index",
830
+ "@id",
831
+ "@graph",
832
+ "@type"
833
+ ],
834
+ "description": "Helper Types"
835
+ },
836
+ "JsonLdContainerTypeArray": {
837
+ "anyOf": [
838
+ {
839
+ "type": "array",
840
+ "minItems": 2,
841
+ "items": [
842
+ {
843
+ "type": "string",
844
+ "const": "@graph"
845
+ },
846
+ {
847
+ "type": "string",
848
+ "const": "@id"
849
+ }
850
+ ],
851
+ "maxItems": 2
852
+ },
853
+ {
854
+ "type": "array",
855
+ "minItems": 2,
856
+ "items": [
857
+ {
858
+ "type": "string",
859
+ "const": "@id"
860
+ },
861
+ {
862
+ "type": "string",
863
+ "const": "@graph"
864
+ }
865
+ ],
866
+ "maxItems": 2
867
+ },
868
+ {
869
+ "type": "array",
870
+ "minItems": 3,
871
+ "items": [
872
+ {
873
+ "type": "string",
874
+ "const": "@set"
875
+ },
876
+ {
877
+ "type": "string",
878
+ "const": "@graph"
879
+ },
880
+ {
881
+ "type": "string",
882
+ "const": "@id"
883
+ }
884
+ ],
885
+ "maxItems": 3
886
+ },
887
+ {
888
+ "type": "array",
889
+ "minItems": 3,
890
+ "items": [
891
+ {
892
+ "type": "string",
893
+ "const": "@set"
894
+ },
895
+ {
896
+ "type": "string",
897
+ "const": "@id"
898
+ },
899
+ {
900
+ "type": "string",
901
+ "const": "@graph"
902
+ }
903
+ ],
904
+ "maxItems": 3
905
+ },
906
+ {
907
+ "type": "array",
908
+ "minItems": 3,
909
+ "items": [
910
+ {
911
+ "type": "string",
912
+ "const": "@graph"
913
+ },
914
+ {
915
+ "type": "string",
916
+ "const": "@set"
917
+ },
918
+ {
919
+ "type": "string",
920
+ "const": "@id"
921
+ }
922
+ ],
923
+ "maxItems": 3
924
+ },
925
+ {
926
+ "type": "array",
927
+ "minItems": 3,
928
+ "items": [
929
+ {
930
+ "type": "string",
931
+ "const": "@id"
932
+ },
933
+ {
934
+ "type": "string",
935
+ "const": "@set"
936
+ },
937
+ {
938
+ "type": "string",
939
+ "const": "@graph"
940
+ }
941
+ ],
942
+ "maxItems": 3
943
+ },
944
+ {
945
+ "type": "array",
946
+ "minItems": 3,
947
+ "items": [
948
+ {
949
+ "type": "string",
950
+ "const": "@graph"
951
+ },
952
+ {
953
+ "type": "string",
954
+ "const": "@id"
955
+ },
956
+ {
957
+ "type": "string",
958
+ "const": "@set"
959
+ }
960
+ ],
961
+ "maxItems": 3
962
+ },
963
+ {
964
+ "type": "array",
965
+ "minItems": 3,
966
+ "items": [
967
+ {
968
+ "type": "string",
969
+ "const": "@id"
970
+ },
971
+ {
972
+ "type": "string",
973
+ "const": "@graph"
974
+ },
975
+ {
976
+ "type": "string",
977
+ "const": "@set"
978
+ }
979
+ ],
980
+ "maxItems": 3
981
+ },
982
+ {
983
+ "type": "array",
984
+ "minItems": 2,
985
+ "items": [
986
+ {
987
+ "type": "string",
988
+ "const": "@set"
989
+ },
990
+ {
991
+ "$ref": "#/components/schemas/JsonLdContainerType"
992
+ }
993
+ ],
994
+ "maxItems": 2
995
+ },
996
+ {
997
+ "type": "array",
998
+ "minItems": 2,
999
+ "items": [
1000
+ {
1001
+ "$ref": "#/components/schemas/JsonLdContainerType"
1002
+ },
1003
+ {
1004
+ "type": "string",
1005
+ "const": "@set"
1006
+ }
1007
+ ],
1008
+ "maxItems": 2
1009
+ }
1010
+ ],
1011
+ "description": "Helper Types."
1012
+ },
1013
+ "JsonLdContextDefinition": {
1014
+ "type": "object",
1015
+ "properties": {
1016
+ "@base": {
1017
+ "type": [
1018
+ "string",
1019
+ "null"
1020
+ ]
1021
+ },
1022
+ "@direction": {
1023
+ "type": [
1024
+ "string",
1025
+ "null"
1026
+ ],
1027
+ "enum": [
1028
+ "ltr",
1029
+ "rtl",
1030
+ null
1031
+ ]
1032
+ },
1033
+ "@import": {
1034
+ "type": "string"
1035
+ },
1036
+ "@language": {
1037
+ "type": "string"
1038
+ },
1039
+ "@propagate": {
1040
+ "type": "boolean"
1041
+ },
1042
+ "@protected": {
1043
+ "type": "boolean"
1044
+ },
1045
+ "@type": {
1046
+ "type": "object",
1047
+ "properties": {
1048
+ "@container": {
1049
+ "type": "string",
1050
+ "const": "@set"
1051
+ },
1052
+ "@protected": {
1053
+ "type": "boolean"
1054
+ }
1055
+ },
1056
+ "required": [
1057
+ "@container"
1058
+ ],
1059
+ "additionalProperties": false
1060
+ },
1061
+ "@version": {
1062
+ "type": "string",
1063
+ "const": "1.1"
1064
+ },
1065
+ "@vocab": {
1066
+ "type": [
1067
+ "string",
1068
+ "null"
1069
+ ]
1070
+ }
1071
+ },
1072
+ "additionalProperties": {
1073
+ "anyOf": [
1074
+ {
1075
+ "type": "null"
1076
+ },
1077
+ {
1078
+ "type": "string"
1079
+ },
1080
+ {
1081
+ "$ref": "#/components/schemas/JsonLdExpandedTermDefinition"
1082
+ }
1083
+ ]
1084
+ },
1085
+ "description": "A context definition defines a local context in a node object."
1086
+ },
1087
+ "JsonLdContextDefinitionElement": {
1088
+ "anyOf": [
1089
+ {
1090
+ "type": "null"
1091
+ },
1092
+ {
1093
+ "type": "string"
1094
+ },
1095
+ {
1096
+ "$ref": "#/components/schemas/JsonLdContextDefinition"
1097
+ }
1098
+ ],
1099
+ "description": "A context definition element is used to define the types of a context definition."
1100
+ },
1101
+ "JsonLdContextDefinitionRoot": {
1102
+ "anyOf": [
1103
+ {
1104
+ "$ref": "#/components/schemas/JsonLdContextDefinitionElement"
1105
+ },
1106
+ {
1107
+ "type": "array",
1108
+ "items": {
1109
+ "$ref": "#/components/schemas/JsonLdContextDefinitionElement"
1110
+ }
1111
+ }
1112
+ ],
1113
+ "description": "A context definition root is used to define the root of a context definition."
1114
+ },
1115
+ "JsonLdExpandedTermDefinition": {
1116
+ "anyOf": [
1117
+ {
1118
+ "type": "object",
1119
+ "additionalProperties": false,
1120
+ "properties": {
1121
+ "@id": {
1122
+ "anyOf": [
1123
+ {
1124
+ "type": "string"
1125
+ },
1126
+ {
1127
+ "type": "array",
1128
+ "items": {
1129
+ "type": "string"
1130
+ }
1131
+ },
1132
+ {
1133
+ "type": "null"
1134
+ }
1135
+ ]
1136
+ },
1137
+ "@nest": {
1138
+ "type": "string"
1139
+ },
1140
+ "@container": {
1141
+ "anyOf": [
1142
+ {
1143
+ "type": "string",
1144
+ "const": "@list"
1145
+ },
1146
+ {
1147
+ "type": "string",
1148
+ "const": "@set"
1149
+ },
1150
+ {
1151
+ "$ref": "#/components/schemas/JsonLdContainerType"
1152
+ },
1153
+ {
1154
+ "type": "array",
1155
+ "items": {
1156
+ "anyOf": [
1157
+ {
1158
+ "type": "string",
1159
+ "const": "@list"
1160
+ },
1161
+ {
1162
+ "type": "string",
1163
+ "const": "@set"
1164
+ },
1165
+ {
1166
+ "$ref": "#/components/schemas/JsonLdContainerType"
1167
+ }
1168
+ ]
1169
+ }
1170
+ },
1171
+ {
1172
+ "$ref": "#/components/schemas/JsonLdContainerTypeArray"
1173
+ },
1174
+ {
1175
+ "type": "null"
1176
+ }
1177
+ ]
1178
+ },
1179
+ "@type": {
1180
+ "type": "string"
1181
+ },
1182
+ "@language": {
1183
+ "type": "string"
1184
+ },
1185
+ "@index": {
1186
+ "type": "string"
1187
+ },
1188
+ "@context": {
1189
+ "$ref": "#/components/schemas/JsonLdContextDefinition"
1190
+ },
1191
+ "@prefix": {
1192
+ "type": "boolean"
1193
+ },
1194
+ "@propagate": {
1195
+ "type": "boolean"
1196
+ },
1197
+ "@protected": {
1198
+ "type": "boolean"
1199
+ }
1200
+ }
1201
+ },
1202
+ {
1203
+ "type": "object",
1204
+ "additionalProperties": false,
1205
+ "properties": {
1206
+ "@reverse": {
1207
+ "type": "string"
1208
+ },
1209
+ "@container": {
1210
+ "type": [
1211
+ "string",
1212
+ "null"
1213
+ ],
1214
+ "enum": [
1215
+ "@set",
1216
+ "@index",
1217
+ null
1218
+ ]
1219
+ },
1220
+ "@type": {
1221
+ "type": "string"
1222
+ },
1223
+ "@language": {
1224
+ "type": "string"
1225
+ },
1226
+ "@index": {
1227
+ "type": "string"
1228
+ },
1229
+ "@context": {
1230
+ "$ref": "#/components/schemas/JsonLdContextDefinition"
1231
+ },
1232
+ "@prefix": {
1233
+ "type": "boolean"
1234
+ },
1235
+ "@propagate": {
1236
+ "type": "boolean"
1237
+ },
1238
+ "@protected": {
1239
+ "type": "boolean"
1240
+ }
1241
+ },
1242
+ "required": [
1243
+ "@reverse"
1244
+ ]
1245
+ }
1246
+ ],
1247
+ "description": "An expanded term definition is used to describe the mapping between a term and its expanded identifier, as well as other properties of the value associated with the term when it is used as key in a node object."
1248
+ },
1249
+ "JsonLdGraphObject": {
1250
+ "type": "object",
1251
+ "properties": {
1252
+ "@graph": {
1253
+ "anyOf": [
1254
+ {
1255
+ "$ref": "#/components/schemas/JsonLdNodeObject"
1256
+ },
1257
+ {
1258
+ "type": "array",
1259
+ "items": {
1260
+ "$ref": "#/components/schemas/JsonLdNodeObject"
1261
+ }
1262
+ }
1263
+ ]
1264
+ },
1265
+ "@index": {
1266
+ "$ref": "#/components/schemas/JsonLdKeyword"
1267
+ },
1268
+ "@id": {
1269
+ "$ref": "#/components/schemas/JsonLdKeyword"
1270
+ },
1271
+ "@context": {
1272
+ "$ref": "#/components/schemas/JsonLdKeyword"
1273
+ }
1274
+ },
1275
+ "required": [
1276
+ "@graph"
1277
+ ],
1278
+ "additionalProperties": false,
1279
+ "description": "A graph object represents a named graph, which MAY include an explicit graph name."
1280
+ },
1281
+ "JsonLdIdMap": {
1282
+ "type": "object",
1283
+ "additionalProperties": {
1284
+ "$ref": "#/components/schemas/JsonLdNodeObject"
1285
+ },
1286
+ "description": "An id map is used to associate an IRI with a value that allows easy programmatic access."
1287
+ },
1288
+ "JsonLdIncludedBlock": {
1289
+ "anyOf": [
1290
+ {
1291
+ "$ref": "#/components/schemas/JsonLdNodeObject"
1292
+ },
1293
+ {
1294
+ "type": "array",
1295
+ "items": {
1296
+ "$ref": "#/components/schemas/JsonLdNodeObject"
1297
+ }
1298
+ }
1299
+ ],
1300
+ "description": "An included block is used to provide a set of node objects."
1301
+ },
1302
+ "JsonLdIndexMap": {
1303
+ "type": "object",
1304
+ "additionalProperties": {
1305
+ "anyOf": [
1306
+ {
1307
+ "$ref": "#/components/schemas/JsonLdIndexMapItem"
1308
+ },
1309
+ {
1310
+ "type": "array",
1311
+ "items": {
1312
+ "$ref": "#/components/schemas/JsonLdIndexMapItem"
1313
+ }
1314
+ }
1315
+ ]
1316
+ },
1317
+ "description": "An index map allows keys that have no semantic meaning, but should be preserved regardless, to be used in JSON-LD documents."
1318
+ },
1319
+ "JsonLdIndexMapItem": {
1320
+ "anyOf": [
1321
+ {
1322
+ "type": "null"
1323
+ },
1324
+ {
1325
+ "type": "boolean"
1326
+ },
1327
+ {
1328
+ "type": "number"
1329
+ },
1330
+ {
1331
+ "type": "string"
1332
+ },
1333
+ {
1334
+ "$ref": "#/components/schemas/JsonLdNodeObject"
1335
+ },
1336
+ {
1337
+ "$ref": "#/components/schemas/JsonLdValueObject"
1338
+ },
1339
+ {
1340
+ "$ref": "#/components/schemas/JsonLdListObject"
1341
+ },
1342
+ {
1343
+ "$ref": "#/components/schemas/JsonLdSetObject"
1344
+ }
1345
+ ],
1346
+ "description": "The items that can be stored in an index map."
1347
+ },
1348
+ "JsonLdJsonArray": {
1349
+ "type": "array",
1350
+ "items": {
1351
+ "$ref": "#/components/schemas/JsonLdJsonValue"
1352
+ },
1353
+ "description": "JSON Type for array."
1354
+ },
1355
+ "JsonLdJsonObject": {
1356
+ "type": "object",
1357
+ "additionalProperties": {
1358
+ "anyOf": [
1359
+ {
1360
+ "$ref": "#/components/schemas/JsonLdJsonValue"
1361
+ },
1362
+ {
1363
+ "not": {}
1364
+ }
1365
+ ]
1366
+ },
1367
+ "description": "JSON Type for object."
1368
+ },
1369
+ "JsonLdJsonPrimitive": {
1370
+ "type": [
1371
+ "string",
1372
+ "number",
1373
+ "boolean",
1374
+ "null"
1375
+ ],
1376
+ "description": "JSON Primitive."
1377
+ },
1378
+ "JsonLdJsonValue": {
1379
+ "anyOf": [
1380
+ {
1381
+ "$ref": "#/components/schemas/JsonLdJsonPrimitive"
1382
+ },
1383
+ {
1384
+ "$ref": "#/components/schemas/JsonLdJsonArray"
1385
+ },
1386
+ {
1387
+ "$ref": "#/components/schemas/JsonLdJsonObject"
1388
+ }
1389
+ ],
1390
+ "description": "JSON Value."
1391
+ },
1392
+ "JsonLdKeyword": {
1393
+ "type": "object",
1394
+ "properties": {
1395
+ "@base": {
1396
+ "type": [
1397
+ "string",
1398
+ "null"
1399
+ ]
1400
+ },
1401
+ "@container": {
1402
+ "anyOf": [
1403
+ {
1404
+ "type": "string",
1405
+ "const": "@list"
1406
+ },
1407
+ {
1408
+ "type": "string",
1409
+ "const": "@set"
1410
+ },
1411
+ {
1412
+ "$ref": "#/components/schemas/JsonLdContainerType"
1413
+ },
1414
+ {
1415
+ "type": "array",
1416
+ "items": {
1417
+ "anyOf": [
1418
+ {
1419
+ "type": "string",
1420
+ "const": "@list"
1421
+ },
1422
+ {
1423
+ "type": "string",
1424
+ "const": "@set"
1425
+ },
1426
+ {
1427
+ "$ref": "#/components/schemas/JsonLdContainerType"
1428
+ }
1429
+ ]
1430
+ }
1431
+ },
1432
+ {
1433
+ "$ref": "#/components/schemas/JsonLdContainerTypeArray"
1434
+ },
1435
+ {
1436
+ "type": "null"
1437
+ }
1438
+ ]
1439
+ },
1440
+ "@context": {
1441
+ "$ref": "#/components/schemas/JsonLdContextDefinitionRoot"
1442
+ },
1443
+ "@direction": {
1444
+ "type": [
1445
+ "string",
1446
+ "null"
1447
+ ],
1448
+ "enum": [
1449
+ "ltr",
1450
+ "rtl",
1451
+ null
1452
+ ]
1453
+ },
1454
+ "@graph": {
1455
+ "anyOf": [
1456
+ {
1457
+ "$ref": "#/components/schemas/JsonLdValueObject"
1458
+ },
1459
+ {
1460
+ "$ref": "#/components/schemas/JsonLdNodeObject"
1461
+ },
1462
+ {
1463
+ "type": "array",
1464
+ "items": {
1465
+ "anyOf": [
1466
+ {
1467
+ "$ref": "#/components/schemas/JsonLdValueObject"
1468
+ },
1469
+ {
1470
+ "$ref": "#/components/schemas/JsonLdNodeObject"
1471
+ }
1472
+ ]
1473
+ }
1474
+ }
1475
+ ]
1476
+ },
1477
+ "@id": {
1478
+ "anyOf": [
1479
+ {
1480
+ "type": "string"
1481
+ },
1482
+ {
1483
+ "type": "array",
1484
+ "items": {
1485
+ "type": "string"
1486
+ }
1487
+ }
1488
+ ]
1489
+ },
1490
+ "@import": {
1491
+ "type": "string"
1492
+ },
1493
+ "@included": {
1494
+ "$ref": "#/components/schemas/JsonLdIncludedBlock"
1495
+ },
1496
+ "@index": {
1497
+ "type": "string"
1498
+ },
1499
+ "@json": {
1500
+ "type": "string",
1501
+ "const": "@json"
1502
+ },
1503
+ "@language": {
1504
+ "type": "string"
1505
+ },
1506
+ "@list": {
1507
+ "anyOf": [
1508
+ {
1509
+ "$ref": "#/components/schemas/JsonLdListOrSetItem"
1510
+ },
1511
+ {
1512
+ "type": "array",
1513
+ "items": {
1514
+ "$ref": "#/components/schemas/JsonLdListOrSetItem"
1515
+ }
1516
+ }
1517
+ ]
1518
+ },
1519
+ "@nest": {
1520
+ "type": "object"
1521
+ },
1522
+ "@none": {
1523
+ "type": "string",
1524
+ "const": "@none"
1525
+ },
1526
+ "@prefix": {
1527
+ "type": "boolean"
1528
+ },
1529
+ "@propagate": {
1530
+ "type": "boolean"
1531
+ },
1532
+ "@protected": {
1533
+ "type": "boolean"
1534
+ },
1535
+ "@reverse": {
1536
+ "type": "string"
1537
+ },
1538
+ "@set": {
1539
+ "anyOf": [
1540
+ {
1541
+ "$ref": "#/components/schemas/JsonLdListOrSetItem"
1542
+ },
1543
+ {
1544
+ "type": "array",
1545
+ "items": {
1546
+ "$ref": "#/components/schemas/JsonLdListOrSetItem"
1547
+ }
1548
+ }
1549
+ ]
1550
+ },
1551
+ "@type": {
1552
+ "type": "string"
1553
+ },
1554
+ "@value": {
1555
+ "type": [
1556
+ "null",
1557
+ "boolean",
1558
+ "number",
1559
+ "string"
1560
+ ]
1561
+ },
1562
+ "@version": {
1563
+ "type": "string",
1564
+ "const": "1.1"
1565
+ },
1566
+ "@vocab": {
1567
+ "type": [
1568
+ "string",
1569
+ "null"
1570
+ ]
1571
+ }
1572
+ },
1573
+ "required": [
1574
+ "@base",
1575
+ "@container",
1576
+ "@context",
1577
+ "@direction",
1578
+ "@graph",
1579
+ "@id",
1580
+ "@import",
1581
+ "@included",
1582
+ "@index",
1583
+ "@json",
1584
+ "@language",
1585
+ "@list",
1586
+ "@nest",
1587
+ "@none",
1588
+ "@prefix",
1589
+ "@propagate",
1590
+ "@protected",
1591
+ "@reverse",
1592
+ "@set",
1593
+ "@type",
1594
+ "@value",
1595
+ "@version",
1596
+ "@vocab"
1597
+ ],
1598
+ "additionalProperties": false,
1599
+ "description": "A list of keywords and their types. Only used for internal reference; not an actual interface. Not for export."
1600
+ },
1601
+ "JsonLdLanguageMap": {
1602
+ "type": "object",
1603
+ "additionalProperties": {
1604
+ "anyOf": [
1605
+ {
1606
+ "type": "null"
1607
+ },
1608
+ {
1609
+ "type": "string"
1610
+ },
1611
+ {
1612
+ "type": "array",
1613
+ "items": {
1614
+ "type": "string"
1615
+ }
1616
+ }
1617
+ ]
1618
+ },
1619
+ "description": "A language map is used to associate a language with a value in a way that allows easy programmatic access."
1620
+ },
1621
+ "JsonLdListObject": {
1622
+ "type": "object",
1623
+ "properties": {
1624
+ "@list": {
1625
+ "$ref": "#/components/schemas/JsonLdKeyword"
1626
+ },
1627
+ "@index": {
1628
+ "$ref": "#/components/schemas/JsonLdKeyword"
1629
+ }
1630
+ },
1631
+ "required": [
1632
+ "@list"
1633
+ ],
1634
+ "additionalProperties": false,
1635
+ "description": "A list represents an ordered set of values."
1636
+ },
1637
+ "JsonLdListOrSetItem": {
1638
+ "anyOf": [
1639
+ {
1640
+ "type": "null"
1641
+ },
1642
+ {
1643
+ "type": "boolean"
1644
+ },
1645
+ {
1646
+ "type": "number"
1647
+ },
1648
+ {
1649
+ "type": "string"
1650
+ },
1651
+ {
1652
+ "$ref": "#/components/schemas/JsonLdNodeObject"
1653
+ },
1654
+ {
1655
+ "$ref": "#/components/schemas/JsonLdValueObject"
1656
+ }
1657
+ ],
1658
+ "description": "A list or set item can be a null, boolean, number, string, node object, or value object."
1659
+ },
1660
+ "JsonLdNodeObject": {
1661
+ "type": "object",
1662
+ "additionalProperties": {
1663
+ "anyOf": [
1664
+ {
1665
+ "$ref": "#/components/schemas/JsonLdNodePrimitive"
1666
+ },
1667
+ {
1668
+ "$ref": "#/components/schemas/JsonLdLanguageMap"
1669
+ },
1670
+ {
1671
+ "$ref": "#/components/schemas/JsonLdIndexMap"
1672
+ },
1673
+ {
1674
+ "$ref": "#/components/schemas/JsonLdIncludedBlock"
1675
+ },
1676
+ {
1677
+ "$ref": "#/components/schemas/JsonLdIdMap"
1678
+ },
1679
+ {
1680
+ "$ref": "#/components/schemas/JsonLdTypeMap"
1681
+ },
1682
+ {
1683
+ "type": "array"
1684
+ }
1685
+ ]
1686
+ },
1687
+ "properties": {
1688
+ "@context": {
1689
+ "$ref": "#/components/schemas/JsonLdKeyword"
1690
+ },
1691
+ "@id": {
1692
+ "$ref": "#/components/schemas/JsonLdKeyword"
1693
+ },
1694
+ "@included": {
1695
+ "$ref": "#/components/schemas/JsonLdKeyword"
1696
+ },
1697
+ "@graph": {
1698
+ "anyOf": [
1699
+ {
1700
+ "$ref": "#/components/schemas/JsonLdNodeObject"
1701
+ },
1702
+ {
1703
+ "type": "array",
1704
+ "items": {
1705
+ "$ref": "#/components/schemas/JsonLdNodeObject"
1706
+ }
1707
+ }
1708
+ ]
1709
+ },
1710
+ "@nest": {
1711
+ "anyOf": [
1712
+ {
1713
+ "$ref": "#/components/schemas/JsonLdJsonObject"
1714
+ },
1715
+ {
1716
+ "type": "array",
1717
+ "items": {
1718
+ "$ref": "#/components/schemas/JsonLdJsonObject"
1719
+ }
1720
+ }
1721
+ ]
1722
+ },
1723
+ "@type": {
1724
+ "anyOf": [
1725
+ {
1726
+ "$ref": "#/components/schemas/JsonLdKeyword"
1727
+ },
1728
+ {
1729
+ "type": "array",
1730
+ "items": {
1731
+ "$ref": "#/components/schemas/JsonLdKeyword"
1732
+ }
1733
+ }
1734
+ ]
1735
+ },
1736
+ "@reverse": {
1737
+ "type": "object",
1738
+ "additionalProperties": {
1739
+ "$ref": "#/components/schemas/JsonLdKeyword"
1740
+ }
1741
+ },
1742
+ "@index": {
1743
+ "$ref": "#/components/schemas/JsonLdKeyword"
1744
+ }
1745
+ },
1746
+ "description": "A node object represents zero or more properties of a node in the graph serialized by the JSON-LD document."
1747
+ },
1748
+ "JsonLdNodePrimitive": {
1749
+ "anyOf": [
1750
+ {
1751
+ "type": "null"
1752
+ },
1753
+ {
1754
+ "type": "boolean"
1755
+ },
1756
+ {
1757
+ "type": "number"
1758
+ },
1759
+ {
1760
+ "type": "string"
1761
+ },
1762
+ {
1763
+ "$ref": "#/components/schemas/JsonLdNodeObject"
1764
+ },
1765
+ {
1766
+ "$ref": "#/components/schemas/JsonLdGraphObject"
1767
+ },
1768
+ {
1769
+ "$ref": "#/components/schemas/JsonLdValueObject"
1770
+ },
1771
+ {
1772
+ "$ref": "#/components/schemas/JsonLdListObject"
1773
+ },
1774
+ {
1775
+ "$ref": "#/components/schemas/JsonLdSetObject"
1776
+ }
1777
+ ],
1778
+ "description": "A node primitive is a JSON-LD value which is not one of the defined NodeObject properties."
1779
+ },
1780
+ "JsonLdSetObject": {
1781
+ "type": "object",
1782
+ "properties": {
1783
+ "@set": {
1784
+ "$ref": "#/components/schemas/JsonLdKeyword"
1785
+ },
1786
+ "@index": {
1787
+ "$ref": "#/components/schemas/JsonLdKeyword"
1788
+ }
1789
+ },
1790
+ "required": [
1791
+ "@set"
1792
+ ],
1793
+ "additionalProperties": false,
1794
+ "description": "A set represents an unordered set of values."
1795
+ },
1796
+ "JsonLdTypeMap": {
1797
+ "type": "object",
1798
+ "additionalProperties": {
1799
+ "anyOf": [
1800
+ {
1801
+ "type": "string"
1802
+ },
1803
+ {
1804
+ "$ref": "#/components/schemas/JsonLdNodeObject"
1805
+ }
1806
+ ]
1807
+ },
1808
+ "description": "A type map is used to associate an IRI with a value that allows easy programmatic access."
1809
+ },
1810
+ "JsonLdValueObject": {
1811
+ "anyOf": [
1812
+ {
1813
+ "type": "object",
1814
+ "additionalProperties": false,
1815
+ "properties": {
1816
+ "@value": {
1817
+ "$ref": "#/components/schemas/JsonLdKeyword"
1818
+ },
1819
+ "@language": {
1820
+ "$ref": "#/components/schemas/JsonLdKeyword"
1821
+ },
1822
+ "@direction": {
1823
+ "$ref": "#/components/schemas/JsonLdKeyword"
1824
+ },
1825
+ "@index": {
1826
+ "$ref": "#/components/schemas/JsonLdKeyword"
1827
+ },
1828
+ "@context": {
1829
+ "$ref": "#/components/schemas/JsonLdKeyword"
1830
+ }
1831
+ },
1832
+ "required": [
1833
+ "@value"
1834
+ ]
1835
+ },
1836
+ {
1837
+ "type": "object",
1838
+ "additionalProperties": false,
1839
+ "properties": {
1840
+ "@value": {
1841
+ "$ref": "#/components/schemas/JsonLdKeyword"
1842
+ },
1843
+ "@type": {
1844
+ "$ref": "#/components/schemas/JsonLdKeyword"
1845
+ },
1846
+ "@index": {
1847
+ "$ref": "#/components/schemas/JsonLdKeyword"
1848
+ },
1849
+ "@context": {
1850
+ "$ref": "#/components/schemas/JsonLdKeyword"
1851
+ }
1852
+ },
1853
+ "required": [
1854
+ "@type",
1855
+ "@value"
1856
+ ]
1857
+ },
1858
+ {
1859
+ "type": "object",
1860
+ "additionalProperties": false,
1861
+ "properties": {
1862
+ "@value": {
1863
+ "anyOf": [
1864
+ {
1865
+ "$ref": "#/components/schemas/JsonLdKeyword"
1866
+ },
1867
+ {
1868
+ "$ref": "#/components/schemas/JsonLdJsonObject"
1869
+ },
1870
+ {
1871
+ "$ref": "#/components/schemas/JsonLdJsonArray"
1872
+ }
1873
+ ]
1874
+ },
1875
+ "@type": {
1876
+ "type": "string",
1877
+ "const": "@json"
1878
+ },
1879
+ "@index": {
1880
+ "$ref": "#/components/schemas/JsonLdKeyword"
1881
+ },
1882
+ "@context": {
1883
+ "$ref": "#/components/schemas/JsonLdKeyword"
1884
+ }
1885
+ },
1886
+ "required": [
1887
+ "@type",
1888
+ "@value"
1889
+ ]
1890
+ }
1891
+ ],
1892
+ "description": "A value object is used to explicitly associate a type or a language with a value to create a typed value or a language-tagged string and possibly associate a base direction."
1893
+ },
1894
+ "LeftOperandType": {
1895
+ "anyOf": [
1896
+ {
1897
+ "type": "string",
1898
+ "const": "absolutePosition",
1899
+ "description": "Absolute Position type."
1900
+ },
1901
+ {
1902
+ "type": "string",
1903
+ "const": "absoluteSpatialPosition",
1904
+ "description": "Absolute Spatial Position type."
1905
+ },
1906
+ {
1907
+ "type": "string",
1908
+ "const": "absoluteTemporalPosition",
1909
+ "description": "Absolute Temporal Position type."
1910
+ },
1911
+ {
1912
+ "type": "string",
1913
+ "const": "absoluteSize",
1914
+ "description": "Absolute Size type."
1915
+ },
1916
+ {
1917
+ "type": "string",
1918
+ "const": "count",
1919
+ "description": "Count type."
1920
+ },
1921
+ {
1922
+ "type": "string",
1923
+ "const": "dateTime",
1924
+ "description": "DateTime type."
1925
+ },
1926
+ {
1927
+ "type": "string",
1928
+ "const": "delayPeriod",
1929
+ "description": "Delay Period type."
1930
+ },
1931
+ {
1932
+ "type": "string",
1933
+ "const": "deliveryChannel",
1934
+ "description": "Delivery Channel type."
1935
+ },
1936
+ {
1937
+ "type": "string",
1938
+ "const": "elapsedTime",
1939
+ "description": "Elapsed Time type."
1940
+ },
1941
+ {
1942
+ "type": "string",
1943
+ "const": "event",
1944
+ "description": "Event type."
1945
+ },
1946
+ {
1947
+ "type": "string",
1948
+ "const": "fileFormat",
1949
+ "description": "File Format type."
1950
+ },
1951
+ {
1952
+ "type": "string",
1953
+ "const": "industry",
1954
+ "description": "Industry type."
1955
+ },
1956
+ {
1957
+ "type": "string",
1958
+ "const": "language",
1959
+ "description": "Language type."
1960
+ },
1961
+ {
1962
+ "type": "string",
1963
+ "const": "media",
1964
+ "description": "Media type."
1965
+ },
1966
+ {
1967
+ "type": "string",
1968
+ "const": "meteredTime",
1969
+ "description": "Metered Time type."
1970
+ },
1971
+ {
1972
+ "type": "string",
1973
+ "const": "payAmount",
1974
+ "description": "Pay Amount type."
1975
+ },
1976
+ {
1977
+ "type": "string",
1978
+ "const": "percentage",
1979
+ "description": "Percentage type."
1980
+ },
1981
+ {
1982
+ "type": "string",
1983
+ "const": "product",
1984
+ "description": "Product type."
1985
+ },
1986
+ {
1987
+ "type": "string",
1988
+ "const": "purpose",
1989
+ "description": "Purpose type."
1990
+ },
1991
+ {
1992
+ "type": "string",
1993
+ "const": "recipient",
1994
+ "description": "Recipient type."
1995
+ },
1996
+ {
1997
+ "type": "string",
1998
+ "const": "relativePosition",
1999
+ "description": "Relative Position type."
2000
+ },
2001
+ {
2002
+ "type": "string",
2003
+ "const": "relativeSpatialPosition",
2004
+ "description": "Relative Spatial Position type."
2005
+ },
2006
+ {
2007
+ "type": "string",
2008
+ "const": "relativeTemporalPosition",
2009
+ "description": "Relative Temporal Position type."
2010
+ },
2011
+ {
2012
+ "type": "string",
2013
+ "const": "relativeSize",
2014
+ "description": "Relative Size type."
2015
+ },
2016
+ {
2017
+ "type": "string",
2018
+ "const": "resolution",
2019
+ "description": "Resolution type."
2020
+ },
2021
+ {
2022
+ "type": "string",
2023
+ "const": "spatial",
2024
+ "description": "Spatial type."
2025
+ },
2026
+ {
2027
+ "type": "string",
2028
+ "const": "spatialCoordinates",
2029
+ "description": "Spatial Coordinates type."
2030
+ },
2031
+ {
2032
+ "type": "string",
2033
+ "const": "systemDevice",
2034
+ "description": "System Device type."
2035
+ },
2036
+ {
2037
+ "type": "string",
2038
+ "const": "timeInterval",
2039
+ "description": "Time Interval type."
2040
+ },
2041
+ {
2042
+ "type": "string",
2043
+ "const": "unitOfCount",
2044
+ "description": "Unit of Count type."
2045
+ },
2046
+ {
2047
+ "type": "string",
2048
+ "const": "version",
2049
+ "description": "Version type."
2050
+ },
2051
+ {
2052
+ "type": "string",
2053
+ "const": "virtualLocation",
2054
+ "description": "Virtual Location type."
2055
+ }
2056
+ ],
2057
+ "description": "The types for ODRL Data Types."
2058
+ },
2059
+ "OdrlAction": {
2060
+ "type": "object",
2061
+ "properties": {
2062
+ "@context": {
2063
+ "$ref": "#/components/schemas/JsonLdKeyword"
2064
+ },
2065
+ "@id": {
2066
+ "type": "string",
2067
+ "description": "Direct action identifier. Used in simple action references."
2068
+ },
2069
+ "@included": {
2070
+ "$ref": "#/components/schemas/JsonLdKeyword"
2071
+ },
2072
+ "@graph": {
2073
+ "anyOf": [
2074
+ {
2075
+ "$ref": "#/components/schemas/JsonLdNodeObject"
2076
+ },
2077
+ {
2078
+ "type": "array",
2079
+ "items": {
2080
+ "$ref": "#/components/schemas/JsonLdNodeObject"
2081
+ }
2082
+ }
2083
+ ]
2084
+ },
2085
+ "@nest": {
2086
+ "anyOf": [
2087
+ {
2088
+ "$ref": "#/components/schemas/JsonLdJsonObject"
2089
+ },
2090
+ {
2091
+ "type": "array",
2092
+ "items": {
2093
+ "$ref": "#/components/schemas/JsonLdJsonObject"
2094
+ }
2095
+ }
2096
+ ]
2097
+ },
2098
+ "@type": {
2099
+ "anyOf": [
2100
+ {
2101
+ "$ref": "#/components/schemas/JsonLdKeyword"
2102
+ },
2103
+ {
2104
+ "type": "array",
2105
+ "items": {
2106
+ "$ref": "#/components/schemas/JsonLdKeyword"
2107
+ }
2108
+ }
2109
+ ]
2110
+ },
2111
+ "@reverse": {
2112
+ "type": "object",
2113
+ "additionalProperties": {
2114
+ "$ref": "#/components/schemas/JsonLdKeyword"
2115
+ }
2116
+ },
2117
+ "@index": {
2118
+ "$ref": "#/components/schemas/JsonLdKeyword"
2119
+ },
2120
+ "rdf:value": {
2121
+ "type": "object",
2122
+ "properties": {
2123
+ "@id": {
2124
+ "type": "string"
2125
+ }
2126
+ },
2127
+ "required": [
2128
+ "@id"
2129
+ ],
2130
+ "additionalProperties": false,
2131
+ "description": "The value/identifier of the action. Used in complex action definitions."
2132
+ },
2133
+ "refinement": {
2134
+ "anyOf": [
2135
+ {
2136
+ "$ref": "#/components/schemas/OdrlConstraint"
2137
+ },
2138
+ {
2139
+ "$ref": "#/components/schemas/OdrlLogicalConstraint"
2140
+ },
2141
+ {
2142
+ "type": "array",
2143
+ "items": {
2144
+ "anyOf": [
2145
+ {
2146
+ "$ref": "#/components/schemas/OdrlConstraint"
2147
+ },
2148
+ {
2149
+ "$ref": "#/components/schemas/OdrlLogicalConstraint"
2150
+ }
2151
+ ]
2152
+ }
2153
+ }
2154
+ ],
2155
+ "description": "Refinements applied to the action."
2156
+ },
2157
+ "includedIn": {
2158
+ "$ref": "#/components/schemas/ActionType"
2159
+ },
2160
+ "implies": {
2161
+ "type": "array",
2162
+ "items": {
2163
+ "$ref": "#/components/schemas/ActionType"
2164
+ },
2165
+ "description": "References to actions this action implies."
2166
+ }
2167
+ },
2168
+ "additionalProperties": {
2169
+ "anyOf": [
2170
+ {
2171
+ "$ref": "#/components/schemas/JsonLdNodePrimitive"
2172
+ },
2173
+ {
2174
+ "$ref": "#/components/schemas/JsonLdLanguageMap"
2175
+ },
2176
+ {
2177
+ "$ref": "#/components/schemas/JsonLdIndexMap"
2178
+ },
2179
+ {
2180
+ "$ref": "#/components/schemas/JsonLdIncludedBlock"
2181
+ },
2182
+ {
2183
+ "$ref": "#/components/schemas/JsonLdIdMap"
2184
+ },
2185
+ {
2186
+ "$ref": "#/components/schemas/JsonLdTypeMap"
2187
+ },
2188
+ {
2189
+ "type": "array"
2190
+ }
2191
+ ]
2192
+ },
2193
+ "description": "Interface for ODRL Actions."
2194
+ },
2195
+ "OdrlAsset": {
2196
+ "type": "object",
2197
+ "properties": {
2198
+ "@context": {
2199
+ "$ref": "#/components/schemas/JsonLdKeyword"
2200
+ },
2201
+ "@id": {
2202
+ "$ref": "#/components/schemas/JsonLdKeyword"
2203
+ },
2204
+ "@included": {
2205
+ "$ref": "#/components/schemas/JsonLdKeyword"
2206
+ },
2207
+ "@graph": {
2208
+ "anyOf": [
2209
+ {
2210
+ "$ref": "#/components/schemas/JsonLdNodeObject"
2211
+ },
2212
+ {
2213
+ "type": "array",
2214
+ "items": {
2215
+ "$ref": "#/components/schemas/JsonLdNodeObject"
2216
+ }
2217
+ }
2218
+ ]
2219
+ },
2220
+ "@nest": {
2221
+ "anyOf": [
2222
+ {
2223
+ "$ref": "#/components/schemas/JsonLdJsonObject"
2224
+ },
2225
+ {
2226
+ "type": "array",
2227
+ "items": {
2228
+ "$ref": "#/components/schemas/JsonLdJsonObject"
2229
+ }
2230
+ }
2231
+ ]
2232
+ },
2233
+ "@type": {
2234
+ "type": "string",
2235
+ "description": "The type of the asset. Can be used to specify additional type information."
2236
+ },
2237
+ "@reverse": {
2238
+ "type": "object",
2239
+ "additionalProperties": {
2240
+ "$ref": "#/components/schemas/JsonLdKeyword"
2241
+ }
2242
+ },
2243
+ "@index": {
2244
+ "$ref": "#/components/schemas/JsonLdKeyword"
2245
+ },
2246
+ "uid": {
2247
+ "type": "string",
2248
+ "description": "The unique identifier for the asset. Should be an IRI."
2249
+ },
2250
+ "partOf": {
2251
+ "anyOf": [
2252
+ {
2253
+ "type": "string"
2254
+ },
2255
+ {
2256
+ "$ref": "#/components/schemas/OdrlAssetCollection"
2257
+ }
2258
+ ],
2259
+ "description": "Reference to the asset collection this asset is part of. Used to identify an AssetCollection that this Asset is a member of."
2260
+ },
2261
+ "hasPolicy": {
2262
+ "type": "string",
2263
+ "description": "Reference to the policy that governs this asset. Used to identify the Policy that governs this Asset."
2264
+ }
2265
+ },
2266
+ "additionalProperties": {
2267
+ "anyOf": [
2268
+ {
2269
+ "$ref": "#/components/schemas/JsonLdNodePrimitive"
2270
+ },
2271
+ {
2272
+ "$ref": "#/components/schemas/JsonLdLanguageMap"
2273
+ },
2274
+ {
2275
+ "$ref": "#/components/schemas/JsonLdIndexMap"
2276
+ },
2277
+ {
2278
+ "$ref": "#/components/schemas/JsonLdIncludedBlock"
2279
+ },
2280
+ {
2281
+ "$ref": "#/components/schemas/JsonLdIdMap"
2282
+ },
2283
+ {
2284
+ "$ref": "#/components/schemas/JsonLdTypeMap"
2285
+ },
2286
+ {
2287
+ "type": "array"
2288
+ }
2289
+ ]
2290
+ },
2291
+ "description": "Interface for ODRL Assets."
2292
+ },
2293
+ "OdrlAssetCollection": {
2294
+ "type": "object",
2295
+ "properties": {
2296
+ "@context": {
2297
+ "$ref": "#/components/schemas/JsonLdKeyword"
2298
+ },
2299
+ "@id": {
2300
+ "$ref": "#/components/schemas/JsonLdKeyword"
2301
+ },
2302
+ "@included": {
2303
+ "$ref": "#/components/schemas/JsonLdKeyword"
2304
+ },
2305
+ "@graph": {
2306
+ "anyOf": [
2307
+ {
2308
+ "$ref": "#/components/schemas/JsonLdNodeObject"
2309
+ },
2310
+ {
2311
+ "type": "array",
2312
+ "items": {
2313
+ "$ref": "#/components/schemas/JsonLdNodeObject"
2314
+ }
2315
+ }
2316
+ ]
2317
+ },
2318
+ "@nest": {
2319
+ "anyOf": [
2320
+ {
2321
+ "$ref": "#/components/schemas/JsonLdJsonObject"
2322
+ },
2323
+ {
2324
+ "type": "array",
2325
+ "items": {
2326
+ "$ref": "#/components/schemas/JsonLdJsonObject"
2327
+ }
2328
+ }
2329
+ ]
2330
+ },
2331
+ "@type": {
2332
+ "type": "string",
2333
+ "description": "The type of the asset. Can be used to specify additional type information."
2334
+ },
2335
+ "@reverse": {
2336
+ "type": "object",
2337
+ "additionalProperties": {
2338
+ "$ref": "#/components/schemas/JsonLdKeyword"
2339
+ }
2340
+ },
2341
+ "@index": {
2342
+ "$ref": "#/components/schemas/JsonLdKeyword"
2343
+ },
2344
+ "uid": {
2345
+ "type": "string",
2346
+ "description": "The unique identifier for the asset. Should be an IRI."
2347
+ },
2348
+ "partOf": {
2349
+ "anyOf": [
2350
+ {
2351
+ "type": "string"
2352
+ },
2353
+ {
2354
+ "$ref": "#/components/schemas/OdrlAssetCollection"
2355
+ }
2356
+ ],
2357
+ "description": "Reference to the asset collection this asset is part of. Used to identify an AssetCollection that this Asset is a member of."
2358
+ },
2359
+ "hasPolicy": {
2360
+ "type": "string",
2361
+ "description": "Reference to the policy that governs this asset. Used to identify the Policy that governs this Asset."
2362
+ },
2363
+ "source": {
2364
+ "type": "string",
2365
+ "description": "Reference to the source of the asset collection. Must be an IRI that references the AssetCollection."
2366
+ },
2367
+ "refinement": {
2368
+ "type": "array",
2369
+ "items": {
2370
+ "$ref": "#/components/schemas/OdrlConstraint"
2371
+ },
2372
+ "description": "Refinements applied to the asset collection. Used to specify the refinement context under which to identify individual Asset(s) of the complete collection. The refinement applies to the characteristics of each member of the collection (not the resource as a whole)."
2373
+ }
2374
+ },
2375
+ "required": [
2376
+ "source"
2377
+ ],
2378
+ "additionalProperties": {
2379
+ "anyOf": [
2380
+ {
2381
+ "$ref": "#/components/schemas/JsonLdNodePrimitive"
2382
+ },
2383
+ {
2384
+ "$ref": "#/components/schemas/JsonLdLanguageMap"
2385
+ },
2386
+ {
2387
+ "$ref": "#/components/schemas/JsonLdIndexMap"
2388
+ },
2389
+ {
2390
+ "$ref": "#/components/schemas/JsonLdIncludedBlock"
2391
+ },
2392
+ {
2393
+ "$ref": "#/components/schemas/JsonLdIdMap"
2394
+ },
2395
+ {
2396
+ "$ref": "#/components/schemas/JsonLdTypeMap"
2397
+ },
2398
+ {
2399
+ "type": "array"
2400
+ }
2401
+ ]
2402
+ },
2403
+ "description": "Interface for ODRL Asset Collections. An AssetCollection is a single resource representing a set of member resources, where all members of the set will be the subject of the Rule."
2404
+ },
2405
+ "OdrlConstraint": {
2406
+ "type": "object",
2407
+ "properties": {
2408
+ "@context": {
2409
+ "$ref": "#/components/schemas/JsonLdKeyword"
2410
+ },
2411
+ "@id": {
2412
+ "$ref": "#/components/schemas/JsonLdKeyword"
2413
+ },
2414
+ "@included": {
2415
+ "$ref": "#/components/schemas/JsonLdKeyword"
2416
+ },
2417
+ "@graph": {
2418
+ "anyOf": [
2419
+ {
2420
+ "$ref": "#/components/schemas/JsonLdNodeObject"
2421
+ },
2422
+ {
2423
+ "type": "array",
2424
+ "items": {
2425
+ "$ref": "#/components/schemas/JsonLdNodeObject"
2426
+ }
2427
+ }
2428
+ ]
2429
+ },
2430
+ "@nest": {
2431
+ "anyOf": [
2432
+ {
2433
+ "$ref": "#/components/schemas/JsonLdJsonObject"
2434
+ },
2435
+ {
2436
+ "type": "array",
2437
+ "items": {
2438
+ "$ref": "#/components/schemas/JsonLdJsonObject"
2439
+ }
2440
+ }
2441
+ ]
2442
+ },
2443
+ "@type": {
2444
+ "anyOf": [
2445
+ {
2446
+ "$ref": "#/components/schemas/JsonLdKeyword"
2447
+ },
2448
+ {
2449
+ "type": "array",
2450
+ "items": {
2451
+ "$ref": "#/components/schemas/JsonLdKeyword"
2452
+ }
2453
+ }
2454
+ ]
2455
+ },
2456
+ "@reverse": {
2457
+ "type": "object",
2458
+ "additionalProperties": {
2459
+ "$ref": "#/components/schemas/JsonLdKeyword"
2460
+ }
2461
+ },
2462
+ "@index": {
2463
+ "$ref": "#/components/schemas/JsonLdKeyword"
2464
+ },
2465
+ "uid": {
2466
+ "type": "string",
2467
+ "description": "Optional unique identifier for the constraint."
2468
+ },
2469
+ "leftOperand": {
2470
+ "anyOf": [
2471
+ {
2472
+ "type": "string"
2473
+ },
2474
+ {
2475
+ "$ref": "#/components/schemas/LeftOperandType"
2476
+ }
2477
+ ],
2478
+ "description": "The left operand of the constraint."
2479
+ },
2480
+ "operator": {
2481
+ "$ref": "#/components/schemas/OperatorType"
2482
+ },
2483
+ "rightOperand": {
2484
+ "anyOf": [
2485
+ {
2486
+ "type": "string"
2487
+ },
2488
+ {
2489
+ "type": "object",
2490
+ "properties": {
2491
+ "@value": {
2492
+ "type": "string"
2493
+ },
2494
+ "@type": {
2495
+ "$ref": "#/components/schemas/DataType"
2496
+ }
2497
+ },
2498
+ "required": [
2499
+ "@value"
2500
+ ],
2501
+ "additionalProperties": false
2502
+ },
2503
+ {
2504
+ "type": "object",
2505
+ "properties": {
2506
+ "@id": {
2507
+ "type": "string"
2508
+ }
2509
+ },
2510
+ "required": [
2511
+ "@id"
2512
+ ],
2513
+ "additionalProperties": false
2514
+ }
2515
+ ],
2516
+ "description": "The right operand of the constraint. value with optional"
2517
+ },
2518
+ "rightOperandReference": {
2519
+ "type": "string",
2520
+ "description": "Reference to the right operand."
2521
+ },
2522
+ "dataType": {
2523
+ "$ref": "#/components/schemas/DataType"
2524
+ },
2525
+ "unit": {
2526
+ "type": "string",
2527
+ "description": "The unit for the right operand value."
2528
+ },
2529
+ "status": {
2530
+ "$ref": "#/components/schemas/StatusType"
2531
+ }
2532
+ },
2533
+ "required": [
2534
+ "leftOperand",
2535
+ "operator"
2536
+ ],
2537
+ "additionalProperties": {
2538
+ "anyOf": [
2539
+ {
2540
+ "$ref": "#/components/schemas/JsonLdNodePrimitive"
2541
+ },
2542
+ {
2543
+ "$ref": "#/components/schemas/JsonLdLanguageMap"
2544
+ },
2545
+ {
2546
+ "$ref": "#/components/schemas/JsonLdIndexMap"
2547
+ },
2548
+ {
2549
+ "$ref": "#/components/schemas/JsonLdIncludedBlock"
2550
+ },
2551
+ {
2552
+ "$ref": "#/components/schemas/JsonLdIdMap"
2553
+ },
2554
+ {
2555
+ "$ref": "#/components/schemas/JsonLdTypeMap"
2556
+ },
2557
+ {
2558
+ "type": "array"
2559
+ }
2560
+ ]
2561
+ },
2562
+ "description": "Interface for ODRL Constraints."
2563
+ },
2564
+ "OdrlContextType": {
2565
+ "anyOf": [
2566
+ {
2567
+ "type": "string",
2568
+ "const": "https://www.w3.org/ns/odrl.jsonld"
2569
+ },
2570
+ {
2571
+ "type": "array",
2572
+ "minItems": 1,
2573
+ "items": [
2574
+ {
2575
+ "type": "string",
2576
+ "const": "https://www.w3.org/ns/odrl.jsonld"
2577
+ }
2578
+ ],
2579
+ "additionalItems": {
2580
+ "$ref": "#/components/schemas/JsonLdContextDefinitionElement"
2581
+ }
2582
+ },
2583
+ {
2584
+ "type": "array",
2585
+ "minItems": 2,
2586
+ "items": [
2587
+ {
2588
+ "type": "string",
2589
+ "const": "https://www.w3.org/ns/odrl.jsonld"
2590
+ },
2591
+ {
2592
+ "$ref": "#/components/schemas/JsonLdContextDefinitionElement"
2593
+ }
2594
+ ],
2595
+ "additionalItems": {
2596
+ "$ref": "#/components/schemas/JsonLdContextDefinitionElement"
2597
+ }
2598
+ },
2599
+ {
2600
+ "type": "array",
2601
+ "minItems": 2,
2602
+ "items": [
2603
+ {
2604
+ "$ref": "#/components/schemas/JsonLdContextDefinitionElement"
2605
+ },
2606
+ {
2607
+ "type": "string",
2608
+ "const": "https://www.w3.org/ns/odrl.jsonld"
2609
+ }
2610
+ ],
2611
+ "additionalItems": {
2612
+ "$ref": "#/components/schemas/JsonLdContextDefinitionElement"
2613
+ }
2614
+ }
2615
+ ],
2616
+ "description": "The ODRL JSON-LD context type."
2617
+ },
2618
+ "OdrlDuty": {
2619
+ "type": "object",
2620
+ "properties": {
2621
+ "@context": {
2622
+ "$ref": "#/components/schemas/JsonLdKeyword"
2623
+ },
2624
+ "@id": {
2625
+ "$ref": "#/components/schemas/JsonLdKeyword"
2626
+ },
2627
+ "@included": {
2628
+ "$ref": "#/components/schemas/JsonLdKeyword"
2629
+ },
2630
+ "@graph": {
2631
+ "anyOf": [
2632
+ {
2633
+ "$ref": "#/components/schemas/JsonLdNodeObject"
2634
+ },
2635
+ {
2636
+ "type": "array",
2637
+ "items": {
2638
+ "$ref": "#/components/schemas/JsonLdNodeObject"
2639
+ }
2640
+ }
2641
+ ]
2642
+ },
2643
+ "@nest": {
2644
+ "anyOf": [
2645
+ {
2646
+ "$ref": "#/components/schemas/JsonLdJsonObject"
2647
+ },
2648
+ {
2649
+ "type": "array",
2650
+ "items": {
2651
+ "$ref": "#/components/schemas/JsonLdJsonObject"
2652
+ }
2653
+ }
2654
+ ]
2655
+ },
2656
+ "@type": {
2657
+ "anyOf": [
2658
+ {
2659
+ "$ref": "#/components/schemas/JsonLdKeyword"
2660
+ },
2661
+ {
2662
+ "type": "array",
2663
+ "items": {
2664
+ "$ref": "#/components/schemas/JsonLdKeyword"
2665
+ }
2666
+ }
2667
+ ]
2668
+ },
2669
+ "@reverse": {
2670
+ "type": "object",
2671
+ "additionalProperties": {
2672
+ "$ref": "#/components/schemas/JsonLdKeyword"
2673
+ }
2674
+ },
2675
+ "@index": {
2676
+ "$ref": "#/components/schemas/JsonLdKeyword"
2677
+ },
2678
+ "uid": {
2679
+ "type": "string",
2680
+ "description": "Optional unique identifier for the rule."
2681
+ },
2682
+ "action": {
2683
+ "anyOf": [
2684
+ {
2685
+ "$ref": "#/components/schemas/ActionType"
2686
+ },
2687
+ {
2688
+ "$ref": "#/components/schemas/OdrlAction"
2689
+ },
2690
+ {
2691
+ "type": "array",
2692
+ "items": {
2693
+ "anyOf": [
2694
+ {
2695
+ "$ref": "#/components/schemas/ActionType"
2696
+ },
2697
+ {
2698
+ "$ref": "#/components/schemas/OdrlAction"
2699
+ }
2700
+ ]
2701
+ }
2702
+ }
2703
+ ],
2704
+ "description": "The action associated with the rule."
2705
+ },
2706
+ "target": {
2707
+ "anyOf": [
2708
+ {
2709
+ "type": "string"
2710
+ },
2711
+ {
2712
+ "$ref": "#/components/schemas/OdrlAsset"
2713
+ },
2714
+ {
2715
+ "type": "array",
2716
+ "items": {
2717
+ "anyOf": [
2718
+ {
2719
+ "type": "string"
2720
+ },
2721
+ {
2722
+ "$ref": "#/components/schemas/OdrlAsset"
2723
+ }
2724
+ ]
2725
+ }
2726
+ }
2727
+ ],
2728
+ "description": "The target asset for the rule."
2729
+ },
2730
+ "assigner": {
2731
+ "anyOf": [
2732
+ {
2733
+ "type": "string"
2734
+ },
2735
+ {
2736
+ "$ref": "#/components/schemas/OdrlParty"
2737
+ }
2738
+ ],
2739
+ "description": "The assigner of the rule."
2740
+ },
2741
+ "assignee": {
2742
+ "anyOf": [
2743
+ {
2744
+ "type": "string"
2745
+ },
2746
+ {
2747
+ "$ref": "#/components/schemas/OdrlParty"
2748
+ }
2749
+ ],
2750
+ "description": "The assignee of the rule."
2751
+ },
2752
+ "constraint": {
2753
+ "type": "array",
2754
+ "items": {
2755
+ "$ref": "#/components/schemas/OdrlConstraint"
2756
+ },
2757
+ "description": "Constraints applied to the rule."
2758
+ },
2759
+ "summary": {
2760
+ "type": "string",
2761
+ "description": "Additional relation sub-properties as defined in ODRL profiles. For example, 'summary' in profile \"http://example.com/odrl:profile:03\" indicates where the output should be stored."
2762
+ },
2763
+ "attributedParty": {
2764
+ "type": "string",
2765
+ "description": "The party to be attributed Used when the duty involves attribution"
2766
+ },
2767
+ "trackingParty": {
2768
+ "type": "string",
2769
+ "description": "The party performing the tracking Used when the duty involves tracking"
2770
+ },
2771
+ "consequence": {
2772
+ "type": "array",
2773
+ "items": {
2774
+ "$ref": "#/components/schemas/OdrlDuty"
2775
+ },
2776
+ "description": "The consequences if the duty is not fulfilled. Only applicable when the Duty is referenced by a Rule with duty or obligation properties."
2777
+ },
2778
+ "remedy": {
2779
+ "type": "array",
2780
+ "items": {
2781
+ "$ref": "#/components/schemas/OdrlDuty"
2782
+ },
2783
+ "description": "The remedies that may be fulfilled to cure the violation."
2784
+ },
2785
+ "compensatedParty": {
2786
+ "type": "string",
2787
+ "description": "The party to be compensated Used when the duty involves compensation"
2788
+ }
2789
+ },
2790
+ "additionalProperties": {
2791
+ "anyOf": [
2792
+ {
2793
+ "$ref": "#/components/schemas/JsonLdNodePrimitive"
2794
+ },
2795
+ {
2796
+ "$ref": "#/components/schemas/JsonLdLanguageMap"
2797
+ },
2798
+ {
2799
+ "$ref": "#/components/schemas/JsonLdIndexMap"
2800
+ },
2801
+ {
2802
+ "$ref": "#/components/schemas/JsonLdIncludedBlock"
2803
+ },
2804
+ {
2805
+ "$ref": "#/components/schemas/JsonLdIdMap"
2806
+ },
2807
+ {
2808
+ "$ref": "#/components/schemas/JsonLdTypeMap"
2809
+ },
2810
+ {
2811
+ "type": "array"
2812
+ }
2813
+ ]
2814
+ },
2815
+ "description": "Interface for Duty Rules. A Duty is the obligation to exercise an action, with all refinements satisfied. A Duty is fulfilled if all constraints are satisfied and if its action has been exercised."
2816
+ },
2817
+ "OdrlLogicalConstraint": {
2818
+ "type": "object",
2819
+ "properties": {
2820
+ "@context": {
2821
+ "$ref": "#/components/schemas/JsonLdKeyword"
2822
+ },
2823
+ "@id": {
2824
+ "$ref": "#/components/schemas/JsonLdKeyword"
2825
+ },
2826
+ "@included": {
2827
+ "$ref": "#/components/schemas/JsonLdKeyword"
2828
+ },
2829
+ "@graph": {
2830
+ "anyOf": [
2831
+ {
2832
+ "$ref": "#/components/schemas/JsonLdNodeObject"
2833
+ },
2834
+ {
2835
+ "type": "array",
2836
+ "items": {
2837
+ "$ref": "#/components/schemas/JsonLdNodeObject"
2838
+ }
2839
+ }
2840
+ ]
2841
+ },
2842
+ "@nest": {
2843
+ "anyOf": [
2844
+ {
2845
+ "$ref": "#/components/schemas/JsonLdJsonObject"
2846
+ },
2847
+ {
2848
+ "type": "array",
2849
+ "items": {
2850
+ "$ref": "#/components/schemas/JsonLdJsonObject"
2851
+ }
2852
+ }
2853
+ ]
2854
+ },
2855
+ "@type": {
2856
+ "anyOf": [
2857
+ {
2858
+ "$ref": "#/components/schemas/JsonLdKeyword"
2859
+ },
2860
+ {
2861
+ "type": "array",
2862
+ "items": {
2863
+ "$ref": "#/components/schemas/JsonLdKeyword"
2864
+ }
2865
+ }
2866
+ ]
2867
+ },
2868
+ "@reverse": {
2869
+ "type": "object",
2870
+ "additionalProperties": {
2871
+ "$ref": "#/components/schemas/JsonLdKeyword"
2872
+ }
2873
+ },
2874
+ "@index": {
2875
+ "$ref": "#/components/schemas/JsonLdKeyword"
2876
+ },
2877
+ "uid": {
2878
+ "type": "string",
2879
+ "description": "Optional unique identifier for the logical constraint. Must be an IRI."
2880
+ },
2881
+ "and": {
2882
+ "type": "object",
2883
+ "properties": {
2884
+ "@list": {
2885
+ "type": "array",
2886
+ "items": {
2887
+ "type": "object",
2888
+ "properties": {
2889
+ "@id": {
2890
+ "type": "string"
2891
+ }
2892
+ },
2893
+ "required": [
2894
+ "@id"
2895
+ ],
2896
+ "additionalProperties": false
2897
+ }
2898
+ }
2899
+ },
2900
+ "required": [
2901
+ "@list"
2902
+ ],
2903
+ "additionalProperties": false,
2904
+ "description": "AND operator - all constraints must be satisfied."
2905
+ },
2906
+ "or": {
2907
+ "type": "object",
2908
+ "properties": {
2909
+ "@list": {
2910
+ "type": "array",
2911
+ "items": {
2912
+ "type": "object",
2913
+ "properties": {
2914
+ "@id": {
2915
+ "type": "string"
2916
+ }
2917
+ },
2918
+ "required": [
2919
+ "@id"
2920
+ ],
2921
+ "additionalProperties": false
2922
+ }
2923
+ }
2924
+ },
2925
+ "required": [
2926
+ "@list"
2927
+ ],
2928
+ "additionalProperties": false,
2929
+ "description": "OR operator - at least one constraint must be satisfied."
2930
+ },
2931
+ "xone": {
2932
+ "type": "object",
2933
+ "properties": {
2934
+ "@list": {
2935
+ "type": "array",
2936
+ "items": {
2937
+ "type": "object",
2938
+ "properties": {
2939
+ "@id": {
2940
+ "type": "string"
2941
+ }
2942
+ },
2943
+ "required": [
2944
+ "@id"
2945
+ ],
2946
+ "additionalProperties": false
2947
+ }
2948
+ }
2949
+ },
2950
+ "required": [
2951
+ "@list"
2952
+ ],
2953
+ "additionalProperties": false,
2954
+ "description": "XOR operator - exactly one constraint must be satisfied."
2955
+ },
2956
+ "andSequence": {
2957
+ "type": "object",
2958
+ "properties": {
2959
+ "@list": {
2960
+ "type": "array",
2961
+ "items": {
2962
+ "type": "object",
2963
+ "properties": {
2964
+ "@id": {
2965
+ "type": "string"
2966
+ }
2967
+ },
2968
+ "required": [
2969
+ "@id"
2970
+ ],
2971
+ "additionalProperties": false
2972
+ }
2973
+ }
2974
+ },
2975
+ "required": [
2976
+ "@list"
2977
+ ],
2978
+ "additionalProperties": false,
2979
+ "description": "AND Sequence operator - all constraints must be satisfied in order."
2980
+ }
2981
+ },
2982
+ "additionalProperties": {
2983
+ "anyOf": [
2984
+ {
2985
+ "$ref": "#/components/schemas/JsonLdNodePrimitive"
2986
+ },
2987
+ {
2988
+ "$ref": "#/components/schemas/JsonLdLanguageMap"
2989
+ },
2990
+ {
2991
+ "$ref": "#/components/schemas/JsonLdIndexMap"
2992
+ },
2993
+ {
2994
+ "$ref": "#/components/schemas/JsonLdIncludedBlock"
2995
+ },
2996
+ {
2997
+ "$ref": "#/components/schemas/JsonLdIdMap"
2998
+ },
2999
+ {
3000
+ "$ref": "#/components/schemas/JsonLdTypeMap"
3001
+ },
3002
+ {
3003
+ "type": "array"
3004
+ }
3005
+ ]
3006
+ },
3007
+ "description": "Interface for ODRL Logical Constraints. A Logical Constraint compares two or more existing Constraints by one logical operator. If the comparison returns a logical match, then the Logical Constraint is satisfied."
3008
+ },
3009
+ "OdrlParty": {
3010
+ "type": "object",
3011
+ "properties": {
3012
+ "@context": {
3013
+ "$ref": "#/components/schemas/JsonLdKeyword"
3014
+ },
3015
+ "@id": {
3016
+ "$ref": "#/components/schemas/JsonLdKeyword"
3017
+ },
3018
+ "@included": {
3019
+ "$ref": "#/components/schemas/JsonLdKeyword"
3020
+ },
3021
+ "@graph": {
3022
+ "anyOf": [
3023
+ {
3024
+ "$ref": "#/components/schemas/JsonLdNodeObject"
3025
+ },
3026
+ {
3027
+ "type": "array",
3028
+ "items": {
3029
+ "$ref": "#/components/schemas/JsonLdNodeObject"
3030
+ }
3031
+ }
3032
+ ]
3033
+ },
3034
+ "@nest": {
3035
+ "anyOf": [
3036
+ {
3037
+ "$ref": "#/components/schemas/JsonLdJsonObject"
3038
+ },
3039
+ {
3040
+ "type": "array",
3041
+ "items": {
3042
+ "$ref": "#/components/schemas/JsonLdJsonObject"
3043
+ }
3044
+ }
3045
+ ]
3046
+ },
3047
+ "@type": {
3048
+ "anyOf": [
3049
+ {
3050
+ "type": "string"
3051
+ },
3052
+ {
3053
+ "type": "array",
3054
+ "items": {
3055
+ "type": "string"
3056
+ }
3057
+ }
3058
+ ],
3059
+ "description": "The type of the party. Can be used to specify additional type information (e.g., \"Party\", \"vcard:Organization\", \"vcard:Individual\")."
3060
+ },
3061
+ "@reverse": {
3062
+ "type": "object",
3063
+ "additionalProperties": {
3064
+ "$ref": "#/components/schemas/JsonLdKeyword"
3065
+ }
3066
+ },
3067
+ "@index": {
3068
+ "$ref": "#/components/schemas/JsonLdKeyword"
3069
+ },
3070
+ "uid": {
3071
+ "type": "string",
3072
+ "description": "The unique identifier for the party. Must be an IRI."
3073
+ },
3074
+ "partOf": {
3075
+ "anyOf": [
3076
+ {
3077
+ "type": "string"
3078
+ },
3079
+ {
3080
+ "$ref": "#/components/schemas/OdrlPartyCollection"
3081
+ }
3082
+ ],
3083
+ "description": "Reference to the party collection this party is part of. Used to identify a PartyCollection that a Party entity is a member of."
3084
+ },
3085
+ "assigneeOf": {
3086
+ "type": "string",
3087
+ "description": "Reference to a policy where this party is an assignee. When assigneeOf is asserted, the Party MUST be inferred to undertake the assignee functional role of all the Rules of that Policy."
3088
+ },
3089
+ "assignerOf": {
3090
+ "type": "string",
3091
+ "description": "Reference to a policy where this party is an assigner. When assignerOf is asserted, the Party MUST be inferred to undertake the assigner functional role of all the Rules of that Policy."
3092
+ }
3093
+ },
3094
+ "additionalProperties": {
3095
+ "anyOf": [
3096
+ {
3097
+ "$ref": "#/components/schemas/JsonLdNodePrimitive"
3098
+ },
3099
+ {
3100
+ "$ref": "#/components/schemas/JsonLdLanguageMap"
3101
+ },
3102
+ {
3103
+ "$ref": "#/components/schemas/JsonLdIndexMap"
3104
+ },
3105
+ {
3106
+ "$ref": "#/components/schemas/JsonLdIncludedBlock"
3107
+ },
3108
+ {
3109
+ "$ref": "#/components/schemas/JsonLdIdMap"
3110
+ },
3111
+ {
3112
+ "$ref": "#/components/schemas/JsonLdTypeMap"
3113
+ },
3114
+ {
3115
+ "type": "array"
3116
+ }
3117
+ ]
3118
+ },
3119
+ "description": "Interface for ODRL Parties."
3120
+ },
3121
+ "OdrlPartyCollection": {
3122
+ "type": "object",
3123
+ "properties": {
3124
+ "@context": {
3125
+ "$ref": "#/components/schemas/JsonLdKeyword"
3126
+ },
3127
+ "@id": {
3128
+ "$ref": "#/components/schemas/JsonLdKeyword"
3129
+ },
3130
+ "@included": {
3131
+ "$ref": "#/components/schemas/JsonLdKeyword"
3132
+ },
3133
+ "@graph": {
3134
+ "anyOf": [
3135
+ {
3136
+ "$ref": "#/components/schemas/JsonLdNodeObject"
3137
+ },
3138
+ {
3139
+ "type": "array",
3140
+ "items": {
3141
+ "$ref": "#/components/schemas/JsonLdNodeObject"
3142
+ }
3143
+ }
3144
+ ]
3145
+ },
3146
+ "@nest": {
3147
+ "anyOf": [
3148
+ {
3149
+ "$ref": "#/components/schemas/JsonLdJsonObject"
3150
+ },
3151
+ {
3152
+ "type": "array",
3153
+ "items": {
3154
+ "$ref": "#/components/schemas/JsonLdJsonObject"
3155
+ }
3156
+ }
3157
+ ]
3158
+ },
3159
+ "@type": {
3160
+ "anyOf": [
3161
+ {
3162
+ "type": "string"
3163
+ },
3164
+ {
3165
+ "type": "array",
3166
+ "items": {
3167
+ "type": "string"
3168
+ }
3169
+ }
3170
+ ],
3171
+ "description": "The type of the party. Can be used to specify additional type information (e.g., \"Party\", \"vcard:Organization\", \"vcard:Individual\")."
3172
+ },
3173
+ "@reverse": {
3174
+ "type": "object",
3175
+ "additionalProperties": {
3176
+ "$ref": "#/components/schemas/JsonLdKeyword"
3177
+ }
3178
+ },
3179
+ "@index": {
3180
+ "$ref": "#/components/schemas/JsonLdKeyword"
3181
+ },
3182
+ "uid": {
3183
+ "type": "string",
3184
+ "description": "The unique identifier for the party. Must be an IRI."
3185
+ },
3186
+ "partOf": {
3187
+ "anyOf": [
3188
+ {
3189
+ "type": "string"
3190
+ },
3191
+ {
3192
+ "$ref": "#/components/schemas/OdrlPartyCollection"
3193
+ }
3194
+ ],
3195
+ "description": "Reference to the party collection this party is part of. Used to identify a PartyCollection that a Party entity is a member of."
3196
+ },
3197
+ "assigneeOf": {
3198
+ "type": "string",
3199
+ "description": "Reference to a policy where this party is an assignee. When assigneeOf is asserted, the Party MUST be inferred to undertake the assignee functional role of all the Rules of that Policy."
3200
+ },
3201
+ "assignerOf": {
3202
+ "type": "string",
3203
+ "description": "Reference to a policy where this party is an assigner. When assignerOf is asserted, the Party MUST be inferred to undertake the assigner functional role of all the Rules of that Policy."
3204
+ },
3205
+ "source": {
3206
+ "type": "string",
3207
+ "description": "Reference to the source of the party collection. Used to identify the origin or location of the collection."
3208
+ },
3209
+ "refinement": {
3210
+ "type": "array",
3211
+ "items": {
3212
+ "$ref": "#/components/schemas/OdrlConstraint"
3213
+ },
3214
+ "description": "Refinements applied to the party collection. Used to specify constraints that apply to all members of the collection."
3215
+ }
3216
+ },
3217
+ "required": [
3218
+ "source"
3219
+ ],
3220
+ "additionalProperties": {
3221
+ "anyOf": [
3222
+ {
3223
+ "$ref": "#/components/schemas/JsonLdNodePrimitive"
3224
+ },
3225
+ {
3226
+ "$ref": "#/components/schemas/JsonLdLanguageMap"
3227
+ },
3228
+ {
3229
+ "$ref": "#/components/schemas/JsonLdIndexMap"
3230
+ },
3231
+ {
3232
+ "$ref": "#/components/schemas/JsonLdIncludedBlock"
3233
+ },
3234
+ {
3235
+ "$ref": "#/components/schemas/JsonLdIdMap"
3236
+ },
3237
+ {
3238
+ "$ref": "#/components/schemas/JsonLdTypeMap"
3239
+ },
3240
+ {
3241
+ "type": "array"
3242
+ }
3243
+ ]
3244
+ },
3245
+ "description": "Interface for ODRL Party Collections. A PartyCollection identifies a collection of entities and is a subclass of Party."
3246
+ },
3247
+ "OdrlPermission": {
3248
+ "type": "object",
3249
+ "properties": {
3250
+ "@context": {
3251
+ "$ref": "#/components/schemas/JsonLdKeyword"
3252
+ },
3253
+ "@id": {
3254
+ "$ref": "#/components/schemas/JsonLdKeyword"
3255
+ },
3256
+ "@included": {
3257
+ "$ref": "#/components/schemas/JsonLdKeyword"
3258
+ },
3259
+ "@graph": {
3260
+ "anyOf": [
3261
+ {
3262
+ "$ref": "#/components/schemas/JsonLdNodeObject"
3263
+ },
3264
+ {
3265
+ "type": "array",
3266
+ "items": {
3267
+ "$ref": "#/components/schemas/JsonLdNodeObject"
3268
+ }
3269
+ }
3270
+ ]
3271
+ },
3272
+ "@nest": {
3273
+ "anyOf": [
3274
+ {
3275
+ "$ref": "#/components/schemas/JsonLdJsonObject"
3276
+ },
3277
+ {
3278
+ "type": "array",
3279
+ "items": {
3280
+ "$ref": "#/components/schemas/JsonLdJsonObject"
3281
+ }
3282
+ }
3283
+ ]
3284
+ },
3285
+ "@type": {
3286
+ "anyOf": [
3287
+ {
3288
+ "$ref": "#/components/schemas/JsonLdKeyword"
3289
+ },
3290
+ {
3291
+ "type": "array",
3292
+ "items": {
3293
+ "$ref": "#/components/schemas/JsonLdKeyword"
3294
+ }
3295
+ }
3296
+ ]
3297
+ },
3298
+ "@reverse": {
3299
+ "type": "object",
3300
+ "additionalProperties": {
3301
+ "$ref": "#/components/schemas/JsonLdKeyword"
3302
+ }
3303
+ },
3304
+ "@index": {
3305
+ "$ref": "#/components/schemas/JsonLdKeyword"
3306
+ },
3307
+ "uid": {
3308
+ "type": "string",
3309
+ "description": "Optional unique identifier for the rule."
3310
+ },
3311
+ "action": {
3312
+ "anyOf": [
3313
+ {
3314
+ "$ref": "#/components/schemas/ActionType"
3315
+ },
3316
+ {
3317
+ "$ref": "#/components/schemas/OdrlAction"
3318
+ },
3319
+ {
3320
+ "type": "array",
3321
+ "items": {
3322
+ "anyOf": [
3323
+ {
3324
+ "$ref": "#/components/schemas/ActionType"
3325
+ },
3326
+ {
3327
+ "$ref": "#/components/schemas/OdrlAction"
3328
+ }
3329
+ ]
3330
+ }
3331
+ }
3332
+ ],
3333
+ "description": "The action associated with the rule."
3334
+ },
3335
+ "target": {
3336
+ "anyOf": [
3337
+ {
3338
+ "type": "string"
3339
+ },
3340
+ {
3341
+ "$ref": "#/components/schemas/OdrlAsset"
3342
+ },
3343
+ {
3344
+ "type": "array",
3345
+ "items": {
3346
+ "anyOf": [
3347
+ {
3348
+ "type": "string"
3349
+ },
3350
+ {
3351
+ "$ref": "#/components/schemas/OdrlAsset"
3352
+ }
3353
+ ]
3354
+ }
3355
+ }
3356
+ ],
3357
+ "description": "The target asset for the rule."
3358
+ },
3359
+ "assigner": {
3360
+ "anyOf": [
3361
+ {
3362
+ "type": "string"
3363
+ },
3364
+ {
3365
+ "$ref": "#/components/schemas/OdrlParty"
3366
+ }
3367
+ ],
3368
+ "description": "The assigner of the rule."
3369
+ },
3370
+ "assignee": {
3371
+ "anyOf": [
3372
+ {
3373
+ "type": "string"
3374
+ },
3375
+ {
3376
+ "$ref": "#/components/schemas/OdrlParty"
3377
+ }
3378
+ ],
3379
+ "description": "The assignee of the rule."
3380
+ },
3381
+ "constraint": {
3382
+ "type": "array",
3383
+ "items": {
3384
+ "$ref": "#/components/schemas/OdrlConstraint"
3385
+ },
3386
+ "description": "Constraints applied to the rule."
3387
+ },
3388
+ "summary": {
3389
+ "type": "string",
3390
+ "description": "Additional relation sub-properties as defined in ODRL profiles. For example, 'summary' in profile \"http://example.com/odrl:profile:03\" indicates where the output should be stored."
3391
+ },
3392
+ "duty": {
3393
+ "type": "array",
3394
+ "items": {
3395
+ "$ref": "#/components/schemas/OdrlDuty"
3396
+ },
3397
+ "description": "The duties that must be fulfilled before the permission can be exercised. A Permission MAY have none, one, or more duty property values."
3398
+ }
3399
+ },
3400
+ "additionalProperties": {
3401
+ "anyOf": [
3402
+ {
3403
+ "$ref": "#/components/schemas/JsonLdNodePrimitive"
3404
+ },
3405
+ {
3406
+ "$ref": "#/components/schemas/JsonLdLanguageMap"
3407
+ },
3408
+ {
3409
+ "$ref": "#/components/schemas/JsonLdIndexMap"
3410
+ },
3411
+ {
3412
+ "$ref": "#/components/schemas/JsonLdIncludedBlock"
3413
+ },
3414
+ {
3415
+ "$ref": "#/components/schemas/JsonLdIdMap"
3416
+ },
3417
+ {
3418
+ "$ref": "#/components/schemas/JsonLdTypeMap"
3419
+ },
3420
+ {
3421
+ "type": "array"
3422
+ }
3423
+ ]
3424
+ },
3425
+ "description": "Interface for Permission Rules. A Permission allows an action to be exercised on an Asset if all constraints are satisfied and if all duties are fulfilled."
3426
+ },
3427
+ "OdrlPolicy": {
3428
+ "type": "object",
3429
+ "properties": {
3430
+ "@context": {
3431
+ "$ref": "#/components/schemas/OdrlContextType"
3432
+ },
3433
+ "@id": {
3434
+ "$ref": "#/components/schemas/JsonLdKeyword"
3435
+ },
3436
+ "@included": {
3437
+ "$ref": "#/components/schemas/JsonLdKeyword"
3438
+ },
3439
+ "@graph": {
3440
+ "anyOf": [
3441
+ {
3442
+ "$ref": "#/components/schemas/JsonLdNodeObject"
3443
+ },
3444
+ {
3445
+ "type": "array",
3446
+ "items": {
3447
+ "$ref": "#/components/schemas/JsonLdNodeObject"
3448
+ }
3449
+ }
3450
+ ]
3451
+ },
3452
+ "@nest": {
3453
+ "anyOf": [
3454
+ {
3455
+ "$ref": "#/components/schemas/JsonLdJsonObject"
3456
+ },
3457
+ {
3458
+ "type": "array",
3459
+ "items": {
3460
+ "$ref": "#/components/schemas/JsonLdJsonObject"
3461
+ }
3462
+ }
3463
+ ]
3464
+ },
3465
+ "@type": {
3466
+ "$ref": "#/components/schemas/PolicyType"
3467
+ },
3468
+ "@reverse": {
3469
+ "type": "object",
3470
+ "additionalProperties": {
3471
+ "$ref": "#/components/schemas/JsonLdKeyword"
3472
+ }
3473
+ },
3474
+ "@index": {
3475
+ "$ref": "#/components/schemas/JsonLdKeyword"
3476
+ },
3477
+ "uid": {
3478
+ "type": "string",
3479
+ "description": "The unique identifier for the policy. Must be an IRI."
3480
+ },
3481
+ "profile": {
3482
+ "anyOf": [
3483
+ {
3484
+ "type": "string"
3485
+ },
3486
+ {
3487
+ "type": "array",
3488
+ "items": {
3489
+ "type": "string"
3490
+ }
3491
+ }
3492
+ ],
3493
+ "description": "The profile(s) this policy conforms to. IRIs identifying the ODRL Profile(s)."
3494
+ },
3495
+ "assigner": {
3496
+ "anyOf": [
3497
+ {
3498
+ "type": "string"
3499
+ },
3500
+ {
3501
+ "$ref": "#/components/schemas/OdrlParty"
3502
+ }
3503
+ ],
3504
+ "description": "The assigner of the policy. Applies to all rules unless overridden at rule level."
3505
+ },
3506
+ "assignee": {
3507
+ "anyOf": [
3508
+ {
3509
+ "type": "string"
3510
+ },
3511
+ {
3512
+ "$ref": "#/components/schemas/OdrlParty"
3513
+ }
3514
+ ],
3515
+ "description": "The assignee of the policy. Applies to all rules unless overridden at rule level."
3516
+ },
3517
+ "target": {
3518
+ "anyOf": [
3519
+ {
3520
+ "type": "string"
3521
+ },
3522
+ {
3523
+ "$ref": "#/components/schemas/OdrlAsset"
3524
+ },
3525
+ {
3526
+ "type": "array",
3527
+ "items": {
3528
+ "anyOf": [
3529
+ {
3530
+ "type": "string"
3531
+ },
3532
+ {
3533
+ "$ref": "#/components/schemas/OdrlAsset"
3534
+ }
3535
+ ]
3536
+ }
3537
+ }
3538
+ ],
3539
+ "description": "The target asset for the rule."
3540
+ },
3541
+ "action": {
3542
+ "anyOf": [
3543
+ {
3544
+ "$ref": "#/components/schemas/ActionType"
3545
+ },
3546
+ {
3547
+ "$ref": "#/components/schemas/OdrlAction"
3548
+ },
3549
+ {
3550
+ "type": "array",
3551
+ "items": {
3552
+ "anyOf": [
3553
+ {
3554
+ "$ref": "#/components/schemas/ActionType"
3555
+ },
3556
+ {
3557
+ "$ref": "#/components/schemas/OdrlAction"
3558
+ }
3559
+ ]
3560
+ }
3561
+ }
3562
+ ],
3563
+ "description": "The action associated with the rule."
3564
+ },
3565
+ "inheritFrom": {
3566
+ "anyOf": [
3567
+ {
3568
+ "type": "string"
3569
+ },
3570
+ {
3571
+ "type": "array",
3572
+ "items": {
3573
+ "type": "string"
3574
+ }
3575
+ }
3576
+ ],
3577
+ "description": "The parent policy(ies) this policy inherits from. IRIs identifying the parent Policy(ies)."
3578
+ },
3579
+ "conflict": {
3580
+ "$ref": "#/components/schemas/ConflictStrategyType"
3581
+ },
3582
+ "permission": {
3583
+ "type": "array",
3584
+ "items": {
3585
+ "$ref": "#/components/schemas/OdrlPermission"
3586
+ },
3587
+ "description": "The permissions in the policy. At least one of permission, prohibition, or obligation must be present."
3588
+ },
3589
+ "prohibition": {
3590
+ "type": "array",
3591
+ "items": {
3592
+ "$ref": "#/components/schemas/OdrlProhibition"
3593
+ },
3594
+ "description": "The prohibitions in the policy. At least one of permission, prohibition, or obligation must be present."
3595
+ },
3596
+ "obligation": {
3597
+ "type": "array",
3598
+ "items": {
3599
+ "$ref": "#/components/schemas/OdrlDuty"
3600
+ },
3601
+ "description": "The obligations in the policy. At least one of permission, prohibition, or obligation must be present."
3602
+ }
3603
+ },
3604
+ "required": [
3605
+ "@context",
3606
+ "@type",
3607
+ "uid"
3608
+ ],
3609
+ "additionalProperties": {
3610
+ "anyOf": [
3611
+ {
3612
+ "$ref": "#/components/schemas/JsonLdNodePrimitive"
3613
+ },
3614
+ {
3615
+ "$ref": "#/components/schemas/JsonLdLanguageMap"
3616
+ },
3617
+ {
3618
+ "$ref": "#/components/schemas/JsonLdIndexMap"
3619
+ },
3620
+ {
3621
+ "$ref": "#/components/schemas/JsonLdIncludedBlock"
3622
+ },
3623
+ {
3624
+ "$ref": "#/components/schemas/JsonLdIdMap"
3625
+ },
3626
+ {
3627
+ "$ref": "#/components/schemas/JsonLdTypeMap"
3628
+ },
3629
+ {
3630
+ "type": "array"
3631
+ }
3632
+ ]
3633
+ },
3634
+ "description": "Interface representing an ODRL Policy."
3635
+ },
3636
+ "OdrlProhibition": {
3637
+ "type": "object",
3638
+ "properties": {
3639
+ "@context": {
3640
+ "$ref": "#/components/schemas/JsonLdKeyword"
3641
+ },
3642
+ "@id": {
3643
+ "$ref": "#/components/schemas/JsonLdKeyword"
3644
+ },
3645
+ "@included": {
3646
+ "$ref": "#/components/schemas/JsonLdKeyword"
3647
+ },
3648
+ "@graph": {
3649
+ "anyOf": [
3650
+ {
3651
+ "$ref": "#/components/schemas/JsonLdNodeObject"
3652
+ },
3653
+ {
3654
+ "type": "array",
3655
+ "items": {
3656
+ "$ref": "#/components/schemas/JsonLdNodeObject"
3657
+ }
3658
+ }
3659
+ ]
3660
+ },
3661
+ "@nest": {
3662
+ "anyOf": [
3663
+ {
3664
+ "$ref": "#/components/schemas/JsonLdJsonObject"
3665
+ },
3666
+ {
3667
+ "type": "array",
3668
+ "items": {
3669
+ "$ref": "#/components/schemas/JsonLdJsonObject"
3670
+ }
3671
+ }
3672
+ ]
3673
+ },
3674
+ "@type": {
3675
+ "anyOf": [
3676
+ {
3677
+ "$ref": "#/components/schemas/JsonLdKeyword"
3678
+ },
3679
+ {
3680
+ "type": "array",
3681
+ "items": {
3682
+ "$ref": "#/components/schemas/JsonLdKeyword"
3683
+ }
3684
+ }
3685
+ ]
3686
+ },
3687
+ "@reverse": {
3688
+ "type": "object",
3689
+ "additionalProperties": {
3690
+ "$ref": "#/components/schemas/JsonLdKeyword"
3691
+ }
3692
+ },
3693
+ "@index": {
3694
+ "$ref": "#/components/schemas/JsonLdKeyword"
3695
+ },
3696
+ "uid": {
3697
+ "type": "string",
3698
+ "description": "Optional unique identifier for the rule."
3699
+ },
3700
+ "action": {
3701
+ "anyOf": [
3702
+ {
3703
+ "$ref": "#/components/schemas/ActionType"
3704
+ },
3705
+ {
3706
+ "$ref": "#/components/schemas/OdrlAction"
3707
+ },
3708
+ {
3709
+ "type": "array",
3710
+ "items": {
3711
+ "anyOf": [
3712
+ {
3713
+ "$ref": "#/components/schemas/ActionType"
3714
+ },
3715
+ {
3716
+ "$ref": "#/components/schemas/OdrlAction"
3717
+ }
3718
+ ]
3719
+ }
3720
+ }
3721
+ ],
3722
+ "description": "The action associated with the rule."
3723
+ },
3724
+ "target": {
3725
+ "anyOf": [
3726
+ {
3727
+ "type": "string"
3728
+ },
3729
+ {
3730
+ "$ref": "#/components/schemas/OdrlAsset"
3731
+ },
3732
+ {
3733
+ "type": "array",
3734
+ "items": {
3735
+ "anyOf": [
3736
+ {
3737
+ "type": "string"
3738
+ },
3739
+ {
3740
+ "$ref": "#/components/schemas/OdrlAsset"
3741
+ }
3742
+ ]
3743
+ }
3744
+ }
3745
+ ],
3746
+ "description": "The target asset for the rule."
3747
+ },
3748
+ "assigner": {
3749
+ "anyOf": [
3750
+ {
3751
+ "type": "string"
3752
+ },
3753
+ {
3754
+ "$ref": "#/components/schemas/OdrlParty"
3755
+ }
3756
+ ],
3757
+ "description": "The assigner of the rule."
3758
+ },
3759
+ "assignee": {
3760
+ "anyOf": [
3761
+ {
3762
+ "type": "string"
3763
+ },
3764
+ {
3765
+ "$ref": "#/components/schemas/OdrlParty"
3766
+ }
3767
+ ],
3768
+ "description": "The assignee of the rule."
3769
+ },
3770
+ "constraint": {
3771
+ "type": "array",
3772
+ "items": {
3773
+ "$ref": "#/components/schemas/OdrlConstraint"
3774
+ },
3775
+ "description": "Constraints applied to the rule."
3776
+ },
3777
+ "summary": {
3778
+ "type": "string",
3779
+ "description": "Additional relation sub-properties as defined in ODRL profiles. For example, 'summary' in profile \"http://example.com/odrl:profile:03\" indicates where the output should be stored."
3780
+ },
3781
+ "remedy": {
3782
+ "type": "array",
3783
+ "items": {
3784
+ "$ref": "#/components/schemas/OdrlDuty"
3785
+ },
3786
+ "description": "The remedies that must be fulfilled if prohibition is violated."
3787
+ }
3788
+ },
3789
+ "additionalProperties": {
3790
+ "anyOf": [
3791
+ {
3792
+ "$ref": "#/components/schemas/JsonLdNodePrimitive"
3793
+ },
3794
+ {
3795
+ "$ref": "#/components/schemas/JsonLdLanguageMap"
3796
+ },
3797
+ {
3798
+ "$ref": "#/components/schemas/JsonLdIndexMap"
3799
+ },
3800
+ {
3801
+ "$ref": "#/components/schemas/JsonLdIncludedBlock"
3802
+ },
3803
+ {
3804
+ "$ref": "#/components/schemas/JsonLdIdMap"
3805
+ },
3806
+ {
3807
+ "$ref": "#/components/schemas/JsonLdTypeMap"
3808
+ },
3809
+ {
3810
+ "type": "array"
3811
+ }
3812
+ ]
3813
+ },
3814
+ "description": "Interface for Prohibition Rules."
3815
+ },
3816
+ "OperatorType": {
3817
+ "anyOf": [
3818
+ {
3819
+ "type": "string",
3820
+ "const": "eq",
3821
+ "description": "Equal type."
3822
+ },
3823
+ {
3824
+ "type": "string",
3825
+ "const": "gt",
3826
+ "description": "Greater than type."
3827
+ },
3828
+ {
3829
+ "type": "string",
3830
+ "const": "gteq",
3831
+ "description": "Greater than or equal to type."
3832
+ },
3833
+ {
3834
+ "type": "string",
3835
+ "const": "lt",
3836
+ "description": "Less than type."
3837
+ },
3838
+ {
3839
+ "type": "string",
3840
+ "const": "lteq",
3841
+ "description": "Less than or equal to type."
3842
+ },
3843
+ {
3844
+ "type": "string",
3845
+ "const": "neq",
3846
+ "description": "Not equal to type."
3847
+ },
3848
+ {
3849
+ "type": "string",
3850
+ "const": "isA",
3851
+ "description": "Is a type."
3852
+ },
3853
+ {
3854
+ "type": "string",
3855
+ "const": "hasPart",
3856
+ "description": "Has part type."
3857
+ },
3858
+ {
3859
+ "type": "string",
3860
+ "const": "isPartOf",
3861
+ "description": "Is part of type."
3862
+ },
3863
+ {
3864
+ "type": "string",
3865
+ "const": "isAllOf",
3866
+ "description": "Is all of type."
3867
+ },
3868
+ {
3869
+ "type": "string",
3870
+ "const": "isAnyOf",
3871
+ "description": "Is any of type."
3872
+ },
3873
+ {
3874
+ "type": "string",
3875
+ "const": "isNoneOf",
3876
+ "description": "Is none of type."
3877
+ },
3878
+ {
3879
+ "type": "string",
3880
+ "const": "locTimeEq",
3881
+ "description": "Location time equal to type."
3882
+ },
3883
+ {
3884
+ "type": "string",
3885
+ "const": "locTimeGteq",
3886
+ "description": "Location time greater than or equal to type."
3887
+ }
3888
+ ],
3889
+ "description": "The types for ODRL Operators."
3890
+ },
3891
+ "PapQueryResponse": {
3892
+ "type": "object",
3893
+ "properties": {
3894
+ "cursor": {
3895
+ "type": "string",
3896
+ "description": "The cursor for the next page of results, if there are more results available."
3897
+ },
3898
+ "policies": {
3899
+ "type": "array",
3900
+ "items": {
3901
+ "$ref": "#/components/schemas/OdrlPolicy"
3902
+ },
3903
+ "description": "The policies matching the query."
3904
+ }
3905
+ },
3906
+ "required": [
3907
+ "policies"
3908
+ ],
3909
+ "additionalProperties": false,
3910
+ "description": "The body of the response."
3911
+ },
3912
+ "PapStoreRequest": {
3913
+ "type": "object",
3914
+ "properties": {
3915
+ "policy": {
3916
+ "$ref": "#/components/schemas/OdrlPolicy"
3917
+ }
3918
+ },
3919
+ "required": [
3920
+ "policy"
3921
+ ],
3922
+ "additionalProperties": false,
3923
+ "description": "The body of the request."
3924
+ },
3925
+ "PolicyType": {
3926
+ "anyOf": [
3927
+ {
3928
+ "type": "string",
3929
+ "const": "Policy",
3930
+ "description": "Policy type."
3931
+ },
3932
+ {
3933
+ "type": "string",
3934
+ "const": "Set",
3935
+ "description": "Set type."
3936
+ },
3937
+ {
3938
+ "type": "string",
3939
+ "const": "Offer",
3940
+ "description": "Offer type."
3941
+ },
3942
+ {
3943
+ "type": "string",
3944
+ "const": "Agreement",
3945
+ "description": "Agreement type."
3946
+ }
3947
+ ],
3948
+ "description": "The types for ODRL Policies."
3949
+ },
3950
+ "StatusType": {
3951
+ "anyOf": [
3952
+ {
3953
+ "type": "string",
3954
+ "const": "active",
3955
+ "description": "Active type."
3956
+ },
3957
+ {
3958
+ "type": "string",
3959
+ "const": "inactive",
3960
+ "description": "Inactive type."
3961
+ },
3962
+ {
3963
+ "type": "string",
3964
+ "const": "pending",
3965
+ "description": "Pending type."
3966
+ },
3967
+ {
3968
+ "type": "string",
3969
+ "const": "revoked",
3970
+ "description": "Revoked type."
3971
+ }
3972
+ ],
3973
+ "description": "The types for ODRL Status."
3974
+ }
3975
+ },
3976
+ "securitySchemes": {
3977
+ "jwtBearerAuthScheme": {
3978
+ "type": "http",
3979
+ "scheme": "bearer",
3980
+ "bearerFormat": "JWT"
3981
+ }
3982
+ }
3983
+ }
3984
+ }