github.com/rootless-containers/rootlesskit/v2@v2.3.4/pkg/api/openapi.yaml (about) 1 # When you made a change to this YAML, please validate with https://editor.swagger.io 2 openapi: 3.0.3 3 info: 4 version: 1.1.1 5 title: RootlessKit API 6 servers: 7 - url: 'http://rootlesskit/v1' 8 description: Local UNIX socket server. The host part of the URL is ignored. 9 paths: 10 # /info: API >= 1.1.0 11 /info: 12 get: 13 responses: 14 '200': 15 description: Info. Available since API 1.1.0. 16 content: 17 application/json: 18 schema: 19 $ref: '#/components/schemas/Info' 20 /ports: 21 get: 22 responses: 23 '200': 24 description: An array of PortStatus 25 content: 26 application/json: 27 schema: 28 $ref: '#/components/schemas/PortStatuses' 29 post: 30 requestBody: 31 required: true 32 content: 33 application/json: 34 schema: 35 $ref: '#/components/schemas/PortSpec' 36 responses: 37 '201': 38 description: PortStatus with ID 39 content: 40 application/json: 41 schema: 42 $ref: '#/components/schemas/PortStatus' 43 '/ports/{id}': 44 delete: 45 parameters: 46 - name: id 47 in: path 48 required: true 49 schema: 50 type: integer 51 format: int64 52 responses: 53 '200': 54 description: Null response 55 components: 56 schemas: 57 Proto: 58 type: string 59 description: "protocol for listening. Corresponds to Go's net.Listen. The strings with \"4\" and \"6\" suffixes were introduced in API 1.1.0." 60 enum: 61 - tcp 62 - tcp4 63 - tcp6 64 - udp 65 - udp4 66 - udp6 67 - sctp 68 - sctp4 69 - sctp6 70 PortSpec: 71 required: 72 - proto 73 properties: 74 proto: 75 $ref: '#/components/schemas/Proto' 76 parentIP: 77 type: string 78 parentPort: 79 type: integer 80 format: int32 81 minimum: 1 82 maximum: 65535 83 childIP: 84 type: string 85 # future version may support requests with parentPort<=0 for automatic port assignment 86 childPort: 87 type: integer 88 format: int32 89 minimum: 1 90 maximum: 65535 91 PortStatus: 92 required: 93 - id 94 properties: 95 id: 96 type: integer 97 format: int64 98 spec: 99 $ref: '#/components/schemas/PortSpec' 100 PortStatuses: 101 type: array 102 items: 103 $ref: '#/components/schemas/PortStatus' 104 # Info: API >= 1.1.0 105 Info: 106 required: 107 - apiVersion 108 - version 109 - stateDir 110 - childPID 111 properties: 112 apiVersion: 113 type: string 114 description: "API version, without \"v\" prefix" 115 example: "1.1.0" 116 version: 117 type: string 118 description: "Implementation version, without \"v\" prefix" 119 example: "0.42.0-beta.1+dev" 120 stateDir: 121 type: string 122 description: "state dir" 123 example: "/run/user/1000/rootlesskit" 124 childPID: 125 type: integer 126 description: "child PID" 127 example: 10042 128 networkDriver: 129 $ref: '#/components/schemas/NetworkDriverInfo' 130 portDriver: 131 $ref: '#/components/schemas/PortDriverInfo' 132 NetworkDriverInfo: 133 required: 134 - driver 135 properties: 136 driver: 137 type: string 138 description: "network driver. Empty when --net=host." 139 example: "slirp4netns" 140 # TODO: return TAP info 141 dns: 142 type: array 143 description: "DNS addresses" 144 items: 145 type: string 146 example: ["10.0.2.3"] 147 childIP: 148 type: string 149 description: "Child IP (v4)" 150 example: "10.0.2.100" 151 dynamicChildIP: 152 type: boolean 153 description: "Child IP may change" 154 PortDriverInfo: 155 required: 156 - driver 157 - supportedProtos 158 properties: 159 driver: 160 type: string 161 description: "port driver" 162 example: "builtin" 163 protos: 164 type: array 165 description: "The supported protocol strings for listening ports" 166 example: ["tcp","udp"] 167 items: 168 $ref: '#/components/schemas/Proto' 169 disallowLoopbackChildIP: 170 type: boolean 171 description: "If this field is set to true, loopback IP such as 127.0.0.1 cannot be specified as a child IP"