mirror of
https://github.com/netbirdio/netbird.git
synced 2024-11-29 11:33:48 +01:00
6fec0c682e
Merging full feature branch into main. Adding full support for service users including backend objects, persistence, verification and api endpoints.
2196 lines
63 KiB
YAML
2196 lines
63 KiB
YAML
openapi: 3.0.1
|
|
info:
|
|
title: NetBird REST API
|
|
description: API to manipulate groups, rules, policies and retrieve information about peers and users
|
|
version: 0.0.1
|
|
tags:
|
|
- name: Users
|
|
description: Interact with and view information about users.
|
|
- name: Tokens
|
|
description: Interact with and view information about tokens.
|
|
- name: Peers
|
|
description: Interact with and view information about peers.
|
|
- name: Setup Keys
|
|
description: Interact with and view information about setup keys.
|
|
- name: Groups
|
|
description: Interact with and view information about groups.
|
|
- name: Rules
|
|
description: Interact with and view information about rules.
|
|
- name: Policies
|
|
description: Interact with and view information about policies.
|
|
- name: Routes
|
|
description: Interact with and view information about routes.
|
|
- name: DNS
|
|
description: Interact with and view information about DNS configuration.
|
|
- name: Events
|
|
description: View information about the account and network events.
|
|
- name: Accounts
|
|
description: View information about the accounts.
|
|
components:
|
|
schemas:
|
|
Account:
|
|
properties:
|
|
id:
|
|
description: Account ID
|
|
type: string
|
|
settings:
|
|
$ref: '#/components/schemas/AccountSettings'
|
|
required:
|
|
- id
|
|
- settings
|
|
AccountSettings:
|
|
properties:
|
|
peer_login_expiration_enabled:
|
|
description: Enables or disables peer login expiration globally. After peer's login has expired the user has to log in (authenticate). Applies only to peers that were added by a user (interactive SSO login).
|
|
type: boolean
|
|
peer_login_expiration:
|
|
description: Period of time after which peer login expires (seconds).
|
|
type: integer
|
|
required:
|
|
- peer_login_expiration_enabled
|
|
- peer_login_expiration
|
|
User:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: User ID
|
|
type: string
|
|
email:
|
|
description: User's email address
|
|
type: string
|
|
name:
|
|
description: User's name from idp provider
|
|
type: string
|
|
role:
|
|
description: User's NetBird account role
|
|
type: string
|
|
status:
|
|
description: User's status
|
|
type: string
|
|
enum: [ "active","invited","disabled" ]
|
|
auto_groups:
|
|
description: Groups to auto-assign to peers registered by this user
|
|
type: array
|
|
items:
|
|
type: string
|
|
is_current:
|
|
description: Is true if authenticated user is the same as this user
|
|
type: boolean
|
|
readOnly: true
|
|
is_service_user:
|
|
description: Is true if this user is a service user
|
|
type: boolean
|
|
readOnly: true
|
|
required:
|
|
- id
|
|
- email
|
|
- name
|
|
- role
|
|
- auto_groups
|
|
- status
|
|
UserRequest:
|
|
type: object
|
|
properties:
|
|
role:
|
|
description: User's NetBird account role
|
|
type: string
|
|
auto_groups:
|
|
description: Groups to auto-assign to peers registered by this user
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- role
|
|
- auto_groups
|
|
UserCreateRequest:
|
|
type: object
|
|
properties:
|
|
role:
|
|
description: User's NetBird account role
|
|
type: string
|
|
email:
|
|
description: User's Email to send invite to
|
|
type: string
|
|
name:
|
|
description: User's full name
|
|
type: string
|
|
auto_groups:
|
|
description: Groups to auto-assign to peers registered by this user
|
|
type: array
|
|
items:
|
|
type: string
|
|
is_service_user:
|
|
description: Is true if this user is a service user
|
|
type: boolean
|
|
required:
|
|
- role
|
|
- auto_groups
|
|
- is_service_user
|
|
PeerMinimum:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Peer ID
|
|
type: string
|
|
name:
|
|
description: Peer's hostname
|
|
type: string
|
|
required:
|
|
- id
|
|
- name
|
|
Peer:
|
|
allOf:
|
|
- $ref: '#/components/schemas/PeerMinimum'
|
|
- type: object
|
|
properties:
|
|
ip:
|
|
description: Peer's IP address
|
|
type: string
|
|
connected:
|
|
description: Peer to Management connection status
|
|
type: boolean
|
|
last_seen:
|
|
description: Last time peer connected to Netbird's management service
|
|
type: string
|
|
format: date-time
|
|
os:
|
|
description: Peer's operating system and version
|
|
type: string
|
|
version:
|
|
description: Peer's daemon or cli version
|
|
type: string
|
|
groups:
|
|
description: Groups that the peer belongs to
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/GroupMinimum'
|
|
ssh_enabled:
|
|
description: Indicates whether SSH server is enabled on this peer
|
|
type: boolean
|
|
user_id:
|
|
description: User ID of the user that enrolled this peer
|
|
type: string
|
|
hostname:
|
|
description: Hostname of the machine
|
|
type: string
|
|
ui_version:
|
|
description: Peer's desktop UI version
|
|
type: string
|
|
dns_label:
|
|
description: Peer's DNS label is the parsed peer name for domain resolution. It is used to form an FQDN by appending the account's domain to the peer label. e.g. peer-dns-label.netbird.cloud
|
|
type: string
|
|
login_expiration_enabled:
|
|
description: Indicates whether peer login expiration has been enabled or not
|
|
type: boolean
|
|
login_expired:
|
|
description: Indicates whether peer's login expired or not
|
|
type: boolean
|
|
last_login:
|
|
description: Last time this peer performed log in (authentication). E.g., user authenticated.
|
|
type: string
|
|
format: date-time
|
|
required:
|
|
- ip
|
|
- connected
|
|
- last_seen
|
|
- os
|
|
- version
|
|
- groups
|
|
- ssh_enabled
|
|
- hostname
|
|
- dns_label
|
|
- login_expiration_enabled
|
|
- login_expired
|
|
- last_login
|
|
SetupKey:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Setup Key ID
|
|
type: string
|
|
key:
|
|
description: Setup Key value
|
|
type: string
|
|
name:
|
|
description: Setup key name identifier
|
|
type: string
|
|
expires:
|
|
description: Setup Key expiration date
|
|
type: string
|
|
format: date-time
|
|
type:
|
|
description: Setup key type, one-off for single time usage and reusable
|
|
type: string
|
|
valid:
|
|
description: Setup key validity status
|
|
type: boolean
|
|
revoked:
|
|
description: Setup key revocation status
|
|
type: boolean
|
|
used_times:
|
|
description: Usage count of setup key
|
|
type: integer
|
|
last_used:
|
|
description: Setup key last usage date
|
|
type: string
|
|
format: date-time
|
|
state:
|
|
description: Setup key status, "valid", "overused","expired" or "revoked"
|
|
type: string
|
|
auto_groups:
|
|
description: Setup key groups to auto-assign to peers registered with this key
|
|
type: array
|
|
items:
|
|
type: string
|
|
updated_at:
|
|
description: Setup key last update date
|
|
type: string
|
|
format: date-time
|
|
usage_limit:
|
|
description: A number of times this key can be used. The value of 0 indicates the unlimited usage.
|
|
type: integer
|
|
required:
|
|
- id
|
|
- key
|
|
- name
|
|
- expires
|
|
- type
|
|
- valid
|
|
- revoked
|
|
- used_times
|
|
- last_used
|
|
- state
|
|
- auto_groups
|
|
- updated_at
|
|
- usage_limit
|
|
SetupKeyRequest:
|
|
type: object
|
|
properties:
|
|
name:
|
|
description: Setup Key name
|
|
type: string
|
|
type:
|
|
description: Setup key type, one-off for single time usage and reusable
|
|
type: string
|
|
expires_in:
|
|
description: Expiration time in seconds
|
|
type: integer
|
|
revoked:
|
|
description: Setup key revocation status
|
|
type: boolean
|
|
auto_groups:
|
|
description: Setup key groups to auto-assign to peers registered with this key
|
|
type: array
|
|
items:
|
|
type: string
|
|
usage_limit:
|
|
description: A number of times this key can be used. The value of 0 indicates the unlimited usage.
|
|
type: integer
|
|
required:
|
|
- name
|
|
- type
|
|
- expires_in
|
|
- revoked
|
|
- auto_groups
|
|
- usage_limit
|
|
PersonalAccessToken:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: ID of a token
|
|
type: string
|
|
name:
|
|
description: Name of the token
|
|
type: string
|
|
expiration_date:
|
|
description: Date the token expires
|
|
type: string
|
|
format: date-time
|
|
created_by:
|
|
description: User ID of the user who created the token
|
|
type: string
|
|
created_at:
|
|
description: Date the token was created
|
|
type: string
|
|
format: date-time
|
|
last_used:
|
|
description: Date the token was last used
|
|
type: string
|
|
format: date-time
|
|
required:
|
|
- id
|
|
- name
|
|
- expiration_date
|
|
- created_by
|
|
- created_at
|
|
PersonalAccessTokenGenerated:
|
|
type: object
|
|
properties:
|
|
plain_token:
|
|
description: Plain text representation of the generated token
|
|
type: string
|
|
personal_access_token:
|
|
$ref: '#/components/schemas/PersonalAccessToken'
|
|
required:
|
|
- plain_token
|
|
- personal_access_token
|
|
PersonalAccessTokenRequest:
|
|
type: object
|
|
properties:
|
|
name:
|
|
description: Name of the token
|
|
type: string
|
|
expires_in:
|
|
description: Expiration in days
|
|
type: integer
|
|
required:
|
|
- name
|
|
- expires_in
|
|
GroupMinimum:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Group ID
|
|
type: string
|
|
name:
|
|
description: Group Name identifier
|
|
type: string
|
|
peers_count:
|
|
description: Count of peers associated to the group
|
|
type: integer
|
|
required:
|
|
- id
|
|
- name
|
|
- peers_count
|
|
Group:
|
|
allOf:
|
|
- $ref: '#/components/schemas/GroupMinimum'
|
|
- type: object
|
|
properties:
|
|
peers:
|
|
description: List of peers object
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/PeerMinimum'
|
|
required:
|
|
- peers
|
|
PatchMinimum:
|
|
type: object
|
|
properties:
|
|
op:
|
|
description: Patch operation type
|
|
type: string
|
|
enum: [ "replace","add","remove" ]
|
|
value:
|
|
description: Values to be applied
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- op
|
|
- value
|
|
GroupPatchOperation:
|
|
allOf:
|
|
- $ref: '#/components/schemas/PatchMinimum'
|
|
- type: object
|
|
properties:
|
|
path:
|
|
description: Group field to update in form /<field>
|
|
type: string
|
|
enum: [ "name","peers" ]
|
|
required:
|
|
- path
|
|
|
|
RuleMinimum:
|
|
type: object
|
|
properties:
|
|
name:
|
|
description: Rule name identifier
|
|
type: string
|
|
description:
|
|
description: Rule friendly description
|
|
type: string
|
|
disabled:
|
|
description: Rules status
|
|
type: boolean
|
|
flow:
|
|
description: Rule flow, currently, only "bidirect" for bi-directional traffic is accepted
|
|
type: string
|
|
required:
|
|
- name
|
|
- description
|
|
- disabled
|
|
- flow
|
|
Rule:
|
|
allOf:
|
|
- type: object
|
|
properties:
|
|
id:
|
|
description: Rule ID
|
|
type: string
|
|
required:
|
|
- id
|
|
- $ref: '#/components/schemas/RuleMinimum'
|
|
- type: object
|
|
properties:
|
|
sources:
|
|
description: Rule source groups
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/GroupMinimum'
|
|
destinations:
|
|
description: Rule destination groups
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/GroupMinimum'
|
|
required:
|
|
- sources
|
|
- destinations
|
|
RulePatchOperation:
|
|
allOf:
|
|
- $ref: '#/components/schemas/PatchMinimum'
|
|
- type: object
|
|
properties:
|
|
path:
|
|
description: Rule field to update in form /<field>
|
|
type: string
|
|
enum: [ "name","description","disabled","flow","sources","destinations" ]
|
|
required:
|
|
- path
|
|
PolicyRule:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Rule ID
|
|
type: string
|
|
name:
|
|
description: Rule name identifier
|
|
type: string
|
|
description:
|
|
description: Rule friendly description
|
|
type: string
|
|
enabled:
|
|
description: Rules status
|
|
type: boolean
|
|
sources:
|
|
description: policy source groups
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/GroupMinimum'
|
|
destinations:
|
|
description: policy destination groups
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/GroupMinimum'
|
|
action:
|
|
description: policy accept or drops packets
|
|
type: string
|
|
enum: ["accept","drop"]
|
|
required:
|
|
- name
|
|
- sources
|
|
- destinations
|
|
- action
|
|
- enabled
|
|
PolicyMinimum:
|
|
type: object
|
|
properties:
|
|
name:
|
|
description: Policy name identifier
|
|
type: string
|
|
description:
|
|
description: Policy friendly description
|
|
type: string
|
|
enabled:
|
|
description: Policy status
|
|
type: boolean
|
|
query:
|
|
description: Policy Rego query
|
|
type: string
|
|
rules:
|
|
description: Policy rule object for policy UI editor
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/PolicyRule'
|
|
required:
|
|
- name
|
|
- description
|
|
- enabled
|
|
- query
|
|
- rules
|
|
Policy:
|
|
allOf:
|
|
- $ref: '#/components/schemas/PolicyMinimum'
|
|
- type: object
|
|
properties:
|
|
id:
|
|
description: Policy ID
|
|
type: string
|
|
required:
|
|
- id
|
|
RouteRequest:
|
|
type: object
|
|
properties:
|
|
description:
|
|
description: Route description
|
|
type: string
|
|
network_id:
|
|
description: Route network identifier, to group HA routes
|
|
type: string
|
|
maxLength: 40
|
|
minLength: 1
|
|
enabled:
|
|
description: Route status
|
|
type: boolean
|
|
peer:
|
|
description: Peer Identifier associated with route
|
|
type: string
|
|
network:
|
|
description: Network range in CIDR format
|
|
type: string
|
|
metric:
|
|
description: Route metric number. Lowest number has higher priority
|
|
type: integer
|
|
maximum: 9999
|
|
minimum: 1
|
|
masquerade:
|
|
description: Indicate if peer should masquerade traffic to this route's prefix
|
|
type: boolean
|
|
groups:
|
|
description: Route group tag groups
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- id
|
|
- description
|
|
- network_id
|
|
- enabled
|
|
- peer
|
|
- network
|
|
- metric
|
|
- masquerade
|
|
- groups
|
|
Route:
|
|
allOf:
|
|
- type: object
|
|
properties:
|
|
id:
|
|
description: Route Id
|
|
type: string
|
|
network_type:
|
|
description: Network type indicating if it is IPv4 or IPv6
|
|
type: string
|
|
required:
|
|
- id
|
|
- network_type
|
|
- $ref: '#/components/schemas/RouteRequest'
|
|
RoutePatchOperation:
|
|
allOf:
|
|
- $ref: '#/components/schemas/PatchMinimum'
|
|
- type: object
|
|
properties:
|
|
path:
|
|
description: Route field to update in form /<field>
|
|
type: string
|
|
enum: [ "network","network_id","description","enabled","peer","metric","masquerade", "groups" ]
|
|
required:
|
|
- path
|
|
Nameserver:
|
|
type: object
|
|
properties:
|
|
ip:
|
|
description: Nameserver IP
|
|
type: string
|
|
ns_type:
|
|
description: Nameserver Type
|
|
type: string
|
|
enum: [ "udp" ]
|
|
port:
|
|
description: Nameserver Port
|
|
type: integer
|
|
required:
|
|
- ip
|
|
- ns_type
|
|
- port
|
|
NameserverGroupRequest:
|
|
type: object
|
|
properties:
|
|
name:
|
|
description: Nameserver group name
|
|
type: string
|
|
maxLength: 40
|
|
minLength: 1
|
|
description:
|
|
description: Nameserver group description
|
|
type: string
|
|
nameservers:
|
|
description: Nameserver group
|
|
minLength: 1
|
|
maxLength: 2
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Nameserver'
|
|
enabled:
|
|
description: Nameserver group status
|
|
type: boolean
|
|
groups:
|
|
description: Nameserver group tag groups
|
|
type: array
|
|
items:
|
|
type: string
|
|
primary:
|
|
description: Nameserver group primary status
|
|
type: boolean
|
|
domains:
|
|
description: Nameserver group domain list
|
|
type: array
|
|
items:
|
|
type: string
|
|
minLength: 1
|
|
maxLength: 255
|
|
required:
|
|
- name
|
|
- description
|
|
- nameservers
|
|
- enabled
|
|
- groups
|
|
- primary
|
|
- domains
|
|
NameserverGroup:
|
|
allOf:
|
|
- type: object
|
|
properties:
|
|
id:
|
|
description: Nameserver group ID
|
|
type: string
|
|
required:
|
|
- id
|
|
- $ref: '#/components/schemas/NameserverGroupRequest'
|
|
NameserverGroupPatchOperation:
|
|
allOf:
|
|
- $ref: '#/components/schemas/PatchMinimum'
|
|
- type: object
|
|
properties:
|
|
path:
|
|
description: Nameserver group field to update in form /<field>
|
|
type: string
|
|
enum: [ "name", "description", "enabled", "groups", "nameservers", "primary", "domains" ]
|
|
required:
|
|
- path
|
|
DNSSettings:
|
|
type: object
|
|
properties:
|
|
disabled_management_groups:
|
|
description: Groups whose DNS management is disabled
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- disabled_management_groups
|
|
Event:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Event unique identifier
|
|
type: string
|
|
timestamp:
|
|
description: The date and time when the event occurred
|
|
type: string
|
|
format: date-time
|
|
activity:
|
|
description: The activity that occurred during the event
|
|
type: string
|
|
activity_code:
|
|
description: The string code of the activity that occurred during the event
|
|
type: string
|
|
enum: [ "user.peer.delete", "user.join", "user.invite", "user.peer.add", "user.group.add", "user.group.delete",
|
|
"user.role.update",
|
|
"setupkey.peer.add", "setupkey.add", "setupkey.update", "setupkey.revoke", "setupkey.overuse",
|
|
"setupkey.group.delete", "setupkey.group.add",
|
|
"rule.add", "rule.delete", "rule.update",
|
|
"policy.add", "policy.delete", "policy.update",
|
|
"group.add", "group.update", "dns.setting.disabled.management.group.add", "dns.setting.disabled.management.group.delete",
|
|
"account.create", "account.setting.peer.login.expiration.update", "account.setting.peer.login.expiration.disable", "account.setting.peer.login.expiration.enable",
|
|
"route.add", "route.delete", "route.update",
|
|
"nameserver.group.add", "nameserver.group.delete", "nameserver.group.update",
|
|
"peer.ssh.disable", "peer.ssh.enable", "peer.rename", "peer.login.expiration.disable", "peer.login.expiration.enable" ]
|
|
initiator_id:
|
|
description: The ID of the initiator of the event. E.g., an ID of a user that triggered the event.
|
|
type: string
|
|
target_id:
|
|
description: The ID of the target of the event. E.g., an ID of the peer that a user removed.
|
|
type: string
|
|
meta:
|
|
description: The metadata of the event
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
required:
|
|
- id
|
|
- timestamp
|
|
- activity
|
|
- activity_code
|
|
- initiator_id
|
|
- target_id
|
|
- meta
|
|
responses:
|
|
not_found:
|
|
description: Resource not found
|
|
content: { }
|
|
validation_failed_simple:
|
|
description: Validation failed
|
|
content: { }
|
|
bad_request:
|
|
description: Bad Request
|
|
content: { }
|
|
internal_error:
|
|
description: Internal Server Error
|
|
content: { }
|
|
validation_failed:
|
|
description: Validation failed
|
|
content: { }
|
|
forbidden:
|
|
description: Forbidden
|
|
content: { }
|
|
requires_authentication:
|
|
description: Requires authentication
|
|
content: { }
|
|
securitySchemes:
|
|
BearerAuth:
|
|
type: http
|
|
scheme: bearer
|
|
bearerFormat: JWT
|
|
security:
|
|
- BearerAuth: [ ]
|
|
paths:
|
|
/api/accounts:
|
|
get:
|
|
summary: Returns a list of accounts of a user. Always returns a list of one account. Only available for admin users.
|
|
tags: [ Accounts ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
responses:
|
|
'200':
|
|
description: A JSON array of accounts
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Account'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
/api/accounts/{id}:
|
|
put:
|
|
summary: Update information about an account
|
|
tags: [ Accounts ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Account ID
|
|
requestBody:
|
|
description: update an account
|
|
content:
|
|
'application/json':
|
|
schema:
|
|
type: object
|
|
properties:
|
|
settings:
|
|
$ref: '#/components/schemas/AccountSettings'
|
|
required:
|
|
- settings
|
|
responses:
|
|
'200':
|
|
description: An Account object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Account'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
/api/users:
|
|
get:
|
|
summary: Returns a list of all users
|
|
tags: [ Users ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: query
|
|
name: service_user
|
|
schema:
|
|
type: boolean
|
|
description: Filters users and returns either normal users or service users
|
|
responses:
|
|
'200':
|
|
description: A JSON array of Users
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/User'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
/api/users/:
|
|
post:
|
|
summary: Create a User (invite)
|
|
tags: [ Users ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
requestBody:
|
|
description: User invite information
|
|
content:
|
|
'application/json':
|
|
schema:
|
|
$ref: '#/components/schemas/UserCreateRequest'
|
|
responses:
|
|
'200':
|
|
description: A User object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/User'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
/api/users/{id}:
|
|
put:
|
|
summary: Update information about a User
|
|
tags: [ Users ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The User ID
|
|
requestBody:
|
|
description: User update
|
|
content:
|
|
'application/json':
|
|
schema:
|
|
$ref: '#/components/schemas/UserRequest'
|
|
responses:
|
|
'200':
|
|
description: A User object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/User'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
delete:
|
|
summary: Delete a User
|
|
tags: [ Users ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The User ID
|
|
responses:
|
|
'200':
|
|
description: Delete status code
|
|
content: { }
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
/api/users/{userId}/tokens:
|
|
get:
|
|
summary: Returns a list of all tokens for a user
|
|
tags: [ Tokens ]
|
|
security:
|
|
- BearerAuth: []
|
|
parameters:
|
|
- in: path
|
|
name: userId
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The User ID
|
|
responses:
|
|
'200':
|
|
description: A JSON Array of PersonalAccessTokens
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/PersonalAccessToken'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
post:
|
|
summary: Create a new token
|
|
tags: [ Tokens ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: userId
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The User ID
|
|
requestBody:
|
|
description: PersonalAccessToken create parameters
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PersonalAccessTokenRequest'
|
|
responses:
|
|
'200':
|
|
description: The token in plain text
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PersonalAccessTokenGenerated'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
/api/users/{userId}/tokens/{tokenId}:
|
|
get:
|
|
summary: Returns a specific token
|
|
tags: [ Tokens ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: userId
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The User ID
|
|
- in: path
|
|
name: tokenId
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Token ID
|
|
responses:
|
|
'200':
|
|
description: A PersonalAccessTokens Object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/PersonalAccessToken'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
delete:
|
|
summary: Delete a token
|
|
tags: [ Tokens ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: userId
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The User ID
|
|
- in: path
|
|
name: tokenId
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Token ID
|
|
responses:
|
|
'200':
|
|
description: Delete status code
|
|
content: { }
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
/api/peers:
|
|
get:
|
|
summary: Returns a list of all peers
|
|
tags: [ Peers ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
responses:
|
|
'200':
|
|
description: A JSON Array of Peers
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Peer'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
/api/peers/{id}:
|
|
get:
|
|
summary: Get information about a peer
|
|
tags: [ Peers ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Peer ID
|
|
responses:
|
|
'200':
|
|
description: A Peer object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Peer'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
put:
|
|
summary: Update information about a peer
|
|
tags: [ Peers ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Peer ID
|
|
requestBody:
|
|
description: update a peer
|
|
content:
|
|
'application/json':
|
|
schema:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
ssh_enabled:
|
|
type: boolean
|
|
login_expiration_enabled:
|
|
type: boolean
|
|
required:
|
|
- name
|
|
- ssh_enabled
|
|
- login_expiration_enabled
|
|
responses:
|
|
'200':
|
|
description: A Peer object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Peer'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
delete:
|
|
summary: Delete a peer
|
|
tags: [ Peers ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Peer ID
|
|
responses:
|
|
'200':
|
|
description: Delete status code
|
|
content: { }
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
/api/setup-keys:
|
|
get:
|
|
summary: Returns a list of all Setup Keys
|
|
tags: [ Setup Keys ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
responses:
|
|
'200':
|
|
description: A JSON Array of Setup keys
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/SetupKey'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
post:
|
|
summary: Creates a Setup Key
|
|
tags: [ Setup Keys ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
requestBody:
|
|
description: New Setup Key request
|
|
content:
|
|
'application/json':
|
|
schema:
|
|
$ref: '#/components/schemas/SetupKeyRequest'
|
|
responses:
|
|
'200':
|
|
description: A Setup Keys Object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SetupKey'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
/api/setup-keys/{id}:
|
|
get:
|
|
summary: Get information about a Setup Key
|
|
tags: [ Setup Keys ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Setup Key ID
|
|
responses:
|
|
'200':
|
|
description: A Setup Key object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SetupKey'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
put:
|
|
summary: Update information about a Setup Key
|
|
tags: [ Setup Keys ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Setup Key ID
|
|
requestBody:
|
|
description: update to Setup Key
|
|
content:
|
|
'application/json':
|
|
schema:
|
|
$ref: '#/components/schemas/SetupKeyRequest'
|
|
responses:
|
|
'200':
|
|
description: A Setup Key object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SetupKey'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
delete:
|
|
summary: Delete a Setup Key
|
|
tags: [ Setup Keys ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Setup Key ID
|
|
responses:
|
|
'200':
|
|
description: Delete status code
|
|
content: { }
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
/api/groups:
|
|
get:
|
|
summary: Returns a list of all Groups
|
|
tags: [ Groups ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
responses:
|
|
'200':
|
|
description: A JSON Array of Groups
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Group'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
post:
|
|
summary: Creates a Group
|
|
tags: [ Groups ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
requestBody:
|
|
description: New Group request
|
|
content:
|
|
'application/json':
|
|
schema:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
peers:
|
|
type: array
|
|
items:
|
|
type: string
|
|
required:
|
|
- name
|
|
responses:
|
|
'200':
|
|
description: A Group Object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Group'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
/api/groups/{id}:
|
|
get:
|
|
summary: Get information about a Group
|
|
tags: [ Groups ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Group ID
|
|
responses:
|
|
'200':
|
|
description: A Group object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Group'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
put:
|
|
summary: Update/Replace a Group
|
|
tags: [ Groups ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Group ID
|
|
requestBody:
|
|
description: Update Group request
|
|
content:
|
|
'application/json':
|
|
schema:
|
|
type: object
|
|
properties:
|
|
Name:
|
|
type: string
|
|
Peers:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: A Group object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Group'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
patch:
|
|
summary: Update information about a Group
|
|
tags: [ Groups ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Group ID
|
|
requestBody:
|
|
description: Update Group request using a list of json patch objects
|
|
content:
|
|
'application/json':
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/GroupPatchOperation'
|
|
responses:
|
|
'200':
|
|
description: A Group object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Group'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
delete:
|
|
summary: Delete a Group
|
|
tags: [ Groups ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Group ID
|
|
responses:
|
|
'200':
|
|
description: Delete status code
|
|
content: { }
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
/api/rules:
|
|
get:
|
|
summary: Returns a list of all Rules
|
|
tags: [ Rules ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
responses:
|
|
'200':
|
|
description: A JSON Array of Rules
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Rule'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
post:
|
|
summary: Creates a Rule
|
|
tags: [ Rules ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
requestBody:
|
|
description: New Rule request
|
|
content:
|
|
'application/json':
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/components/schemas/RuleMinimum'
|
|
- type: object
|
|
properties:
|
|
sources:
|
|
type: array
|
|
items:
|
|
type: string
|
|
destinations:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: A Rule Object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Rule'
|
|
/api/rules/{id}:
|
|
get:
|
|
summary: Get information about a Rules
|
|
tags: [ Rules ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Rule ID
|
|
responses:
|
|
'200':
|
|
description: A Rule object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Rule'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
put:
|
|
summary: Update/Replace a Rule
|
|
tags: [ Rules ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Rule ID
|
|
requestBody:
|
|
description: Update Rule request
|
|
content:
|
|
'application/json':
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/components/schemas/RuleMinimum'
|
|
- type: object
|
|
properties:
|
|
sources:
|
|
type: array
|
|
items:
|
|
type: string
|
|
destinations:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: A Rule object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Rule'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
delete:
|
|
summary: Delete a Rule
|
|
tags: [ Rules ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Rule ID
|
|
responses:
|
|
'200':
|
|
description: Delete status code
|
|
content: { }
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
/api/policies:
|
|
get:
|
|
summary: Returns a list of all Policies
|
|
tags: [ Policies ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
responses:
|
|
'200':
|
|
description: A JSON Array of Policies
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Policy'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
post:
|
|
summary: Creates a Policy
|
|
tags: [ Policies ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
requestBody:
|
|
description: New Policy request
|
|
content:
|
|
'application/json':
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/components/schemas/PolicyMinimum'
|
|
responses:
|
|
'200':
|
|
description: A Policy Object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Policy'
|
|
/api/policies/{id}:
|
|
get:
|
|
summary: Get information about a Policies
|
|
tags: [ Policies ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Policy ID
|
|
responses:
|
|
'200':
|
|
description: A Policy object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Policy'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
put:
|
|
summary: Update/Replace a Policy
|
|
tags: [ Policies ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Policy ID
|
|
requestBody:
|
|
description: Update Policy request
|
|
content:
|
|
'application/json':
|
|
schema:
|
|
allOf:
|
|
- $ref: '#/components/schemas/PolicyMinimum'
|
|
responses:
|
|
'200':
|
|
description: A Policy object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Policy'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
delete:
|
|
summary: Delete a Policy
|
|
tags: [ Policies ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Policy ID
|
|
responses:
|
|
'200':
|
|
description: Delete status code
|
|
content: { }
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
/api/routes:
|
|
get:
|
|
summary: Returns a list of all routes
|
|
tags: [ Routes ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
responses:
|
|
'200':
|
|
description: A JSON Array of Routes
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Route'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
post:
|
|
summary: Creates a Route
|
|
tags: [ Routes ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
requestBody:
|
|
description: New Routes request
|
|
content:
|
|
'application/json':
|
|
schema:
|
|
$ref: '#/components/schemas/RouteRequest'
|
|
responses:
|
|
'200':
|
|
description: A Route Object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Route'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
|
|
/api/routes/{id}:
|
|
get:
|
|
summary: Get information about a Routes
|
|
tags: [ Routes ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Route ID
|
|
responses:
|
|
'200':
|
|
description: A Route object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Route'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
put:
|
|
summary: Update/Replace a Route
|
|
tags: [ Routes ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Route ID
|
|
requestBody:
|
|
description: Update Route request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RouteRequest'
|
|
responses:
|
|
'200':
|
|
description: A Route object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Route'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
patch:
|
|
summary: Update information about a Route
|
|
tags: [ Routes ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Route ID
|
|
requestBody:
|
|
description: Update Route request using a list of json patch objects
|
|
content:
|
|
'application/json':
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/RoutePatchOperation'
|
|
responses:
|
|
'200':
|
|
description: A Route object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Route'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
delete:
|
|
summary: Delete a Route
|
|
tags: [ Routes ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Route ID
|
|
responses:
|
|
'200':
|
|
description: Delete status code
|
|
content: { }
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
/api/dns/nameservers:
|
|
get:
|
|
summary: Returns a list of all Nameserver Groups
|
|
tags: [ DNS ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
responses:
|
|
'200':
|
|
description: A JSON Array of Nameserver Groups
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/NameserverGroup'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
post:
|
|
summary: Creates a Nameserver Group
|
|
tags: [ DNS ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
requestBody:
|
|
description: New Nameserver Groups request
|
|
content:
|
|
'application/json':
|
|
schema:
|
|
$ref: '#/components/schemas/NameserverGroupRequest'
|
|
responses:
|
|
'200':
|
|
description: A Nameserver Groups Object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/NameserverGroup'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
|
|
/api/dns/nameservers/{id}:
|
|
get:
|
|
summary: Get information about a Nameserver Groups
|
|
tags: [ DNS ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Nameserver Group ID
|
|
responses:
|
|
'200':
|
|
description: A Nameserver Group object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/NameserverGroup'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
put:
|
|
summary: Update/Replace a Nameserver Group
|
|
tags: [ DNS ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Nameserver Group ID
|
|
requestBody:
|
|
description: Update Nameserver Group request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/NameserverGroupRequest'
|
|
responses:
|
|
'200':
|
|
description: A Nameserver Group object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/NameserverGroup'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
patch:
|
|
summary: Update information about a Nameserver Group
|
|
tags: [ DNS ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Nameserver Group ID
|
|
requestBody:
|
|
description: Update Nameserver Group request using a list of json patch objects
|
|
content:
|
|
'application/json':
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/NameserverGroupPatchOperation'
|
|
responses:
|
|
'200':
|
|
description: A Nameserver Group object
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/NameserverGroup'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
delete:
|
|
summary: Delete a Nameserver Group
|
|
tags: [ DNS ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: The Nameserver Group ID
|
|
responses:
|
|
'200':
|
|
description: Delete status code
|
|
content: { }
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
|
|
/api/dns/settings:
|
|
get:
|
|
summary: Returns a DNS settings object
|
|
tags: [ DNS ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
responses:
|
|
'200':
|
|
description: A JSON Object of DNS Setting
|
|
content:
|
|
application/json:
|
|
schema:
|
|
items:
|
|
$ref: '#/components/schemas/DNSSettings'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
put:
|
|
summary: Updates a DNS settings object
|
|
tags: [ DNS ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
requestBody:
|
|
description: A DNS settings object
|
|
content:
|
|
'application/json':
|
|
schema:
|
|
$ref: '#/components/schemas/DNSSettings'
|
|
responses:
|
|
'200':
|
|
description: A JSON Object of DNS Setting
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DNSSettings'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|
|
/api/events:
|
|
get:
|
|
summary: Returns a list of all events
|
|
tags: [ Events ]
|
|
security:
|
|
- BearerAuth: [ ]
|
|
responses:
|
|
'200':
|
|
description: A JSON Array of Events
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Event'
|
|
'400':
|
|
"$ref": "#/components/responses/bad_request"
|
|
'401':
|
|
"$ref": "#/components/responses/requires_authentication"
|
|
'403':
|
|
"$ref": "#/components/responses/forbidden"
|
|
'500':
|
|
"$ref": "#/components/responses/internal_error"
|