MacPortsFramework: 1password-connect-api.yaml

File 1password-connect-api.yaml, 37.3 KB (added by W3W-EdU (Karam Jameel Moore), 5 months ago)
Line 
1openapi: "3.0.2"
2info:
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/
11servers:
12  - url: http://localhost:8080/v1
13
14tags:
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
22components:
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
377paths:
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