zrok/specs/zrok.yml
Michael Quigley 1632422b37
overview spec
2022-08-03 14:36:40 -04:00

302 lines
5.9 KiB
YAML

info:
description: zrok client access
title: zrok
version: 1.0.0
basePath: /api/v1
securityDefinitions:
key:
type: apiKey
in: header
name: x-token
paths:
/account:
post:
tags:
- identity
operationId: createAccount
parameters:
- name: body
in: body
schema:
$ref: "#/definitions/accountRequest"
responses:
201:
description: account created
schema:
$ref: "#/definitions/accountResponse"
400:
description: account not created (already exists)
schema:
$ref: "#/definitions/errorMessage"
500:
description: internal server error
schema:
$ref: "#/definitions/errorMessage"
/enable:
post:
tags:
- identity
security:
- key: []
operationId: enable
parameters:
- name: body
in: body
schema:
$ref: "#/definitions/enableRequest"
responses:
201:
description: environment enabled
schema:
$ref: "#/definitions/enableResponse"
401:
description: invalid api key
404:
description: account not found
500:
description: internal server error
schema:
$ref: "#/definitions/errorMessage"
/listEnvironments:
get:
tags:
- metadata
security:
- key: []
operationId: listEnvironments
responses:
200:
description: success
schema:
$ref: "#/definitions/environments"
500:
description: internal server error
schema:
$ref: "#/definitions/errorMessage"
/login:
post:
tags:
- identity
operationId: login
parameters:
- name: body
in: body
schema:
$ref: "#/definitions/loginRequest"
responses:
200:
description: login successful
schema:
$ref: "#/definitions/loginResponse"
401:
description: invalid login
/overview:
get:
tags:
- metadata
operationId: overview
responses:
200:
description: overview returned
schema:
$ref: "#/definitions/environmentServices"
500:
description: internal server error
schema:
$ref: "#/definitions/errorMessage"
/tunnel:
post:
tags:
- tunnel
security:
- key: []
operationId: tunnel
parameters:
- name: body
in: body
schema:
$ref: "#/definitions/tunnelRequest"
responses:
201:
description: tunnel created
schema:
$ref: "#/definitions/tunnelResponse"
401:
description: invalid environment identity
schema:
$ref: "#/definitions/errorMessage"
500:
description: internal server error
schema:
$ref: "#/definitions/errorMessage"
/untunnel:
delete:
tags:
- tunnel
security:
- key: []
operationId: untunnel
parameters:
- name: body
in: body
schema:
$ref: "#/definitions/untunnelRequest"
responses:
200:
description: tunnel removed
404:
description: not found
schema:
$ref: "#/definitions/errorMessage"
500:
description: internal server error
schema:
$ref: "#/definitions/errorMessage"
/version:
get:
tags:
- metadata
operationId: version
responses:
200:
description: retrieve the current server version
schema:
$ref: "#/definitions/version"
definitions:
accountRequest:
type: object
properties:
username:
type: string
password:
type: string
accountResponse:
type: object
properties:
token:
type: string
enableRequest:
type: object
properties:
description:
type: string
host:
type: string
enableResponse:
type: object
properties:
identity:
type: string
cfg:
type: string
environments:
type: array
items:
$ref: "#/definitions/environment"
environment:
type: object
properties:
description:
type: string
host:
type: string
address:
type: string
zitiIdentityId:
type: string
active:
type: boolean
createdAt:
type: string
updatedAt:
type: string
environmentServices:
type: object
properties:
environment:
$ref: "#/definitions/environment"
services:
$ref: "#/definitions/services"
errorMessage:
type: string
loginRequest:
type: object
properties:
email:
type: string
password:
type: string
loginResponse:
type: string
principal:
type: object
properties:
id:
type: integer
username:
type: string
token:
type: string
services:
type: array
items:
$ref: "#/definitions/service"
service:
type: object
properties:
zitiServiceId:
type: string
endpoint:
type: string
active:
type: boolean
createdAt:
type: string
updatedAt:
type: string
tunnelRequest:
type: object
properties:
zitiIdentityId:
type: string
endpoint:
type: string
tunnelResponse:
type: object
properties:
service:
type: string
untunnelRequest:
type: object
properties:
service:
type: string
version:
type: string
produces:
- application/zrok.v1+json
consumes:
- application/zrok.v1+json
schemes:
- http
swagger: "2.0"