openapi: 3.2.0 info: title: Sheffield Solar Auth API version: 0.1.0 tags: - name: Auth paths: /auth/forgot-password: post: tags: - Auth summary: Reset:Forgot Password operationId: reset_forgot_password_auth_forgot_password_post requestBody: content: application/json: schema: $ref: '#/components/schemas/Body_reset_forgot_password_auth_forgot_password_post' required: true responses: '202': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /auth/reset-password: post: tags: - Auth summary: Reset:Reset Password operationId: reset_reset_password_auth_reset_password_post requestBody: content: application/json: schema: $ref: '#/components/schemas/Body_reset_reset_password_auth_reset_password_post' required: true responses: '200': description: Successful Response content: application/json: schema: {} '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorModel' examples: RESET_PASSWORD_BAD_TOKEN: summary: Bad or expired token. value: detail: RESET_PASSWORD_BAD_TOKEN RESET_PASSWORD_INVALID_PASSWORD: summary: Password validation failed. value: detail: code: RESET_PASSWORD_INVALID_PASSWORD reason: Password should be at least 3 characters '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /auth/request-verify-token: post: tags: - Auth summary: Verify:Request-Token operationId: verify_request_token_auth_request_verify_token_post requestBody: content: application/json: schema: $ref: '#/components/schemas/Body_verify_request_token_auth_request_verify_token_post' required: true responses: '202': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /auth/verify: post: tags: - Auth summary: Verify:Verify operationId: verify_verify_auth_verify_post requestBody: content: application/json: schema: $ref: '#/components/schemas/Body_verify_verify_auth_verify_post' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/UserRead' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorModel' examples: VERIFY_USER_BAD_TOKEN: summary: Bad token, not existing user or not the e-mail currently set for the user. value: detail: VERIFY_USER_BAD_TOKEN VERIFY_USER_ALREADY_VERIFIED: summary: The user is already verified. value: detail: VERIFY_USER_ALREADY_VERIFIED '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /auth/cookie/login: post: tags: - Auth summary: Auth:Cookie.Login operationId: auth_cookie_login_auth_cookie_login_post requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/Body_auth_cookie_login_auth_cookie_login_post' required: true responses: '200': description: Successful Response content: application/json: schema: {} '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorModel' examples: LOGIN_BAD_CREDENTIALS: summary: Bad credentials or the user is inactive. value: detail: LOGIN_BAD_CREDENTIALS LOGIN_USER_NOT_VERIFIED: summary: The user is not verified. value: detail: LOGIN_USER_NOT_VERIFIED '204': description: No Content '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /auth/cookie/logout: post: tags: - Auth summary: Auth:Cookie.Logout operationId: auth_cookie_logout_auth_cookie_logout_post responses: '200': description: Successful Response content: application/json: schema: {} '401': description: Missing token or inactive user. '204': description: No Content security: - OAuth2PasswordBearer: [] - APIKeyCookie: [] components: schemas: Body_verify_verify_auth_verify_post: properties: token: type: string title: Token type: object required: - token title: Body_verify_verify_auth_verify_post Body_reset_reset_password_auth_reset_password_post: properties: token: type: string title: Token password: type: string title: Password type: object required: - token - password title: Body_reset_reset_password_auth_reset_password_post ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError UserRead: properties: id: type: integer title: Id email: type: string format: email title: Email is_active: type: boolean title: Is Active default: true is_superuser: type: boolean title: Is Superuser default: false is_verified: type: boolean title: Is Verified default: false first_name: anyOf: - type: string - type: 'null' title: First Name last_name: anyOf: - type: string - type: 'null' title: Last Name phone: anyOf: - type: string - type: 'null' title: Phone company: anyOf: - type: string - type: 'null' title: Company tandc: anyOf: - type: boolean - type: 'null' title: Tandc type: object required: - id - email title: UserRead description: Schema returned for user reads. Extends the base with SSF extras. HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError ErrorModel: properties: detail: anyOf: - type: string - additionalProperties: type: string type: object title: Detail type: object required: - detail title: ErrorModel Body_verify_request_token_auth_request_verify_token_post: properties: email: type: string format: email title: Email type: object required: - email title: Body_verify_request_token_auth_request_verify_token_post Body_reset_forgot_password_auth_forgot_password_post: properties: email: type: string format: email title: Email type: object required: - email title: Body_reset_forgot_password_auth_forgot_password_post Body_auth_cookie_login_auth_cookie_login_post: properties: grant_type: anyOf: - type: string pattern: ^password$ - type: 'null' title: Grant Type username: type: string title: Username password: type: string format: password title: Password scope: type: string title: Scope default: '' client_id: anyOf: - type: string - type: 'null' title: Client Id client_secret: anyOf: - type: string - type: 'null' format: password title: Client Secret type: object required: - username - password title: Body_auth_cookie_login_auth_cookie_login_post securitySchemes: OAuth2PasswordBearer: type: oauth2 flows: password: scopes: {} tokenUrl: /auth/jwt/login APIKeyCookie: type: apiKey in: cookie name: ssapi_session HTTPBasic: type: http scheme: basic