mirror of
https://github.com/cwinfo/powerdns-admin.git
synced 2025-07-27 15:54:16 +00:00
Extend api with account and user management
This commit is contained in:
@@ -963,6 +963,424 @@ paths:
|
||||
description: 'Internal Server Error. Contains error message'
|
||||
schema:
|
||||
$ref: '#/definitions/Error'
|
||||
'/pdnsadmin/users':
|
||||
get:
|
||||
security:
|
||||
- basicAuth: []
|
||||
summary: 'Get all User entries'
|
||||
operationId: api_list_users
|
||||
tags:
|
||||
- user
|
||||
responses:
|
||||
'200':
|
||||
description: List of User objects
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: #/definitions/User
|
||||
'500':
|
||||
description: Internal Server Error, users could not be retrieved. Contains error message
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
post:
|
||||
security:
|
||||
- basicAuth: []
|
||||
summary: Add a User
|
||||
description: This methods adds a new User
|
||||
operationId: api_create_user
|
||||
tags:
|
||||
- user
|
||||
parameters:
|
||||
- name: username
|
||||
description: Login name for user (unique, immutable)
|
||||
required: true
|
||||
in: body
|
||||
- name: password
|
||||
description: Hashed password for authentication
|
||||
required: false
|
||||
in: body
|
||||
- name: plain_text_password
|
||||
description: Plain text password (will be hashed) for authentication
|
||||
required: false
|
||||
in: body
|
||||
- name: firstname
|
||||
description: Firstname of user
|
||||
required: false
|
||||
in: body
|
||||
- name: lastname
|
||||
description: Lastname of user
|
||||
required: false
|
||||
in: body
|
||||
- name: email
|
||||
description: Email address if user (must be unique)
|
||||
required: true
|
||||
in: body
|
||||
- name: otp_secret
|
||||
description: OTP secret
|
||||
required: false
|
||||
in: body
|
||||
- name: confirmed
|
||||
description: Confirmed status
|
||||
required: false
|
||||
in: body
|
||||
- name: role_name
|
||||
description: Name of role to be assigned to user (default 'User')
|
||||
required: false
|
||||
in: body
|
||||
- name: role_id
|
||||
description: Role ID of role to be assigned to user
|
||||
required: false
|
||||
in: body
|
||||
responses:
|
||||
'201':
|
||||
description: Created
|
||||
schema:
|
||||
$ref: #/definitions/User
|
||||
'400':
|
||||
description: Unprocessable Entry, the User data provided has issues
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
'500':
|
||||
description: Internal Server Error. There was a problem creating the user
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
'/pdnsadmin/users/{username}':
|
||||
parameters:
|
||||
- name: username
|
||||
type: string
|
||||
in: path
|
||||
required: true
|
||||
description: The username of the user to retrieve
|
||||
get:
|
||||
security:
|
||||
- basicAuth: []
|
||||
summary: Get a specific User on the server
|
||||
operationId: api_list_users
|
||||
tags:
|
||||
- user
|
||||
responses:
|
||||
'200':
|
||||
description: Retrieve a specific User
|
||||
schema:
|
||||
$ref: #/definitions/User
|
||||
'404':
|
||||
description: Not found. The User with the specified username does not exist
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
'500':
|
||||
description: Internal Server Error, user could not be retrieved. Contains error message
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
'/pdnsadmin/users/{user_id}':
|
||||
parameters:
|
||||
- name: user_id
|
||||
type: integer
|
||||
in: path
|
||||
required: true
|
||||
description: The id of the user to modify or delete
|
||||
put:
|
||||
security:
|
||||
- basicAuth: []
|
||||
summary: Modify a specific User on the server with supplied parameters
|
||||
operationId: api_update_user
|
||||
tags:
|
||||
- user
|
||||
parameters:
|
||||
- name: username
|
||||
description: Login name for user (unique, immutable)
|
||||
required: false
|
||||
in: body
|
||||
- name: password
|
||||
description: Hashed password for authentication
|
||||
required: false
|
||||
in: body
|
||||
- name: plain_text_password
|
||||
description: Plain text password (will be hashed) for authentication
|
||||
required: false
|
||||
in: body
|
||||
- name: firstname
|
||||
description: Firstname of user
|
||||
required: false
|
||||
in: body
|
||||
- name: lastname
|
||||
description: Lastname of user
|
||||
required: false
|
||||
in: body
|
||||
- name: email
|
||||
description: Email address if user (must be unique)
|
||||
required: false
|
||||
in: body
|
||||
- name: otp_secret
|
||||
description: OTP secret
|
||||
required: false
|
||||
in: body
|
||||
- name: confirmed
|
||||
description: Confirmed status
|
||||
required: false
|
||||
in: body
|
||||
- name: role_name
|
||||
description: Name of role to be assigned to user (default 'User')
|
||||
required: false
|
||||
in: body
|
||||
- name: role_id
|
||||
description: Role id of role to be assigned to user
|
||||
required: false
|
||||
in: body
|
||||
responses:
|
||||
'204':
|
||||
description: OK. User is modified (empty response body)
|
||||
'404':
|
||||
description: Not found. The User with the specified user_id does not exist
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
'500':
|
||||
description: Internal Server Error. Contains error message
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
delete:
|
||||
security:
|
||||
- basicAuth: []
|
||||
summary: Delete a specific User
|
||||
operationId: api_delete_user
|
||||
tags:
|
||||
- user
|
||||
responses:
|
||||
'204':
|
||||
description: OK. User is deleted (empty response body)
|
||||
'404':
|
||||
description: Not found. The User with the specified user_id does not exist
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
'500':
|
||||
description: Internal Server Error. Contains error message
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
'/pdnsadmin/accounts':
|
||||
get:
|
||||
security:
|
||||
- basicAuth: []
|
||||
summary: Get all Account entries
|
||||
operationId: api_list_accounts
|
||||
tags:
|
||||
- account
|
||||
responses:
|
||||
'200':
|
||||
description: List of Account objects
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: #/definitions/Account
|
||||
'500':
|
||||
description: Internal Server Error, accounts could not be retrieved. Contains error message
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
post:
|
||||
security:
|
||||
- basicAuth: []
|
||||
summary: Add an Account
|
||||
description: This methods adds a new Account
|
||||
operationId: api_create_account
|
||||
tags:
|
||||
- account
|
||||
parameters:
|
||||
- name: name
|
||||
description: Name for account (unique, immutable)
|
||||
required: true
|
||||
in: body
|
||||
- name: description
|
||||
description: Description of account
|
||||
required: false
|
||||
in: body
|
||||
- name: contact
|
||||
description: Contact information
|
||||
required: false
|
||||
in: body
|
||||
- name: mail
|
||||
description: Email address for contact
|
||||
required: false
|
||||
in: body
|
||||
responses:
|
||||
'201':
|
||||
description: Created
|
||||
schema:
|
||||
$ref: #/definitions/Account
|
||||
'400':
|
||||
description: Unprocessable Entry, the Account data provided has issues.
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
'500':
|
||||
description: Internal Server Error. There was a problem creating the account
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
'/pdnsadmin/accounts/{account_name}':
|
||||
parameters:
|
||||
- name: account_name
|
||||
type: string
|
||||
in: path
|
||||
required: true
|
||||
description: The name of the account to retrieve
|
||||
get:
|
||||
security:
|
||||
- basicAuth: []
|
||||
summary: Get a specific Account on the server
|
||||
operationId: api_list_accounts
|
||||
tags:
|
||||
- user
|
||||
responses:
|
||||
'200':
|
||||
description: Retrieve a specific account
|
||||
schema:
|
||||
$ref: #/definitions/Account
|
||||
'404':
|
||||
description: Not found. The Account with the specified name does not exist
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
'500':
|
||||
description: Internal Server Error, account could not be retrieved. Contains error message
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
'/pdnsadmin/accounts/{account_id}':
|
||||
parameters:
|
||||
- name: account_id
|
||||
type: integer
|
||||
in: path
|
||||
required: true
|
||||
description: The id of the account to modify or delete
|
||||
put:
|
||||
security:
|
||||
- basicAuth: []
|
||||
summary: Modify a specific Account on the server with supplied parameters
|
||||
operationId: api_update_account
|
||||
tags:
|
||||
- user
|
||||
parameters:
|
||||
- name: name
|
||||
description: Name for account (unique, immutable)
|
||||
required: true
|
||||
in: body
|
||||
- name: description
|
||||
description: Description of account
|
||||
required: false
|
||||
in: body
|
||||
- name: contact
|
||||
description: Contact information
|
||||
required: false
|
||||
in: body
|
||||
- name: mail
|
||||
description: Email address for contact
|
||||
required: false
|
||||
in: body
|
||||
responses:
|
||||
'204':
|
||||
description: OK. Account is modified (empty response body)
|
||||
'404':
|
||||
description: Not found. The Account with the specified account_id does not exist
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
'500':
|
||||
description: Internal Server Error. Contains error message
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
delete:
|
||||
security:
|
||||
- basicAuth: []
|
||||
summary: Delete a specific Account
|
||||
operationId: api_delete_account
|
||||
tags:
|
||||
- user
|
||||
responses:
|
||||
'204':
|
||||
description: OK. Account is deleted (empty response body)
|
||||
'404':
|
||||
description: Not found. The Account with the specified account_id does not exist
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
'500':
|
||||
description: Internal Server Error. Contains error message
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
'/pdnsadmin/accounts/users/{account_id}':
|
||||
parameters:
|
||||
- name: account_id
|
||||
type: integer
|
||||
in: path
|
||||
required: true
|
||||
description: The id of the account to list users linked to account
|
||||
get:
|
||||
security:
|
||||
- basicAuth: []
|
||||
summary: List users linked to a specific account
|
||||
operationId: api_list_account_users
|
||||
tags:
|
||||
- account
|
||||
- user
|
||||
responses:
|
||||
'200':
|
||||
description: List of User objects
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: #/definitions/User
|
||||
'404':
|
||||
description: Not found. The Account with the specified account_id does not exist
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
'500':
|
||||
description: Internal Server Error, accounts could not be retrieved. Contains error message
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
'/pdnsadmin/accounts/users/{account_id}/{user_id}':
|
||||
parameters:
|
||||
- name: account_id
|
||||
type: integer
|
||||
in: path
|
||||
required: true
|
||||
description: The id of the account to link/unlink users to account
|
||||
- name: user_id
|
||||
type: integer
|
||||
in: path
|
||||
required: true
|
||||
description: The id of the user to (un)link to/from account
|
||||
put:
|
||||
security:
|
||||
- basicAuth: []
|
||||
summary: Link user to account
|
||||
operationId: api_add_account_user
|
||||
tags:
|
||||
- account
|
||||
- user
|
||||
responses:
|
||||
'204':
|
||||
description: OK. User is linked (empty response body)
|
||||
'404':
|
||||
description: Not found. The Account or User with the specified id does not exist
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
'500':
|
||||
description: Internal Server Error. Contains error message
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
delete:
|
||||
security:
|
||||
- basicAuth: []
|
||||
summary: Unlink user from account
|
||||
operationId: api_remove_account_user
|
||||
tags:
|
||||
- account
|
||||
- user
|
||||
responses:
|
||||
'204':
|
||||
description: OK. User is unlinked (empty response body)
|
||||
'404':
|
||||
description: Not found. The Account or User with the specified id does not exist or user was not linked to account
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
'500':
|
||||
description: Internal Server Error. Contains error message
|
||||
schema:
|
||||
$ref: #/definitions/Error
|
||||
|
||||
|
||||
definitions:
|
||||
Server:
|
||||
title: Server
|
||||
@@ -1222,6 +1640,72 @@ definitions:
|
||||
type: string
|
||||
description: 'Some user defined description'
|
||||
|
||||
User:
|
||||
title: User
|
||||
description: User that can access the gui/api
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
description: The ID for this user (unique)
|
||||
readOnly: true
|
||||
username:
|
||||
type: string
|
||||
description: The username for this user (unique, immutable)
|
||||
readOnly: false
|
||||
password:
|
||||
type: string
|
||||
description: The hashed password for this user
|
||||
readOnly: false
|
||||
firstname:
|
||||
type: string
|
||||
description: The firstname of this user
|
||||
readOnly: false
|
||||
lastname:
|
||||
type: string
|
||||
description: The lastname of this user
|
||||
readOnly: false
|
||||
email:
|
||||
type: string
|
||||
description: Email addres for this user
|
||||
readOnly: false
|
||||
otp_secret:
|
||||
type: string
|
||||
description: OTP secret
|
||||
readOnly: false
|
||||
confirmed:
|
||||
type: boolean
|
||||
description: The confirmed status
|
||||
readOnly: false
|
||||
role_id:
|
||||
type: integer
|
||||
description: The ID of the role
|
||||
readOnly: false
|
||||
|
||||
Account:
|
||||
title: Account
|
||||
description: Account that 'owns' zones
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
description: The ID for this account (unique)
|
||||
readOnly: true
|
||||
name:
|
||||
type: string
|
||||
description: The name for this account (unique, immutable)
|
||||
readOnly: false
|
||||
description:
|
||||
type: string
|
||||
description: The description for this account
|
||||
readOnly: false
|
||||
contact:
|
||||
type: string
|
||||
description: The contact details for this account
|
||||
readOnly: false
|
||||
mail:
|
||||
type: string
|
||||
description: The email address of the contact for this account
|
||||
readOnly: false
|
||||
|
||||
ConfigSetting:
|
||||
title: ConfigSetting
|
||||
properties:
|
||||
|
Reference in New Issue
Block a user