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.
To add/remove contacts, visit the Fordefi web console. See the user guide 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
\n Vault Groups are used to collectively manage policies and view permissions for a group of vaults.\n
\n The API is read-only. To manage vault groups, visit the Fordefi web console. See more info in the\n user 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