mirror of https://github.com/k3s-io/k3s
162 lines
4.0 KiB
YAML
162 lines
4.0 KiB
YAML
# When you made a change to this YAML, please validate with https://editor.swagger.io
|
|
openapi: 3.0.3
|
|
info:
|
|
version: 1.1.0
|
|
title: RootlessKit API
|
|
servers:
|
|
- url: 'http://rootlesskit/v1'
|
|
description: Local UNIX socket server. The host part of the URL is ignored.
|
|
paths:
|
|
# /info: API >= 1.1.0
|
|
/info:
|
|
get:
|
|
responses:
|
|
'200':
|
|
description: Info. Available since API 1.1.0.
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Info'
|
|
/ports:
|
|
get:
|
|
responses:
|
|
'200':
|
|
description: An array of PortStatus
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PortStatuses'
|
|
post:
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PortSpec'
|
|
responses:
|
|
'201':
|
|
description: PortStatus with ID
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PortStatus'
|
|
'/ports/{id}':
|
|
delete:
|
|
parameters:
|
|
- name: id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
responses:
|
|
'200':
|
|
description: Null response
|
|
components:
|
|
schemas:
|
|
Proto:
|
|
type: string
|
|
description: "protocol for listening. Corresponds to Go's net.Listen. The strings with \"4\" and \"6\" suffixes were introduced in API 1.1.0."
|
|
enum:
|
|
- tcp
|
|
- tcp4
|
|
- tcp6
|
|
- udp
|
|
- udp4
|
|
- udp6
|
|
- sctp
|
|
- sctp4
|
|
- sctp6
|
|
PortSpec:
|
|
required:
|
|
- proto
|
|
properties:
|
|
proto:
|
|
$ref: '#/components/schemas/Proto'
|
|
parentIP:
|
|
type: string
|
|
parentPort:
|
|
type: integer
|
|
format: int32
|
|
minimum: 1
|
|
maximum: 65535
|
|
childIP:
|
|
type: string
|
|
# future version may support requests with parentPort<=0 for automatic port assignment
|
|
childPort:
|
|
type: integer
|
|
format: int32
|
|
minimum: 1
|
|
maximum: 65535
|
|
PortStatus:
|
|
required:
|
|
- id
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
spec:
|
|
$ref: '#/components/schemas/PortSpec'
|
|
PortStatuses:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/PortStatus'
|
|
# Info: API >= 1.1.0
|
|
Info:
|
|
required:
|
|
- apiVersion
|
|
- version
|
|
- stateDir
|
|
- childPID
|
|
properties:
|
|
apiVersion:
|
|
type: string
|
|
description: "API version, without \"v\" prefix"
|
|
example: "1.1.0"
|
|
version:
|
|
type: string
|
|
description: "Implementation version, without \"v\" prefix"
|
|
example: "0.42.0-beta.1+dev"
|
|
stateDir:
|
|
type: string
|
|
description: "state dir"
|
|
example: "/run/user/1000/rootlesskit"
|
|
childPID:
|
|
type: integer
|
|
description: "child PID"
|
|
example: 10042
|
|
networkDriver:
|
|
$ref: '#/components/schemas/NetworkDriverInfo'
|
|
portDriver:
|
|
$ref: '#/components/schemas/PortDriverInfo'
|
|
NetworkDriverInfo:
|
|
required:
|
|
- driver
|
|
properties:
|
|
driver:
|
|
type: string
|
|
description: "network driver. Empty when --net=host."
|
|
example: "slirp4netns"
|
|
# TODO: return TAP info
|
|
dns:
|
|
type: array
|
|
description: "DNS addresses"
|
|
items:
|
|
type: string
|
|
example: ["10.0.2.3"]
|
|
PortDriverInfo:
|
|
required:
|
|
- driver
|
|
- supportedProtos
|
|
properties:
|
|
driver:
|
|
type: string
|
|
description: "port driver"
|
|
example: "builtin"
|
|
protos:
|
|
type: array
|
|
description: "The supported protocol strings for listening ports"
|
|
example: ["tcp","udp"]
|
|
items:
|
|
$ref: '#/components/schemas/Proto'
|