| # When you made a change to this YAML, please validate with https://editor.swagger.io | |
| openapi: 3.0.3 | |
| info: | |
| version: 1.1.1 | |
| 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"] | |
| childIP: | |
| type: string | |
| description: "Child IP (v4)" | |
| example: "10.0.2.100" | |
| dynamicChildIP: | |
| type: boolean | |
| description: "Child IP may change" | |
| 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' | |
| disallowLoopbackChildIP: | |
| type: boolean | |
| description: "If this field is set to true, loopback IP such as 127.0.0.1 cannot be specified as a child IP" |