linglong/api/schema/v1.yaml

464 lines
12 KiB
YAML

# SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
# SPDX-License-Identifier: LGPL-3.0-or-later
#
# NOTE:
# This yaml file is converted to json schema by running
# yq e '.properties = ( [
# .$defs | keys | .[] as $type | {
# "key" : $type,
# "value": {
# "$ref": "#/$defs/"+$type
# }
# } ] | from_entries
# )' -o json
# Check ../../tools/codegen.sh for details
#
# WARNING:
# Please make sure every changes in this file is backward compatible.
$schema: http://json-schema.org/draft-04/schema#
description: Types used as v1 API of linglong
D-Bus service, configuration files and CLI output.
The top level type is a place holder to make quicktype work.
$defs:
ApplicationConfiguration:
title: ApplicationConfiguration
description: application configuration
type: object
required:
- version
properties:
version:
type: string
description: version of configuration file
permissions:
$ref: "#/$defs/ApplicationConfigurationPermissions"
ApplicationConfigurationPermissions:
title: ApplicationConfigurationPermissions
description: application configuration permissions
type: object
properties:
binds:
type: array
items:
type: object
title: ApplicationConfigurationPermissionsBind
description: items of container
required:
- source
- destination
properties:
source:
type: string
description: source file of host
destination:
type: string
description: mount source file to the container
innerBinds:
type: array
description: inner binds of container
items:
type: object
title: ApplicationConfigurationPermissionsInnerBind
description: items of inner binds of container
required:
- source
- destination
properties:
source:
type: string
description: source file of container
destination:
type: string
description: mount source file to the another position of container
OCIConfigurationPatch:
title: OCIConfigurationPatch
description: oci configuration patch
type: object
required:
- ociVersion
- patch
properties:
ociVersion:
type: string
description: version of oci configuration patch
patch:
type: array
description: oci configuration patch
CLIContainer:
title: CLIContainer
description: this is the output result of ll-cli ps --json
type: object
required:
- pid
- id
- package
properties:
pid:
type: integer
description: pid of container
id:
type: string
description: id of container
package:
type: string
description: package of container
BuilderProject:
title: BuilderProject
description: Linglong project build file.
type: object
required:
- version
- package
- build
- base
properties:
version:
type: string
description: version of build file
package:
title: BuilderProjectPackage
description: package of build file
type: object
required:
- id
- kind
- name
- version
- description
properties:
id:
type: string
description: id of package
kind:
type: string
description: kind of package
name:
type: string
description: name of package
version:
type: string
description: version of package
description:
type: string
description: description of package
architecture:
type: string
description: architecture of package
channel:
type: string
description: channel of package
permissions:
$ref: "#/$defs/ApplicationConfigurationPermissions"
runtime:
type: string
description: used runtime of package
base:
type: string
description: used base of package
sources:
type: array
description: sources of package
items:
title: BuilderProjectSource
description: items of sources of builder project
type: object
required:
- kind
properties:
kind:
type: string
description: kind of source
url:
type: string
description: url of source
digest:
type: string
description: digest of source
commit:
type: string
description: commit of source
version:
type: string
description: version of source
name:
type: string
description: name of source
build:
title: BuilderProjectBuildScript
description: build script of builder project
type: string
command:
type: array
description: command of builder project
items:
type: string
strip:
title: BuilderProjectStripScript
description: strip script of builder project
type: string
BuilderConfig:
description: Configuration file for ll-builder.
type: object
required:
- version
- repo
properties:
version:
type: integer
description: version of builder config
offline:
type: boolean
description: use offline mode when build
skip_fetch_source:
type: boolean
description: skip fetch source when build
skip_pull_depend:
type: boolean
description: skip pull depend when build
skip_run_container:
type: boolean
description: skip run container when build
skip_commit_output:
type: boolean
description: skip commit output when build
arch:
type: string
description: arch of builder config
cache:
type: string
description: cache of builder config
repo:
type: string
description: repo of builder config
RepoConfig:
description: Configuration file for local linglong repository.
type: object
required:
- version
- defaultRepo
- repos
properties:
version:
type: integer
description: version of repo config
defaultRepo:
type: string
description: default repo of repo config
repos:
type: object
description: repos of repo config
additionalProperties:
type: string
description: additional properties of repos
LayerInfo:
description: Meta information on the head of layer file.
type: object
required:
- version
- info
properties:
version:
type: string
description: version of layer info
info: true
PackageManager1Package:
title: PackageManager1Package
description: package manager of linglong
type: object
required:
- id
properties:
channel:
type: string
description: channel of package manager
id:
type: string
description: id of package manager
version:
type: string
description: version of package manager
module:
type: string
description: module of package manager
PackageInfo:
title: PackageInfo
description: this is the each item output of ll-cli list --json
type: object
required:
- channel
- appid
- module
- arch
- version
- kind
- name
- size
- base
properties:
channel:
type: string
description: channel of package info
appid:
type: string
description: appid of package info
module:
type: string
description: module of package info
arch:
type: array
description: arch of package info
items:
type: string
version:
type: string
description: version of package info
kind:
type: string
description: kind of package info
name:
type: string
description: name of package info
size:
description: Uncompressed package size in bytes
type: integer
runtime:
type: string
description: runtime of package info
base:
type: string
description: base of package info
command:
type: array
description: command of package info
items:
type: string
permissions:
$ref: "#/$defs/ApplicationConfigurationPermissions"
description:
type: string
description: description of package info
CommonResult:
title: CommonResult
description: this is common error result of ll-cli command --json
type: object
required:
- message
- code
properties:
message:
description: Human readable result message.
type: string
code:
description: We do not use DBus error. We return an error code instead.
Non-zero code indicated errors occurs
and message should be displayed to user.
type: integer
PackageManager1InstallLayerFDResult:
$ref: "#/$defs/CommonResult"
PackageManager1InstallParameters:
type: object
description: package manager install parameters
required:
- package
properties:
package:
$ref: "#/$defs/PackageManager1Package"
PackageManager1InstallResult:
title: PackageManager1ResultWithTaskID
description: package manager install result
allOf:
- $ref: "#/$defs/CommonResult"
properties:
taskID:
type: string
description: task id of package manager install
PackageManager1UninstallParameters:
type: object
description: package manager uninstall parameters
required:
- package
properties:
package:
$ref: "#/$defs/PackageManager1Package"
PackageManager1UninstallResult:
$ref: "#/$defs/CommonResult"
PackageManager1UpdateParameters:
type: object
description: package manager update result
required:
- packages
properties:
packages:
type: array
description: packages of package manager update
items:
$ref: "#/$defs/PackageManager1Package"
PackageManager1UpdateResult:
title: PackageManager1UpdateResult
description: package manager update result
$ref: "#/$defs/PackageManager1InstallResult"
PackageManager1ModifyRepoParameters:
type: object
required:
- defaultRepo
- repos
properties:
defaultRepo:
type: string
description: default repo of package manager modify repo parameters
repos:
type: object
description: repos of of package manager modify repo
additionalProperties:
type: string
PackageManager1ModifyRepoResult:
$ref: "#/$defs/CommonResult"
PackageManager1SearchParameters:
type: object
description: package manager search parameters
required:
- id
properties:
id:
type: string
description: id of package manager search
PackageManager1SearchResult:
type: object
description: result of package manager search
allOf:
- $ref: "#/$defs/CommonResult"
properties:
packages:
type: array
items:
$ref: "#/$defs/PackageInfo"
PackageManager1GetRepoInfoResult:
type: object
description: result of package manager get repo info
allOf:
- $ref: "#/$defs/CommonResult"
required:
- repoInfo
properties:
repoInfo:
title: PackageManager1GetRepoInfoResultRepoInfo
description: result of package manager get repo info
type: object
properties:
defaultRepo:
type: string
description: default repo of package manager get repo info
repos:
type: object
description: repos of package manager get repo info
additionalProperties:
type: string
description: additional properties of package manager get repo info
required:
- defaultRepo
- repos
type: object
properties:
# NOTE: "properties" is auto generated by referring all types is $defs