Fordefi Vault Groups API

These endpoints allow you to view your vault groups. Vault Groups are used to collectively manage policies and view permissions for a group of vaults. The API is read-only. To manage vault groups, visit the Fordefi web console. See more info in the user guide.

OpenAPI Specification

fordefi-vault-groups-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Fordefi Address Book Vault Groups API
  version: 0.2.0
  description: These endpoints allow you to list the contacts in your address book.<br><br>To add/remove contacts, visit the Fordefi web console. See the <a href='https://docs.fordefi.com/user-guide/address-book'>user guide</a> for more info.
servers:
- url: https://api.fordefi.com/
  description: Production
security:
- bearerAuth: []
tags:
- name: Vault Groups
  description: "These endpoints allow you to view your vault groups.\n        <br><br>\n        Vault Groups are used to collectively manage policies and view permissions for a group of vaults.\n       <br><br>\n       The API is read-only. To manage vault groups, visit the Fordefi web console. See more info in the\n       <a href='https://docs.fordefi.com/user-guide/vaults/handle-vault-groups'>user</a> guide."
paths:
  /api/v1/vault-groups:
    get:
      tags:
      - Vault Groups
      summary: List Vault Groups
      description: Get a list of vault groups in the organization.
      operationId: list_vault_groups_api_v1_vault_groups_get
      parameters:
      - name: sort_by
        in: query
        required: false
        schema:
          type: array
          items:
            $ref: '#/components/schemas/VaultGroupSortableFields'
          title: Sort By
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          description: The page number to fetch.
          default: 1
          title: Page
        description: The page number to fetch.
      - name: size
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 0
          description: The number of items per page.
          default: 50
          title: Size
        description: The number of items per page.
      - name: skip_count
        in: query
        required: false
        schema:
          type: boolean
          description: Whether to skip counting the total number of items.
          default: false
          title: Skip Count
        description: Whether to skip counting the total number of items.
      - name: vault_group_ids
        in: query
        required: false
        schema:
          description: Vault group IDs to filter on.
          title: Vault Group Ids
          type: array
          items:
            type: string
            format: uuid
        description: Vault group IDs to filter on.
      - name: search
        in: query
        required: false
        schema:
          title: Search
          type: string
      - name: access_level
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/ListVaultGroupsFilterByAccessLevel'
          default: view
      - name: exclude_vault_group_ids
        in: query
        required: false
        schema:
          description: Vault group IDs to exclude.
          title: Exclude Vault Group Ids
          type: array
          items:
            type: string
            format: uuid
        description: Vault group IDs to exclude.
      - name: states
        in: query
        required: false
        schema:
          description: Vault group states to filter on.
          title: States
          type: array
          items:
            $ref: '#/components/schemas/VaultGroupState'
        description: Vault group states to filter on.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListVaultGroupsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PreconditionFailedError'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
        '500':
          description: Unexpected Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '401':
          description: Unauthorized User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '403':
          description: Forbidden User
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '408':
          description: Request Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseError'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
components:
  schemas:
    PreconditionFailedError:
      properties:
        title:
          type: string
          title: Title
          description: Human-readable error message.
        detail:
          type: string
          title: Detail
          description: Detailed error message.
        full_detail:
          title: Full Detail
          description: Full error message with additional details, if available.
          type: string
        request_id:
          title: Request Id
          description: Request ID - for debugging purposes.
          type: string
        system_error_code:
          title: System Error Code
          description: An additional system error code in Fordefi.
          type: string
      type: object
      required:
      - title
      - detail
      title: PreconditionFailedError
    VaultGroupState:
      type: string
      enum:
      - pending_approval
      - active
      - deleted
      title: VaultGroupState
    ValidationError:
      properties:
        title:
          type: string
          title: Title
          description: Human-readable error message.
        detail:
          items:
            $ref: '#/components/schemas/ValidationErrorDetail'
          type: array
          title: Detail
        full_detail:
          title: Full Detail
          description: Full error message with additional details, if available.
          type: string
        request_id:
          title: Request Id
          description: Request ID - for debugging purposes.
          type: string
      type: object
      required:
      - title
      - detail
      title: ValidationError
    EndUserRef:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the user in the Fordefi platform.
        user_type:
          type: string
          const: end_user
          title: User Type
          description: The type of the user.
        external_id:
          type: string
          title: External Id
          description: External id of the user.
          example: user|1234
        state:
          type: string
          enum:
          - active
          - deleted
          title: State
          description: The state of the user.
      type: object
      required:
      - id
      - user_type
      - external_id
      - state
      title: EndUserRef
    ListVaultGroupsResponse:
      properties:
        total:
          type: integer
          title: Total
        page:
          type: integer
          title: Page
        size:
          type: integer
          title: Size
        vault_groups:
          items:
            $ref: '#/components/schemas/VaultGroup'
          type: array
          title: Vault Groups
      type: object
      required:
      - total
      - page
      - size
      - vault_groups
      title: ListVaultGroupsResponse
    VaultGroupPermissions:
      properties:
        access_permissions:
          $ref: '#/components/schemas/VaultGroupAccessPermissions'
          description: the access permissions for this vault group
        can_non_admins_create_or_edit_vaults:
          type: boolean
          title: Can Non Admins Create Or Edit Vaults
          description: True to give create or edit permissions to the user groups. False to allow only admins
        can_current_user_create_or_edit_vaults:
          type: boolean
          title: Can Current User Create Or Edit Vaults
          description: Can the current user create or edit vaults in the group's based on the group permissions
      type: object
      required:
      - access_permissions
      - can_non_admins_create_or_edit_vaults
      - can_current_user_create_or_edit_vaults
      title: VaultGroupPermissions
    UserRef:
      oneOf:
      - $ref: '#/components/schemas/PersonRef'
      - $ref: '#/components/schemas/ApiUserRef'
      - $ref: '#/components/schemas/ApiSignerRef'
      - $ref: '#/components/schemas/EndUserRef'
      - $ref: '#/components/schemas/SystemUserRef'
      description: Represents a reference to a user in the Fordefi platform
      discriminator:
        propertyName: user_type
        mapping:
          api_signer: '#/components/schemas/ApiSignerRef'
          api_user: '#/components/schemas/ApiUserRef'
          end_user: '#/components/schemas/EndUserRef'
          person: '#/components/schemas/PersonRef'
          system: '#/components/schemas/SystemUserRef'
    ApiUserRef:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the user in the Fordefi platform.
        user_type:
          type: string
          const: api_user
          title: User Type
          description: The type of the user.
        name:
          type: string
          title: Name
          description: The name of the user.
        state:
          type: string
          enum:
          - active
          - deleted
          title: State
          description: The state of the user.
        role:
          $ref: '#/components/schemas/UserRole'
          description: The role of the user.
      type: object
      required:
      - id
      - user_type
      - name
      - state
      - role
      title: ApiUserRef
    VaultGroup:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the object in the Fordefi platform.
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when the object was created.
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: The date and time when the object was last modified. Any change to any field of the resource is considered a modification.
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the vault group.
        created_by:
          description: Details of the vault group creator. None for Default vault group.
          $ref: '#/components/schemas/UserRef'
        vaults_count:
          $ref: '#/components/schemas/BoundCount'
          description: The number of vaults in the group.
        permissions:
          $ref: '#/components/schemas/VaultGroupPermissions'
          description: The permissions of the vault group
        owner:
          $ref: '#/components/schemas/VaultGroupOwner'
          description: The owner type of the vault group.
        modified_by:
          description: Details of the vault group last editor. None for Default vault group.
          $ref: '#/components/schemas/UserRef'
        pending_change_request:
          description: Info on pending change request. None if there is no pending change request.
          $ref: '#/components/schemas/VaultGroupPendingChangeRequestInfo'
        state:
          $ref: '#/components/schemas/VaultGroupState'
          description: The state of the vault group.
      type: object
      required:
      - id
      - created_at
      - modified_at
      - name
      - vaults_count
      - permissions
      - owner
      - state
      title: VaultGroup
      description: Represents a vault group in the Fordefi platform
    UserGroupRef:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of user group in the Fordefi platform.
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the user group.
        users_count:
          type: integer
          minimum: 0.0
          title: Users Count
          description: The number of users in the group.
        admins_count:
          type: integer
          minimum: 0.0
          title: Admins Count
          description: The number of admins in the group.
        state:
          $ref: '#/components/schemas/UserGroupState'
          description: The state of the user group.
      type: object
      required:
      - id
      - name
      - users_count
      - admins_count
      - state
      title: UserGroupRef
    VaultGroupSortableFields:
      type: string
      enum:
      - created_at_asc
      - created_at_desc
      - name_asc
      - name_desc
      - vault_count_asc
      - vault_count_desc
      title: VaultGroupSortableFields
    UserState:
      type: string
      enum:
      - active
      - onboarding_pending_code_generation
      - onboarding_pending_activation
      - reset_device_pending_code_generation
      - reset_device_pending_activation
      - pending_approval
      - deleted
      title: UserState
    VaultGroupAccessPermissions:
      oneOf:
      - $ref: '#/components/schemas/VaultGroupAccessPermissionsAll'
      - $ref: '#/components/schemas/VaultGroupAccessPermissionsPermitted'
      description: The access type of the permissions.
      discriminator:
        propertyName: access_type
        mapping:
          all: '#/components/schemas/VaultGroupAccessPermissionsAll'
          permitted: '#/components/schemas/VaultGroupAccessPermissionsPermitted'
    BoundCount:
      properties:
        count:
          type: integer
          minimum: 0.0
          title: Count
          description: The number of items in the bound count.
        has_more:
          type: boolean
          title: Has More
          description: Whether there are more items in the bound count.
      type: object
      required:
      - count
      - has_more
      title: BoundCount
      description: BoundCount represents a bound count of items.
    ApiSignerRef:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the user in the Fordefi platform.
        user_type:
          type: string
          const: api_signer
          title: User Type
          description: The type of the user.
        name:
          type: string
          title: Name
          description: The name of the user.
        state:
          type: string
          enum:
          - active
          - onboarding_pending_code_generation
          - onboarding_pending_activation
          - deleted
          title: State
          description: The state of the user.
      type: object
      required:
      - id
      - user_type
      - name
      - state
      title: ApiSignerRef
    UserGroupState:
      type: string
      enum:
      - active
      - deleted
      title: UserGroupState
      description: Represents a user group state in the Fordefi platform
    VaultGroupAccessPermissionsPermitted:
      properties:
        access_type:
          type: string
          const: permitted
          title: Access Type
          description: access type
        user_groups:
          items:
            $ref: '#/components/schemas/UserGroupRef'
          type: array
          title: User Groups
          description: The list of permitted user group
        users:
          items:
            $ref: '#/components/schemas/UserRef'
          type: array
          title: Users
          description: The list of permitted users
      type: object
      required:
      - access_type
      - user_groups
      - users
      title: VaultGroupAccessPermissionsPermitted
    SystemUserRef:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the user in the Fordefi platform.
        user_type:
          type: string
          const: system
          title: User Type
          description: The type of the user.
        name:
          type: string
          title: Name
          description: The name is Fordefi CARE
      type: object
      required:
      - id
      - user_type
      - name
      title: SystemUserRef
    VaultGroupAccessPermissionsAll:
      properties:
        access_type:
          type: string
          const: all
          title: Access Type
          description: access type
      type: object
      required:
      - access_type
      title: VaultGroupAccessPermissionsAll
    ListVaultGroupsFilterByAccessLevel:
      type: string
      enum:
      - view
      - create_edit
      - all
      title: ListVaultGroupsFilterByAccessLevel
    VaultGroupOwner:
      type: string
      enum:
      - system
      - user
      title: VaultGroupOwner
    UserRole:
      type: string
      enum:
      - admin
      - trader
      - viewer
      title: UserRole
    VaultGroupPendingChangeRequestInfo:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: ID of a pending change request.
        new_name:
          title: New Name
          description: New proposed name of the pending change request. None if there is no pending change request or no new name is proposed.
          type: string
          minLength: 1
        created_by:
          $ref: '#/components/schemas/UserRef'
          description: The user who initiated the change request
        created_at:
          type: string
          format: date-time
          title: Created At
          description: The date and time when change request was initiated.
      type: object
      required:
      - id
      - new_name
      - created_by
      - created_at
      title: VaultGroupPendingChangeRequestInfo
    PersonRef:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier of the user in the Fordefi platform.
        user_type:
          type: string
          const: person
          title: User Type
          description: The type of user. Can be a person, or (in programmatic scenarios) an API user or API Signer.
        name:
          title: Name
          description: The name of the user.
          example: John Doe
          type: string
        email:
          type: string
          title: Email
          description: The email of the user.
        state:
          $ref: '#/components/schemas/UserState'
          description: The state of the user in the organization.
        role:
          $ref: '#/components/schemas/UserRole'
          description: The role of the user.
      type: object
      required:
      - id
      - user_type
      - email
      - state
      - role
      title: PersonRef
    RateLimitError:
      properties: {}
      type: object
      title: RateLimitError
    BaseError:
      properties:
        title:
          type: string
          title: Title
          description: Human-readable error message.
        detail:
          type: string
          title: Detail
          description: Detailed error message.
        full_detail:
          title: Full Detail
          description: Full error message with additional details, if available.
          type: string
        request_id:
          title: Request Id
          description: Request ID - for debugging purposes.
          type: string
      type: object
      required:
      - title
      - detail
      title: BaseError
    ValidationErrorDetail:
      properties:
        loc:
          items:
            anyOf:
            - type: integer
            - type: string
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationErrorDetail
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT