openapi: 3.0.2
servers:
  - url: http://1password.local
  - url: http://localhost:8080/v1
info:
  contact:
    email: support@1password.com
    name: 1Password Integrations
    url: https://support.1password.com/
  description: REST API interface for 1Password Connect.
  title: 1Password Connect
  version: 1.5.7
  x-apisguru-categories:
    - security
  x-logo:
    url: https://1password.com/img/meta-og-image.png
  x-origin:
    - format: openapi
      url: https://i.1password.com/media/1password-connect/1password-connect-api.yaml
      version: "3.0"
  x-providerName: 1password.local
  x-serviceName: connect
tags:
  - description: Access and manage items inside 1Password Vaults
    name: Items
  - description: Access 1Password Vaults
    name: Vaults
  - description: Access API Request Activity
    name: Activity
paths:
  /activity:
    get:
      operationId: GetApiActivity
      parameters:
        - description: How many API Events should be retrieved in a single request.
          in: query
          name: limit
          schema:
            default: 50
            example: 10
            type: integer
        - description: How far into the collection of API Events should the response start
          in: query
          name: offset
          schema:
            default: 0
            example: 50
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/APIRequest"
                type: array
          description: OK
          headers:
            Content-Range:
              description: An decription of what part of the collection has been returned as well as the total size.
              schema:
                example: 1-50/1134
                type: string
        "401":
          content:
            application/json:
              example:
                message: Invalid token signature
                status: 401
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Invalid or missing token
      security:
        - ConnectToken: []
      summary: Retrieve a list of API Requests that have been made.
      tags:
        - Activity
  /health:
    get:
      operationId: GetServerHealth
      responses:
        "200":
          content:
            application/json:
              examples:
                WaitingForAPIRequest:
                  summary: API server waiting for first authenticated request
                  value:
                    dependencies:
                      - service: sync
                        status: TOKEN_NEEDED
                      - message: Connected to./1password.sqlite
                        service: sqlite
                        status: ACTIVE
                    name: 1Password Connect API
                    version: 1.2.1
              schema:
                properties:
                  dependencies:
                    items:
                      $ref: "#/components/schemas/ServiceDependency"
                    type: array
                  name:
                    type: string
                  version:
                    description: The Connect server's version
                    type: string
                required:
                  - name
                  - version
                type: object
          description: OK
      servers:
        - url: http://localhost:8080
      summary: Get state of the server and its dependencies.
      tags:
        - Health
  /heartbeat:
    get:
      operationId: GetHeartbeat
      responses:
        "200":
          content:
            text/plain:
              schema:
                example: .
                type: string
          description: OK
      servers:
        - url: http://localhost:8080
      summary: Ping the server for liveness
      tags:
        - Health
  /metrics:
    get:
      description: See Prometheus documentation for a complete data model.
      operationId: GetPrometheusMetrics
      responses:
        "200":
          content:
            text/plain:
              schema:
                example: |
                  # HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
                  # TYPE go_gc_duration_seconds summary
                  go_gc_duration_seconds{quantile="0"} 2.9153e-05
                  go_gc_duration_seconds{quantile="0.25"} 6.2832e-05
                  go_gc_duration_seconds{quantile="0.5"} 9.7187e-05
                  go_gc_duration_seconds{quantile="0.75"} 0.000112967
                  go_gc_duration_seconds{quantile="1"} 0.000215819
                  go_gc_duration_seconds_sum 0.001376862
                  go_gc_duration_seconds_count 14
                type: string
          description: Successfully returned Prometheus metrics
      servers:
        - url: http://localhost:8080
      summary: Query server for exposed Prometheus metrics
      tags:
        - Metrics
  /vaults:
    get:
      operationId: GetVaults
      parameters:
        - description: Filter the Vault collection based on Vault name using SCIM eq filter
          in: query
          name: filter
          schema:
            example: name eq "Some Vault Name"
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Vault"
                type: array
          description: OK
        "401":
          content:
            application/json:
              example:
                message: Invalid token signature
                status: 401
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Invalid or missing token
      security:
        - ConnectToken: []
      summary: Get all Vaults
      tags:
        - Vaults
  "/vaults/{vaultUuid}":
    get:
      operationId: GetVaultById
      parameters:
        - description: The UUID of the Vault to fetch Items from
          in: path
          name: vaultUuid
          required: true
          schema:
            pattern: ^[\da-z]{26}$
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Vault"
          description: OK
        "401":
          content:
            application/json:
              example:
                message: Invalid token signature
                status: 401
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Invalid or missing token
        "403":
          content:
            application/json:
              example:
                message: vault {vaultUuid} is not in scope
                status: 403
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Unauthorized access
        "404":
          content:
            application/json:
              example:
                message: vault {itemUuid} not found
                status: 404
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Vault not found
      security:
        - ConnectToken: []
      summary: Get Vault details and metadata
      tags:
        - Vaults
  "/vaults/{vaultUuid}/items":
    get:
      operationId: GetVaultItems
      parameters:
        - description: The UUID of the Vault to fetch Items from
          in: path
          name: vaultUuid
          required: true
          schema:
            pattern: ^[\da-z]{26}$
            type: string
        - description: Filter the Item collection based on Item name using SCIM eq filter
          in: query
          name: filter
          schema:
            example: title eq "Some Item Name"
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/Item"
                type: array
          description: OK
        "401":
          content:
            application/json:
              example:
                message: Invalid token signature
                status: 401
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Invalid or missing token
        "404":
          content:
            application/json:
              example:
                message: vault {vaultUuid} not found
                status: 404
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Vault not found
      security:
        - ConnectToken: []
      summary: Get all items for inside a Vault
      tags:
        - Items
    post:
      operationId: CreateVaultItem
      parameters:
        - description: The UUID of the Vault to create an Item in
          in: path
          name: vaultUuid
          required: true
          schema:
            pattern: ^[\da-z]{26}$
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FullItem"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FullItem"
          description: OK
        "400":
          content:
            application/json:
              example:
                message: Invalid item category
                status: 400
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Unable to create item due to invalid input
        "401":
          content:
            application/json:
              example:
                message: Invalid token signature
                status: 401
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Invalid or missing token
        "403":
          content:
            application/json:
              example:
                message: vault {vaultUuid} is not in scope
                status: 403
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Unauthorized access
        "404":
          content:
            application/json:
              examples:
                vaultNotFound:
                  summary: Vault not found
                  value:
                    message: vault {vaultUuid} not found
                    status: 404
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Item not found
      security:
        - ConnectToken: []
      summary: Create a new Item
      tags:
        - Items
  "/vaults/{vaultUuid}/items/{itemUuid}":
    delete:
      operationId: DeleteVaultItem
      parameters:
        - description: The UUID of the Vault the item is in
          in: path
          name: vaultUuid
          required: true
          schema:
            pattern: ^[\da-z]{26}$
            type: string
        - description: The UUID of the Item to update
          in: path
          name: itemUuid
          required: true
          schema:
            pattern: ^[\da-z]{26}$
            type: string
      responses:
        "204":
          description: Successfully deleted an item
        "401":
          content:
            application/json:
              example:
                message: Invalid token signature
                status: 401
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Invalid or missing token
        "403":
          content:
            application/json:
              example:
                message: vault {vaultUuid} is not in scope
                status: 403
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Unauthorized access
        "404":
          content:
            application/json:
              examples:
                vaultNotFound:
                  summary: Vault not found
                  value:
                    message: vault {vaultUuid} not found
                    status: 404
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Item not found
      security:
        - ConnectToken: []
      summary: Delete an Item
      tags:
        - Items
    get:
      operationId: GetVaultItemById
      parameters:
        - description: The UUID of the Vault to fetch Item from
          in: path
          name: vaultUuid
          required: true
          schema:
            pattern: ^[\da-z]{26}$
            type: string
        - description: The UUID of the Item to fetch
          in: path
          name: itemUuid
          required: true
          schema:
            pattern: ^[\da-z]{26}$
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FullItem"
          description: OK
        "401":
          content:
            application/json:
              example:
                message: Invalid token signature
                status: 401
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Invalid or missing token
        "403":
          content:
            application/json:
              example:
                message: vault {vaultUuid} is not in scope
                status: 403
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Unauthorized access
        "404":
          content:
            application/json:
              examples:
                itemNotFound:
                  summary: Item not found
                  value:
                    message: item {itemUuid} not found
                    status: 404
                vaultNotFound:
                  summary: Vault not found
                  value:
                    message: vault {vaultUuid} not found
                    status: 404
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Item not found
      security:
        - ConnectToken: []
      summary: Get the details of an Item
      tags:
        - Items
    patch:
      description: |
        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.

        When modifying a specific ItemField, the ItemField's ID in the `path` attribute of the operation object: `/fields/{fieldId}`
      operationId: PatchVaultItem
      parameters:
        - description: The UUID of the Vault the item is in
          in: path
          name: vaultUuid
          required: true
          schema:
            pattern: ^[\da-z]{26}$
            type: string
        - description: The UUID of the Item to update
          in: path
          name: itemUuid
          required: true
          schema:
            pattern: ^[\da-z]{26}$
            type: string
      requestBody:
        content:
          application/json:
            examples:
              PatchItemAttr:
                summary: Update specific Item attributes
                value:
                  - op: replace
                    path: /favorite
                    value: true
                  - op: remove
                    path: /tags/1
              PatchItemField:
                summary: Add a new ItemField to the Item
                value:
                  - op: add
                    path: /fields
                    value:
                      label: New Field
                      type: string
                      value: hunter2
              PatchItemFieldAttr:
                summary: Modify a specific ItemField attribute.
                value:
                  - op: add
                    path: /fields/s2ju540zlna8bdj4uro7sj64rk/label
                    value: New field name
                  - op: remove
                    path: /fields/s2ju540zlna8bdj4uro7sj64rk/value
              PatchItemFieldWithID:
                summary: Modify or remove an ItemField.
                value:
                  - op: replace
                    path: /fields/r9qxq7xnhfhukoxsc8ymqr0y11
                    value:
                      label: Replacement Title
                      type: string
                      value: new value
                  - op: remove
                    path: /fields/h2nl155dshi043yse7wa3u1hs7
              ReplaceAllAttributes:
                summary: Replace an entire Item with new fields. Equivalent to a PUT request.
                value:
                  - op: replace
                    path: /
                    value:
                      ...: Any attr from FullItem schema
                      favorite: true
                      tags:
                        - tag1
                        - tag2
                      title: New Title
            schema:
              $ref: "#/components/schemas/Patch"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FullItem"
          description: OK - Item updated. If no Patch operations were provided, Item is unmodified.
        "401":
          content:
            application/json:
              example:
                message: Invalid token signature
                status: 401
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Invalid or missing token
        "403":
          content:
            application/json:
              example:
                message: vault {vaultUuid} is not in scope
                status: 403
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Unauthorized access
        "404":
          content:
            application/json:
              examples:
                itemNotFound:
                  summary: Item not found
                  value:
                    message: item {itemUuid} not found
                    status: 404
                vaultNotFound:
                  summary: Vault not found
                  value:
                    message: vault {vaultUuid} not found
                    status: 404
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Item not found
      security:
        - ConnectToken: []
      summary: Update a subset of Item attributes
      tags:
        - Items
    put:
      operationId: UpdateVaultItem
      parameters:
        - description: The UUID of the Item's Vault
          in: path
          name: vaultUuid
          required: true
          schema:
            pattern: ^[\da-z]{26}$
            type: string
        - description: The UUID of the Item to update
          in: path
          name: itemUuid
          required: true
          schema:
            pattern: ^[\da-z]{26}$
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FullItem"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FullItem"
          description: OK
        "400":
          content:
            application/json:
              example:
                message: The item doesn't have a {example field name} field.
                status: 400
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Unable to create item due to invalid input
        "401":
          content:
            application/json:
              example:
                message: Invalid token signature
                status: 401
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Invalid or missing token
        "403":
          content:
            application/json:
              example:
                message: vault {vaultUuid} is not in scope
                status: 403
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Unauthorized access
        "404":
          content:
            application/json:
              examples:
                itemNotFound:
                  summary: Item not found
                  value:
                    message: item {itemUuid} not found
                    status: 404
                vaultNotFound:
                  summary: Vault not found
                  value:
                    message: vault {vaultUuid} not found
                    status: 404
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Item not found
      security:
        - ConnectToken: []
      summary: Update an Item
      tags:
        - Items
  "/vaults/{vaultUuid}/items/{itemUuid}/files":
    get:
      operationId: GetItemFiles
      parameters:
        - description: The UUID of the Vault to fetch Items from
          in: path
          name: vaultUuid
          required: true
          schema:
            format: uuid
            type: string
        - description: The UUID of the Item to fetch files from
          in: path
          name: itemUuid
          required: true
          schema:
            format: uuid
            type: string
        - description: Tells server to return the base64-encoded file contents in the response.
          in: query
          name: inline_files
          schema:
            example: true
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                items:
                  $ref: "#/components/schemas/File"
                type: array
          description: OK
        "401":
          content:
            application/json:
              example:
                message: Invalid token signature
                status: 401
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Invalid or missing token
        "404":
          content:
            application/json:
              examples:
                itemNotFound:
                  summary: Item not found
                  value:
                    message: item {itemUuid} not found
                    status: 404
                vaultNotFound:
                  summary: Vault not found
                  value:
                    message: vault {vaultUuid} not found
                    status: 404
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Item not found
        "413":
          content:
            application/json:
              examples:
                fileTooLarge:
                  summary: File too large
                  value:
                    message: File is too large to inline in request. Use the /v1/vaults/{vaultUUID}/items/{itemUUID}/files/{fileUUID}/content endpoint instead.
                    status: 413
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: File content too large to display
      security:
        - ConnectToken: []
      summary: Get all the files inside an Item
      tags:
        - Files
  "/vaults/{vaultUuid}/items/{itemUuid}/files/{fileUuid}":
    get:
      operationId: GetDetailsOfFileById
      parameters:
        - description: The UUID of the Vault to fetch Item from
          in: path
          name: vaultUuid
          required: true
          schema:
            format: uuid
            type: string
        - description: The UUID of the Item to fetch File from
          in: path
          name: itemUuid
          required: true
          schema:
            format: uuid
            type: string
        - description: The UUID of the File to fetch
          in: path
          name: fileUuid
          required: true
          schema:
            format: uuid
            type: string
        - description: Tells server to return the base64-encoded file contents in the response.
          in: query
          name: inline_files
          schema:
            example: true
            type: boolean
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/File"
          description: OK
        "401":
          content:
            application/json:
              example:
                message: Invalid token signature
                status: 401
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Invalid or missing token
        "403":
          content:
            application/json:
              example:
                message: vault {vaultUuid} is not in scope
                status: 403
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Unauthorized access
        "404":
          content:
            application/json:
              examples:
                fileNotFound:
                  summary: File not found
                  value:
                    message: file {fileUuid} not found
                    status: 404
                itemNotFound:
                  summary: Item not found
                  value:
                    message: item {itemUuid} not found
                    status: 404
                vaultNotFound:
                  summary: Vault not found
                  value:
                    message: vault {vaultUuid} not found
                    status: 404
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: File not found
        "413":
          content:
            application/json:
              examples:
                fileTooLarge:
                  summary: File too large
                  value:
                    message: File is too large to inline in request. Use the /v1/vaults/{vaultUUID}/items/{itemUUID}/files/{fileUUID}/content endpoint instead.
                    status: 413
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: File content too large to display
      security:
        - ConnectToken: []
      summary: Get the details of a File
      tags:
        - Files
  "/vaults/{vaultUuid}/items/{itemUuid}/files/{fileUuid}/content":
    get:
      operationId: DownloadFileByID
      responses:
        "200":
          content:
            application/octet-stream:
              schema:
                format: binary
                type: string
          description: Success
          headers:
            Content-Disposition:
              schema:
                example: attachment; filename="privkey.pem"
                type: string
            Content-Length:
              schema:
                example: "6432"
                type: string
        "401":
          content:
            application/json:
              example:
                message: Invalid token signature
                status: 401
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: Invalid or missing token
        "404":
          content:
            application/json:
              examples:
                fileNotFound:
                  summary: File not found
                  value:
                    message: file {fileUuid} not found
                    status: 404
                itemNotFound:
                  summary: Item not found
                  value:
                    message: item {itemUuid} not found
                    status: 404
                vaultNotFound:
                  summary: Vault not found
                  value:
                    message: vault {vaultUuid} not found
                    status: 404
              schema:
                $ref: "#/components/schemas/ErrorResponse"
          description: File not found
      security:
        - ConnectToken: []
      summary: Get the content of a File
      tags:
        - Files
    parameters:
      - description: The UUID of the Vault the item is in
        in: path
        name: vaultUuid
        required: true
        schema:
          format: uuid
          type: string
      - description: The UUID of the Item the File is in
        in: path
        name: itemUuid
        required: true
        schema:
          format: uuid
          type: string
      - description: UUID of the file to get content from
        in: path
        name: fileUuid
        required: true
        schema:
          type: string
components:
  schemas:
    APIRequest:
      description: Represents a request that was made to the API. Including what Token was used and what resource was accessed.
      properties:
        action:
          enum:
            - READ
            - CREATE
            - UPDATE
            - DELETE
          type: string
        actor:
          properties:
            account:
              type: string
            id:
              format: uuid
              type: string
            jti:
              type: string
            requestIp:
              type: string
            userAgent:
              type: string
          type: object
        requestId:
          description: The unique id used to identify a single request.
          format: uuid
          type: string
        resource:
          properties:
            item:
              properties:
                id:
                  pattern: ^[\da-z]{26}$
                  type: string
              type: object
            itemVersion:
              type: integer
            type:
              enum:
                - ITEM
                - VAULT
              type: string
            vault:
              properties:
                id:
                  pattern: ^[\da-z]{26}$
                  type: string
              type: object
          type: object
        result:
          enum:
            - SUCCESS
            - DENY
          type: string
        timestamp:
          description: The time at which the request was processed by the server.
          format: date-time
          readOnly: true
          type: string
      type: object
    ErrorResponse:
      properties:
        message:
          description: A message detailing the error
          type: string
        status:
          description: HTTP Status Code
          type: integer
      type: object
    Field:
      properties:
        entropy:
          description: For fields with a purpose of `PASSWORD` this is the entropy of the value
          readOnly: true
          type: number
        generate:
          default: false
          description: If value is not present then a new value should be generated for this field
          type: boolean
        id:
          type: string
        label:
          type: string
        purpose:
          description: Some item types, Login and Password, have fields used for autofill. This property indicates that purpose and is required for some item types.
          enum:
            - ""
            - USERNAME
            - PASSWORD
            - NOTES
          type: string
        recipe:
          $ref: "#/components/schemas/GeneratorRecipe"
        section:
          properties:
            id:
              type: string
          type: object
        type:
          default: STRING
          enum:
            - STRING
            - EMAIL
            - CONCEALED
            - URL
            - TOTP
            - DATE
            - MONTH_YEAR
            - MENU
          type: string
        value:
          type: string
      required:
        - id
        - type
      type: object
    File:
      example:
        content: VGhlIGZ1dHVyZSBiZWxvbmdzIHRvIHRoZSBjdXJpb3VzLgo=
        content_path: v1/vaults/ionaiwtdvgclrixbt6ztpqcxnq/items/p7eflcy7f5mk7vg6zrzf5rjjyu/files/6r65pjq33banznomn7q22sj44e/content
        id: 6r65pjq33banznomn7q22sj44e
        name: foo.txt
        size: 35
      properties:
        content:
          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`.
          format: byte
          type: string
        content_path:
          description: Path of the Connect API that can be used to download the contents of this file.
          readOnly: true
          type: string
        id:
          description: ID of the file
          type: string
        name:
          description: Name of the file
          type: string
        section:
          description: For files that are in a section, this field describes the section.
          properties:
            id:
              type: string
          type: object
        size:
          description: Size in bytes of the file
          type: integer
      type: object
    FullItem:
      allOf:
        - $ref: "#/components/schemas/Item"
        - properties:
            fields:
              items:
                $ref: "#/components/schemas/Field"
              type: array
            files:
              items:
                $ref: "#/components/schemas/File"
              type: array
            sections:
              items:
                properties:
                  id:
                    type: string
                  label:
                    type: string
                type: object
              type: array
          type: object
    GeneratorRecipe:
      description: The recipe is used in conjunction with the "generate" property to set the character set used to generate a new secure value
      properties:
        characterSets:
          items:
            enum:
              - LETTERS
              - DIGITS
              - SYMBOLS
            type: string
          maximum: 3
          minimum: 0
          type: array
          uniqueItems: true
        excludeCharacters:
          description: List of all characters that should be excluded from generated passwords.
          example: abc1
          type: string
        length:
          default: 32
          description: Length of the generated value
          maximum: 64
          minimum: 1
          type: integer
      type: object
    Item:
      properties:
        category:
          enum:
            - LOGIN
            - PASSWORD
            - API_CREDENTIAL
            - SERVER
            - DATABASE
            - CREDIT_CARD
            - MEMBERSHIP
            - PASSPORT
            - SOFTWARE_LICENSE
            - OUTDOOR_LICENSE
            - SECURE_NOTE
            - WIRELESS_ROUTER
            - BANK_ACCOUNT
            - DRIVER_LICENSE
            - IDENTITY
            - REWARD_PROGRAM
            - DOCUMENT
            - EMAIL_ACCOUNT
            - SOCIAL_SECURITY_NUMBER
            - MEDICAL_RECORD
            - SSH_KEY
            - CUSTOM
          type: string
        createdAt:
          format: date-time
          readOnly: true
          type: string
        favorite:
          default: false
          type: boolean
        id:
          pattern: ^[\da-z]{26}$
          type: string
        lastEditedBy:
          readOnly: true
          type: string
        state:
          enum:
            - ARCHIVED
            - DELETED
          readOnly: true
          type: string
        tags:
          items:
            type: string
          type: array
        title:
          type: string
        updatedAt:
          format: date-time
          readOnly: true
          type: string
        urls:
          example:
            - href: https://example.com
              primary: true
            - href: https://example.org
          items:
            properties:
              href:
                format: url
                type: string
              label:
                type: string
              primary:
                type: boolean
            required:
              - href
            type: object
          type: array
        vault:
          properties:
            id:
              pattern: ^[\da-z]{26}$
              type: string
          required:
            - id
          type: object
        version:
          type: integer
      required:
        - vault
        - category
      type: object
    Patch:
      items:
        properties:
          op:
            enum:
              - add
              - remove
              - replace
            type: string
          path:
            description: An RFC6901 JSON Pointer pointing to the Item document, an Item Attribute, and Item Field by Field ID, or an Item Field Attribute
            example: /fields/06gnn2b95example10q91512p5/label
            type: string
          value:
            type: object
        required:
          - op
          - path
        type: object
      type: array
    ServiceDependency:
      description: The state of a registered server dependency.
      properties:
        message:
          description: Human-readable message for explaining the current state.
          type: string
        service:
          type: string
        status:
          type: string
      type: object
    Vault:
      properties:
        attributeVersion:
          description: The vault version
          type: integer
        contentVersion:
          description: The version of the vault contents
          type: integer
        createdAt:
          format: date-time
          readOnly: true
          type: string
        description:
          type: string
        id:
          pattern: ^[\da-z]{26}$
          type: string
        items:
          description: Number of active items in the vault
          type: integer
        name:
          type: string
        type:
          enum:
            - USER_CREATED
            - PERSONAL
            - EVERYONE
            - TRANSFER
          type: string
        updatedAt:
          format: date-time
          readOnly: true
          type: string
      type: object
  securitySchemes:
    ConnectToken:
      bearerFormat: JWT
      scheme: bearer
      type: http
