openapi: 3.2.0 info: title: Sheffield Solar Users API version: 0.1.0 tags: - name: Users paths: /users/me: get: tags: - Users summary: Users:Current User operationId: users_current_user_users_me_get responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/UserRead' '401': description: Missing token or inactive user. security: - OAuth2PasswordBearer: [] - APIKeyCookie: [] patch: tags: - Users summary: Users:Patch Current User operationId: users_patch_current_user_users_me_patch requestBody: content: application/json: schema: $ref: '#/components/schemas/UserUpdate' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/UserRead' '401': description: Missing token or inactive user. '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/ErrorModel' examples: UPDATE_USER_EMAIL_ALREADY_EXISTS: summary: A user with this email already exists. value: detail: UPDATE_USER_EMAIL_ALREADY_EXISTS UPDATE_USER_INVALID_PASSWORD: summary: Password validation failed. value: detail: code: UPDATE_USER_INVALID_PASSWORD reason: Password should beat least 3 characters '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - OAuth2PasswordBearer: [] - APIKeyCookie: [] /users/{id}: get: tags: - Users summary: Users:User operationId: users_user_users__id__get security: - OAuth2PasswordBearer: [] - APIKeyCookie: [] parameters: - name: id in: path required: true schema: type: string title: Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/UserRead' '401': description: Missing token or inactive user. '403': description: Not a superuser. '404': description: The user does not exist. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' patch: tags: - Users summary: Users:Patch User operationId: users_patch_user_users__id__patch security: - OAuth2PasswordBearer: [] - APIKeyCookie: [] parameters: - name: id in: path required: true schema: type: string title: Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserUpdate' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/UserRead' '401': description: Missing token or inactive user. '403': description: Not a superuser. '404': description: The user does not exist. '400': content: application/json: examples: UPDATE_USER_EMAIL_ALREADY_EXISTS: summary: A user with this email already exists. value: detail: UPDATE_USER_EMAIL_ALREADY_EXISTS UPDATE_USER_INVALID_PASSWORD: summary: Password validation failed. value: detail: code: UPDATE_USER_INVALID_PASSWORD reason: Password should beat least 3 characters schema: $ref: '#/components/schemas/ErrorModel' description: Bad Request '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - Users summary: Users:Delete User operationId: users_delete_user_users__id__delete security: - OAuth2PasswordBearer: [] - APIKeyCookie: [] parameters: - name: id in: path required: true schema: type: string title: Id responses: '204': description: Successful Response '401': description: Missing token or inactive user. '403': description: Not a superuser. '404': description: The user does not exist. '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: 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. ErrorModel: properties: detail: anyOf: - type: string - additionalProperties: type: string type: object title: Detail type: object required: - detail title: ErrorModel HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError UserUpdate: properties: password: anyOf: - type: string - type: 'null' title: Password email: anyOf: - type: string format: email - type: 'null' title: Email is_active: anyOf: - type: boolean - type: 'null' title: Is Active is_superuser: anyOf: - type: boolean - type: 'null' title: Is Superuser is_verified: anyOf: - type: boolean - type: 'null' title: Is Verified first_name: anyOf: - type: string maxLength: 100 minLength: 1 - type: 'null' title: First Name last_name: anyOf: - type: string maxLength: 100 minLength: 1 - type: 'null' title: Last Name phone: anyOf: - type: string pattern: ^\+?[\d\s\-()\[\]]{7,20}$ - type: 'null' title: Phone company: anyOf: - type: string - type: 'null' title: Company tandc: anyOf: - type: boolean - type: 'null' title: Tandc type: object title: UserUpdate description: Schema for user self-updates (PATCH /users/me). securitySchemes: OAuth2PasswordBearer: type: oauth2 flows: password: scopes: {} tokenUrl: /auth/jwt/login APIKeyCookie: type: apiKey in: cookie name: ssapi_session HTTPBasic: type: http scheme: basic