openapi: 3.2.0 info: title: InstiApp Roles API description: InstiApp IIT Bombay API termsOfService: https://insti.app/tos.html contact: email: devcom@iitb.ac.in license: name: AGPLv3 version: v1 servers: - url: https://gymkhana.iitb.ac.in/instiapp/api security: - Basic: [] tags: - name: Roles paths: /roles: parameters: [] post: operationId: roles_create description: Body Role responses: '201': description: '' content: application/json: schema: $ref: '#/components/schemas/Role' tags: - Roles requestBody: content: application/json: schema: $ref: '#/components/schemas/Role' required: true summary: Roles create x-summary-source: derived /roles/{id}: parameters: - name: id in: path description: A UUID string identifying this Body Role. required: true schema: type: string format: uuid get: operationId: roles_read description: Body Role responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/Role' tags: - Roles summary: Roles read x-summary-source: derived put: operationId: roles_update description: Body Role responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/Role' tags: - Roles requestBody: content: application/json: schema: $ref: '#/components/schemas/Role' required: true summary: Roles update x-summary-source: derived delete: operationId: roles_delete description: Body Role responses: '204': description: '' tags: - Roles summary: Roles delete x-summary-source: derived components: schemas: BodySerializerMin: required: - name type: object properties: id: title: Id type: string format: uuid readOnly: true str_id: title: Str id type: - string - 'null' readOnly: true minLength: 1 name: title: Name type: string maxLength: 50 minLength: 1 short_description: title: Short description type: string maxLength: 50 website_url: title: Website url type: - string - 'null' format: uri maxLength: 200 image_url: title: Image url type: - string - 'null' format: uri maxLength: 200 cover_url: title: Cover url type: - string - 'null' format: uri maxLength: 200 followers_count: title: Followers count type: string readOnly: true short_name: title: Short name type: - string - 'null' maxLength: 20 UserProfile: type: object properties: id: title: Id type: string format: uuid readOnly: true name: title: Name type: string maxLength: 50 profile_pic: title: Profile pic type: - string - 'null' format: uri maxLength: 200 ldap_id: title: Ldap id type: - string - 'null' maxLength: 50 Role: required: - name - body - permissions - users type: object properties: id: title: Id type: string format: uuid readOnly: true name: title: Name type: string maxLength: 50 minLength: 1 inheritable: title: Inheritable type: boolean body: title: Body type: string format: uuid body_detail: $ref: '#/components/schemas/BodySerializerMin' bodies: title: Bodies type: string readOnly: true permissions: type: array items: type: string enum: - AddE - UpdE - DelE - VerE - UpdB - Role - VerA - AppP - ModC users: type: array items: type: string format: uuid uniqueItems: true users_detail: type: array items: $ref: '#/components/schemas/UserProfile' readOnly: true priority: title: Priority type: integer maximum: 2147483647 minimum: -2147483648 official_post: title: Official post type: boolean securitySchemes: Basic: type: http scheme: basic