openapi: 3.0.0 info: title: Multi-Apps Overview Account Invitations Permissions API description: Frontegg’s Multi-Apps feature simplifies and streamlines application management, delivering a seamless user experience. This section includes all necessary endpoints for managing applications and copying application settings across environments. All endpoints are categorized as **Management Endpoints**, requiring environment-level authorization and providing full control over entitlement resources. version: '1.0' x-metadata: note: Trigger publish artifacts job, remove this x-metadata after publishing servers: - url: https://api.frontegg.com/applications description: EU Region - url: https://api.us.frontegg.com/applications description: US Region - url: https://api.ca.frontegg.com/applications description: CA Region - url: https://api.au.frontegg.com/applications description: AU Region - url: https://{domain}.frontegg.com/applications description: Frontegg sub-domain for use with user tokens variables: domain: default: app-xxx tags: - name: Permissions x-displayName: Permissions paths: /resources/permissions/v1: servers: - url: https://api.frontegg.com/identity description: EU Region - url: https://api.us.frontegg.com/identity description: US Region - url: https://api.ca.frontegg.com/identity description: CA Region - url: https://api.au.frontegg.com/identity description: AU Region - url: https://{domain}.frontegg.com/identity description: Frontegg sub-domain for use with user tokens variables: domain: default: app-xxx get: operationId: PermissionsControllerV1_getAllPermissions summary: Get Permissions description: 'Retrieve all permissions configured for your environment. Each permission object includes the name, description, assigned roles, categories, and other defining information.' parameters: [] responses: '200': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/PermissionResponse' tags: - Permissions security: - bearer: [] post: operationId: PermissionsControllerV1_addPermissions summary: Create Permissions description: 'Add a new permission. Provide the permission information in the request body. This route does not associate permissions with roles. Use the associate permission to roles route to manage role associations.' parameters: [] requestBody: required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/AddPermissionRequest' responses: '201': description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/PermissionResponse' tags: - Permissions security: - bearer: [] /resources/permissions/v1/{permissionId}: servers: - url: https://api.frontegg.com/identity description: EU Region - url: https://api.us.frontegg.com/identity description: US Region - url: https://api.ca.frontegg.com/identity description: CA Region - url: https://api.au.frontegg.com/identity description: AU Region - url: https://{domain}.frontegg.com/identity description: Frontegg sub-domain for use with user tokens variables: domain: default: app-xxx delete: operationId: PermissionsControllerV1_deletePermission summary: Delete Permission description: 'Delete a permission. Provide the permission ID as a path parameter to specify which permission to delete. You can obtain the permission ID using the **Get permissions** API.' parameters: - name: permissionId required: true in: path schema: type: string responses: '204': description: '' tags: - Permissions security: - bearer: [] patch: operationId: PermissionsControllerV1_updatePermission summary: Update Permission description: 'Update an existing permission. Provide the permission ID as a path parameter to specify which permission to update, and send the updated permission information in the request body. This route does not update role associations for the permission. Use the associate permission to roles route to manage role associations.' parameters: - name: permissionId required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdatePermissionRequest' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/PermissionResponse' tags: - Permissions security: - bearer: [] /resources/permissions/v1/{permissionId}/roles: servers: - url: https://api.frontegg.com/identity description: EU Region - url: https://api.us.frontegg.com/identity description: US Region - url: https://api.ca.frontegg.com/identity description: CA Region - url: https://api.au.frontegg.com/identity description: AU Region - url: https://{domain}.frontegg.com/identity description: Frontegg sub-domain for use with user tokens variables: domain: default: app-xxx put: operationId: PermissionsControllerV1_setRolesToPermission summary: Set a Permission to Multiple Roles description: 'Associate a permission with multiple roles. Provide the permission ID as a path parameter and include the role IDs in the request body as an array of strings. Any pre-existing role associations will remain. You can obtain role IDs using the **Get roles** API.' parameters: - name: permissionId required: true in: path schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddRolesToPermissionRequest' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/PermissionResponse' tags: - Permissions security: - bearer: [] /resources/permissions/v1/classification: servers: - url: https://api.frontegg.com/identity description: EU Region - url: https://api.us.frontegg.com/identity description: US Region - url: https://api.ca.frontegg.com/identity description: CA Region - url: https://api.au.frontegg.com/identity description: AU Region - url: https://{domain}.frontegg.com/identity description: Frontegg sub-domain for use with user tokens variables: domain: default: app-xxx put: operationId: PermissionsControllerV1_updatePermissionsAssignmentType summary: Set Permissions Classification description: 'Classify permissions for self-service usage. Provide an array of `permissionIds` and the classification `type` in the request body. This allows you to segregate which permissions will be used for self-service.' parameters: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ClassifyPermissionsDto' responses: '200': description: '' content: application/json: schema: $ref: '#/components/schemas/PermissionResponse' tags: - Permissions security: - bearer: [] components: schemas: AddPermissionRequest: type: object properties: key: type: string name: type: string description: type: string categoryId: type: string assignmentType: type: string enum: - NEVER - ALWAYS - ASSIGNABLE required: - key - name ClassifyPermissionsDto: type: object properties: permissionIds: type: array items: type: string type: type: string enum: - NEVER - ALWAYS - ASSIGNABLE required: - permissionIds - type UpdatePermissionRequest: type: object properties: key: type: string name: type: string description: type: string categoryId: type: string AddRolesToPermissionRequest: type: object properties: roleIds: description: The permission will be assigned to the specified roles type: array items: type: string required: - roleIds PermissionResponse: type: object properties: id: type: string key: type: string name: type: string description: type: string createdAt: format: date-time type: string updatedAt: format: date-time type: string roleIds: type: array items: type: string categoryId: type: string fePermission: type: boolean required: - id - key - name - description - createdAt - updatedAt - roleIds - categoryId - fePermission securitySchemes: bearer: scheme: bearer bearerFormat: JWT type: http x-tagGroups: - name: Management tags: - Applications settings