OpenAPI Specification
openapi: 3.1.0
info:
description: Workflow management API for B3OS
title: B3OS Workflow Action CU API
version: '1.0'
tags:
- name: CU
paths:
/v1/cu/costs:
get:
description: Get the complete CU cost list for all triggers and actions (public, no auth)
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GetCUCostsSuccessResponse'
description: OK
summary: Get CU costs
tags:
- CU
/v1/organizations/{orgId}/cu:
get:
description: Get current CU balance and minimum threshold for an organization
parameters:
- description: Organization ID
in: path
name: orgId
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GetCUBalanceSuccessResponse'
description: OK
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
description: Not Found
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
description: Internal Server Error
summary: Get CU balance and threshold
tags:
- CU
/v1/organizations/{orgId}/cu/threshold:
put:
description: Update the CU minimum balance threshold for an organization (admin only)
parameters:
- description: Organization ID
in: path
name: orgId
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
oneOf:
- type: object
- $ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_service_cu.UpdateThresholdParams'
summary: body
description: Threshold parameters
description: Threshold parameters
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateCUThresholdSuccessResponse'
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
description: Bad Request
'403':
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
description: Forbidden
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
description: Internal Server Error
summary: Update CU min threshold
tags:
- CU
/v1/organizations/{orgId}/cu/usage:
get:
description: Get CU usage breakdown for a specific month
parameters:
- description: Organization ID
in: path
name: orgId
required: true
schema:
type: string
- description: Year-Month in YYYY-MM format
in: query
name: yearMonth
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GetCUUsageSuccessResponse'
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
description: Bad Request
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
description: Not Found
'500':
content:
application/json:
schema:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse'
description: Internal Server Error
summary: Get CU usage
tags:
- CU
components:
schemas:
github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUUsageSummaryTotals:
properties:
deposited:
type: number
granted:
type: number
used:
type: number
type: object
github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_service_cu.UpdateThresholdParams:
properties:
minThreshold:
type: number
type: object
GetCUUsageSuccessResponse:
properties:
code:
example: 0
type: integer
data:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUUsageSummary'
message:
example: successfully
type: string
requestId:
example: req_abc123
type: string
type: object
github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUUsageBreakdown:
properties:
count:
type: integer
cu:
type: number
nodeType:
type: string
type:
description: '"trigger" or "action"'
type: string
type: object
github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUGetBalanceResult:
properties:
balance:
type: number
minThreshold:
type: number
type: object
github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUUsageSummary:
properties:
daily:
items:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUDailyUsage'
type: array
uniqueItems: false
summary:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUUsageSummaryTotals'
yearMonth:
type: string
type: object
GetCUBalanceSuccessResponse:
properties:
code:
example: 0
type: integer
data:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUGetBalanceResult'
message:
example: successfully
type: string
requestId:
example: req_abc123
type: string
type: object
UpdateCUThresholdSuccessResponse:
properties:
code:
example: 0
type: integer
data:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUUpdateThresholdResult'
message:
example: successfully
type: string
requestId:
example: req_abc123
type: string
type: object
github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUCostsResult:
properties:
actions:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUCostActionsByCategory'
defaults:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUCostDefaults'
triggers:
items:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUCostItem'
type: array
uniqueItems: false
type: object
GetCUCostsSuccessResponse:
properties:
code:
example: 0
type: integer
data:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUCostsResult'
message:
example: successfully
type: string
requestId:
example: req_abc123
type: string
type: object
github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUCostDefaults:
properties:
builtIn:
type: number
dynamic:
type: number
logic:
type: number
trigger:
type: number
type: object
github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUUpdateThresholdResult:
properties:
newThreshold:
type: number
oldThreshold:
type: number
type: object
github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUCostItem:
properties:
cost:
type: number
source:
description: '"default" or "override"'
type: string
type:
type: string
type: object
github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUDailyUsage:
properties:
breakdown:
items:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUUsageBreakdown'
type: array
uniqueItems: false
date:
type: string
used:
type: number
type: object
github_com_b3-fun_b3-mono_services_b3os-workflow_internal_app_api_http.ErrorResponse:
properties:
code:
type: integer
details:
items: {}
type: array
uniqueItems: false
message:
type: string
requestId:
type: string
type: object
github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUCostActionsByCategory:
properties:
builtIn:
items:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUCostItem'
type: array
uniqueItems: false
dynamic:
items:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUCostItem'
type: array
uniqueItems: false
logic:
items:
$ref: '#/components/schemas/github_com_b3-fun_b3-mono_services_b3os-workflow_internal_pkg_entity.CUCostItem'
type: array
uniqueItems: false
type: object