openapi: 3.0.0
security: 
  - BearerAuth: []

components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

tags:
  - name: Users
    description: API endpoints for managing users

paths:
      /api/users:
        get:
          summary: Get all users
          tags: [Users]
          security:
            - BearerAuth: []
          responses:
            200:
              description: A list of users

      /api/users/{id}:
          get:
            summary: Get a user by ID
            tags: [Users]
            parameters:
              - name: id
                in: path
                required: true
                description: The ID of the user
            security:
              - BearerAuth: []
            responses:
              200:
                description: A user

          patch:
            summary: Change suspend status of a user by ID
            tags: [Users]
            security:
              - BearerAuth: []
            parameters:
              - name: id
                in: path
                required: true
                description: The ID of the user
            requestBody:
              required: true
              content:
                application/json:
                  schema:
                    type: object
                    required:
                      - status
                    properties:
                      status:
                        type: boolean
                        example: true
            responses:
              200:
                description: Suspend status changed successfully

          delete: 
            summary: Delete a user by ID
            tags: [Users]
            parameters:
              - name: id
                in: path
                required: true
                description: The ID of the user
            security:
              - BearerAuth: []
            responses:
              200:
                description: A user
      
