Fordefi Organizations API

The Organizations API from Fordefi — 4 operation(s) for organizations.

OpenAPI Specification

fordefi-organizations-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Fordefi Address Book Organizations 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: Organizations
paths:
  /api/v1/organizations/import-keys:
    post:
      tags:
      - Organizations
      summary: Import Keys
      description: Imports keys for an organization.
      operationId: import_keys_api_v1_organizations_import_keys_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StartImportKeysRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StartImportKeysResponse'
        '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'
        '409':
          description: Already Exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceError'
  /api/v1/organizations/abort-import-keys:
    post:
      tags:
      - Organizations
      summary: Abort Import Keys
      description: Aborts the import keys process for an organization.
      operationId: abort_import_keys_api_v1_organizations_abort_import_keys_post
      responses:
        '204':
          description: Successful Response
        '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'
  /api/v1/organizations/import-keys-status:
    get:
      tags:
      - Organizations
      summary: Get Import Keys Status
      description: Gets the import keys status for an organization.
      operationId: get_import_keys_status_api_v1_organizations_import_keys_status_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetImportKeysStatusResponse'
        '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'
  /api/v1/organizations/list-keys:
    get:
      tags:
      - Organizations
      summary: List Keys
      description: Lists the imported keys for an organization.
      operationId: list_keys_api_v1_organizations_list_keys_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListKeysResponse'
        '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
    GetImportKeysStatusResponse:
      properties:
        state:
          $ref: '#/components/schemas/ImportKeysStatus'
          description: The state of the import keys request.
      type: object
      required:
      - state
      title: GetImportKeysStatusResponse
    ResourceError:
      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
        resource:
          description: The type of resource.
          $ref: '#/components/schemas/Resource'
      type: object
      required:
      - title
      - detail
      title: ResourceError
    StandaloneImportPackage:
      properties:
        type:
          type: string
          const: standalone
          title: Type
        key_name:
          type: string
          title: Key Name
          description: The name of the key to import.
        backup_zip_content:
          type: string
          title: Backup Zip Content
          description: The base64 encoded content of the Fireblocks backup zip file.
          example: SGVsbG8=
      type: object
      required:
      - type
      - key_name
      - backup_zip_content
      title: StandaloneImportPackage
    Resource:
      type: string
      enum:
      - user
      - user_change_proposals
      - user_group
      - user_group_change_proposal
      - vault
      - vault_address
      - vault_group
      - address_group
      - transaction
      - batch_transaction
      - path
      - keyset
      - auth_token
      - access_token
      - asset
      - asset_info
      - vault_derivation_path
      - blockchain
      - export
      - quote
      - import_keys_request
      - vault_address_account
      - exchange_asset_mapping
      - dapp_group
      - safe_address
      - audit_log
      title: Resource
    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
    FireblocksImportPackage:
      properties:
        type:
          type: string
          const: fireblocks
          title: Type
        key_name:
          type: string
          title: Key Name
          description: The name of the key to import.
        backup_zip_content:
          type: string
          title: Backup Zip Content
          description: The base64 encoded content of the Fireblocks backup zip file.
          example: SGVsbG8=
        encrypted_rsa_pem:
          title: Encrypted Rsa Pem
          description: Encrypted RSA private key used to encrypt the cosigner shares in PEM format.The encryption is done using `openssl cms -encrypt` command using the enclave's public certificate.If not provided, the default RSA key will be used.For more information, see https://docs.fordefi.com/user-guide/import-keys-fireblocks
          type: string
          example: SGVsbG8=
        rsa_pem_password:
          title: Rsa Pem Password
          description: The password for RSA private key.
          type: string
      type: object
      required:
      - type
      - key_name
      - backup_zip_content
      title: FireblocksImportPackage
    OrganizationMasterKey:
      properties:
        key_id:
          type: string
          format: uuid
          title: Key Id
          description: The ID of the imported key.
        key_name:
          type: string
          title: Key Name
          description: The name of the imported key.
        key_type:
          $ref: '#/components/schemas/KeyType'
          description: The type of the imported key.
        key_origin:
          $ref: '#/components/schemas/KeyOriginType'
          description: The origin of the key.
        xpub:
          type: string
          title: Xpub
          description: The xpub encoding of the key. For more details, see https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki#serialization-format
        public_key_compressed:
          type: string
          title: Public Key Compressed
          description: 'The public key of the vault in its compressed form: <ul> <li>For ECDSA and Schnorr keys, the public key is represented as 33 bytes (0x02 or 0x03 followed by the x-coordinate) according to the [SEC1 standard](https://www.secg.org/SEC1-Ver-1.0.pdf). <li>For EdDSA, the public key is represented as a 32-byte value, as defined by [RFC 8032](https://datatracker.ietf.org/doc/html/rfc8032). </ul>'
          example: SGVsbG8=
        supports_derivation:
          type: boolean
          title: Supports Derivation
          description: 'Whether the key supports BIP-32 derivation. Standalone private keys do not support derivation. '
      type: object
      required:
      - key_id
      - key_name
      - key_type
      - key_origin
      - xpub
      - public_key_compressed
      - supports_derivation
      title: OrganizationMasterKey
    ImportKeysStatus:
      type: string
      enum:
      - not_started
      - in_progress
      - completed
      title: ImportKeysStatus
    StartImportKeysRequest:
      oneOf:
      - $ref: '#/components/schemas/FireblocksImportPackage'
      - $ref: '#/components/schemas/StandaloneImportPackage'
      discriminator:
        propertyName: type
        mapping:
          fireblocks: '#/components/schemas/FireblocksImportPackage'
          standalone: '#/components/schemas/StandaloneImportPackage'
    KeyType:
      type: string
      enum:
      - ecdsa_secp256k1
      - eddsa_ed25519
      - ecdsa_stark
      - schnorr_secp256k1
      title: KeyType
    KeyOriginType:
      type: string
      enum:
      - native
      - imported
      title: KeyOriginType
    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
    StartImportKeysResponse:
      properties:
        keys:
          items:
            $ref: '#/components/schemas/OrganizationMasterKey'
          type: array
          title: Keys
          description: The list of imported keys.
      type: object
      required:
      - keys
      title: StartImportKeysResponse
    ListKeysResponse:
      properties:
        keys:
          items:
            $ref: '#/components/schemas/OrganizationMasterKey'
          type: array
          title: Keys
          description: The list of organization's active keys.
      type: object
      required:
      - keys
      title: ListKeysResponse
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT