openapi: 3.2.0 info: contact: name: Identity Platform API url: https://github.com/canonical/identity-platform-api description: REST API for the Admin UI service license: name: AGPL-3.0 url: https://github.com/canonical/identity-platform-api/blob/main/LICENSE title: Identity Platform Authz Groups Service API version: '0.1' tags: - name: AuthzGroupsService paths: /api/v0/authz/groups: get: operationId: AuthzGroupsService_ListGroups parameters: - in: query name: pagination.size schema: format: int32 type: integer - in: query name: pagination.pageToken schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/apiauthz_groupsListGroupsResp' description: '' '400': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Bad request '401': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Forbidden default: content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Internal server error tags: - AuthzGroupsService summary: Authz groups service list groups x-summary-source: derived post: operationId: AuthzGroupsService_CreateGroup requestBody: content: application/json: schema: $ref: '#/components/schemas/authz_groupsGroupInput' required: true x-originalParamName: group responses: '201': content: application/json: schema: $ref: '#/components/schemas/apiauthz_groupsCreateGroupResp' description: '' '400': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Bad request '401': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Forbidden default: content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Internal server error tags: - AuthzGroupsService summary: Authz groups service create group x-summary-source: derived /api/v0/authz/groups/{id}: delete: operationId: AuthzGroupsService_RemoveGroup parameters: - in: path name: id required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/apiauthz_groupsRemoveGroupResp' description: '' '400': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Bad request '401': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Forbidden default: content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Internal server error tags: - AuthzGroupsService summary: Authz groups service remove group x-summary-source: derived get: operationId: AuthzGroupsService_GetGroup parameters: - in: path name: id required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/apiauthz_groupsGetGroupResp' description: '' '400': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Bad request '401': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Forbidden default: content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Internal server error tags: - AuthzGroupsService summary: Authz groups service get group x-summary-source: derived put: operationId: AuthzGroupsService_UpdateGroup parameters: - in: path name: id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/authz_groupsGroupInput' required: true x-originalParamName: group responses: '200': content: application/json: schema: $ref: '#/components/schemas/apiauthz_groupsUpdateGroupResp' description: '' '400': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Bad request '401': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Forbidden default: content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Internal server error tags: - AuthzGroupsService summary: Authz groups service update group x-summary-source: derived /api/v0/authz/groups/{id}/users: get: operationId: AuthzGroupsService_ListUsersInGroup parameters: - in: path name: id required: true schema: type: string - in: query name: pagination.size schema: format: int32 type: integer - in: query name: pagination.pageToken schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/authz_groupsListUsersInGroupResp' description: '' '400': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Bad request '401': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Forbidden default: content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Internal server error tags: - AuthzGroupsService summary: Authz groups service list users in group x-summary-source: derived post: operationId: AuthzGroupsService_AddUsersToGroup parameters: - in: path name: id required: true schema: type: string requestBody: content: application/json: schema: items: type: string type: array required: true x-originalParamName: user_ids responses: '200': content: application/json: schema: $ref: '#/components/schemas/authz_groupsAddUsersToGroupResp' description: '' '400': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Bad request '401': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Forbidden default: content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Internal server error tags: - AuthzGroupsService summary: Authz groups service add users to group x-summary-source: derived /api/v0/authz/groups/{id}/users/{user_id}: delete: operationId: AuthzGroupsService_RemoveUserFromGroup parameters: - in: path name: id required: true schema: type: string - in: path name: user_id required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/authz_groupsRemoveUserFromGroupResp' description: '' '400': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Bad request '401': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Forbidden default: content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Internal server error tags: - AuthzGroupsService summary: Authz groups service remove user from group x-summary-source: derived /api/v0/authz/users/{id}/groups: get: operationId: AuthzGroupsService_ListUserGroups parameters: - in: path name: id required: true schema: type: string - in: query name: pagination.size schema: format: int32 type: integer - in: query name: pagination.pageToken schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/authz_groupsListUserGroupsResp' description: '' '400': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Bad request '401': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Forbidden default: content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Internal server error tags: - AuthzGroupsService summary: Authz groups service list user groups x-summary-source: derived put: operationId: AuthzGroupsService_AddUserToGroups parameters: - in: path name: id required: true schema: type: string requestBody: content: application/json: schema: items: type: string type: array required: true x-originalParamName: group_ids responses: '200': content: application/json: schema: $ref: '#/components/schemas/authz_groupsAddUserToGroupsResp' description: '' '401': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Unauthorized '403': content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Forbidden default: content: application/json: schema: $ref: '#/components/schemas/typesErrorResponse' description: Internal server error tags: - AuthzGroupsService summary: Authz groups service add user to groups x-summary-source: derived components: schemas: authz_groupsAddUsersToGroupResp: properties: message: type: string status: format: int32 type: integer type: object authz_groupsListUsersInGroupResp: properties: data: items: $ref: '#/components/schemas/authz_groupsUser' type: array message: type: string meta: $ref: '#/components/schemas/typesPagination' status: format: int32 type: integer type: object apiauthz_groupsUpdateGroupResp: properties: data: items: $ref: '#/components/schemas/apiauthz_groupsGroup' type: array message: type: string status: format: int32 type: integer type: object apiauthz_groupsCreateGroupResp: properties: data: items: $ref: '#/components/schemas/apiauthz_groupsGroup' type: array message: type: string status: format: int32 type: integer type: object apiauthz_groupsGetGroupResp: properties: data: items: $ref: '#/components/schemas/apiauthz_groupsGroup' type: array message: type: string status: format: int32 type: integer type: object apiauthz_groupsGroup: properties: created_at: format: date-time type: string description: type: string id: type: string name: type: string tenant_id: type: string type: type: string updated_at: format: date-time type: string type: object authz_groupsListUserGroupsResp: properties: data: items: $ref: '#/components/schemas/apiauthz_groupsGroup' type: array message: type: string meta: $ref: '#/components/schemas/typesPagination' status: format: int32 type: integer type: object typesErrorResponse: properties: message: type: string status: format: int32 type: integer type: object authz_groupsGroupInput: properties: description: type: string name: type: string type: type: string type: object apiauthz_groupsListGroupsResp: properties: data: items: $ref: '#/components/schemas/apiauthz_groupsGroup' type: array message: type: string meta: $ref: '#/components/schemas/typesPagination' status: format: int32 type: integer type: object authz_groupsRemoveUserFromGroupResp: properties: message: type: string status: format: int32 type: integer type: object apiauthz_groupsRemoveGroupResp: properties: message: type: string status: format: int32 type: integer type: object typesPagination: properties: next: type: string pageToken: type: string prev: type: string size: format: int32 type: integer type: object authz_groupsUser: properties: created_at: format: date-time type: string id: type: string role: type: string updated_at: format: date-time type: string type: object authz_groupsAddUserToGroupsResp: properties: message: type: string status: format: int32 type: integer type: object securitySchemes: OAuth2: flows: authorizationCode: authorizationUrl: https://example.com/oauth/authorize scopes: email: '' openid: '' profile: '' tokenUrl: https://example.com/oauth/token type: oauth2 externalDocs: description: REST API for the Admin UI service url: https://github.com/canonical/identity-platform-admin-ui/blob/main/API.md