|
- openapi: 3.0.0
- info:
- title: LessPass Server API
- version: 0.1.0
- servers:
- - url: https://api.lesspass.com/
- paths:
- /auth/users/:
- summary: Create new user
- post:
- tags:
- - Auth
- summary: Create new user
- description: Create a new user
- operationId: authusers
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/user_signup_login'
- description: New user email and password
- required: true
- responses:
- '201':
- description: User creation suscessfully
- content:
- application/json:
- example:
- key: null
- email: user@example.com
- id: 14348
- '400':
- description: User creation error
- content:
- application/json:
- examples:
- email problem:
- value:
- email: [ "Enter a valid email address." ]
- password problem:
- value:
- password:
- - This password is too short. It must contain at least 8 characters.
- - This password is too common.
- - This password is entirely numeric.
- /auth/users/reset_password/:
- summary: Recover lost password
- post:
- tags:
- - Auth
- summary: Recover lost password
- description: Recover lost password of existing user
- operationId: authusersresetpassword
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/user_reset_password'
- description: New user email and password
- required: true
- responses:
- '204':
- description: Recover suscessfully
- /auth/users/set_password/:
- summary: Change user password
- post:
- tags:
- - Auth
- summary: Change user password
- description: Change password of existing user
- operationId: authuserssetpassword
- security:
- - JWTAuth: []
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/user_set_password'
- description: New user email and password
- required: true
- responses:
- '204':
- description: Password changed suscessfully
- '401':
- $ref: '#/components/responses/unauthorized_error'
- /auth/jwt/create/:
- summary: Perform user login
- post:
- tags:
- - Auth
- summary: Authenticate an existing user
- description: Authenticate an existing user
- operationId: authjwtcreate
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/user_signup_login'
- description: New user email and password
- required: true
- responses:
- '200':
- $ref: '#/components/responses/auth_jwt_create'
- /auth/jwt/refresh/:
- summary: Perform token refresh
- post:
- tags:
- - Auth
- summary: Refresh user token
- description: Refresh user token
- operationId: authjwtrefresh
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/jwt_token_refresh'
- description: Refresh token
- required: true
- responses:
- '201':
- $ref: '#/components/responses/auth_jwt_refresh'
- '400':
- description: Refresh token is in blank
- content:
- application/json:
- example:
- refresh: [ "This field may not be blank." ]
- '401':
- description: Refresh token has wrong type, is not valid or expired
- content:
- application/json:
- examples:
- token is invalid or expired:
- value:
- detail: Token is invalid or expired
- code: token_not_valid
- token has wrong type:
- value:
- detail: Token has wrong type
- code: token_not_valid
- /passwords/:
- summary: Work with stored passwords
- get:
- tags:
- - Passwords
- summary: Get passwords list
- description: Get passwords list
- operationId: passwordsget
- security:
- - JWTAuth: []
- responses:
- '200':
- $ref: '#/components/responses/passwords'
- '401':
- $ref: '#/components/responses/unauthorized_error'
- post:
- tags:
- - Passwords
- summary: Create new password
- description: Create new password
- operationId: passwordspost
- security:
- - JWTAuth: []
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/password'
- description: Create new password
- required: true
- responses:
- '200':
- $ref: '#/components/responses/password'
- '401':
- $ref: '#/components/responses/unauthorized_error'
- /passwords/{password_id}/:
- summary: Modify or delete stored password
- put:
- tags:
- - Passwords
- summary: Modify existing password
- description: Modify existing password
- operationId: passwordsidput
- security:
- - JWTAuth: []
- parameters:
- - $ref: '#/components/parameters/password_id'
- requestBody:
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/password'
- description: Modify existing password
- required: true
- responses:
- '200':
- $ref: '#/components/responses/password'
- '400':
- description: Parse error
- content:
- application/json:
- examples:
- invalid values in fields:
- value:
- field: [ "A valid value is required." ]
- invalid json:
- value:
- detail: "JSON parse error - Expecting value: line 1 column 1 (char 0)"
- '401':
- $ref: '#/components/responses/unauthorized_error'
- '404':
- description: Password ID not found
- content:
- application/json:
- example:
- detail: Not found.
- delete:
- tags:
- - Passwords
- summary: Modify existing password
- description: Modify existing password
- operationId: passwordsiddelete
- security:
- - JWTAuth: []
- parameters:
- - $ref: '#/components/parameters/password_id'
- responses:
- '204':
- description: Deletion done
- '404':
- description: Password ID not found
- content:
- application/json:
- example:
- detail: Not found.
- components:
- parameters:
- password_id:
- in: path
- name: password_id
- required: true
- description: The ID of password
- schema:
- type: string
- responses:
- auth_jwt_create:
- description: successful operation
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/jwt_response'
- auth_jwt_refresh:
- description: successful operation
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/jwt_response'
- password:
- description: successful operation
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/password_response'
- passwords:
- description: successful operation
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/passwords_response'
- unauthorized_error:
- description: Unauthorized error
- content:
- application/json:
- schema:
- $ref: '#/components/schemas/error_response'
- example:
- detail: Given token not valid for any token type
- code: token_not_valid
- messages:
- - token_class: AccessToken
- token_type: access
- message: Token is invalid or expired
- securitySchemes:
- JWTAuth:
- type: http
- scheme: bearer
- bearerFormat: JWT
- schemas:
- user_signup_login:
- required:
- - email
- - password
- type: object
- properties:
- email:
- description: User email
- type: string
- format: email
- password:
- description: User password
- type: string
- minLength: 8
- format: password
- user_reset_password:
- required:
- - email
- type: object
- properties:
- email:
- description: User email
- type: string
- format: email
- user_set_password:
- required:
- - current_password
- - new_password
- - re_new_password
- type: object
- properties:
- current_password:
- description: User current password
- type: string
- minLength: 8
- format: password
- new_password:
- description: User new password
- type: string
- minLength: 8
- format: password
- re_new_password:
- description: Repeat user new password
- type: string
- minLength: 8
- format: password
- jwt_token_refresh:
- required:
- - refresh
- type: object
- properties:
- refresh:
- description: Refresh token
- type: string
- jwt_response:
- type: object
- properties:
- access:
- description: Access token
- type: string
- refresh:
- description: Refresh token
- type: string
- password:
- type: object
- required:
- - login
- - site
- - uppercase
- - lowercase
- - digits
- - symbols
- - length
- - counter
- - version
- properties:
- login:
- description: User login
- type: string
- example: user@example.com
- site:
- description: User login
- type: string
- example: example.com
- uppercase:
- description: Generated password has uppercase characters
- type: boolean
- default: true
- lowercase:
- description: Generated password has lowercase characters
- type: boolean
- default: true
- digits:
- description: Generated password has digits
- type: boolean
- default: true
- symbols:
- description: Generated password has symbol characters
- type: boolean
- default: true
- length:
- description: Password length
- type: integer
- default: 16
- counter:
- description: Password counter
- type: integer
- default: 1
- version:
- description: Password version algorithm
- type: integer
- default: 2
- password_response:
- type: object
- properties:
- id:
- description: Password unique id
- type: string
- format: uuid
- login:
- description: User login
- type: string
- example: user@example.com
- site:
- description: User login
- type: string
- example: example.com
- uppercase:
- description: Generated password has uppercase characters
- type: boolean
- default: true
- lowercase:
- description: Generated password has lowercase characters
- type: boolean
- default: true
- numbers:
- description: Generated password has numbers
- type: boolean
- default: true
- symbols:
- description: Generated password has symbol characters
- type: boolean
- default: true
- length:
- description: Password length
- type: integer
- default: 16
- counter:
- description: Password counter
- type: integer
- default: 1
- version:
- description: Password version algorithm
- type: integer
- default: 2
- created:
- description: Creation date
- type: string
- format: date-time
- modified:
- description: Creation date
- type: string
- format: date-time
- passwords_response:
- type: object
- properties:
- count:
- description: Password items count
- type: integer
- example: 1
- previous:
- description: Previous page
- type: integer
- default: null
- next:
- description: Next page
- type: integer
- default: null
- results:
- description: Password items
- type: array
- items:
- $ref: '#/components/schemas/password_response'
- error_response:
- type: object
- properties:
- detail:
- description: Error detail
- type: string
- code:
- description: Error code
- type: string
- messages:
- description: Error messages
- type: array
- items:
- type: object
|