-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathapi-spec.yaml
799 lines (799 loc) · 24 KB
/
api-spec.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
paths:
/operations:
get:
summary: Get list of long running operations
parameters:
- in: query
name: type
schema:
type: string
required: false
description: filter list of long running operations by type
responses:
'200':
content:
application/json:
schema:
type: array
/oobis:
post:
summary: Resolve OOBI and assign an alias for the remote identifier
description: Resolve OOBI URL or `rpy` message by process results of request
and assign 'alias' in contact data for resolved identifier
tags:
- OOBIs
requestBody:
required: true
content:
application/json:
schema:
description: OOBI
properties:
oobialias:
type: string
description: alias to assign to the identifier resolved from this
OOBI
required: false
url:
type: string
description: URL OOBI
rpy:
type: object
description: unsigned KERI `rpy` event message with endpoints
responses:
'202':
description: OOBI resolution to key state successful
/states:
get:
summary: Display key event log (KEL) for given identifier prefix
description: If provided qb64 identifier prefix is in Kevers, return the current
state of the identifier along with the KEL and all associated signatures and
receipts
tags:
- Key Event Log
parameters:
- in: path
name: prefix
schema:
type: string
required: true
description: qb64 identifier prefix of KEL to load
responses:
'200':
description: Key event log and key state of identifier
'404':
description: Identifier not found in Key event database
/events:
get:
summary: Display key event log (KEL) for given identifier prefix
description: If provided qb64 identifier prefix is in Kevers, return the current
state of the identifier along with the KEL and all associated signatures and
receipts
tags:
- Key Event Log
parameters:
- in: path
name: prefix
schema:
type: string
required: true
description: qb64 identifier prefix of KEL to load
responses:
'200':
description: Key event log and key state of identifier
'404':
description: Identifier not found in Key event database
/queries:
post:
summary: Display key event log (KEL) for given identifier prefix
description: If provided qb64 identifier prefix is in Kevers, return the current
state of the identifier along with the KEL and all associated signatures and
receipts
tags:
- Query
parameters:
- in: body
name: pre
schema:
type: string
required: true
description: qb64 identifier prefix of KEL to load
responses:
'200':
description: Key event log and key state of identifier
'404':
description: Identifier not found in Key event database
/identifiers:
get: {}
options: {}
post: {}
/challenges:
get:
summary: Get random list of words for a 2 factor auth challenge
description: Get the list of identifiers associated with this agent
tags:
- Challenge/Response
parameters:
- in: query
name: strength
schema:
type: int
description: cryptographic strength of word list
required: false
responses:
'200':
description: An array of random words
content:
application/json:
schema:
description: Random word list
type: object
properties:
words:
type: array
description: random challenge word list
items:
type: string
/contacts:
get:
summary: Get list of contact information associated with remote identifiers
description: Get list of contact information associated with remote identifiers. All
information is metadata and kept in local storage only
tags:
- Contacts
parameters:
- in: query
name: group
schema:
type: string
required: false
description: field name to group results by
- in: query
name: filter_field
schema:
type: string
description: field name to search
required: false
- in: query
name: filter_value
schema:
type: string
description: value to search for
required: false
responses:
'200':
description: List of contact information for remote identifiers
/schema:
get:
summary: Get schema JSON of all schema
description: Get schema JSON of all schema
tags:
- Schema
responses:
'200':
description: Array of all schema JSON
/notifications:
get:
summary: Get list of notifications for the controller of the agent
description: Get list of notifications for the controller of the agent. Notifications
will be sorted by creation date/time
parameters:
- in: header
name: Range
schema:
type: string
required: false
description: size of the result list. Defaults to 25
tags:
- Notifications
responses:
'200':
description: List of contact information for remote identifiers
/operations/{name}:
delete: {}
get: {}
/oobis/{alias}:
get:
summary: Get OOBI for specific identifier
description: Generate OOBI for the identifier of the specified alias and role
tags:
- OOBIs
parameters:
- in: path
name: alias
schema:
type: string
required: true
description: human readable alias for the identifier generate OOBI for
- in: query
name: role
schema:
type: string
required: true
description: role for which to generate OOBI
responses:
'200':
description: An array of Identifier key state information
content:
application/json:
schema:
description: Key state information for current identifiers
type: object
/agent/{caid}:
get: {}
put: {}
/identifiers/{name}:
get: {}
put: {}
/endroles/{aid}:
get: {}
post: {}
/escrows/rpy:
get: {}
/challenges/{name}:
post:
summary: Sign challenge message and forward to peer identifier
description: Sign a challenge word list received out of bands and send `exn`
peer to peer message to recipient
tags:
- Challenge/Response
parameters:
- in: path
name: name
schema:
type: string
required: true
description: Human readable alias for the identifier to create
requestBody:
required: true
content:
application/json:
schema:
description: Challenge response
properties:
recipient:
type: string
description: human readable alias recipient identifier to send signed
challenge to
words:
type: array
description: challenge in form of word list
items:
type: string
responses:
'202':
description: Success submission of signed challenge/response
/contacts/{prefix}:
delete:
summary: Delete contact information associated with remote identifier
description: Delete contact information associated with remote identifier
tags:
- Contacts
parameters:
- in: path
name: prefix
schema:
type: string
required: true
description: qb64 identifier prefix of contact to delete
responses:
'202':
description: Contact information successfully deleted for prefix
'404':
description: No contact information found for prefix
get:
summary: Get contact information associated with single remote identifier
description: Get contact information associated with single remote identifier. All
information is meta-data and kept in local storage only
tags:
- Contacts
parameters:
- in: path
name: prefix
schema:
type: string
required: true
description: qb64 identifier prefix of contact to get
responses:
'200':
description: Contact information successfully retrieved for prefix
'404':
description: No contact information found for prefix
post:
summary: Create new contact information for an identifier
description: Creates new information for an identifier, overwriting all existing
information for that identifier
tags:
- Contacts
parameters:
- in: path
name: prefix
schema:
type: string
required: true
description: qb64 identifier prefix to add contact metadata to
requestBody:
required: true
content:
application/json:
schema:
description: Contact information
type: object
responses:
'200':
description: Updated contact information for remote identifier
'400':
description: Invalid identifier used to update contact information
'404':
description: Prefix not found in identifier contact information
put:
summary: Update provided fields in contact information associated with remote
identifier prefix
description: Update provided fields in contact information associated with remote
identifier prefix. All information is metadata and kept in local storage
only
tags:
- Contacts
parameters:
- in: path
name: prefix
schema:
type: string
required: true
description: qb64 identifier prefix to add contact metadata to
requestBody:
required: true
content:
application/json:
schema:
description: Contact information
type: object
responses:
'200':
description: Updated contact information for remote identifier
'400':
description: Invalid identifier used to update contact information
'404':
description: Prefix not found in identifier contact information
/schema/{said}:
get:
summary: Get schema JSON of specified schema
description: Get schema JSON of specified schema
tags:
- Schema
parameters:
- in: path
name: said
schema:
type: string
required: true
description: qb64 self-addressing identifier of schema to get
responses:
'200':
description: Schema JSON successfully returned
'404':
description: No schema found for SAID
/credentials/query:
post:
summary: List credentials in credential store (wallet)
description: List issued or received credentials current verified
tags:
- Credentials
parameters:
- in: path
name: aid
schema:
type: string
required: true
description: identifier to load credentials for
- in: query
name: type
schema:
type: string
description: type of credential to return, [issued|received]
required: true
- in: query
name: schema
schema:
type: string
description: schema to filter by if provided
required: false
responses:
'200':
description: Credential list.
content:
application/json:
schema:
description: Credentials
type: array
items:
type: object
/notifications/{said}:
delete:
summary: Delete notification
description: Delete notification
tags:
- Notifications
parameters:
- in: path
name: said
schema:
type: string
required: true
description: qb64 said of note to delete
responses:
'202':
description: Notification successfully deleted for prefix
'404':
description: No notification information found for prefix
put:
summary: Mark notification as read
description: Mark notification as read
tags:
- Notifications
parameters:
- in: path
name: said
schema:
type: string
required: true
description: qb64 said of note to mark as read
responses:
'202':
description: Notification successfully marked as read for prefix
'404':
description: No notification information found for SAID
/exchanges/query:
post: {}
/exchanges/{said}:
get: {}
/identifiers/{name}/oobis:
get: {}
/identifiers/{name}/endroles:
get: {}
post: {}
/identifiers/{name}/members:
get: {}
/identifiers/{name}/registries:
get:
summary: List credential issuance and revocation registies
description: List credential issuance and revocation registies
tags:
- Registries
responses:
'200':
description: array of current credential issuance and revocation registies
post:
summary: Request to create a credential issuance and revocation registry
description: Request to create a credential issuance and revocation registry
tags:
- Registries
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: name of the new registry
alias:
type: string
description: name of identifier to associate as the issuer of the
new credential registry
toad:
type: integer
description: Backer receipt threshold
nonce:
type: string
description: qb64 encoded ed25519 random seed for registry
noBackers:
type: boolean
required: false
description: True means to not allow seperate backers from identifier's
witnesses.
baks:
type: array
items:
type: string
description: List of qb64 AIDs of witnesses to be used for the new
group identifier.
estOnly:
type: boolean
required: false
default: false
description: True means to not allow interaction events to anchor
credential events.
responses:
'202':
description: registry inception request has been submitted
/identifiers/{name}/credentials:
post:
summary: Perform credential issuance
description: Perform credential issuance
tags:
- Credentials
parameters:
- in: path
name: alias
schema:
type: string
required: true
description: Human readable alias for the identifier to create
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
registry:
type: string
description: Alias of credential issuance/revocation registry (aka
status)
recipient:
type: string
description: AID of credential issuance/revocation recipient
schema:
type: string
description: SAID of credential schema being issued
rules:
type: object
description: Rules section (Ricardian contract) for credential being
issued
source:
type: object
description: ACDC edge or edge group for chained credentials
properties:
d:
type: string
description: SAID of reference chain
s:
type: string
description: SAID of reference chain schema
credentialData:
type: object
description: dynamic map of values specific to the schema
private:
type: boolean
description: flag to inidicate this credential should support privacy
preserving presentations
responses:
'200':
description: Credential issued.
content:
application/json:
schema:
description: Credential
type: object
/identifiers/{name}/exchanges:
post: {}
/endroles/{aid}/{role}:
get: {}
post: {}
/contacts/{prefix}/img:
get:
summary: Get contact image for identifer prefix
description: Get contact image for identifer prefix
tags:
- Contacts
parameters:
- in: path
name: prefix
schema:
type: string
required: true
description: qb64 identifier prefix of contact image to get
responses:
'200':
description: Contact information successfully retrieved for prefix
content:
image/jpg:
schema:
description: Image
type: binary
'404':
description: No contact information found for prefix
post:
summary: Uploads an image to associate with identifier.
description: Uploads an image to associate with identifier.
tags:
- Contacts
parameters:
- in: path
name: prefix
schema:
type: string
description: identifier prefix to associate image to
required: true
requestBody:
required: true
content:
image/jpg:
schema:
type: string
format: binary
image/png:
schema:
type: string
format: binary
responses:
'200':
description: Image successfully uploaded
/multisig/request/{said}:
get: {}
/identifiers/{name}/endroles/{role}:
get: {}
post: {}
/identifiers/{name}/registries/{registryName}:
get:
summary: Get a single credential issuance and revocation registy
description: Get a single credential issuance and revocation registy
tags:
- Registries
responses:
'200':
description: credential issuance and revocation registy
/identifiers/{name}/credentials/{said}:
delete:
summary: Perform credential revocation
description: Perform credential revocation
get:
summary: Export credential and all supporting cryptographic material
description: Export credential and all supporting cryptographic material
tags:
- Credentials
parameters:
- in: path
name: aid
schema:
type: string
required: true
description: The identifier to create
- in: path
name: said
schema:
type: string
required: true
description: SAID of credential to get
responses:
'200':
description: Credential export.
content:
application/json+cesr:
schema:
description: Credential
type: object
/identifiers/{name}/multisig/request:
post: {}
/identifiers/{name}/multisig/join:
post: {}
/identifiers/{name}/ipex/admit:
post:
summary: List credential issuance and revocation registies
description: List credential issuance and revocation registies
tags:
- Registries
responses:
'200':
description: array of current credential issuance and revocation registies
/identifiers/{name}/ipex/grant:
post:
summary: List credential issuance and revocation registies
description: List credential issuance and revocation registies
tags:
- Registries
responses:
'200':
description: array of current credential issuance and revocation registies
/challenges/{name}/verify/{source}:
post:
summary: Sign challenge message and forward to peer identifier
description: Sign a challenge word list received out of bands and send `exn`
peer to peer message to recipient
tags:
- Challenge/Response
parameters:
- in: path
name: name
schema:
type: string
required: true
description: Human readable alias for the identifier to create
requestBody:
required: true
content:
application/json:
schema:
description: Challenge response
properties:
recipient:
type: string
description: human readable alias recipient identifier to send signed
challenge to
words:
type: array
description: challenge in form of word list
items:
type: string
responses:
'202':
description: Success submission of signed challenge/response
put:
summary: Mark challenge response exn message as signed
description: Mark challenge response exn message as signed
tags:
- Challenge/Response
parameters:
- in: path
name: name
schema:
type: string
required: true
description: Human readable alias for the identifier to create
requestBody:
required: true
content:
application/json:
schema:
description: Challenge response
properties:
aid:
type: string
description: aid of signer of accepted challenge response
said:
type: array
description: SAID of challenge message signed
items:
type: string
responses:
'202':
description: Success submission of signed challenge/response
/identifiers/{name}/endroles/{role}/{eid}:
delete: {}
/oobi:
get: {}
/:
post:
summary: Accept KERI events with attachment headers and parse
description: Accept KERI events with attachment headers and parse.
tags:
- Events
requestBody:
required: true
content:
application/json:
schema:
type: object
description: KERI event message
responses:
'204':
description: KEL EXN, QRY, RPY event accepted.
put:
summary: Accept KERI events with attachment headers and parse
description: Accept KERI events with attachment headers and parse.
tags:
- Events
requestBody:
required: true
content:
application/json:
schema:
type: object
description: KERI event message
responses:
'200':
description: Mailbox query response for server sent events
'204':
description: KEL or EXN event accepted.
/oobi/{aid}:
get: {}
/oobi/{aid}/{role}:
get: {}
/oobi/{aid}/{role}/{eid}:
get: {}
info:
title: KERIA Interactive Web Interface API
version: 1.0.1
openapi: 3.1.0