1 | openapi: "3.0.2" |
---|
2 | info: |
---|
3 | title: 1Password Connect |
---|
4 | description: >- |
---|
5 | REST API interface for 1Password Connect. |
---|
6 | version: "1.5.7" |
---|
7 | contact: |
---|
8 | name: 1Password Integrations |
---|
9 | email: support@1password.com |
---|
10 | url: https://support.1password.com/ |
---|
11 | servers: |
---|
12 | - url: http://localhost:8080/v1 |
---|
13 | |
---|
14 | tags: |
---|
15 | - name: Items |
---|
16 | description: Access and manage items inside 1Password Vaults |
---|
17 | - name: Vaults |
---|
18 | description: Access 1Password Vaults |
---|
19 | - name: Activity |
---|
20 | description: Access API Request Activity |
---|
21 | |
---|
22 | components: |
---|
23 | securitySchemes: |
---|
24 | ConnectToken: |
---|
25 | type: http |
---|
26 | scheme: bearer |
---|
27 | bearerFormat: JWT |
---|
28 | schemas: |
---|
29 | ErrorResponse: |
---|
30 | type: object |
---|
31 | properties: |
---|
32 | status: |
---|
33 | type: integer |
---|
34 | description: HTTP Status Code |
---|
35 | message: |
---|
36 | type: string |
---|
37 | description: A message detailing the error |
---|
38 | File: |
---|
39 | type: object |
---|
40 | properties: |
---|
41 | id: |
---|
42 | type: string |
---|
43 | description: ID of the file |
---|
44 | name: |
---|
45 | type: string |
---|
46 | description: Name of the file |
---|
47 | size: |
---|
48 | type: integer |
---|
49 | description: Size in bytes of the file |
---|
50 | content_path: |
---|
51 | type: string |
---|
52 | description: Path of the Connect API that can be used to download the contents of this file. |
---|
53 | readOnly: true |
---|
54 | section: |
---|
55 | type: object |
---|
56 | description: For files that are in a section, this field describes the section. |
---|
57 | properties: |
---|
58 | id: |
---|
59 | type: string |
---|
60 | content: |
---|
61 | type: string |
---|
62 | format: byte |
---|
63 | description: Base64-encoded contents of the file. Only set if size <= OP_MAX_INLINE_FILE_SIZE_KB kb and `inline_files` is set to `true`. |
---|
64 | example: |
---|
65 | id: 6r65pjq33banznomn7q22sj44e |
---|
66 | name: foo.txt |
---|
67 | size: 35 |
---|
68 | content_path: v1/vaults/ionaiwtdvgclrixbt6ztpqcxnq/items/p7eflcy7f5mk7vg6zrzf5rjjyu/files/6r65pjq33banznomn7q22sj44e/content |
---|
69 | content: VGhlIGZ1dHVyZSBiZWxvbmdzIHRvIHRoZSBjdXJpb3VzLgo= |
---|
70 | Vault: |
---|
71 | type: object |
---|
72 | properties: |
---|
73 | id: |
---|
74 | type: string |
---|
75 | pattern: '^[\da-z]{26}$' |
---|
76 | name: |
---|
77 | type: string |
---|
78 | description: |
---|
79 | type: string |
---|
80 | attributeVersion: |
---|
81 | type: integer |
---|
82 | description: The vault version |
---|
83 | contentVersion: |
---|
84 | type: integer |
---|
85 | description: The version of the vault contents |
---|
86 | items: |
---|
87 | description: Number of active items in the vault |
---|
88 | type: integer |
---|
89 | type: |
---|
90 | type: string |
---|
91 | enum: |
---|
92 | - USER_CREATED |
---|
93 | - PERSONAL |
---|
94 | - EVERYONE |
---|
95 | - TRANSFER |
---|
96 | createdAt: |
---|
97 | type: string |
---|
98 | format: date-time |
---|
99 | readOnly: true |
---|
100 | updatedAt: |
---|
101 | type: string |
---|
102 | format: date-time |
---|
103 | readOnly: true |
---|
104 | GeneratorRecipe: |
---|
105 | description: The recipe is used in conjunction with the "generate" property to set the character set used to generate a new secure value |
---|
106 | type: object |
---|
107 | properties: |
---|
108 | length: |
---|
109 | type: integer |
---|
110 | description: Length of the generated value |
---|
111 | default: 32 |
---|
112 | minimum: 1 |
---|
113 | maximum: 64 |
---|
114 | characterSets: |
---|
115 | type: array |
---|
116 | items: |
---|
117 | type: string |
---|
118 | enum: |
---|
119 | - LETTERS |
---|
120 | - DIGITS |
---|
121 | - SYMBOLS |
---|
122 | minimum: 0 |
---|
123 | maximum: 3 |
---|
124 | uniqueItems: true |
---|
125 | excludeCharacters: |
---|
126 | type: string |
---|
127 | description: "List of all characters that should be excluded from generated passwords." |
---|
128 | example: "abc1" |
---|
129 | Item: |
---|
130 | type: object |
---|
131 | required: |
---|
132 | - vault |
---|
133 | - category |
---|
134 | properties: |
---|
135 | id: |
---|
136 | type: string |
---|
137 | pattern: '^[\da-z]{26}$' |
---|
138 | title: |
---|
139 | type: string |
---|
140 | vault: |
---|
141 | type: object |
---|
142 | required: |
---|
143 | - id |
---|
144 | properties: |
---|
145 | id: |
---|
146 | type: string |
---|
147 | pattern: '^[\da-z]{26}$' |
---|
148 | category: |
---|
149 | type: string |
---|
150 | enum: |
---|
151 | - "LOGIN" |
---|
152 | - "PASSWORD" |
---|
153 | - "API_CREDENTIAL" |
---|
154 | - "SERVER" |
---|
155 | - "DATABASE" |
---|
156 | - "CREDIT_CARD" |
---|
157 | - "MEMBERSHIP" |
---|
158 | - "PASSPORT" |
---|
159 | - "SOFTWARE_LICENSE" |
---|
160 | - "OUTDOOR_LICENSE" |
---|
161 | - "SECURE_NOTE" |
---|
162 | - "WIRELESS_ROUTER" |
---|
163 | - "BANK_ACCOUNT" |
---|
164 | - "DRIVER_LICENSE" |
---|
165 | - "IDENTITY" |
---|
166 | - "REWARD_PROGRAM" |
---|
167 | - "DOCUMENT" |
---|
168 | - "EMAIL_ACCOUNT" |
---|
169 | - "SOCIAL_SECURITY_NUMBER" |
---|
170 | - "MEDICAL_RECORD" |
---|
171 | - "SSH_KEY" |
---|
172 | - "CUSTOM" |
---|
173 | urls: |
---|
174 | type: array |
---|
175 | items: |
---|
176 | type: object |
---|
177 | required: |
---|
178 | - href |
---|
179 | properties: |
---|
180 | label: |
---|
181 | type: string |
---|
182 | primary: |
---|
183 | type: boolean |
---|
184 | href: |
---|
185 | type: string |
---|
186 | format: url |
---|
187 | example: |
---|
188 | - primary: true |
---|
189 | href: https://example.com |
---|
190 | - href: https://example.org |
---|
191 | favorite: |
---|
192 | type: boolean |
---|
193 | default: false |
---|
194 | tags: |
---|
195 | type: array |
---|
196 | items: |
---|
197 | type: string |
---|
198 | version: |
---|
199 | type: integer |
---|
200 | state: |
---|
201 | type: string |
---|
202 | readOnly: true |
---|
203 | enum: |
---|
204 | - "ARCHIVED" |
---|
205 | - "DELETED" |
---|
206 | createdAt: |
---|
207 | type: string |
---|
208 | format: date-time |
---|
209 | readOnly: true |
---|
210 | updatedAt: |
---|
211 | type: string |
---|
212 | format: date-time |
---|
213 | readOnly: true |
---|
214 | lastEditedBy: |
---|
215 | type: string |
---|
216 | readOnly: true |
---|
217 | FullItem: |
---|
218 | allOf: |
---|
219 | - $ref: "#/components/schemas/Item" |
---|
220 | - type: object |
---|
221 | properties: |
---|
222 | sections: |
---|
223 | type: array |
---|
224 | items: |
---|
225 | type: object |
---|
226 | properties: |
---|
227 | id: |
---|
228 | type: string |
---|
229 | label: |
---|
230 | type: string |
---|
231 | fields: |
---|
232 | type: array |
---|
233 | items: |
---|
234 | $ref: '#/components/schemas/Field' |
---|
235 | files: |
---|
236 | type: array |
---|
237 | items: |
---|
238 | $ref: '#/components/schemas/File' |
---|
239 | Field: |
---|
240 | type: object |
---|
241 | required: |
---|
242 | - id |
---|
243 | - type |
---|
244 | properties: |
---|
245 | id: |
---|
246 | type: string |
---|
247 | section: |
---|
248 | type: object |
---|
249 | properties: |
---|
250 | id: |
---|
251 | type: string |
---|
252 | type: |
---|
253 | type: string |
---|
254 | default: "STRING" |
---|
255 | enum: |
---|
256 | - "STRING" |
---|
257 | - "EMAIL" |
---|
258 | - "CONCEALED" |
---|
259 | - "URL" |
---|
260 | - "TOTP" |
---|
261 | - "DATE" |
---|
262 | - "MONTH_YEAR" |
---|
263 | - "MENU" |
---|
264 | purpose: |
---|
265 | description: Some item types, Login and Password, have fields used for autofill. This property indicates that purpose and is required for some item types. |
---|
266 | type: string |
---|
267 | enum: |
---|
268 | - "" |
---|
269 | - "USERNAME" |
---|
270 | - "PASSWORD" |
---|
271 | - "NOTES" |
---|
272 | label: |
---|
273 | type: string |
---|
274 | value: |
---|
275 | type: string |
---|
276 | generate: |
---|
277 | description: If value is not present then a new value should be generated for this field |
---|
278 | type: boolean |
---|
279 | default: false |
---|
280 | recipe: |
---|
281 | $ref: "#/components/schemas/GeneratorRecipe" |
---|
282 | entropy: |
---|
283 | description: For fields with a purpose of `PASSWORD` this is the entropy of the value |
---|
284 | type: number |
---|
285 | readOnly: true |
---|
286 | APIRequest: |
---|
287 | description: Represents a request that was made to the API. Including what Token was used and what resource was accessed. |
---|
288 | type: object |
---|
289 | properties: |
---|
290 | requestId: |
---|
291 | description: The unique id used to identify a single request. |
---|
292 | type: string |
---|
293 | format: uuid |
---|
294 | timestamp: |
---|
295 | description: The time at which the request was processed by the server. |
---|
296 | type: string |
---|
297 | format: date-time |
---|
298 | readOnly: true |
---|
299 | action: |
---|
300 | type: string |
---|
301 | enum: |
---|
302 | - READ |
---|
303 | - CREATE |
---|
304 | - UPDATE |
---|
305 | - DELETE |
---|
306 | result: |
---|
307 | type: string |
---|
308 | enum: |
---|
309 | - SUCCESS |
---|
310 | - DENY |
---|
311 | actor: |
---|
312 | type: object |
---|
313 | properties: |
---|
314 | id: |
---|
315 | type: string |
---|
316 | format: uuid |
---|
317 | account: |
---|
318 | type: string |
---|
319 | jti: |
---|
320 | type: string |
---|
321 | userAgent: |
---|
322 | type: string |
---|
323 | requestIp: |
---|
324 | type: string |
---|
325 | resource: |
---|
326 | type: object |
---|
327 | properties: |
---|
328 | type: |
---|
329 | type: string |
---|
330 | enum: |
---|
331 | - ITEM |
---|
332 | - VAULT |
---|
333 | vault: |
---|
334 | type: object |
---|
335 | properties: |
---|
336 | id: |
---|
337 | type: string |
---|
338 | pattern: '^[\da-z]{26}$' |
---|
339 | item: |
---|
340 | type: object |
---|
341 | properties: |
---|
342 | id: |
---|
343 | type: string |
---|
344 | pattern: '^[\da-z]{26}$' |
---|
345 | itemVersion: |
---|
346 | type: integer |
---|
347 | Patch: |
---|
348 | type: array |
---|
349 | items: |
---|
350 | type: object |
---|
351 | properties: |
---|
352 | op: |
---|
353 | type: string |
---|
354 | enum: [ add, remove, replace ] |
---|
355 | path: |
---|
356 | type: string |
---|
357 | description: An RFC6901 JSON Pointer pointing to the Item document, an Item Attribute, and Item Field by Field ID, or an Item Field Attribute |
---|
358 | example: "/fields/06gnn2b95example10q91512p5/label" |
---|
359 | value: |
---|
360 | type: object |
---|
361 | required: |
---|
362 | - op |
---|
363 | - path |
---|
364 | ServiceDependency: |
---|
365 | description: The state of a registered server dependency. |
---|
366 | type: object |
---|
367 | properties: |
---|
368 | service: |
---|
369 | type: string |
---|
370 | status: |
---|
371 | type: string |
---|
372 | message: |
---|
373 | type: string |
---|
374 | description: Human-readable message for explaining the current state. |
---|
375 | |
---|
376 | |
---|
377 | paths: |
---|
378 | /activity: |
---|
379 | get: |
---|
380 | operationId: GetApiActivity |
---|
381 | tags: |
---|
382 | - Activity |
---|
383 | summary: Retrieve a list of API Requests that have been made. |
---|
384 | security: |
---|
385 | - ConnectToken: [ ] |
---|
386 | parameters: |
---|
387 | - in: query |
---|
388 | name: limit |
---|
389 | schema: |
---|
390 | type: integer |
---|
391 | example: 10 |
---|
392 | default: 50 |
---|
393 | description: How many API Events should be retrieved in a single request. |
---|
394 | - in: query |
---|
395 | name: offset |
---|
396 | schema: |
---|
397 | type: integer |
---|
398 | example: 50 |
---|
399 | default: 0 |
---|
400 | description: How far into the collection of API Events should the response start |
---|
401 | responses: |
---|
402 | "200": |
---|
403 | description: OK |
---|
404 | headers: |
---|
405 | Content-Range: |
---|
406 | description: An decription of what part of the collection has been returned as well as the total size. |
---|
407 | schema: |
---|
408 | type: string |
---|
409 | example: 1-50/1134 |
---|
410 | content: |
---|
411 | application/json: |
---|
412 | schema: |
---|
413 | type: array |
---|
414 | items: |
---|
415 | $ref: "#/components/schemas/APIRequest" |
---|
416 | "401": |
---|
417 | description: Invalid or missing token |
---|
418 | content: |
---|
419 | application/json: |
---|
420 | schema: |
---|
421 | $ref: "#/components/schemas/ErrorResponse" |
---|
422 | example: |
---|
423 | status: 401 |
---|
424 | message: Invalid token signature |
---|
425 | /vaults: |
---|
426 | get: |
---|
427 | operationId: GetVaults |
---|
428 | tags: |
---|
429 | - Vaults |
---|
430 | summary: Get all Vaults |
---|
431 | security: |
---|
432 | - ConnectToken: [ ] |
---|
433 | parameters: |
---|
434 | - in: query |
---|
435 | name: filter |
---|
436 | schema: |
---|
437 | type: string |
---|
438 | example: name eq "Some Vault Name" |
---|
439 | description: Filter the Vault collection based on Vault name using SCIM eq filter |
---|
440 | responses: |
---|
441 | "200": |
---|
442 | description: OK |
---|
443 | content: |
---|
444 | application/json: |
---|
445 | schema: |
---|
446 | type: array |
---|
447 | items: |
---|
448 | $ref: "#/components/schemas/Vault" |
---|
449 | "401": |
---|
450 | description: Invalid or missing token |
---|
451 | content: |
---|
452 | application/json: |
---|
453 | schema: |
---|
454 | $ref: "#/components/schemas/ErrorResponse" |
---|
455 | example: |
---|
456 | status: 401 |
---|
457 | message: Invalid token signature |
---|
458 | /vaults/{vaultUuid}: |
---|
459 | get: |
---|
460 | operationId: GetVaultById |
---|
461 | tags: |
---|
462 | - Vaults |
---|
463 | summary: Get Vault details and metadata |
---|
464 | security: |
---|
465 | - ConnectToken: [ ] |
---|
466 | parameters: |
---|
467 | - in: path |
---|
468 | name: vaultUuid |
---|
469 | schema: |
---|
470 | type: string |
---|
471 | pattern: '^[\da-z]{26}$' |
---|
472 | required: true |
---|
473 | description: The UUID of the Vault to fetch Items from |
---|
474 | responses: |
---|
475 | "200": |
---|
476 | description: OK |
---|
477 | content: |
---|
478 | application/json: |
---|
479 | schema: |
---|
480 | $ref: "#/components/schemas/Vault" |
---|
481 | "401": |
---|
482 | description: Invalid or missing token |
---|
483 | content: |
---|
484 | application/json: |
---|
485 | schema: |
---|
486 | $ref: "#/components/schemas/ErrorResponse" |
---|
487 | example: |
---|
488 | status: 401 |
---|
489 | message: Invalid token signature |
---|
490 | "403": |
---|
491 | description: Unauthorized access |
---|
492 | content: |
---|
493 | application/json: |
---|
494 | schema: |
---|
495 | $ref: "#/components/schemas/ErrorResponse" |
---|
496 | example: |
---|
497 | status: 403 |
---|
498 | message: vault {vaultUuid} is not in scope |
---|
499 | "404": |
---|
500 | description: Vault not found |
---|
501 | content: |
---|
502 | application/json: |
---|
503 | schema: |
---|
504 | $ref: "#/components/schemas/ErrorResponse" |
---|
505 | example: |
---|
506 | status: 404 |
---|
507 | message: vault {itemUuid} not found |
---|
508 | /vaults/{vaultUuid}/items: |
---|
509 | get: |
---|
510 | operationId: GetVaultItems |
---|
511 | tags: |
---|
512 | - Items |
---|
513 | summary: Get all items for inside a Vault |
---|
514 | security: |
---|
515 | - ConnectToken: [ ] |
---|
516 | parameters: |
---|
517 | - in: path |
---|
518 | name: vaultUuid |
---|
519 | schema: |
---|
520 | type: string |
---|
521 | pattern: '^[\da-z]{26}$' |
---|
522 | required: true |
---|
523 | description: The UUID of the Vault to fetch Items from |
---|
524 | - in: query |
---|
525 | name: filter |
---|
526 | schema: |
---|
527 | type: string |
---|
528 | example: title eq "Some Item Name" |
---|
529 | description: Filter the Item collection based on Item name using SCIM eq filter |
---|
530 | responses: |
---|
531 | "200": |
---|
532 | description: OK |
---|
533 | content: |
---|
534 | application/json: |
---|
535 | schema: |
---|
536 | type: array |
---|
537 | items: |
---|
538 | $ref: "#/components/schemas/Item" |
---|
539 | "401": |
---|
540 | description: Invalid or missing token |
---|
541 | content: |
---|
542 | application/json: |
---|
543 | schema: |
---|
544 | $ref: "#/components/schemas/ErrorResponse" |
---|
545 | example: |
---|
546 | status: 401 |
---|
547 | message: Invalid token signature |
---|
548 | "404": |
---|
549 | description: Vault not found |
---|
550 | content: |
---|
551 | application/json: |
---|
552 | schema: |
---|
553 | $ref: "#/components/schemas/ErrorResponse" |
---|
554 | example: |
---|
555 | status: 404 |
---|
556 | message: vault {vaultUuid} not found |
---|
557 | post: |
---|
558 | operationId: CreateVaultItem |
---|
559 | tags: |
---|
560 | - Items |
---|
561 | summary: Create a new Item |
---|
562 | security: |
---|
563 | - ConnectToken: [ ] |
---|
564 | parameters: |
---|
565 | - in: path |
---|
566 | name: vaultUuid |
---|
567 | schema: |
---|
568 | type: string |
---|
569 | pattern: '^[\da-z]{26}$' |
---|
570 | required: true |
---|
571 | description: The UUID of the Vault to create an Item in |
---|
572 | requestBody: |
---|
573 | content: |
---|
574 | application/json: |
---|
575 | schema: |
---|
576 | $ref: "#/components/schemas/FullItem" |
---|
577 | responses: |
---|
578 | "200": |
---|
579 | description: OK |
---|
580 | content: |
---|
581 | application/json: |
---|
582 | schema: |
---|
583 | $ref: "#/components/schemas/FullItem" |
---|
584 | "400": |
---|
585 | description: Unable to create item due to invalid input |
---|
586 | content: |
---|
587 | application/json: |
---|
588 | schema: |
---|
589 | $ref: "#/components/schemas/ErrorResponse" |
---|
590 | example: |
---|
591 | status: 400 |
---|
592 | message: Invalid item category |
---|
593 | "401": |
---|
594 | description: Invalid or missing token |
---|
595 | content: |
---|
596 | application/json: |
---|
597 | schema: |
---|
598 | $ref: "#/components/schemas/ErrorResponse" |
---|
599 | example: |
---|
600 | status: 401 |
---|
601 | message: Invalid token signature |
---|
602 | "403": |
---|
603 | description: Unauthorized access |
---|
604 | content: |
---|
605 | application/json: |
---|
606 | schema: |
---|
607 | $ref: "#/components/schemas/ErrorResponse" |
---|
608 | example: |
---|
609 | status: 403 |
---|
610 | message: vault {vaultUuid} is not in scope |
---|
611 | "404": |
---|
612 | description: Item not found |
---|
613 | content: |
---|
614 | application/json: |
---|
615 | schema: |
---|
616 | $ref: "#/components/schemas/ErrorResponse" |
---|
617 | examples: |
---|
618 | vaultNotFound: |
---|
619 | summary: Vault not found |
---|
620 | value: |
---|
621 | status: 404 |
---|
622 | message: vault {vaultUuid} not found |
---|
623 | /vaults/{vaultUuid}/items/{itemUuid}: |
---|
624 | get: |
---|
625 | operationId: GetVaultItemById |
---|
626 | tags: |
---|
627 | - Items |
---|
628 | summary: Get the details of an Item |
---|
629 | security: |
---|
630 | - ConnectToken: [ ] |
---|
631 | parameters: |
---|
632 | - in: path |
---|
633 | name: vaultUuid |
---|
634 | schema: |
---|
635 | type: string |
---|
636 | pattern: '^[\da-z]{26}$' |
---|
637 | required: true |
---|
638 | description: The UUID of the Vault to fetch Item from |
---|
639 | - in: path |
---|
640 | name: itemUuid |
---|
641 | schema: |
---|
642 | type: string |
---|
643 | pattern: '^[\da-z]{26}$' |
---|
644 | required: true |
---|
645 | description: The UUID of the Item to fetch |
---|
646 | responses: |
---|
647 | "200": |
---|
648 | description: OK |
---|
649 | content: |
---|
650 | application/json: |
---|
651 | schema: |
---|
652 | $ref: "#/components/schemas/FullItem" |
---|
653 | "401": |
---|
654 | description: Invalid or missing token |
---|
655 | content: |
---|
656 | application/json: |
---|
657 | schema: |
---|
658 | $ref: "#/components/schemas/ErrorResponse" |
---|
659 | example: |
---|
660 | status: 401 |
---|
661 | message: Invalid token signature |
---|
662 | "403": |
---|
663 | description: Unauthorized access |
---|
664 | content: |
---|
665 | application/json: |
---|
666 | schema: |
---|
667 | $ref: "#/components/schemas/ErrorResponse" |
---|
668 | example: |
---|
669 | status: 403 |
---|
670 | message: vault {vaultUuid} is not in scope |
---|
671 | "404": |
---|
672 | description: Item not found |
---|
673 | content: |
---|
674 | application/json: |
---|
675 | schema: |
---|
676 | $ref: "#/components/schemas/ErrorResponse" |
---|
677 | examples: |
---|
678 | itemNotFound: |
---|
679 | summary: Item not found |
---|
680 | value: |
---|
681 | status: 404 |
---|
682 | message: item {itemUuid} not found |
---|
683 | vaultNotFound: |
---|
684 | summary: Vault not found |
---|
685 | value: |
---|
686 | status: 404 |
---|
687 | message: vault {vaultUuid} not found |
---|
688 | put: |
---|
689 | operationId: UpdateVaultItem |
---|
690 | tags: |
---|
691 | - Items |
---|
692 | summary: Update an Item |
---|
693 | security: |
---|
694 | - ConnectToken: [ ] |
---|
695 | parameters: |
---|
696 | - in: path |
---|
697 | name: vaultUuid |
---|
698 | schema: |
---|
699 | type: string |
---|
700 | pattern: '^[\da-z]{26}$' |
---|
701 | required: true |
---|
702 | description: The UUID of the Item's Vault |
---|
703 | - in: path |
---|
704 | name: itemUuid |
---|
705 | schema: |
---|
706 | type: string |
---|
707 | pattern: '^[\da-z]{26}$' |
---|
708 | required: true |
---|
709 | description: The UUID of the Item to update |
---|
710 | requestBody: |
---|
711 | content: |
---|
712 | application/json: |
---|
713 | schema: |
---|
714 | $ref: "#/components/schemas/FullItem" |
---|
715 | responses: |
---|
716 | "200": |
---|
717 | description: OK |
---|
718 | content: |
---|
719 | application/json: |
---|
720 | schema: |
---|
721 | $ref: "#/components/schemas/FullItem" |
---|
722 | "400": |
---|
723 | description: Unable to create item due to invalid input |
---|
724 | content: |
---|
725 | application/json: |
---|
726 | schema: |
---|
727 | $ref: "#/components/schemas/ErrorResponse" |
---|
728 | example: |
---|
729 | status: 400 |
---|
730 | message: The item doesn't have a {example field name} field. |
---|
731 | "401": |
---|
732 | description: Invalid or missing token |
---|
733 | content: |
---|
734 | application/json: |
---|
735 | schema: |
---|
736 | $ref: "#/components/schemas/ErrorResponse" |
---|
737 | example: |
---|
738 | status: 401 |
---|
739 | message: Invalid token signature |
---|
740 | "403": |
---|
741 | description: Unauthorized access |
---|
742 | content: |
---|
743 | application/json: |
---|
744 | schema: |
---|
745 | $ref: "#/components/schemas/ErrorResponse" |
---|
746 | example: |
---|
747 | status: 403 |
---|
748 | message: vault {vaultUuid} is not in scope |
---|
749 | "404": |
---|
750 | description: Item not found |
---|
751 | content: |
---|
752 | application/json: |
---|
753 | schema: |
---|
754 | $ref: "#/components/schemas/ErrorResponse" |
---|
755 | examples: |
---|
756 | itemNotFound: |
---|
757 | summary: Item not found |
---|
758 | value: |
---|
759 | status: 404 |
---|
760 | message: item {itemUuid} not found |
---|
761 | vaultNotFound: |
---|
762 | summary: Vault not found |
---|
763 | value: |
---|
764 | status: 404 |
---|
765 | message: vault {vaultUuid} not found |
---|
766 | delete: |
---|
767 | operationId: DeleteVaultItem |
---|
768 | tags: |
---|
769 | - Items |
---|
770 | summary: Delete an Item |
---|
771 | security: |
---|
772 | - ConnectToken: [ ] |
---|
773 | parameters: |
---|
774 | - in: path |
---|
775 | name: vaultUuid |
---|
776 | schema: |
---|
777 | type: string |
---|
778 | pattern: '^[\da-z]{26}$' |
---|
779 | required: true |
---|
780 | description: The UUID of the Vault the item is in |
---|
781 | - in: path |
---|
782 | name: itemUuid |
---|
783 | schema: |
---|
784 | type: string |
---|
785 | pattern: '^[\da-z]{26}$' |
---|
786 | required: true |
---|
787 | description: The UUID of the Item to update |
---|
788 | responses: |
---|
789 | "204": |
---|
790 | description: Successfully deleted an item |
---|
791 | "401": |
---|
792 | description: Invalid or missing token |
---|
793 | content: |
---|
794 | application/json: |
---|
795 | schema: |
---|
796 | $ref: "#/components/schemas/ErrorResponse" |
---|
797 | example: |
---|
798 | status: 401 |
---|
799 | message: Invalid token signature |
---|
800 | "403": |
---|
801 | description: Unauthorized access |
---|
802 | content: |
---|
803 | application/json: |
---|
804 | schema: |
---|
805 | $ref: "#/components/schemas/ErrorResponse" |
---|
806 | example: |
---|
807 | status: 403 |
---|
808 | message: vault {vaultUuid} is not in scope |
---|
809 | "404": |
---|
810 | description: Item not found |
---|
811 | content: |
---|
812 | application/json: |
---|
813 | schema: |
---|
814 | $ref: "#/components/schemas/ErrorResponse" |
---|
815 | examples: |
---|
816 | vaultNotFound: |
---|
817 | summary: Vault not found |
---|
818 | value: |
---|
819 | status: 404 |
---|
820 | message: vault {vaultUuid} not found |
---|
821 | patch: |
---|
822 | description: > |
---|
823 | Applies a modified [RFC6902 JSON Patch](https://tools.ietf.org/html/rfc6902) document to an Item or ItemField. This endpoint only supports `add`, `remove` and `replace` operations. |
---|
824 | |
---|
825 | |
---|
826 | When modifying a specific ItemField, the ItemField's ID in the `path` attribute of the operation object: `/fields/{fieldId}` |
---|
827 | |
---|
828 | operationId: PatchVaultItem |
---|
829 | tags: |
---|
830 | - Items |
---|
831 | summary: Update a subset of Item attributes |
---|
832 | security: |
---|
833 | - ConnectToken: [ ] |
---|
834 | parameters: |
---|
835 | - in: path |
---|
836 | name: vaultUuid |
---|
837 | schema: |
---|
838 | type: string |
---|
839 | pattern: '^[\da-z]{26}$' |
---|
840 | required: true |
---|
841 | description: The UUID of the Vault the item is in |
---|
842 | - in: path |
---|
843 | name: itemUuid |
---|
844 | schema: |
---|
845 | type: string |
---|
846 | pattern: '^[\da-z]{26}$' |
---|
847 | required: true |
---|
848 | description: The UUID of the Item to update |
---|
849 | requestBody: |
---|
850 | content: |
---|
851 | application/json: |
---|
852 | schema: |
---|
853 | $ref: "#/components/schemas/Patch" |
---|
854 | examples: |
---|
855 | ReplaceAllAttributes: |
---|
856 | value: |
---|
857 | - op: replace |
---|
858 | path: "/" |
---|
859 | value: { "title": "New Title", "favorite": true, "tags": [ "tag1", "tag2" ], "...": "Any attr from FullItem schema" } |
---|
860 | summary: Replace an entire Item with new fields. Equivalent to a PUT request. |
---|
861 | PatchItemAttr: |
---|
862 | value: |
---|
863 | - op: "replace" |
---|
864 | path: "/favorite" |
---|
865 | value: true |
---|
866 | - op: "remove" |
---|
867 | path: "/tags/1" |
---|
868 | summary: Update specific Item attributes |
---|
869 | PatchItemField: |
---|
870 | value: |
---|
871 | - op: "add" |
---|
872 | path: "/fields" |
---|
873 | value: { "label": "New Field", "type": "string", "value": "hunter2" } |
---|
874 | summary: Add a new ItemField to the Item |
---|
875 | PatchItemFieldWithID: |
---|
876 | value: |
---|
877 | - op: "replace" |
---|
878 | path: "/fields/r9qxq7xnhfhukoxsc8ymqr0y11" |
---|
879 | value: { "label": "Replacement Title", "type": "string", "value": "new value" } |
---|
880 | - op: "remove" |
---|
881 | path: "/fields/h2nl155dshi043yse7wa3u1hs7" |
---|
882 | summary: Modify or remove an ItemField. |
---|
883 | PatchItemFieldAttr: |
---|
884 | value: |
---|
885 | - op: "add" |
---|
886 | path: "/fields/s2ju540zlna8bdj4uro7sj64rk/label" |
---|
887 | value: "New field name" |
---|
888 | - op: "remove" |
---|
889 | path: "/fields/s2ju540zlna8bdj4uro7sj64rk/value" |
---|
890 | summary: Modify a specific ItemField attribute. |
---|
891 | |
---|
892 | responses: |
---|
893 | "200": |
---|
894 | description: OK - Item updated. If no Patch operations were provided, Item is unmodified. |
---|
895 | content: |
---|
896 | application/json: |
---|
897 | schema: |
---|
898 | $ref: "#/components/schemas/FullItem" |
---|
899 | "401": |
---|
900 | description: Invalid or missing token |
---|
901 | content: |
---|
902 | application/json: |
---|
903 | schema: |
---|
904 | $ref: "#/components/schemas/ErrorResponse" |
---|
905 | example: |
---|
906 | status: 401 |
---|
907 | message: Invalid token signature |
---|
908 | "403": |
---|
909 | description: Unauthorized access |
---|
910 | content: |
---|
911 | application/json: |
---|
912 | schema: |
---|
913 | $ref: "#/components/schemas/ErrorResponse" |
---|
914 | example: |
---|
915 | status: 403 |
---|
916 | message: vault {vaultUuid} is not in scope |
---|
917 | "404": |
---|
918 | description: Item not found |
---|
919 | content: |
---|
920 | application/json: |
---|
921 | schema: |
---|
922 | $ref: "#/components/schemas/ErrorResponse" |
---|
923 | examples: |
---|
924 | itemNotFound: |
---|
925 | summary: Item not found |
---|
926 | value: |
---|
927 | status: 404 |
---|
928 | message: item {itemUuid} not found |
---|
929 | vaultNotFound: |
---|
930 | summary: Vault not found |
---|
931 | value: |
---|
932 | status: 404 |
---|
933 | message: vault {vaultUuid} not found |
---|
934 | /vaults/{vaultUuid}/items/{itemUuid}/files: |
---|
935 | get: |
---|
936 | operationId: GetItemFiles |
---|
937 | tags: |
---|
938 | - Files |
---|
939 | summary: Get all the files inside an Item |
---|
940 | security: |
---|
941 | - ConnectToken: [ ] |
---|
942 | parameters: |
---|
943 | - in: path |
---|
944 | name: vaultUuid |
---|
945 | schema: |
---|
946 | type: string |
---|
947 | format: uuid |
---|
948 | required: true |
---|
949 | description: The UUID of the Vault to fetch Items from |
---|
950 | - in: path |
---|
951 | name: itemUuid |
---|
952 | schema: |
---|
953 | type: string |
---|
954 | format: uuid |
---|
955 | required: true |
---|
956 | description: The UUID of the Item to fetch files from |
---|
957 | - in: query |
---|
958 | name: inline_files |
---|
959 | schema: |
---|
960 | type: boolean |
---|
961 | example: true |
---|
962 | description: Tells server to return the base64-encoded file contents in the response. |
---|
963 | responses: |
---|
964 | "200": |
---|
965 | description: OK |
---|
966 | content: |
---|
967 | application/json: |
---|
968 | schema: |
---|
969 | type: array |
---|
970 | items: |
---|
971 | $ref: "#/components/schemas/File" |
---|
972 | "401": |
---|
973 | description: Invalid or missing token |
---|
974 | content: |
---|
975 | application/json: |
---|
976 | schema: |
---|
977 | $ref: "#/components/schemas/ErrorResponse" |
---|
978 | example: |
---|
979 | status: 401 |
---|
980 | message: Invalid token signature |
---|
981 | "404": |
---|
982 | description: Item not found |
---|
983 | content: |
---|
984 | application/json: |
---|
985 | schema: |
---|
986 | $ref: "#/components/schemas/ErrorResponse" |
---|
987 | examples: |
---|
988 | itemNotFound: |
---|
989 | summary: Item not found |
---|
990 | value: |
---|
991 | status: 404 |
---|
992 | message: item {itemUuid} not found |
---|
993 | vaultNotFound: |
---|
994 | summary: Vault not found |
---|
995 | value: |
---|
996 | status: 404 |
---|
997 | message: vault {vaultUuid} not found |
---|
998 | "413": |
---|
999 | description: File content too large to display |
---|
1000 | content: |
---|
1001 | application/json: |
---|
1002 | schema: |
---|
1003 | $ref: "#/components/schemas/ErrorResponse" |
---|
1004 | examples: |
---|
1005 | fileTooLarge: |
---|
1006 | summary: File too large |
---|
1007 | value: |
---|
1008 | status: 413 |
---|
1009 | message: File is too large to inline in request. Use the /v1/vaults/{vaultUUID}/items/{itemUUID}/files/{fileUUID}/content endpoint instead. |
---|
1010 | /vaults/{vaultUuid}/items/{itemUuid}/files/{fileUuid}: |
---|
1011 | get: |
---|
1012 | operationId: GetDetailsOfFileById |
---|
1013 | tags: |
---|
1014 | - Files |
---|
1015 | summary: Get the details of a File |
---|
1016 | security: |
---|
1017 | - ConnectToken: [ ] |
---|
1018 | parameters: |
---|
1019 | - in: path |
---|
1020 | name: vaultUuid |
---|
1021 | schema: |
---|
1022 | type: string |
---|
1023 | format: uuid |
---|
1024 | required: true |
---|
1025 | description: The UUID of the Vault to fetch Item from |
---|
1026 | - in: path |
---|
1027 | name: itemUuid |
---|
1028 | schema: |
---|
1029 | type: string |
---|
1030 | format: uuid |
---|
1031 | required: true |
---|
1032 | description: The UUID of the Item to fetch File from |
---|
1033 | - in: path |
---|
1034 | name: fileUuid |
---|
1035 | schema: |
---|
1036 | type: string |
---|
1037 | format: uuid |
---|
1038 | required: true |
---|
1039 | description: The UUID of the File to fetch |
---|
1040 | - in: query |
---|
1041 | name: inline_files |
---|
1042 | schema: |
---|
1043 | type: boolean |
---|
1044 | example: true |
---|
1045 | description: Tells server to return the base64-encoded file contents in the response. |
---|
1046 | responses: |
---|
1047 | "200": |
---|
1048 | description: OK |
---|
1049 | content: |
---|
1050 | application/json: |
---|
1051 | schema: |
---|
1052 | $ref: "#/components/schemas/File" |
---|
1053 | "401": |
---|
1054 | description: Invalid or missing token |
---|
1055 | content: |
---|
1056 | application/json: |
---|
1057 | schema: |
---|
1058 | $ref: "#/components/schemas/ErrorResponse" |
---|
1059 | example: |
---|
1060 | status: 401 |
---|
1061 | message: Invalid token signature |
---|
1062 | "403": |
---|
1063 | description: Unauthorized access |
---|
1064 | content: |
---|
1065 | application/json: |
---|
1066 | schema: |
---|
1067 | $ref: "#/components/schemas/ErrorResponse" |
---|
1068 | example: |
---|
1069 | status: 403 |
---|
1070 | message: vault {vaultUuid} is not in scope |
---|
1071 | "404": |
---|
1072 | description: File not found |
---|
1073 | content: |
---|
1074 | application/json: |
---|
1075 | schema: |
---|
1076 | $ref: "#/components/schemas/ErrorResponse" |
---|
1077 | examples: |
---|
1078 | fileNotFound: |
---|
1079 | summary: File not found |
---|
1080 | value: |
---|
1081 | status: 404 |
---|
1082 | message: file {fileUuid} not found |
---|
1083 | itemNotFound: |
---|
1084 | summary: Item not found |
---|
1085 | value: |
---|
1086 | status: 404 |
---|
1087 | message: item {itemUuid} not found |
---|
1088 | vaultNotFound: |
---|
1089 | summary: Vault not found |
---|
1090 | value: |
---|
1091 | status: 404 |
---|
1092 | message: vault {vaultUuid} not found |
---|
1093 | "413": |
---|
1094 | description: File content too large to display |
---|
1095 | content: |
---|
1096 | application/json: |
---|
1097 | schema: |
---|
1098 | $ref: "#/components/schemas/ErrorResponse" |
---|
1099 | examples: |
---|
1100 | fileTooLarge: |
---|
1101 | summary: File too large |
---|
1102 | value: |
---|
1103 | status: 413 |
---|
1104 | message: File is too large to inline in request. Use the /v1/vaults/{vaultUUID}/items/{itemUUID}/files/{fileUUID}/content endpoint instead. |
---|
1105 | /vaults/{vaultUuid}/items/{itemUuid}/files/{fileUuid}/content: |
---|
1106 | parameters: |
---|
1107 | - in: path |
---|
1108 | name: vaultUuid |
---|
1109 | schema: |
---|
1110 | type: string |
---|
1111 | format: uuid |
---|
1112 | required: true |
---|
1113 | description: The UUID of the Vault the item is in |
---|
1114 | - in: path |
---|
1115 | name: itemUuid |
---|
1116 | schema: |
---|
1117 | type: string |
---|
1118 | format: uuid |
---|
1119 | required: true |
---|
1120 | description: The UUID of the Item the File is in |
---|
1121 | - in: path |
---|
1122 | name: fileUuid |
---|
1123 | required: true |
---|
1124 | schema: |
---|
1125 | type: string |
---|
1126 | description: UUID of the file to get content from |
---|
1127 | get: |
---|
1128 | operationId: DownloadFileByID |
---|
1129 | tags: |
---|
1130 | - Files |
---|
1131 | summary: Get the content of a File |
---|
1132 | security: |
---|
1133 | - ConnectToken: [ ] |
---|
1134 | responses: |
---|
1135 | "200": |
---|
1136 | description: "Success" |
---|
1137 | content: |
---|
1138 | application/octet-stream: |
---|
1139 | schema: |
---|
1140 | type: string |
---|
1141 | format: binary |
---|
1142 | headers: |
---|
1143 | Content-Disposition: |
---|
1144 | schema: |
---|
1145 | type: string |
---|
1146 | example: attachment; filename="privkey.pem" |
---|
1147 | Content-Length: |
---|
1148 | schema: |
---|
1149 | type: string |
---|
1150 | example: "6432" |
---|
1151 | "401": |
---|
1152 | description: Invalid or missing token |
---|
1153 | content: |
---|
1154 | application/json: |
---|
1155 | schema: |
---|
1156 | $ref: "#/components/schemas/ErrorResponse" |
---|
1157 | example: |
---|
1158 | status: 401 |
---|
1159 | message: Invalid token signature |
---|
1160 | "404": |
---|
1161 | description: File not found |
---|
1162 | content: |
---|
1163 | application/json: |
---|
1164 | schema: |
---|
1165 | $ref: "#/components/schemas/ErrorResponse" |
---|
1166 | examples: |
---|
1167 | fileNotFound: |
---|
1168 | summary: File not found |
---|
1169 | value: |
---|
1170 | status: 404 |
---|
1171 | message: file {fileUuid} not found |
---|
1172 | itemNotFound: |
---|
1173 | summary: Item not found |
---|
1174 | value: |
---|
1175 | status: 404 |
---|
1176 | message: item {itemUuid} not found |
---|
1177 | vaultNotFound: |
---|
1178 | summary: Vault not found |
---|
1179 | value: |
---|
1180 | status: 404 |
---|
1181 | message: vault {vaultUuid} not found |
---|
1182 | /heartbeat: |
---|
1183 | get: |
---|
1184 | operationId: GetHeartbeat |
---|
1185 | tags: |
---|
1186 | - Health |
---|
1187 | summary: Ping the server for liveness |
---|
1188 | servers: |
---|
1189 | - url: http://localhost:8080 |
---|
1190 | responses: |
---|
1191 | "200": |
---|
1192 | description: OK |
---|
1193 | content: |
---|
1194 | text/plain: |
---|
1195 | schema: |
---|
1196 | type: string |
---|
1197 | example: . |
---|
1198 | /health: |
---|
1199 | get: |
---|
1200 | operationId: GetServerHealth |
---|
1201 | tags: |
---|
1202 | - Health |
---|
1203 | summary: Get state of the server and its dependencies. |
---|
1204 | servers: |
---|
1205 | - url: http://localhost:8080 |
---|
1206 | responses: |
---|
1207 | "200": |
---|
1208 | description: OK |
---|
1209 | content: |
---|
1210 | application/json: |
---|
1211 | schema: |
---|
1212 | type: object |
---|
1213 | required: [ "name", "version" ] |
---|
1214 | properties: |
---|
1215 | name: |
---|
1216 | type: string |
---|
1217 | version: |
---|
1218 | type: string |
---|
1219 | description: The Connect server's version |
---|
1220 | dependencies: |
---|
1221 | type: array |
---|
1222 | items: |
---|
1223 | $ref: "#/components/schemas/ServiceDependency" |
---|
1224 | examples: |
---|
1225 | WaitingForAPIRequest: |
---|
1226 | value: |
---|
1227 | name: 1Password Connect API |
---|
1228 | version: 1.2.1 |
---|
1229 | dependencies: |
---|
1230 | - service: sync |
---|
1231 | status: "TOKEN_NEEDED" |
---|
1232 | - service: sqlite |
---|
1233 | status: "ACTIVE" |
---|
1234 | message: "Connected to./1password.sqlite" |
---|
1235 | summary: API server waiting for first authenticated request |
---|
1236 | |
---|
1237 | /metrics: |
---|
1238 | get: |
---|
1239 | operationId: GetPrometheusMetrics |
---|
1240 | tags: |
---|
1241 | - Metrics |
---|
1242 | description: See Prometheus documentation for a complete data model. |
---|
1243 | summary: Query server for exposed Prometheus metrics |
---|
1244 | servers: |
---|
1245 | - url: http://localhost:8080 |
---|
1246 | responses: |
---|
1247 | "200": |
---|
1248 | description: Successfully returned Prometheus metrics |
---|
1249 | content: |
---|
1250 | text/plain: |
---|
1251 | schema: |
---|
1252 | type: string |
---|
1253 | example: | |
---|
1254 | # HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles. |
---|
1255 | # TYPE go_gc_duration_seconds summary |
---|
1256 | go_gc_duration_seconds{quantile="0"} 2.9153e-05 |
---|
1257 | go_gc_duration_seconds{quantile="0.25"} 6.2832e-05 |
---|
1258 | go_gc_duration_seconds{quantile="0.5"} 9.7187e-05 |
---|
1259 | go_gc_duration_seconds{quantile="0.75"} 0.000112967 |
---|
1260 | go_gc_duration_seconds{quantile="1"} 0.000215819 |
---|
1261 | go_gc_duration_seconds_sum 0.001376862 |
---|
1262 | go_gc_duration_seconds_count 14 |
---|