Files
oneterm/backend/internal/api/docs/swagger.yaml
2025-07-16 18:11:04 +08:00

3564 lines
82 KiB
YAML

definitions:
controller.AssetPermissionBatchResult:
properties:
results:
additionalProperties:
$ref: '#/definitions/controller.AssetPermissionResult'
type: object
type: object
controller.AssetPermissionMultiAccountResult:
properties:
results:
additionalProperties:
$ref: '#/definitions/controller.AssetPermissionBatchResult'
description: accountId -> batch results
type: object
type: object
controller.AssetPermissionResult:
properties:
allowed:
type: boolean
reason:
type: string
restrictions:
additionalProperties: true
type: object
rule_id:
type: integer
rule_name:
type: string
type: object
controller.CheckPermissionRequest:
properties:
account_id:
minimum: 0
type: integer
action:
$ref: '#/definitions/model.AuthAction'
asset_id:
minimum: 0
type: integer
node_id:
minimum: 0
type: integer
required:
- action
type: object
controller.CheckTimeAccessRequest:
properties:
template_id:
type: integer
timezone:
type: string
required:
- template_id
type: object
controller.CheckTimeAccessResponse:
properties:
allowed:
type: boolean
checked_at:
type: string
template_id:
type: integer
timezone:
type: string
type: object
controller.HttpResponse:
properties:
code:
type: integer
data: {}
message:
type: string
type: object
controller.ListData:
properties:
count:
type: integer
list:
items: {}
type: array
type: object
model.AccessAuth:
properties:
allow:
type: boolean
cmd_ids:
items:
type: integer
type: array
end:
type: string
ranges:
items:
$ref: '#/definitions/model.Range'
type: array
start:
type: string
type: object
model.AccessControl:
properties:
cmd_ids:
description: Command control
items:
type: integer
type: array
custom_time_ranges:
description: Direct definition
items:
$ref: '#/definitions/model.TimeRange'
type: array
ip_whitelist:
items:
type: string
type: array
max_sessions:
type: integer
session_timeout:
type: integer
template_ids:
items:
type: integer
type: array
time_template:
allOf:
- $ref: '#/definitions/model.TimeTemplateReference'
description: Time control options
timezone:
type: string
type: object
model.AccessTimeControl:
properties:
comment:
description: Description of the time restriction
type: string
enabled:
type: boolean
time_ranges:
items:
$ref: '#/definitions/model.TimeRange'
type: array
timezone:
description: e.g., "Asia/Shanghai"
type: string
type: object
model.Account:
properties:
account:
type: string
account_type:
type: integer
asset_count:
type: integer
created_at:
type: string
creator_id:
type: integer
id:
type: integer
name:
type: string
password:
type: string
permissions:
items:
type: string
type: array
phrase:
type: string
pk:
type: string
resource_id:
type: integer
updated_at:
type: string
updater_id:
type: integer
type: object
model.AccountAuthorization:
properties:
permissions:
allOf:
- $ref: '#/definitions/model.AuthPermissions'
description: V2 permissions (connect, file_upload, etc.)
rids:
description: Role IDs for ACL system
items:
type: integer
type: array
type: object
model.Asset:
properties:
access_auth:
allOf:
- $ref: '#/definitions/model.AccessAuth'
description: 'Deprecated: Use V2 fields below'
access_time_control:
allOf:
- $ref: '#/definitions/model.AccessTimeControl'
description: V2 Access Control (replaces AccessAuth)
asset_command_control:
$ref: '#/definitions/model.AssetCommandControl'
authorization:
$ref: '#/definitions/model.AuthorizationMap'
comment:
type: string
connectable:
type: boolean
created_at:
type: string
creator_id:
type: integer
gateway_id:
type: integer
id:
type: integer
ip:
type: string
name:
type: string
node_chain:
type: string
parent_id:
type: integer
permissions:
items:
type: string
type: array
protocols:
items:
type: string
type: array
resource_id:
type: integer
updated_at:
type: string
updater_id:
type: integer
type: object
model.AssetCommandControl:
properties:
cmd_ids:
description: Command IDs to control
items:
type: integer
type: array
comment:
description: Description of the command restriction
type: string
enabled:
type: boolean
template_ids:
description: Command template IDs
items:
type: integer
type: array
type: object
model.AuthAction:
enum:
- connect
- file_upload
- file_download
- copy
- paste
- share
type: string
x-enum-varnames:
- ActionConnect
- ActionFileUpload
- ActionFileDownload
- ActionCopy
- ActionPaste
- ActionShare
model.AuthPermissions:
properties:
connect:
type: boolean
copy:
type: boolean
file_download:
type: boolean
file_upload:
type: boolean
paste:
type: boolean
share:
type: boolean
type: object
model.AuthResult:
properties:
allowed:
type: boolean
permissions:
$ref: '#/definitions/model.AuthPermissions'
reason:
type: string
restrictions:
additionalProperties: true
type: object
rule_id:
type: integer
rule_name:
type: string
type: object
model.Authorization:
properties:
account_id:
type: integer
asset_id:
type: integer
created_at:
type: string
creator_id:
type: integer
id:
type: integer
node_id:
type: integer
resource_id:
type: integer
rids:
items:
type: integer
type: array
updated_at:
type: string
updater_id:
type: integer
type: object
model.AuthorizationMap:
additionalProperties:
$ref: '#/definitions/model.AccountAuthorization'
type: object
model.AuthorizationV2:
properties:
access_control:
allOf:
- $ref: '#/definitions/model.AccessControl'
description: Access control with time template support
account_selector:
$ref: '#/definitions/model.TargetSelector'
asset_selector:
$ref: '#/definitions/model.TargetSelector'
created_at:
type: string
creator_id:
type: integer
description:
type: string
enabled:
type: boolean
id:
type: integer
name:
type: string
node_selector:
allOf:
- $ref: '#/definitions/model.TargetSelector'
description: Target selectors
permissions:
allOf:
- $ref: '#/definitions/model.AuthPermissions'
description: Permissions configuration
resource_id:
description: Standard fields
type: integer
rids:
description: Role IDs for ACL integration
items:
type: integer
type: array
updated_at:
type: string
updater_id:
type: integer
valid_from:
allOf:
- $ref: '#/definitions/model.CustomTime'
description: Rule validity period
valid_to:
$ref: '#/definitions/model.CustomTime'
type: object
model.Command:
properties:
category:
allOf:
- $ref: '#/definitions/model.CommandCategory'
description: Enhanced fields for better management
cmd:
type: string
created_at:
type: string
creator_id:
type: integer
description:
type: string
enable:
type: boolean
id:
type: integer
is_global:
description: Global predefined command
type: boolean
is_re:
type: boolean
name:
type: string
permissions:
items:
type: string
type: array
resource_id:
type: integer
risk_level:
$ref: '#/definitions/model.CommandRiskLevel'
tags:
items:
type: string
type: array
updated_at:
type: string
updater_id:
type: integer
type: object
model.CommandCategory:
enum:
- security
- system
- database
- network
- file
- developer
- custom
type: string
x-enum-comments:
CategoryCustom: Custom commands
CategoryDatabase: Database operations
CategoryDeveloper: Development related
CategoryFile: File operations
CategoryNetwork: Network operations
CategorySecurity: Security related
CategorySystem: System operations
x-enum-varnames:
- CategorySecurity
- CategorySystem
- CategoryDatabase
- CategoryNetwork
- CategoryFile
- CategoryDeveloper
- CategoryCustom
model.CommandRiskLevel:
enum:
- 0
- 1
- 2
- 3
type: integer
x-enum-comments:
RiskLevelCritical: Critical danger
RiskLevelDanger: Dangerous commands
RiskLevelSafe: Safe commands
RiskLevelWarning: Warning level
x-enum-varnames:
- RiskLevelSafe
- RiskLevelWarning
- RiskLevelDanger
- RiskLevelCritical
model.CommandTemplate:
properties:
category:
$ref: '#/definitions/model.CommandCategory'
cmd_ids:
items:
type: integer
type: array
created_at:
type: string
creator_id:
type: integer
description:
type: string
id:
type: integer
is_builtin:
description: Built-in template
type: boolean
name:
type: string
resource_id:
type: integer
updated_at:
type: string
updater_id:
type: integer
type: object
model.Config:
properties:
created_at:
type: string
creator_id:
type: integer
default_permissions:
allOf:
- $ref: '#/definitions/model.DefaultPermissions'
description: Default permissions for authorization creation
id:
type: integer
timeout:
type: integer
updated_at:
type: string
updater_id:
type: integer
type: object
model.CustomTime:
properties:
time.Time:
type: string
type: object
model.DefaultPermissions:
properties:
connect:
type: boolean
copy:
type: boolean
file_download:
type: boolean
file_upload:
type: boolean
paste:
type: boolean
share:
type: boolean
type: object
model.Gateway:
properties:
account:
type: string
account_type:
type: integer
asset_count:
type: integer
created_at:
type: string
creator_id:
type: integer
host:
type: string
id:
type: integer
name:
type: string
password:
type: string
permissions:
items:
type: string
type: array
phrase:
type: string
pk:
type: string
port:
type: integer
resource_id:
type: integer
updated_at:
type: string
updater_id:
type: integer
type: object
model.History:
properties:
action_type:
type: integer
created_at:
type: string
creator_id:
type: integer
id:
type: integer
new:
$ref: '#/definitions/model.Map-string-any'
old:
$ref: '#/definitions/model.Map-string-any'
remote_ip:
type: string
target_id:
type: integer
type:
type: string
type: object
model.JSON:
additionalProperties: true
type: object
model.Map-int-model_Slice-int:
additionalProperties:
items:
type: integer
type: array
type: object
model.Map-string-any:
additionalProperties: {}
type: object
model.Node:
properties:
access_auth:
$ref: '#/definitions/model.AccessAuth'
asset_count:
type: integer
authorization:
$ref: '#/definitions/model.Map-int-model_Slice-int'
children:
items:
$ref: '#/definitions/model.Node'
type: array
comment:
type: string
created_at:
type: string
creator_id:
type: integer
gateway_id:
type: integer
has_child:
type: boolean
id:
type: integer
name:
type: string
parent_id:
type: integer
permissions:
items:
type: string
type: array
protocols:
items:
type: string
type: array
resource_id:
type: integer
updated_at:
type: string
updater_id:
type: integer
type: object
model.PublicKey:
properties:
created_at:
type: string
creator_id:
description: ResourceId int `json:"resource_id"`
type: integer
id:
type: integer
name:
type: string
pk:
type: string
uid:
type: integer
updated_at:
type: string
updater_id:
type: integer
username:
type: string
type: object
model.QuickCommand:
properties:
command:
description: Actual command to execute
type: string
created_at:
type: string
creator_id:
description: Creator ID
type: integer
description:
description: Command description
type: string
id:
type: integer
is_global:
description: Whether it's a global command
type: boolean
name:
description: Command name
type: string
updated_at:
type: string
type: object
model.Range:
properties:
times:
items:
type: string
type: array
week:
type: integer
type: object
model.SelectorType:
enum:
- all
- ids
- regex
- tags
type: string
x-enum-varnames:
- SelectorTypeAll
- SelectorTypeIds
- SelectorTypeRegex
- SelectorTypeTags
model.Session:
properties:
account_id:
type: integer
account_info:
type: string
asset_id:
type: integer
asset_info:
type: string
client_ip:
type: string
closed_at:
type: string
cmd_count:
type: integer
created_at:
type: string
duration:
type: integer
gateway_id:
type: integer
gateway_info:
type: string
id:
type: integer
protocol:
type: string
session_id:
type: string
session_type:
type: integer
share_id:
type: integer
status:
type: integer
uid:
type: integer
updated_at:
type: string
user_name:
type: string
type: object
model.SessionCmd:
properties:
cmd:
type: string
created_at:
type: string
id:
type: integer
level:
type: integer
result:
type: string
session_id:
type: string
type: object
model.SessionOptionAsset:
properties:
id:
type: integer
name:
type: string
type: object
model.Share:
properties:
account_id:
type: integer
asset_id:
type: integer
created_at:
type: string
creator_id:
type: integer
end:
type: string
id:
type: integer
no_limit:
type: boolean
protocol:
type: string
start:
type: string
times:
type: integer
updated_at:
type: string
updater_id:
type: integer
uuid:
type: string
type: object
model.StatAccount:
properties:
count:
type: integer
name:
type: string
type: object
model.StatAsset:
properties:
asset:
type: integer
connect:
type: integer
session:
type: integer
time:
type: string
user:
type: integer
type: object
model.StatAssetType:
properties:
count:
type: integer
id:
type: integer
name:
type: string
type: object
model.StatCount:
properties:
asset:
type: integer
connect:
type: integer
gateway:
description: TotalUser int64 `json:"total_user"`
type: integer
session:
type: integer
total_asset:
type: integer
total_gateway:
type: integer
user:
type: integer
type: object
model.StatCountOfUser:
properties:
asset:
type: integer
connect:
type: integer
session:
type: integer
total_asset:
type: integer
type: object
model.StatRankOfUser:
properties:
count:
type: integer
last_time:
type: string
uid:
type: integer
type: object
model.StorageConfig:
properties:
config:
$ref: '#/definitions/model.StorageConfigMap'
created_at:
type: string
creator_id:
description: Standard fields
type: integer
description:
type: string
enabled:
type: boolean
id:
type: integer
is_primary:
type: boolean
name:
type: string
priority:
type: integer
type:
$ref: '#/definitions/model.StorageType'
updated_at:
type: string
updater_id:
type: integer
type: object
model.StorageConfigMap:
additionalProperties:
type: string
type: object
model.StorageType:
enum:
- local
- s3
- minio
- oss
- cos
- azure
- obs
- oos
type: string
x-enum-varnames:
- StorageTypeLocal
- StorageTypeS3
- StorageTypeMinio
- StorageTypeOSS
- StorageTypeCOS
- StorageTypeAzure
- StorageTypeOBS
- StorageTypeOOS
model.TargetSelector:
properties:
exclude_ids:
items:
type: integer
type: array
type:
$ref: '#/definitions/model.SelectorType'
values:
items:
type: string
type: array
type: object
model.TimeRange:
properties:
end_time:
type: string
start_time:
type: string
weekdays:
items:
type: integer
type: array
type: object
model.TimeTemplate:
properties:
category:
description: work, maintenance, emergency, etc.
type: string
created_at:
type: string
creator_id:
type: integer
description:
type: string
id:
type: integer
is_active:
type: boolean
is_builtin:
description: Status and metadata
type: boolean
name:
type: string
resource_id:
description: Standard fields
type: integer
time_ranges:
description: Time configuration
items:
$ref: '#/definitions/model.TimeRange'
type: array
timezone:
type: string
updated_at:
type: string
updater_id:
type: integer
usage_count:
description: Usage statistics
type: integer
type: object
model.TimeTemplateReference:
properties:
custom_ranges:
description: Additional custom time ranges
items:
$ref: '#/definitions/model.TimeRange'
type: array
template_id:
type: integer
template_name:
description: For display
type: string
type: object
model.UserPreference:
properties:
created_at:
type: string
cursor_style:
description: Cursor style (block, bar, underline)
type: string
font_family:
description: Font family
type: string
font_size:
description: Font size
type: integer
id:
type: integer
letter_spacing:
description: Letter spacing
type: number
line_height:
description: Line height
type: number
settings:
allOf:
- $ref: '#/definitions/model.JSON'
description: Additional settings in JSON format
theme:
description: Theme name
type: string
updated_at:
type: string
user_id:
description: User ID with unique index
type: integer
type: object
info:
contact: {}
paths:
/account:
get:
parameters:
- description: page_index
in: query
name: page_index
required: true
type: integer
- description: page_size
in: query
name: page_size
required: true
type: integer
- description: name or account
in: query
name: search
type: string
- description: account id
in: query
name: id
type: integer
- description: account ids
in: query
name: ids
type: string
- description: account name
in: query
name: name
type: string
- description: is info mode
in: query
name: info
type: boolean
- description: account type
in: query
name: type
type: integer
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
$ref: '#/definitions/model.Account'
type: array
type: object
type: object
tags:
- account
post:
parameters:
- description: account
in: body
name: account
required: true
schema:
$ref: '#/definitions/model.Account'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- account
/account/:id:
delete:
parameters:
- description: account id
in: path
name: id
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- account
put:
parameters:
- description: account id
in: path
name: id
required: true
type: integer
- description: account
in: body
name: account
required: true
schema:
$ref: '#/definitions/model.Account'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- account
/asset:
get:
parameters:
- description: page_index
in: query
name: page_index
required: true
type: integer
- description: page_size
in: query
name: page_size
required: true
type: integer
- description: name or ip
in: query
name: search
type: string
- description: asset id
in: query
name: id
type: integer
- description: asset ids
in: query
name: ids
type: string
- description: asset's parent id
in: query
name: parent_id
type: integer
- description: asset name
in: query
name: name
type: string
- description: asset ip
in: query
name: ip
type: string
- description: is info mode
in: query
name: info
type: boolean
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
$ref: '#/definitions/model.Asset'
type: array
type: object
type: object
tags:
- asset
post:
parameters:
- description: asset
in: body
name: asset
required: true
schema:
$ref: '#/definitions/model.Asset'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- asset
/asset/:id:
delete:
parameters:
- description: asset id
in: path
name: id
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- asset
put:
parameters:
- description: asset id
in: path
name: id
required: true
type: integer
- description: asset
in: body
name: asset
required: true
schema:
$ref: '#/definitions/model.Asset'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- asset
/asset/:id/permissions:
get:
parameters:
- description: asset id
in: path
name: id
required: true
type: integer
- description: account ids (comma separated, e.g. 123,456,789)
in: query
name: account_ids
type: string
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
$ref: '#/definitions/controller.AssetPermissionMultiAccountResult'
type: object
tags:
- asset
/authorization:
get:
parameters:
- description: page_index
in: query
name: page_index
required: true
type: integer
- description: page_size
in: query
name: page_size
required: true
type: integer
- description: node id
in: query
name: node_id
type: integer
- description: asset id
in: query
name: asset_id
type: integer
- description: account id
in: query
name: account_id
type: integer
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
$ref: '#/definitions/model.Account'
type: array
type: object
type: object
tags:
- authorization
post:
parameters:
- description: authorization
in: body
name: authorization
required: true
schema:
$ref: '#/definitions/model.Authorization'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- authorization
/authorization/:id:
delete:
parameters:
- description: authorization id
in: path
name: id
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- authorization
/authorization_v2:
get:
parameters:
- description: page index
in: query
name: page_index
type: integer
- description: page size
in: query
name: page_size
type: integer
- description: filter by enabled status
in: query
name: enabled
type: boolean
- description: search by name or description
in: query
name: search
type: string
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
$ref: '#/definitions/model.AuthorizationV2'
type: array
type: object
type: object
tags:
- authorization_v2
post:
parameters:
- description: authorization rule
in: body
name: authorization
required: true
schema:
$ref: '#/definitions/model.AuthorizationV2'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- authorization_v2
/authorization_v2/:id:
delete:
parameters:
- description: authorization id
in: path
name: id
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- authorization_v2
get:
parameters:
- description: authorization id
in: path
name: id
required: true
type: integer
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
$ref: '#/definitions/model.AuthorizationV2'
type: object
tags:
- authorization_v2
put:
parameters:
- description: authorization id
in: path
name: id
required: true
type: integer
- description: authorization rule
in: body
name: authorization
required: true
schema:
$ref: '#/definitions/model.AuthorizationV2'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- authorization_v2
/authorization_v2/:id/clone:
post:
parameters:
- description: source authorization id
in: path
name: id
required: true
type: integer
- description: clone request
in: body
name: body
required: true
schema:
type: object
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
$ref: '#/definitions/model.AuthorizationV2'
type: object
tags:
- authorization_v2
/authorization_v2/check:
post:
parameters:
- description: permission check request
in: body
name: request
required: true
schema:
$ref: '#/definitions/controller.CheckPermissionRequest'
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
$ref: '#/definitions/model.AuthResult'
type: object
tags:
- authorization_v2
/command:
get:
parameters:
- description: page index
in: query
name: page_index
required: true
type: integer
- description: page size
in: query
name: page_size
required: true
type: integer
- description: name or cmd
in: query
name: search
type: string
- description: command id
in: query
name: id
type: integer
- description: command ids
in: query
name: ids
type: string
- description: command name
in: query
name: name
type: string
- description: command enable
in: query
name: enable
type: integer
- description: command category
in: query
name: category
type: string
- description: command risk level
in: query
name: risk_level
type: integer
- description: is info mode
in: query
name: info
type: boolean
- description: name or cmd
in: query
name: search
type: string
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
$ref: '#/definitions/model.Command'
type: array
type: object
type: object
tags:
- command
post:
parameters:
- description: command
in: body
name: command
required: true
schema:
$ref: '#/definitions/model.Command'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- command
/command/:id:
delete:
parameters:
- description: command id
in: path
name: id
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- command
put:
parameters:
- description: command id
in: path
name: id
required: true
type: integer
- description: command
in: body
name: command
required: true
schema:
$ref: '#/definitions/model.Command'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- command
/command_template:
get:
parameters:
- description: page index
in: query
name: page_index
type: integer
- description: page size
in: query
name: page_size
type: integer
- description: template category
in: query
name: category
type: string
- description: filter by builtin status
in: query
name: builtin
type: boolean
- description: info mode
in: query
name: info
type: boolean
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
items:
$ref: '#/definitions/model.CommandTemplate'
type: array
type: object
tags:
- command_template
post:
parameters:
- description: command template
in: body
name: template
required: true
schema:
$ref: '#/definitions/model.CommandTemplate'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- command_template
/command_template/:id:
delete:
parameters:
- description: template id
in: path
name: id
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- command_template
put:
parameters:
- description: template id
in: path
name: id
required: true
type: integer
- description: command template
in: body
name: template
required: true
schema:
$ref: '#/definitions/model.CommandTemplate'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- command_template
/command_template/:id/commands:
get:
parameters:
- description: template id
in: path
name: id
required: true
type: integer
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
items:
$ref: '#/definitions/model.Command'
type: array
type: object
tags:
- command_template
/command_template/builtin:
get:
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
items:
$ref: '#/definitions/model.CommandTemplate'
type: array
type: object
tags:
- command_template
/config:
get:
parameters:
- description: is info mode
in: query
name: info
type: boolean
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
$ref: '#/definitions/model.Config'
type: object
tags:
- config
post:
parameters:
- description: config
in: body
name: command
required: true
schema:
$ref: '#/definitions/model.Config'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- config
/connect/:asset_id/:account_id/:protocol:
get:
parameters:
- description: width
in: query
name: w
type: integer
- description: height
in: query
name: h
type: integer
- description: dpi
in: query
name: dpi
type: integer
- description: session_id
in: query
name: session_id
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- connect
/connect/close/:session_id:
post:
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- connect
/connect/monitor/:session_id:
get:
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- connect
/file/download/:asset_id/:account_id:
get:
parameters:
- description: asset_id
in: path
name: asset_id
required: true
type: integer
- description: account_id
in: path
name: account_id
required: true
type: integer
- description: dir
in: query
name: dir
required: true
type: string
- description: names (comma-separated for multiple files)
in: query
name: names
required: true
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- file
/file/history:
get:
parameters:
- description: page_index
in: query
name: page_index
required: true
type: integer
- description: page_size
in: query
name: page_size
required: true
type: integer
- description: search
in: query
name: search
type: string
- description: saction
in: query
name: action
type: integer
- description: start, RFC3339
in: query
name: start
type: string
- description: end, RFC3339
in: query
name: end
type: string
- description: uid
in: query
name: uid
type: integer
- description: asset id
in: query
name: asset_id
type: integer
- description: account id
in: query
name: account_id
type: integer
- description: client_ip
in: query
name: client_ip
type: string
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
$ref: '#/definitions/model.Session'
type: array
type: object
type: object
tags:
- file
/file/ls/:asset_id/:account_id:
get:
parameters:
- description: asset_id
in: path
name: asset_id
required: true
type: integer
- description: account_id
in: path
name: account_id
required: true
type: integer
- description: dir
in: query
name: dir
required: true
type: string
- description: 'show hidden files (default: false)'
in: query
name: show_hidden
type: boolean
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- file
/file/mkdir/:asset_id/:account_id:
post:
parameters:
- description: asset_id
in: path
name: asset_id
required: true
type: integer
- description: account_id
in: path
name: account_id
required: true
type: integer
- description: 'dir '
in: query
name: dir
required: true
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- file
/file/session/:session_id/download:
get:
parameters:
- description: session_id
in: path
name: session_id
required: true
type: string
- description: dir
in: query
name: dir
required: true
type: string
- description: names (comma-separated for multiple files)
in: query
name: names
required: true
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- file
/file/session/:session_id/ls:
get:
parameters:
- description: session_id
in: path
name: session_id
required: true
type: string
- description: dir
in: query
name: dir
required: true
type: string
- description: 'show hidden files (default: false)'
in: query
name: show_hidden
type: boolean
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- file
/file/session/:session_id/mkdir:
post:
parameters:
- description: session_id
in: path
name: session_id
required: true
type: string
- description: dir
in: query
name: dir
required: true
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- file
/file/session/:session_id/upload:
post:
consumes:
- multipart/form-data
parameters:
- description: session_id
in: path
name: session_id
required: true
type: string
- description: 'target directory path (default: /tmp)'
in: query
name: dir
type: string
- description: Custom transfer ID for progress tracking (frontend generated)
in: query
name: transfer_id
type: string
- description: file to upload
in: formData
name: file
required: true
type: file
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- file
/file/transfer/progress/id/:transfer_id:
get:
responses: {}
tags:
- file
/file/upload/:asset_id/:account_id:
post:
consumes:
- multipart/form-data
parameters:
- description: asset_id
in: path
name: asset_id
required: true
type: integer
- description: account_id
in: path
name: account_id
required: true
type: integer
- description: 'target directory path (default: /tmp)'
in: query
name: dir
type: string
- description: Custom transfer ID for progress tracking (frontend generated)
in: query
name: transfer_id
type: string
- description: file to upload
in: formData
name: file
required: true
type: file
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- file
/gateway:
get:
parameters:
- description: gateway id
in: query
name: page_index
required: true
type: integer
- description: gateway id
in: query
name: page_size
required: true
type: integer
- description: name or host or account or port
in: query
name: search
type: string
- description: gateway id
in: query
name: id
type: integer
- description: gateway ids
in: query
name: ids
type: string
- description: gateway name
in: query
name: name
type: string
- description: is info mode
in: query
name: info
type: boolean
- description: account type
in: query
name: type
type: integer
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
$ref: '#/definitions/model.Gateway'
type: array
type: object
type: object
tags:
- gateway
post:
parameters:
- description: gateway
in: body
name: gateway
required: true
schema:
$ref: '#/definitions/model.Gateway'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- gateway
/gateway/:id:
delete:
parameters:
- description: gateway id
in: path
name: id
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- gateway
put:
parameters:
- description: gateway id
in: path
name: id
required: true
type: integer
- description: gateway
in: body
name: gateway
required: true
schema:
$ref: '#/definitions/model.Gateway'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- gateway
/history:
get:
parameters:
- description: page_index
in: query
name: page_index
required: true
type: integer
- description: page_size
in: query
name: page_size
required: true
type: integer
- description: type
enum:
- account
- asset
- command
- gateway
- node
- public_key
in: query
name: type
type: string
- description: target_id
in: query
name: target_id
type: integer
- description: uid
in: query
name: uid
type: integer
- description: create=1 delete=2 update=3
in: query
name: action_type
type: integer
- description: start time, RFC3339
in: query
name: start
type: string
- description: end time, RFC3339
in: query
name: end
type: string
- description: search
in: query
name: search
type: string
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
$ref: '#/definitions/model.History'
type: array
type: object
type: object
tags:
- history
/history/type/mapping:
get:
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
additionalProperties:
type: string
type: object
type: object
tags:
- session
/node:
get:
parameters:
- description: node id
in: query
name: page_index
required: true
type: integer
- description: node id
in: query
name: page_size
required: true
type: integer
- description: node id
in: query
name: id
type: integer
- description: node ids
in: query
name: ids
type: string
- description: node's parent id
in: query
name: parent_id
type: integer
- description: node name
in: query
name: name
type: string
- description: exclude itself and its child
in: query
name: no_self_child
type: integer
- description: include itself and its parent
in: query
name: self_parent
type: integer
- description: return tree structure with children
in: query
name: recursive
type: boolean
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
$ref: '#/definitions/model.Node'
type: array
type: object
type: object
tags:
- node
post:
parameters:
- description: node
in: body
name: node
required: true
schema:
$ref: '#/definitions/model.Node'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- node
/node/:id:
delete:
parameters:
- description: node id
in: path
name: id
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- node
put:
parameters:
- description: node id
in: path
name: id
required: true
type: integer
- description: node
in: body
name: node
required: true
schema:
$ref: '#/definitions/model.Node'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- node
/preference:
get:
description: Get terminal preferences for the current user
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
$ref: '#/definitions/model.UserPreference'
type: object
summary: Get user preferences
tags:
- Preference
put:
description: Update terminal preferences for the current user
parameters:
- description: User preferences
in: body
name: preference
required: true
schema:
$ref: '#/definitions/model.UserPreference'
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
$ref: '#/definitions/model.UserPreference'
type: object
summary: Update user preferences
tags:
- Preference
/public_key:
get:
parameters:
- description: publicKey id
in: query
name: page_index
required: true
type: integer
- description: publicKey id
in: query
name: page_size
required: true
type: integer
- description: name or mac
in: query
name: search
type: string
- description: publicKey id
in: query
name: id
type: integer
- description: publicKey name
in: query
name: name
type: string
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
$ref: '#/definitions/model.PublicKey'
type: array
type: object
type: object
tags:
- public_key
post:
parameters:
- description: publicKey
in: body
name: publicKey
required: true
schema:
$ref: '#/definitions/model.PublicKey'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- public_key
/public_key/:id:
delete:
parameters:
- description: publicKey id
in: path
name: id
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- public_key
put:
parameters:
- description: publicKey id
in: path
name: id
required: true
type: integer
- description: publicKey
in: body
name: publicKey
required: true
schema:
$ref: '#/definitions/model.PublicKey'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- public_key
/quick_command:
get:
description: Get all quick commands available to the user
parameters:
- description: page index
in: query
name: page_index
required: true
type: integer
- description: page size
in: query
name: page_size
required: true
type: integer
- description: name or command
in: query
name: search
type: string
- description: command id
in: query
name: id
type: integer
- description: command name
in: query
name: name
type: string
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
$ref: '#/definitions/model.QuickCommand'
type: array
type: object
type: object
tags:
- QuickCommand
post:
description: Create a new quick command
parameters:
- description: Quick command data
in: body
name: quick_command
required: true
schema:
$ref: '#/definitions/model.QuickCommand'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- QuickCommand
/quick_command/{id}:
delete:
description: Delete a quick command by ID
parameters:
- description: Quick command ID
in: path
name: id
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- QuickCommand
put:
description: Update an existing quick command by ID
parameters:
- description: Quick command ID
in: path
name: id
required: true
type: integer
- description: Updated quick command data
in: body
name: quick_command
required: true
schema:
$ref: '#/definitions/model.QuickCommand'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- QuickCommand
/rdp/sessions/{session_id}/files:
get:
description: Get file list for RDP session drive
parameters:
- description: Session ID
in: path
name: session_id
required: true
type: string
- description: Directory path
in: query
name: path
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
summary: List RDP session files
tags:
- RDP File
/rdp/sessions/{session_id}/files/download:
get:
consumes:
- application/json
description: Download files from RDP session drive (supports multiple files
via names parameter)
parameters:
- description: Session ID
in: path
name: session_id
required: true
type: string
- description: Directory path
in: query
name: dir
required: true
type: string
- description: File names (comma-separated for multiple files)
in: query
name: names
required: true
type: string
produces:
- application/octet-stream
responses:
"200":
description: OK
schema:
type: file
summary: Download files from RDP session
tags:
- RDP File
/rdp/sessions/{session_id}/files/mkdir:
post:
consumes:
- application/json
description: Create directory in RDP session drive
parameters:
- description: Session ID
in: path
name: session_id
required: true
type: string
- description: Directory path
in: query
name: path
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
summary: Create directory in RDP session
tags:
- RDP File
/rdp/sessions/{session_id}/files/prepare:
post:
consumes:
- application/json
description: Create transfer record before RDP upload starts for progress tracking
parameters:
- description: Session ID
in: path
name: session_id
required: true
type: string
- description: Custom transfer ID
in: query
name: transfer_id
type: string
- description: Filename
in: query
name: filename
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
summary: Create transfer record for RDP upload
tags:
- RDP File
/rdp/sessions/{session_id}/files/upload:
post:
consumes:
- multipart/form-data
description: Upload file to RDP session drive
parameters:
- description: Session ID
in: path
name: session_id
required: true
type: string
- description: Custom transfer ID for progress tracking (frontend generated)
in: query
name: transfer_id
type: string
- description: Target directory path
in: query
name: path
type: string
- description: File to upload
in: formData
name: file
required: true
type: file
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
summary: Upload file to RDP session
tags:
- RDP File
/session:
get:
parameters:
- description: page_index
in: query
name: page_index
required: true
type: integer
- description: page_size
in: query
name: page_size
required: true
type: integer
- description: search
in: query
name: search
type: string
- description: status, online=1, offline=2
in: query
name: status
type: integer
- description: start, RFC3339
in: query
name: start
type: string
- description: end, RFC3339
in: query
name: end
type: string
- description: uid
in: query
name: uid
type: integer
- description: asset id
in: query
name: asset_id
type: integer
- description: client_ip
in: query
name: client_ip
type: string
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
$ref: '#/definitions/model.Session'
type: array
type: object
type: object
tags:
- session
/session/:session_id/cmd:
get:
parameters:
- description: page_index
in: query
name: page_index
required: true
type: integer
- description: page_size
in: query
name: page_size
required: true
type: integer
- description: session id
in: path
name: session_id
required: true
type: string
- description: search
in: query
name: search
required: true
type: string
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
$ref: '#/definitions/model.SessionCmd'
type: array
type: object
type: object
tags:
- session
/session/cmd:
post:
parameters:
- description: SessionCmd
in: body
name: sessioncmd
required: true
schema:
$ref: '#/definitions/model.SessionCmd'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- session
/session/option/asset:
get:
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
$ref: '#/definitions/model.SessionOptionAsset'
type: array
type: object
type: object
tags:
- session
/session/option/clientip:
get:
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
items:
type: string
type: array
type: object
tags:
- session
/session/replay/:session_id:
get:
parameters:
- description: session id
in: path
name: session_id
required: true
type: string
responses:
"200":
description: OK
schema:
type: string
tags:
- session
post:
parameters:
- description: session id
in: path
name: session_id
required: true
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- session
/share:
get:
parameters:
- description: page_index
in: query
name: page_index
required: true
type: integer
- description: page_size
in: query
name: page_size
required: true
type: integer
- description: name or ip
in: query
name: search
type: string
- description: start, RFC3339
in: query
name: start
type: string
- description: end, RFC3339
in: query
name: end
type: string
- description: asset id
in: query
name: asset_id
type: string
- description: account id
in: query
name: account_id
type: string
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
$ref: '#/definitions/model.Share'
type: array
type: object
type: object
tags:
- share
post:
parameters:
- description: share
in: body
name: share
required: true
schema:
items:
$ref: '#/definitions/model.Share'
type: array
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
type: string
type: array
type: object
type: object
tags:
- share
/share/:id:
delete:
parameters:
- description: share id
in: path
name: id
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- share
/share/connect/:uuid:
get:
parameters:
- description: width
in: query
name: w
type: integer
- description: height
in: query
name: h
type: integer
- description: dpi
in: query
name: dpi
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- share
/stat/account:
get:
parameters:
- description: account name
enum:
- day
- week
- month
in: query
name: type
required: true
type: string
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
$ref: '#/definitions/model.StatAccount'
type: array
type: object
type: object
tags:
- stat
/stat/asset:
get:
parameters:
- description: account name
enum:
- day
- week
- month
in: query
name: type
required: true
type: string
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
$ref: '#/definitions/model.StatAsset'
type: array
type: object
type: object
tags:
- stat
/stat/assettype:
get:
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
$ref: '#/definitions/model.StatAssetType'
type: array
type: object
type: object
tags:
- stat
/stat/count:
get:
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
$ref: '#/definitions/model.StatCount'
type: object
tags:
- stat
/stat/count/ofuser:
get:
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
$ref: '#/definitions/model.StatCountOfUser'
type: object
tags:
- stat
/stat/rank/ofuser:
get:
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
$ref: '#/definitions/model.StatRankOfUser'
type: array
type: object
type: object
tags:
- stat
/storage/configs:
get:
parameters:
- description: page_index
in: query
name: page_index
type: integer
- description: page_size
in: query
name: page_size
type: integer
- description: search
in: query
name: search
type: string
- description: storage type filter
in: query
name: type
type: string
- description: enabled filter (true/false)
in: query
name: enabled
type: string
- description: primary filter (true/false)
in: query
name: primary
type: string
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
allOf:
- $ref: '#/definitions/controller.ListData'
- properties:
list:
items:
$ref: '#/definitions/model.StorageConfig'
type: array
type: object
type: object
summary: List all storage configurations
tags:
- storage
post:
parameters:
- description: Storage configuration
in: body
name: config
required: true
schema:
$ref: '#/definitions/model.StorageConfig'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
summary: Create a new storage configuration
tags:
- storage
/storage/configs/{id}:
delete:
parameters:
- description: Storage ID
in: path
name: id
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
summary: Delete a storage configuration
tags:
- storage
get:
parameters:
- description: Storage ID
in: path
name: id
required: true
type: integer
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
$ref: '#/definitions/model.StorageConfig'
type: object
summary: Get storage configuration by ID
tags:
- storage
put:
parameters:
- description: Storage ID
in: path
name: id
required: true
type: integer
- description: Storage configuration
in: body
name: config
required: true
schema:
$ref: '#/definitions/model.StorageConfig'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
summary: Update an existing storage configuration
tags:
- storage
/storage/configs/{id}/set-primary:
put:
parameters:
- description: Storage ID
in: path
name: id
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
summary: Set a storage provider as primary
tags:
- storage
/storage/configs/{id}/toggle:
put:
parameters:
- description: Storage ID
in: path
name: id
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
summary: Enable or disable a storage provider
tags:
- storage
/storage/health:
get:
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
additionalProperties: true
type: object
type: object
summary: Get health status of all storage providers
tags:
- storage
/storage/metrics:
get:
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
additionalProperties: true
type: object
type: object
summary: Get storage usage metrics
tags:
- storage
/storage/metrics/refresh:
post:
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
summary: Refresh storage usage metrics
tags:
- storage
/storage/test-connection:
post:
parameters:
- description: Storage configuration to test
in: body
name: config
required: true
schema:
$ref: '#/definitions/model.StorageConfig'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
summary: Test storage connection
tags:
- storage
/time_template:
get:
parameters:
- description: page index
in: query
name: page_index
type: integer
- description: page size
in: query
name: page_size
type: integer
- description: template category
in: query
name: category
type: string
- description: filter by active status
in: query
name: active
type: boolean
- description: info mode
in: query
name: info
type: boolean
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
items:
$ref: '#/definitions/model.TimeTemplate'
type: array
type: object
tags:
- time_template
post:
parameters:
- description: time template
in: body
name: template
required: true
schema:
$ref: '#/definitions/model.TimeTemplate'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- time_template
/time_template/:id:
delete:
parameters:
- description: template id
in: path
name: id
required: true
type: integer
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- time_template
put:
parameters:
- description: template id
in: path
name: id
required: true
type: integer
- description: time template
in: body
name: template
required: true
schema:
$ref: '#/definitions/model.TimeTemplate'
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- time_template
/time_template/builtin:
get:
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
items:
$ref: '#/definitions/model.TimeTemplate'
type: array
type: object
tags:
- time_template
/time_template/check:
post:
parameters:
- description: time access check request
in: body
name: request
required: true
schema:
$ref: '#/definitions/controller.CheckTimeAccessRequest'
responses:
"200":
description: OK
schema:
allOf:
- $ref: '#/definitions/controller.HttpResponse'
- properties:
data:
$ref: '#/definitions/controller.CheckTimeAccessResponse'
type: object
tags:
- time_template
/time_template/init:
post:
responses:
"200":
description: OK
schema:
$ref: '#/definitions/controller.HttpResponse'
tags:
- time_template
swagger: "2.0"