mirror of
https://github.com/bytedream/docker4ssh.git
synced 2025-05-09 12:15:11 +02:00
204 lines
6.8 KiB
YAML
204 lines
6.8 KiB
YAML
openapi: 3.0.1
|
|
info:
|
|
title: docker4ssh
|
|
description: Communicate between a container and the docker4ssh host
|
|
version: 0.1.0
|
|
license:
|
|
name: GNU Affero General Public License v3.0
|
|
url: https://www.gnu.org/licenses/agpl-3.0.txt
|
|
contact:
|
|
name: ByteDream
|
|
url: https://github.com/ByteDream
|
|
servers:
|
|
- url: 'unix:///var/run/docker4ssh.sock'
|
|
paths:
|
|
/ping:
|
|
get:
|
|
summary: Ping the server to see if it's latency and if it's alive
|
|
responses:
|
|
200:
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
received:
|
|
type: integer
|
|
description: Unix nano timestamp when the message was received
|
|
/error:
|
|
get:
|
|
summary: Sends an error with code 400, only for test purposes
|
|
responses:
|
|
400:
|
|
description: Controlled bad return code
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
message:
|
|
type: string
|
|
description: Example error message
|
|
/info:
|
|
get:
|
|
summary: Get information about the current container
|
|
responses:
|
|
200:
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
container_id:
|
|
type: string
|
|
description: ID of the container
|
|
/config:
|
|
get:
|
|
summary: Get the configuration of the current container
|
|
responses:
|
|
200:
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
network_mode:
|
|
type: integer
|
|
enum:
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 5
|
|
description: The container network mode. Take a look at server/docker/docker.go for extended information
|
|
configurable:
|
|
type: boolean
|
|
description: If the container should be configurable from within
|
|
run_level:
|
|
type: integer
|
|
enum:
|
|
- 1
|
|
- 2
|
|
- 3
|
|
description: The container run level / behavior. Take a look at server/docker/docker.go for extended information
|
|
startup_information:
|
|
type: boolean
|
|
description: If information about the container should be shown when a user connects
|
|
exit_after:
|
|
type: string
|
|
description: The process name after the container exits
|
|
keep_on_exit:
|
|
type: boolean
|
|
description: If the container should be not deleted after exit
|
|
post:
|
|
summary: Set some config settings
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
network_mode:
|
|
type: integer
|
|
enum:
|
|
- 1
|
|
- 2
|
|
- 3
|
|
- 4
|
|
- 5
|
|
description: The container network mode. Take a look at server/docker/docker.go for extended information
|
|
configurable:
|
|
type: boolean
|
|
description: If the container should be configurable from within
|
|
run_level:
|
|
type: integer
|
|
enum:
|
|
- 1
|
|
- 2
|
|
- 3
|
|
description: The container run level / behavior. Take a look at server/docker/docker.go for extended information
|
|
startup_information:
|
|
type: boolean
|
|
description: If information about the container should be shown when a user connects
|
|
exit_after:
|
|
type: string
|
|
description: The process name after the container exits
|
|
keep_on_exit:
|
|
type: boolean
|
|
description: If the container should be not deleted after exit
|
|
responses:
|
|
200:
|
|
description: Settings was made
|
|
406:
|
|
description: One or more settings could not be changed
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
message:
|
|
type: string
|
|
description: Human readable description why the changes could not be made
|
|
rejected:
|
|
type: array
|
|
description: The rejected changes
|
|
items:
|
|
type: object
|
|
description: The rejected setting + a description why it couldn't be processed
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: Name of the setting
|
|
description:
|
|
type: string
|
|
description: Description of the processing error
|
|
|
|
/auth:
|
|
get:
|
|
summary: Returns the current username used for ssh authentication and if a password is set
|
|
responses:
|
|
200:
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
user:
|
|
type: string
|
|
description: Username
|
|
has_password:
|
|
type: boolean
|
|
description: If a password is set
|
|
404:
|
|
description: Auth does not exist
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
description: Message that the auth does not exists
|
|
post:
|
|
summary: Changes authentication for the current container
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
user:
|
|
type: string
|
|
description: The new username. Cannot be empty but nullable
|
|
password:
|
|
type: string
|
|
description: The new password. If empty or null, the complete authentication gets deleted
|
|
responses:
|
|
200:
|
|
description: Configuration was changed
|
|
406:
|
|
description: The given username was empty
|