{ "openapi": "3.0.0", "info": { "title": "Entitlements Agent (PDP)", "description": "", "version": "", "contact": {} }, "servers": [ { "url": "http://{host}:{port}", "variables": { "host": { "default": "localhost" }, "port": { "default": "8181" } } }, { "url": "https://{domain}.frontegg.com/entitlements", "variables": { "domain": { "default": "api" } } }, { "url": "https://api.frontegg.com/auth/vendor", "description": "EU Region" }, { "url": "https://api.us.frontegg.com/auth/vendor", "description": "US Region" }, { "url": "https://api.ca.frontegg.com/auth/vendor", "description": "CA Region" }, { "url": "https://api.au.frontegg.com/auth/vendor", "description": "AU Region", "variables": { "domain": { "default": "app-xxxx" } } }, { "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" } } }, { "url": "https://api.frontegg.com/directory", "description": "EU Region" }, { "url": "https://api.us.frontegg.com/directory", "description": "US Region" }, { "url": "https://api.ca.frontegg.com/directory", "description": "CA Region" }, { "url": "https://api.au.frontegg.com/directory", "description": "AU Region" }, { "url": "https://{domain}.frontegg.com/directory", "description": "Frontegg sub-domain for use with user tokens", "variables": { "domain": { "default": "app-xxx" } } }, { "url": "https://api.frontegg.com/team", "description": "EU Region" }, { "url": "https://api.us.frontegg.com/team", "description": "US Region" }, { "url": "https://api.ca.frontegg.com/team", "description": "CA Region" }, { "url": "https://api.au.frontegg.com/team", "description": "AU Region" }, { "url": "https://{domain}.frontegg.com/team", "description": "Frontegg sub-domain for use with user tokens", "variables": { "domain": { "default": "app-xxx" } } }, { "url": "https://api.frontegg.com/tenants", "description": "EU Region" }, { "url": "https://api.us.frontegg.com/tenants", "description": "US Region" }, { "url": "https://api.ca.frontegg.com/tenants", "description": "CA Region" }, { "url": "https://api.au.frontegg.com/tenants", "description": "AU Region" }, { "url": "https://{domain}.frontegg.com/tenants", "description": "Frontegg sub-domain for use with user tokens", "variables": { "domain": { "default": "app-xxxx" } } } ], "tags": [ { "name": "Entitlements Check", "x-displayName": "Entitlements Check" }, { "name": "Plans (Formerly Bundles)", "x-displayName": "Plans (Formerly Bundles)" }, { "name": "API Access Control", "x-displayName": "API Access Control" }, { "name": "API Access Control Configurations", "x-displayName": "API Access Control Configurations" }, { "name": "Features", "x-displayName": "Features" }, { "name": "Entitlements", "x-displayName": "Entitlements" }, { "name": "Feature Flags", "x-displayName": "Feature Flags" }, { "name": "env-auth_other", "x-displayName": "other" }, { "name": "User management (multi-app)", "x-displayName": "User management (multi-app)" }, { "name": "API token", "x-displayName": "API token" }, { "name": "General", "x-displayName": "General" }, { "name": "MFA", "x-displayName": "MFA" }, { "name": "Passwordless", "x-displayName": "Passwordless" }, { "name": "Account invitations settings", "x-displayName": "Account invitations settings" }, { "name": "Core settings", "x-displayName": "Core settings" }, { "name": "Custom social OAuth provider", "x-displayName": "Custom social OAuth provider" }, { "name": "Data migration", "x-displayName": "Data migration" }, { "name": "Delegation", "x-displayName": "Delegation" }, { "name": "Email configuration", "x-displayName": "Email configuration" }, { "name": "Email templates", "x-displayName": "Email templates" }, { "name": "M2M", "x-displayName": "M2M" }, { "name": "MFA configuration", "x-displayName": "MFA configuration" }, { "name": "Permission categories", "x-displayName": "Permission categories" }, { "name": "Permissions", "x-displayName": "Permissions" }, { "name": "Roles", "x-displayName": "Roles" }, { "name": "SMS configuration", "x-displayName": "SMS configuration" }, { "name": "SMS templates", "x-displayName": "SMS templates" }, { "name": "Sessions configuration", "x-displayName": "Sessions configuration" }, { "name": "User sources (pools)", "x-displayName": "User sources (pools)" }, { "name": "Users", "x-displayName": "Users" }, { "name": "User management", "x-displayName": "User management" }, { "name": "Account invitations", "x-displayName": "Account invitations" }, { "name": "Domain restrictions", "x-displayName": "Domain restrictions" }, { "name": "User groups", "x-displayName": "User groups" }, { "name": "IP restrictions", "x-displayName": "IP restrictions" }, { "name": "Lockout policy", "x-displayName": "Lockout policy" }, { "name": "MFA settings", "x-displayName": "MFA settings" }, { "name": "Password settings", "x-displayName": "Password settings" }, { "name": "Personal tokens", "x-displayName": "Personal tokens" }, { "name": "Account roles", "x-displayName": "Account roles" }, { "name": "Sessions management", "x-displayName": "Sessions management" }, { "name": "API (tenant) tokens", "x-displayName": "API (tenant) tokens" }, { "name": "User sessions", "x-displayName": "User sessions" }, { "name": "User Phone Numbers", "x-displayName": "User Phone Numbers" }, { "name": "Vendor-only user management", "x-displayName": "Vendor-only user management" }, { "name": "SCIM Configurations", "x-displayName": "SCIM Configurations" }, { "name": "SCIM Setup", "x-displayName": "SCIM Setup" }, { "name": "SAML Configurations Details", "x-displayName": "SAML Configurations Details" }, { "name": "SSO Settings", "x-displayName": "SSO Settings" }, { "name": "SSO Configurations", "x-displayName": "SSO Configurations" }, { "name": "OIDC Configurations Details", "x-displayName": "OIDC Configurations Details" }, { "name": "Tenants (Accounts)", "x-displayName": "Tenants (Accounts)" }, { "name": "Sub-Accounts", "x-displayName": "Sub-Accounts" }, { "name": "Accounts Settings", "x-displayName": "Accounts Settings" }, { "name": "Tenants migration", "x-displayName": "Tenants migration" }, { "name": "Account Hierarchy", "x-displayName": "Account Hierarchy" } ], "paths": { "/v1/data/e10s/features/is_entitled_to_input_feature": { "post": { "operationId": "OpenApiPDPController_isEntitledToFeature", "summary": "Is Entitled To Feature", "description": "Check whether a given tenant or user is entitled to the requested feature", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "properties": { "input": { "properties": { "subjectContext": { "$ref": "#/components/schemas/SubjectContext" }, "requestContext": { "$ref": "#/components/schemas/IsEntitledToFeatureDto" } } } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PDPResponse" } } } } }, "tags": [ "Entitlements Check" ] } }, "/v1/data/e10s/permissions/is_entitled_to_input_permission": { "post": { "operationId": "OpenApiPDPController_isEntitledToPermission", "summary": "Is Entitled To Permission", "description": "Check whether a given user is entitled to the requested permission", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "properties": { "input": { "properties": { "subjectContext": { "$ref": "#/components/schemas/SubjectContext" }, "requestContext": { "$ref": "#/components/schemas/IsEntitledToPermissionDto" } } } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PDPResponse" } } } } }, "tags": [ "Entitlements Check" ] } }, "/v1/data/e10s/routes/is_entitled_to_input_route": { "post": { "operationId": "OpenApiPDPController_isEntitledToRoute", "summary": "Is Entitled To Route", "description": "Check whether a given tenant or user is entitled to the requested route", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "properties": { "input": { "properties": { "subjectContext": { "$ref": "#/components/schemas/SubjectContext" }, "requestContext": { "$ref": "#/components/schemas/IsEntitledToRouteDto" } } } } } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PDPResponse" } } } } }, "tags": [ "Entitlements Check" ] } }, "/resources/plans/v1": { "get": { "operationId": "PlansControllerV1_getPlans", "x-tag": "Plans (Formerly Bundles)", "summary": "Get Plan", "description": "Retrieve a paginated list of plans, with the abillity to search, order and filter by related entities", "parameters": [ { "name": "offset", "required": false, "in": "query", "description": "Page offset of the results to return", "example": "0", "schema": { "default": 0, "type": "number" } }, { "name": "limit", "required": false, "in": "query", "description": "Number of results per page", "example": "10", "schema": { "default": 10, "type": "number" } }, { "name": "filter", "required": false, "in": "query", "description": "Search input, searchable by `name`", "example": "search-text", "schema": { "type": "string" } }, { "name": "orderBy", "required": false, "in": "query", "description": "Field to order results by create date (`createdAt`) or expiration date (`expirationDate`)", "example": "name", "schema": { "enum": [ "name", "createdAt" ], "type": "string" } }, { "name": "sortType", "required": false, "in": "query", "description": "Sort type, ASC for ascending, DESC for descending", "example": "DESC", "schema": { "enum": [ "ASC", "DESC" ], "type": "string" } }, { "name": "featureIds", "required": false, "in": "query", "description": "Comma separated feature IDs to filter results by", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "userIds", "required": false, "in": "query", "description": "Comma separated user IDs to filter results by", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "tenantIds", "required": false, "in": "query", "description": "Comma separated tenant IDs to filter results by", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "includeTenantEntitlements", "required": false, "in": "query", "description": "The tenant id to get the related entitlements for", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/PageDto" }, { "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/PlanDto" } }, "hasNext": { "type": "boolean" } } } ] } } } } }, "tags": [ "Plans (Formerly Bundles)" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "PlansControllerV1_createPlan", "x-tag": "Plans (Formerly Bundles)", "summary": "Create Plan", "description": "Create a new plan", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatePlanDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlanDto" } } } } }, "tags": [ "Plans (Formerly Bundles)" ], "security": [ { "bearer": [] } ] } }, "/resources/plans/v1/{id}": { "get": { "operationId": "PlansControllerV1_getSinglePlan", "x-tag": "Plans (Formerly Bundles)", "summary": "Get Single Plan", "description": "Retrieve a single plan, including features linked to it", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlanDto" } } } } }, "tags": [ "Plans (Formerly Bundles)" ], "security": [ { "bearer": [] } ] }, "patch": { "operationId": "PlansControllerV1_updatePlan", "x-tag": "Plans (Formerly Bundles)", "summary": "Update Plan", "description": "Update an existing plan", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePlanDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlanDto" } } } } }, "tags": [ "Plans (Formerly Bundles)" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "PlansControllerV1_deletePlan", "x-tag": "Plans (Formerly Bundles)", "summary": "Delete Plan", "description": "Delete a plan", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Plans (Formerly Bundles)" ], "security": [ { "bearer": [] } ] } }, "/resources/plans/v1/{id}/features": { "get": { "operationId": "PlansControllerV1_getPlanFeatures", "x-tag": "Plans (Formerly Bundles)", "summary": "Get Plan Features", "description": "Retrieve a paginated list of plan features, with the abillity to search and order (by date (`createdAt`) or expiration date (`expirationDate`))", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "offset", "required": false, "in": "query", "description": "Page offset of the results to return", "example": "0", "schema": { "default": 0, "type": "number" } }, { "name": "limit", "required": false, "in": "query", "description": "Number of results per page", "example": "10", "schema": { "default": 10, "type": "number" } }, { "name": "filter", "required": false, "in": "query", "description": "Search input; Searchable fields: `name`", "example": "search-text", "schema": { "type": "string" } }, { "name": "orderBy", "required": false, "in": "query", "description": "Order fields by date created (`createdAt`) or expired (`expirationDate`)", "example": "key", "schema": { "enum": [ "name", "key", "createdAt" ], "type": "string" } }, { "name": "sortType", "required": false, "in": "query", "description": "Sort fields by an ascending (`ASC`) or a decending (`DESC`) order", "example": "ASC", "schema": { "enum": [ "ASC", "DESC" ], "type": "string" } }, { "name": "featureIds", "required": false, "in": "query", "description": "Comma separated feature IDs that can be used to filter the results", "example": [ "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" ], "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "permissionKeys", "required": false, "in": "query", "description": "Comma separated permission keys that can be used to filter the results", "example": [ "permission.read", "permission.write" ], "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "hasFeatureFlag", "required": false, "in": "query", "description": "Filter out features that are linked/not linked to feature-flag", "example": "flase", "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/PageDto" }, { "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/PlanFeatureDto" } }, "hasNext": { "type": "boolean" } } } ] } } } } }, "tags": [ "Plans (Formerly Bundles)" ], "security": [ { "bearer": [] } ] } }, "/resources/plans/v1/{id}/features/link": { "patch": { "operationId": "PlansControllerV1_linkFeaturesToPlan", "x-tag": "Plans (Formerly Bundles)", "summary": "Link Features to Plan", "description": "Link features to plan", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LinkFeaturesDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "Plans (Formerly Bundles)" ], "security": [ { "bearer": [] } ] } }, "/resources/plans/v1/{id}/features/unlink": { "patch": { "operationId": "PlansControllerV1_unlinkFeaturesFromPlan", "x-tag": "Plans (Formerly Bundles)", "summary": "Unlink Features from Plan", "description": "Unlink features from a given plan", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UnlinkFeaturesDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "Plans (Formerly Bundles)" ], "security": [ { "bearer": [] } ] } }, "/resources/routes/v1": { "get": { "operationId": "RoutesControllerV1_getMany", "x-tag": "API Access Control", "summary": "Get Routes", "description": "Retrieve all routes", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RouteDto" } } } } } }, "tags": [ "API Access Control" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "RoutesControllerV1_create", "x-tag": "API Access Control", "summary": "Create Route", "description": "Create a new route", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateRouteDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RouteDto" } } } } }, "tags": [ "API Access Control" ], "security": [ { "bearer": [] } ] } }, "/resources/routes/v1/{id}": { "get": { "operationId": "RoutesControllerV1_getSingle", "x-tag": "API Access Control", "summary": "Get Single Route", "description": "Retrieve a single route", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RouteDto" } } } } }, "tags": [ "API Access Control" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "RoutesControllerV1_delete", "x-tag": "API Access Control", "summary": "Delete Route", "description": "Delete a route", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "API Access Control" ], "security": [ { "bearer": [] } ] }, "patch": { "operationId": "RoutesControllerV1_update", "x-tag": "API Access Control", "summary": "Update Route", "description": "Update an existing route", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateRouteDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RouteDto" } } } } }, "tags": [ "API Access Control" ], "security": [ { "bearer": [] } ] } }, "/resources/routes/v1/import-open-api": { "post": { "operationId": "RoutesControllerV1_importOpenApi", "x-tag": "API Access Control", "summary": "Import Open API", "description": "Imports an Open API specifications in JSON format", "parameters": [], "responses": { "200": { "description": "" } }, "tags": [ "API Access Control" ], "security": [ { "bearer": [] } ] } }, "/resources/routes/v1/{id}/rules": { "put": { "operationId": "RoutesControllerV1_replaceRules", "x-tag": "API Access Control", "summary": "Create or Replace Route Rules", "description": "Create or replace route rules", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReplaceRouteRulesDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RouteRuleDto" } } } } } }, "tags": [ "API Access Control" ], "security": [ { "bearer": [] } ] } }, "/resources/routes/v1/configuration": { "get": { "operationId": "RoutesConfigurationsControllerV1_getRoutesConfiguration", "x-tag": "API Access Control Configurations", "summary": "Get Routes Configuration", "description": "Retrieve routes configuration", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoutesConfigurationDto" } } } } }, "tags": [ "API Access Control Configurations" ], "security": [ { "bearer": [] } ] }, "patch": { "operationId": "RoutesConfigurationsControllerV1_updateRoutesConfiguration", "x-tag": "API Access Control Configurations", "summary": "Update Routes Configuration", "description": "Update route configurations", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateRoutesConfigurationDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoutesConfigurationDto" } } } } }, "tags": [ "API Access Control Configurations" ], "security": [ { "bearer": [] } ] } }, "/resources/features/v1": { "get": { "operationId": "FeaturesControllerV1_getFeatures", "x-tag": "Features", "summary": "Get Features", "description": "Retrieve a paginated list of features. You can search for specific features or order them by field", "parameters": [ { "name": "offset", "required": false, "in": "query", "description": "Page offset of the results to return", "example": "0", "schema": { "default": 0, "type": "number" } }, { "name": "limit", "required": false, "in": "query", "description": "Number of results per page", "example": "10", "schema": { "default": 10, "type": "number" } }, { "name": "filter", "required": false, "in": "query", "description": "Search input; Searchable fields: `name`", "example": "search-text", "schema": { "type": "string" } }, { "name": "orderBy", "required": false, "in": "query", "description": "Order fields by date created (`createdAt`) or expired (`expirationDate`)", "example": "key", "schema": { "enum": [ "name", "key", "createdAt" ], "type": "string" } }, { "name": "sortType", "required": false, "in": "query", "description": "Sort fields by an ascending (`ASC`) or a decending (`DESC`) order", "example": "ASC", "schema": { "enum": [ "ASC", "DESC" ], "type": "string" } }, { "name": "featureIds", "required": false, "in": "query", "description": "Comma separated feature IDs that can be used to filter the results", "example": [ "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" ], "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "permissionKeys", "required": false, "in": "query", "description": "Comma separated permission keys that can be used to filter the results", "example": [ "permission.read", "permission.write" ], "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "hasFeatureFlag", "required": false, "in": "query", "description": "Filter out features that are linked/not linked to feature-flag", "example": "flase", "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/PageDto" }, { "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/FeatureDto" } }, "hasNext": { "type": "boolean" } } } ] } } } } }, "tags": [ "Features" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "FeaturesControllerV1_createFeature", "x-tag": "Features", "summary": "Create Feature", "description": "Create a new feature", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateFeatureDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FeatureDto" } } } } }, "tags": [ "Features" ], "security": [ { "bearer": [] } ] } }, "/resources/features/v1/{featureId}": { "patch": { "operationId": "FeaturesControllerV1_updateFeature", "x-tag": "Features", "summary": "Update Feature", "description": "Update an existing feature", "parameters": [ { "name": "featureId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateFeatureDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "Features" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "FeaturesControllerV1_deleteFeature", "x-tag": "Features", "summary": "Delete Feature", "description": "Delete a feature", "parameters": [ { "name": "featureId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Features" ], "security": [ { "bearer": [] } ] } }, "/resources/features/v2": { "post": { "operationId": "FeaturesControllerV2_create", "x-tag": "Features", "summary": "Create Feature", "description": "Create a new feature", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateFeatureDtoV2" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FeatureDto" } } } } }, "tags": [ "Features" ], "security": [ { "bearer": [] } ] } }, "/resources/features/v2/{featureId}": { "patch": { "operationId": "FeaturesControllerV2_update", "x-tag": "Features", "summary": "Update Feature", "description": "Update an existing feature", "parameters": [ { "name": "featureId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateFeatureDtoV2" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "Features" ], "security": [ { "bearer": [] } ] } }, "/resources/entitlements/v2": { "get": { "operationId": "EntitlementsControllerV2_getEntitlements", "x-tag": "Entitlements", "summary": "Get Entitlements", "description": "Retrieve a paginated list of Entitlements, with the ability to order, sort (`ASC` for ascending, `DESC` for descending), and filter results( expiration date (`expirationDate`) or create date (`createdAt`) fields", "parameters": [ { "name": "offset", "required": false, "in": "query", "description": "Page offset of results to return", "example": "0", "schema": { "type": "number" } }, { "name": "limit", "required": false, "in": "query", "description": "Number of results per page", "example": "10", "schema": { "type": "number" } }, { "name": "sortType", "required": false, "in": "query", "description": "Sort type, `ASC` for ascending, `DESC` for descending", "example": "DESC", "schema": { "enum": [ "ASC", "DESC" ], "type": "string" } }, { "name": "planId", "required": false, "in": "query", "description": "UUID string representing the plan ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3", "schema": { "type": "string" } }, { "name": "planIds", "required": false, "in": "query", "description": "UUIDs string array representing the plan IDs", "example": "[\"e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3\"]", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "assignLevel", "required": false, "in": "query", "description": "Assign level, `USER` for user-level entitlements, `TENANT` for tenant-level entitlements", "example": "User", "schema": { "enum": [ "USER", "TENANT" ], "type": "string" } }, { "name": "orderBy", "required": false, "in": "query", "description": "Field to order results by date (`createdAt`) or expiration date (`expirationDate`)", "example": "expirationDate", "schema": { "enum": [ "expirationDate", "createdAt" ], "type": "string" } }, { "name": "userIds", "required": false, "in": "query", "description": "Comma separated user IDs to filter results by", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "tenantIds", "required": false, "in": "query", "description": "Comma separated tenant IDs to filter results by", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "withRelations", "required": false, "in": "query", "description": "Boolean value to include related entities in the response", "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/PageDto" }, { "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/EntitlementDto" } }, "hasNext": { "type": "boolean" } } } ] } } } } }, "tags": [ "Entitlements" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "EntitlementsControllerV2_createEntitlement", "x-tag": "Entitlements", "summary": "Create Entitlement", "description": "Create a new entitlement", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateEntitlementDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntitlementDto" } } } } }, "tags": [ "Entitlements" ], "security": [ { "bearer": [] } ] } }, "/resources/entitlements/v2/batch": { "post": { "operationId": "EntitlementsControllerV2_createBatchEntitlements", "x-tag": "Entitlements", "summary": "Batch Create Entitlements", "description": "Batch create multiple entitlements in a single request", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateManyEntitlementsDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntitlementIdsDto" } } } } }, "tags": [ "Entitlements" ], "security": [ { "bearer": [] } ] }, "patch": { "operationId": "EntitlementsControllerV2_updateBatchEntitlements", "x-tag": "Entitlements", "summary": "Batch Update Entitlements", "description": "Batch update multiple entitlements in a single request", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateManyEntitlementsDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "Entitlements" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "EntitlementsControllerV2_deleteBatchEntitlements", "x-tag": "Entitlements", "summary": "Batch Delete Entitlements", "description": "Batch delete multiple entitlements in a single request", "parameters": [ { "name": "ids", "required": true, "in": "query", "description": "UUID string that represents the entitlement ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3", "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "" } }, "tags": [ "Entitlements" ], "security": [ { "bearer": [] } ] } }, "/resources/entitlements/v2/{id}": { "get": { "operationId": "EntitlementsControllerV2_getSingleEntitlement", "x-tag": "Entitlements", "summary": "Get Single Entitlement", "description": "Retrieve a single entitlement by ID", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntitlementDto" } } } } }, "tags": [ "Entitlements" ], "security": [ { "bearer": [] } ] }, "patch": { "operationId": "EntitlementsControllerV2_updateEntitlement", "x-tag": "Entitlements", "summary": "Update Entitlement", "description": "Update an existing entitlement", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateEntitlementDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EntitlementDto" } } } } }, "tags": [ "Entitlements" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "EntitlementsControllerV2_deleteEntitlement", "x-tag": "Entitlements", "summary": "Delete Entitlement", "description": "Delete an entitlement", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Entitlements" ], "security": [ { "bearer": [] } ] } }, "/resources/feature-flags/v1": { "get": { "operationId": "FeatureFlagsControllerV1_getFeatureFlags", "x-tag": "Feature Flags", "summary": "Get Feature Flags", "description": "Retrieve a paginated list of feature flags. You can search for specific feature flags or order them by field", "parameters": [ { "name": "offset", "required": false, "in": "query", "description": "Page offset of the results to return", "example": "0", "schema": { "default": 0, "type": "number" } }, { "name": "limit", "required": false, "in": "query", "description": "Number of results per page", "example": "10", "schema": { "default": 10, "type": "number" } }, { "name": "filter", "required": false, "in": "query", "description": "Search input, searchable by `name`", "example": "search-text", "schema": { "type": "string" } }, { "name": "orderBy", "required": false, "in": "query", "description": "Field to order results by create date (`createdAt`) or name (`name`)", "example": "name", "schema": { "type": "string" } }, { "name": "sortType", "required": false, "in": "query", "description": "Sort type, ASC for ascending, DESC for descending", "example": "ASC", "schema": { "enum": [ "ASC", "DESC" ], "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/PageDto" }, { "properties": { "items": { "type": "array", "items": { "$ref": "#/components/schemas/FeatureFlagDto" } }, "hasNext": { "type": "boolean" } } } ] } } } } }, "tags": [ "Feature Flags" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "FeatureFlagsControllerV1_createFeatureFlag", "x-tag": "Feature Flags", "summary": "Create Feature Flag", "description": "Create a new feature flag", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateFeatureFlagDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FeatureFlagDto" } } } } }, "tags": [ "Feature Flags" ], "security": [ { "bearer": [] } ] } }, "/resources/feature-flags/v1/{id}": { "get": { "operationId": "FeatureFlagsControllerV1_getSingleFeatureFlag", "x-tag": "Feature Flags", "summary": "Get Single Feature Flag", "description": "Retrieve a single feature flag", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FeatureFlagDto" } } } } }, "tags": [ "Feature Flags" ], "security": [ { "bearer": [] } ] }, "patch": { "operationId": "FeatureFlagsControllerV1_updateFeatureFlag", "x-tag": "Feature Flags", "summary": "Update Feature Flag", "description": "Update an existing feature flag", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateFeatureFlagDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FeatureFlagDto" } } } } }, "tags": [ "Feature Flags" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "FeatureFlagsControllerV1_deleteFeatureFlag", "x-tag": "Feature Flags", "summary": "Delete Feature Flag", "description": "Delete a feature flag", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Feature Flags" ], "security": [ { "bearer": [] } ] } }, "/": { "post": { "operationId": "authenticate_vendor", "summary": "Authenticate with env credentials", "description": "Authenticate your environment to get a management token for your environment using the `clientId` and `API key`.", "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorAuthenticationRequest" } } } }, "responses": { "200": { "description": "Authentication succeeded", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorAuthenticationResponse" } } } }, "401": { "description": "Invalid authentication" } }, "tags": [ "env-auth_other" ] } }, "/resources/applications/v1/{appId}/users": { "get": { "operationId": "ApplicationsControllerV1_getUsersForApplication", "summary": "Get users for application", "description": "This route gets users for an application.", "parameters": [ { "name": "appId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" } } } } } }, "tags": [ "User management (multi-app)" ], "security": [ { "bearer": [] } ] } }, "/resources/applications/v1/{userId}/apps": { "get": { "operationId": "ApplicationsControllerV1_getApplicationsForUser", "summary": "Get applications for user", "description": "This route gets applications for a user.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" } } } } } }, "tags": [ "User management (multi-app)" ], "security": [ { "bearer": [] } ] } }, "/resources/applications/v1/users-apps": { "get": { "operationId": "ApplicationsControllerV1_getApplicationsForMultipleUsers", "summary": "Get applications for multiple users", "description": "This route gets applications for multiple users.", "parameters": [ { "name": "userIds", "required": true, "in": "query", "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserApplicationsResponseDto" } } } } } }, "tags": [ "User management (multi-app)" ], "security": [ { "bearer": [] } ] } }, "/resources/applications/v1/apps-users": { "get": { "operationId": "ApplicationsControllerV1_getUsersForMultipleApplications", "summary": "Get users for multiple applications", "description": "This route gets users for multiple applications.", "parameters": [ { "name": "appIds", "required": true, "in": "query", "schema": { "type": "array", "items": { "type": "string" } } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ApplicationUsersResponseDto" } } } } } }, "tags": [ "User management (multi-app)" ], "security": [ { "bearer": [] } ] } }, "/resources/applications/v1": { "post": { "operationId": "ApplicationsControllerV1_assignUsersToApplication", "summary": "Assign users to application", "description": "This route assigns users to an application.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssignUsersToAppRequestDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ApplicationUserTenantsResponseDto" } } } } } }, "tags": [ "User management (multi-app)" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "ApplicationsControllerV1_unassignUsersFromApplication", "summary": "Unassign users from application", "description": "This route unassigns users from an application.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UnassignUsersFromAppRequestDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "User management (multi-app)" ], "security": [ { "bearer": [] } ] } }, "/resources/applications/v1/apps-user": { "post": { "operationId": "ApplicationsControllerV1_assignUserToMultipleApplications", "summary": "Assign user to multiple applications", "description": "This route assigns user to multiple applications.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssignUserToMultipleApplicationsRequestDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ApplicationUserTenantsResponseDto" } } } } } }, "tags": [ "User management (multi-app)" ], "security": [ { "bearer": [] } ] } }, "/resources/applications/v1/user-apps": { "delete": { "operationId": "ApplicationsControllerV1_unassignUserFromMultipleApplications", "summary": "Unassign user from multiple applications", "description": "This route unassigns user from multiple applications.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UnassignUserFromMultipleAppsRequestDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "User management (multi-app)" ], "security": [ { "bearer": [] } ] } }, "/resources/applications/user-tenants/active/v1": { "get": { "operationId": "ApplicationsActiveUserTenantsControllerV1_getUserApplicationActiveTenants", "summary": "Get user active tenants in applications", "description": "This route gets the active user tenants for an application.", "parameters": [ { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserApplicationActiveTenantsResponseDto" } } } } }, "tags": [ "User management (multi-app)" ], "security": [ { "bearer": [] } ] }, "put": { "operationId": "ApplicationsActiveUserTenantsControllerV1_switchUserApplicationActiveTenant", "summary": "Switch users active tenant in applications", "description": "This route updates the active user tenants for an application.", "parameters": [ { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SwitchApplicationActiveUserTenantsRequestDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "User management (multi-app)" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v2/api-token": { "post": { "operationId": "AuthenticationApiTokenControllerV2_authApiToken", "summary": "Authenticate using API token", "description": "This route authenticates a tenant’s or user’s API token. The clientId and secret key are in Admin Portal ➜ API Tokens. Send these values as params in the POST body and authenticate to your Frontegg domain by replacing api.frontegg.com with your Frontegg domain.
**NOTE**: This route enforces(by default) a rotation mechanism for refresh tokens associated with the API token. It limits each token to a maximum of 100 refresh tokens simultaneously. When a client authenticates using the same API token for the 101th time, the earliest refresh token is automatically invalidated.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthApiTokenDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiTokenAuthV2Response" } } } } }, "tags": [ "API token" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v2/api-token/token/refresh": { "post": { "operationId": "AuthenticationApiTokenControllerV2_refreshToken", "summary": "Refresh API token", "description": "This route refreshes a JWT using the refresh token value. If the refresh token is valid, the route returns a new JWT and refresh token. Send the **`frontegg-vendor-host`** as a header to declare which vendor. This is your domain name in the Frontegg Portal ➜ Workspace Settings ➜ Domains ➜ Domain Name.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RefreshApiTokenDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiTokenAuthV2Response" } } } } }, "tags": [ "API token" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/user": { "post": { "operationId": "AuthenticatioAuthenticationControllerV1_authenticateLocalUser", "summary": "Authenticate user with password", "description": "This route authenticates a local user using email and password. Send the **`frontegg-vendor-host`** as a header to declare which vendor. This is your domain name in the Frontegg Portal ➜ Workspace Settings ➜ Domains ➜ Domain Name. Optionally, send login information for the user as POST body params. Include the invitation token if the user is signing up by invitation. Send the recaptcha token if the recaptcha is enabled for login.", "parameters": [ { "name": "frontegg-vendor-host", "in": "header", "description": "The vendor host domain", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthenticateUserPasswordDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthenticationResponseDto" } } } } }, "tags": [ "General" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/user/token/refresh": { "post": { "operationId": "AuthenticatioAuthenticationControllerV1_refreshToken", "summary": "Refresh user JWT token ", "description": "This route refreshes a JWT based on the refresh token expiration time. If the refresh token is valid, the route returns a new JWT and refresh token. Please note that the route expects the refresh cookie of the logged in user as well. Send the **`frontegg-vendor-host`** as a header to declare which vendor. This is your domain name in the Frontegg Portal ➜ Workspace Settings ➜ Domains ➜ Domain Name. Configure your JWT settings in the Frontegg Portal.", "parameters": [ { "name": "frontegg-vendor-host", "required": true, "in": "header", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RefreshTokenDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthenticationResponseDto" } } } } }, "tags": [ "General" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/logout": { "post": { "operationId": "AuthenticatioAuthenticationControllerV1_logout", "summary": "Logout user", "description": "This route logs out a user using the refresh token that is passed as a cookie. Send the **`frontegg-vendor-host`** as a header to declare which vendor. This route is designed for Frontegg embedded login or integrations that use only Frontegg APIs", "parameters": [ { "name": "frontegg-vendor-host", "required": true, "in": "header", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "tags": [ "General" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/user/mfa/recover": { "post": { "operationId": "AuthenticationMFAControllerV1_recoverMfa", "summary": "Recover MFA", "description": "This route recovers MFA for a non logged-in user. Send the user’s email and a recovery code as params in the POST body. The recovery code comes from the MFA authenticator app when you set up MFA.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RecoverMfaDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/mfa/disable": { "post": { "operationId": "UsersMfaControllerV1_disableAuthAppMfa", "summary": "Disable authenticator app MFA", "description": "This route disables MFA enrollment for a logged-in user for a specific tenant. Send the **`frontegg-user-id`** header to declare which user. The MFA token should be obtained from the authenticator app. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "deprecated": true, "parameters": [ { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DisableMFAAuthAppRequest" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/mfa/authenticator/{deviceId}/disable/verify": { "post": { "operationId": "UsersMfaControllerV1_disableAuthenticatorMfa", "summary": "Disable authenticator app MFA", "description": "This route disables MFA enrollment for a logged-in user for a specific tenant. Send the **`frontegg-user-id`** header to declare which user. The MFA token should be obtained from the authenticator app. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "deviceId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DisableMFAAuthAppRequest" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/mfa/sms/{deviceId}/disable": { "post": { "operationId": "UsersMfaControllerV1_preDisableSMSMfa", "summary": "Pre-disable SMS MFA", "parameters": [ { "name": "deviceId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestDisableMFARequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestDisableMFASMSResponse" } } } } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/mfa/sms/{deviceId}/disable/verify": { "post": { "operationId": "UsersMfaControllerV1_disableSMSMfa", "summary": "Disable SMS MFA", "parameters": [ { "name": "deviceId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DisableMFASMSRequest" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/user/mfa/verify": { "post": { "operationId": "AuthenticationMFAControllerV1_verifyAuthenticatorMfaCode", "summary": "Verify MFA using code from authenticator app", "description": "This route verifies the MFA code from an authenticator app. Send the **`frontegg-vendor-host`** as a header. This is your domain name in the Frontegg Portal ➜ Workspace Settings ➜ Domains ➜ Domain Name. Send information required for MFA in the POST body. The `value` is the service name from your Authentication Settings in the Frontegg Portal. The MFA token is from the authenticator app.", "deprecated": true, "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyMFAAuthAppRequest" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/user/mfa/emailcode": { "post": { "operationId": "AuthenticationMFAControllerV1_preVerifyEmailOtcMfa", "summary": "Request verify MFA using email code", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthRequestVerifyMfaRequest" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/user/mfa/emailcode/verify": { "post": { "operationId": "AuthenticationMFAControllerV1_verifyEmailOtcMfa", "summary": "Verify MFA using email code", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyMFAEmailOTCRequest" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/user/mfa/authenticator/enroll": { "post": { "operationId": "AuthenticationMFAControllerV1_preEnrollAuthenticatorMfa", "summary": "Pre enroll MFA using Authenticator App", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthRequestEnrollMFARequest" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/user/mfa/authenticator/enroll/verify": { "post": { "operationId": "AuthenticationMFAControllerV1_enrollAuthenticatorMfa", "summary": "Enroll MFA using Authenticator App", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyEnrollMFAAuthAppRequest" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/user/mfa/authenticator/{deviceId}/verify": { "post": { "operationId": "AuthenticationMFAControllerV1_verifyAuthenticatorMfa", "summary": "Verify MFA using authenticator app", "description": "This route verifies MFA as part of the authentication process. Send the **`frontegg-vendor-host`** as a header. This is your domain name in the Frontegg Portal ➜ Workspace Settings ➜ Domains ➜ Domain Name. Send information required for MFA in the POST body. The `value` is the service name from your Authentication Settings in the Frontegg Portal. The MFA token is from the authenticator app.", "parameters": [ { "name": "deviceId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyMFAAuthAppRequest" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/user/mfa/sms/enroll": { "post": { "operationId": "AuthenticationMFAControllerV1_preEnrollSmsMfa", "summary": "Pre-enroll MFA using sms", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestEnrollMFASMSRequest" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/user/mfa/sms/enroll/verify": { "post": { "operationId": "AuthenticationMFAControllerV1_enrollSmsMfa", "summary": "Enroll MFA using sms", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyEnrollMFASMSRequest" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/user/mfa/sms/{deviceId}": { "post": { "operationId": "AuthenticationMFAControllerV1_preVerifySmsMfa", "summary": "Request to verify MFA using sms", "parameters": [ { "name": "deviceId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthRequestVerifyMfaRequest" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/user/mfa/sms/{deviceId}/verify": { "post": { "operationId": "AuthenticationMFAControllerV1_verifySmsMfa", "summary": "Verify MFA using sms", "parameters": [ { "name": "deviceId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyMFASMSRequest" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/user/mfa/webauthn/enroll": { "post": { "operationId": "AuthenticationMFAControllerV1_preEnrollWebauthnMfa", "summary": "Pre enroll MFA using WebAuthN", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthRequestEnrollMFARequest" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/user/mfa/webauthn/enroll/verify": { "post": { "operationId": "AuthenticationMFAControllerV1_enrollWebauthnMfa", "summary": "Enroll MFA using WebAuthN", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyEnrollMFAWebAuthnRequest" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/user/mfa/webauthn/{deviceId}": { "post": { "operationId": "AuthenticationMFAControllerV1_preVerifyWebauthnMfa", "summary": "Request verify MFA using WebAuthN", "parameters": [ { "name": "deviceId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthRequestVerifyMfaRequest" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/user/mfa/webauthn/{deviceId}/verify": { "post": { "operationId": "AuthenticationMFAControllerV1_verifyWebauthnMfa", "summary": "Verify MFA using webauthn", "parameters": [ { "name": "deviceId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyMFAWebAuthnRequest" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/mfa-policy/allow-remember-device": { "get": { "operationId": "SecurityPolicyController_checkIfAllowToRememberDevice", "summary": "Check if remember device allowed", "description": "This route checks if remember device is allowed for all tenants. To check if remember device is allowed for a specific tenant, send the tenant’s ID in the **`frontegg-tenant-id`** header. Get the mfa token from the authenticator app and send it as a query params.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } }, { "name": "mfaToken", "required": true, "in": "query", "description": "MFA token from the response body of the first factor authentication", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CheckAllowRememberResponse" } } } } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/mfa/enroll": { "post": { "operationId": "UsersMfaControllerV1_enrollAuthAppMfa", "summary": "Enroll authenticator app MFA", "description": "This route enrolls MFA for a logged-in user for a specific tenant. Send the **`frontegg-user-id`** header to declare which user. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "deprecated": true, "parameters": [ { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestEnrollAuthenticatorAppMfaResponse" } } } } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/mfa/authenticator/enroll": { "post": { "operationId": "UsersMfaControllerV1_enrollAuthenticatorMfa", "summary": "Enroll authenticator app MFA", "description": "This route enrolls MFA for a logged-in user for a specific tenant. Send the **`frontegg-user-id`** header to declare which user. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestEnrollAuthenticatorAppMfaResponse" } } } } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/mfa/enroll/verify": { "post": { "operationId": "UsersMfaControllerV1_verifyAuthAppMfaEnrollment", "summary": "Verify authenticator app MFA enrollment", "description": "This route verifies MFA enrollment using a QR code. Send the **`frontegg-user-id`** header to declare which user. Send information required for MFA in the POST body. The MFA token should be obtained from the authenticator app after scanning the QR code received . A vendor token is required for this route, it can be obtained from the vendor authentication route.", "deprecated": true, "parameters": [ { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyEnrollMFAUserAuthAppRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyEnrollMFAResponse" } } } } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/mfa/authenticator/enroll/verify": { "post": { "operationId": "UsersMfaControllerV1_verifyAuthenticatorMfaEnrollment", "summary": "Verify authenticator app MFA enrollment", "description": "This route verifies MFA enrollment using a QR code. Send the **`frontegg-user-id`** header to declare which user. Send information required for MFA in the POST body. The MFA token should be obtained from the authenticator app after scanning the QR code received . A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyEnrollMFAUserAuthAppRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyEnrollMFAResponse" } } } } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/mfa/sms/enroll": { "post": { "operationId": "UsersMfaControllerV1_preEnrollSmsMfa", "summary": "Enroll SMS MFA", "parameters": [ { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RequestEnrollMFASMSRequest" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/mfa/sms/enroll/verify": { "post": { "operationId": "UsersMfaControllerV1_enrollSmsMfa", "summary": "Verify MFA enrollment", "parameters": [ { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyEnrollMFASMSRequest" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "MFA" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/passwordless/smscode/prelogin": { "post": { "operationId": "AuthenticationPasswordlessControllerV1_smsCodePreLogin", "summary": "SMS code prelogin", "description": "This route triggers the system to send an SMS to the user and is the first step when authenticating using the sms otc passwordless mechanism. Send the **`frontegg-vendor-host`** as a header to declare which vendor. This is your domain name in the Frontegg Portal ➜ Workspace Settings ➜ Domains ➜ Domain Name. Send the user's email as POST body params. Include the invitation token if the user is signing up by invitation. Send the recaptcha token if the recaptcha is enabled for login.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordlessAuthenticationSmsOtcPreloginDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordlessAuthenticationSmsOTCPreloginResponseDto" } } } }, "400": { "description": "User does not have a phone number" } }, "tags": [ "Passwordless" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/passwordless/smscode/postlogin": { "post": { "operationId": "AuthenticationPasswordlessControllerV1_smsCodePostLogin", "summary": "SMS code postlogin", "description": "This route authenticates a local user and is the second step when authenticating using the sms otc passwordless mechanism. Send the **`frontegg-vendor-host`** as a header to declare which vendor. This is your domain name in the Frontegg Portal ➜ Workspace Settings ➜ Domains ➜ Domain Name. Send the user's token id as a POST body params. Include the invitation token if the user is signing up by invitation. Send the recaptcha token if the recaptcha is enabled for login. The route returns the refresh cookie and JWT.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthenticateUserPasswordlessDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthenticationResponseDto" } } } } }, "tags": [ "Passwordless" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/passwordless/magiclink/prelogin": { "post": { "operationId": "AuthenticationPasswordlessControllerV1_magicLinkPrelogin", "summary": "Magic link prelogin", "description": "This route triggers the system to send the magic link to the user and is the first step when authenticating a local user with the magic link passwordless mechanism. Send the **`frontegg-vendor-host`** as a header to declare which vendor. This is your domain name in the Frontegg Portal ➜ Workspace Settings ➜ Domains ➜ Domain Name. Send the user's email as POST body params. Include the invitation token if the user is signing up by invitation. Send the recaptcha token if the recaptcha is enabled for login.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordlessAuthenticationPreloginDto" } } } }, "responses": { "200": { "description": "" }, "400": { "description": "Invalid authentication type, magic link authentication should be enabled" } }, "tags": [ "Passwordless" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/passwordless/magiclink/postlogin": { "post": { "operationId": "AuthenticationPasswordlessControllerV1_magicLinkPostLogin", "summary": "Magic link postlogin", "description": "This route authenticates a local user and is the second step when using the magic link passwordless mechanism. Send the **`frontegg-vendor-host`** as a header to declare which vendor. This is your domain name in the Frontegg Portal ➜ Workspace Settings ➜ Domains ➜ Domain Name. Send the user's token id as POST body params. Include the invitation token if the user is signing up by invitation. Send the recaptcha token if the recaptcha is enabled for login. The route returns the refresh cookie and JWT.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthenticateUserPasswordlessDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthenticationResponseDto" } } } } }, "tags": [ "Passwordless" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/passwordless/code/prelogin": { "post": { "operationId": "AuthenticationPasswordlessControllerV1_emailCodePrelogin", "summary": "OTC (One-Time Code) prelogin", "description": "This route triggers the system to send a one-time code to the user and is the first step when authenticating a local user using the email otc passwordless mechanism. Send the **`frontegg-vendor-host`** as a header to declare which vendor. This is your domain name in the Frontegg Portal ➜ Workspace Settings ➜ Domains ➜ Domain Name. Send the user's email as POST body params. Include the invitation token if the user is signing up by invitation. Send the recaptcha token if the recaptcha is enabled for login.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordlessAuthenticationPreloginDto" } } } }, "responses": { "201": { "description": "" }, "400": { "description": "Invalid authentication type, OTC (One-Time Code) authentication should be enabled" } }, "tags": [ "Passwordless" ], "security": [ { "bearer": [] } ] } }, "/resources/auth/v1/passwordless/code/postlogin": { "post": { "operationId": "AuthenticationPasswordlessControllerV1_emailCodePostLogin", "summary": "OTC (One-Time Code) postlogin", "description": "This route authenticates a local user and is the second step when using the email otc passwordless mechanism. Send the **`frontegg-vendor-host`** as a header to declare which vendor. This is your domain name in the Frontegg Portal ➜ Workspace Settings ➜ Domains ➜ Domain Name. Send the user's token id as POST body params. Include the invitation token if the user is signing up by invitation. Send the recaptcha token if the recaptcha is enabled for login. The route returns the refresh cookie and JWT.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthenticateUserPasswordlessDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthenticationResponseDto" } } } } }, "tags": [ "Passwordless" ], "security": [ { "bearer": [] } ] } }, "/resources/tenants/invites/v1": { "post": { "operationId": "TenantInvitesController_createTenantInvite", "summary": "Create tenant invite", "description": "This route creates a general invitation token. To create an invitation token for a specific tenant, send the tenant’s ID in the request’s body. To create an invitation token for a specific user of a tenant, you can add the user ID on the body params. If a user ID was provided, you can decide wether to send an email to the user or not via the shouldSendEmail param. In order to set up a specific expiration time, use the expiresInMinutes to declare when the invite is being invalidated. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInviteTokenRequest" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InviteTokenDto" } } } } }, "tags": [ "Account invitations settings" ], "security": [ { "bearer": [] } ] } }, "/resources/tenants/invites/v1/all": { "get": { "operationId": "TenantInvitesController_getAllInvites", "summary": "Get all tenant invites", "description": "This route gets all invitations for all tenants. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/InviteTokenDto" } } } } } }, "tags": [ "Account invitations settings" ], "security": [ { "bearer": [] } ] } }, "/resources/tenants/invites/v1/token/{id}": { "delete": { "operationId": "TenantInvitesController_deleteTenantInvite", "summary": "Delete a tenant invite", "description": "This route deletes an invitation to join a tenant using the invitation ID. You can find it via the Get all tenant invites API. Send the invitation ID as a path param - you can get if via the **Get all tenant invites** API. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Account invitations settings" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/activation/strategies": { "get": { "operationId": "ActivationStrategyControllerV1_getActivationStrategy", "summary": "Get activation strategies", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActivationStrategyResponse" } } } } }, "tags": [ "Account invitations settings" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "ActivationStrategyControllerV1_createOrUpdateActivationStrategy", "summary": "Create or update activation strategy", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateOrUpdateActivationStrategyRequest" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "Account invitations settings" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/invitation/strategies": { "get": { "operationId": "InvitationStrategyControllerV1_getInvitationStrategy", "summary": "Get invitation strategies", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InvitationStrategyResponse" } } } } }, "tags": [ "Account invitations settings" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "InvitationStrategyControllerV1_createOrUpdateInvitationStrategy", "summary": "Create or update invitation strategy", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateOrUpdateInvitationStrategyRequest" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "Account invitations settings" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1": { "post": { "operationId": "VendorConfigController_addOrUpdateConfig", "summary": "Update identity management configuration", "description": "This route updates the identity management configuration for a vendor. Send values in the POST body for params that you want to add or update. See the dropdown for available values for each param.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorConfigRequest" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorConfigResponse" } } } } }, "tags": [ "Core settings" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "VendorConfigController_getVendorConfig", "summary": "Get identity management configuration", "description": "This route gets the identity management configuration for a vendor.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorConfigResponse" } } } } }, "tags": [ "Core settings" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/captcha-policy": { "post": { "operationId": "CaptchaPolicyController_createCaptchaPolicy", "summary": "Create captcha policy", "description": "This route creates a captcha policy for all tenants. To enable the Captcha Policy, make sure to set the enabled variable to true, the site key and secret key to the ones you got from reCaptcha and the minimum score to a number between 0 to 1.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CaptchaPolicyRequest" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CaptchaPolicyResponse" } } } } }, "tags": [ "Core settings" ], "security": [ { "bearer": [] } ] }, "put": { "operationId": "CaptchaPolicyController_updateCaptchaPolicy", "summary": "Update captcha policy", "description": "This route updates a captcha policy for all tenants. To enable the Captcha Policy, make sure to set the enabled variable to true, the site key and secret key to the ones you got from reCaptcha and the minimum score to a number between 0 to 1.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CaptchaPolicyRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CaptchaPolicyResponse" } } } } }, "tags": [ "Core settings" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "CaptchaPolicyController_getCaptchaPolicy", "summary": "Get captcha policy", "description": "This route gets the captcha policy. It returns the policy’s ID, site key, secret key, minimum score and ignored emails and wether the . ", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CaptchaPolicyResponse" } } } } }, "tags": [ "Core settings" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/basic": { "get": { "operationId": "VendorConfigController_getVendorConfigBasic", "summary": "Get identity management configuration", "description": "This route gets the identity management configuration for a vendor.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorConfigBasicResponse" } } } } }, "tags": [ "Core settings" ], "security": [ { "bearer": [] } ] } }, "/resources/sso/custom/v1": { "post": { "operationId": "CustomSsoV1Controller_createSsoProvider", "summary": "Create custom oauth provider", "description": "This route creates a custom social login provider using OAuth details of the identity provider", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateCustomSsoRequestDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "Custom social OAuth provider" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "SsoV2Controller_getSsoProviders", "summary": "Get custom oauth provider", "description": "This route fetches the custom social login providers on an environment", "parameters": [], "responses": { "200": { "description": "" } }, "tags": [ "Custom social OAuth provider" ], "security": [ { "bearer": [] } ] } }, "/resources/sso/custom/v1/{id}": { "patch": { "operationId": "CustomSsoV1Controller_updateSsoProvider", "summary": "Update custom oauth provider", "description": "This route updates the custom social login provider on an environment by ID", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateCustomSsoRequestDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "Custom social OAuth provider" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "CustomSsoV1Controller_deleteCustomSsoConfig", "summary": "Delete custom oauth provider", "description": "This route deletes the custom social login provider on an environment by ID", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Custom social OAuth provider" ], "security": [ { "bearer": [] } ] } }, "/resources/migrations/v1/auth0": { "post": { "operationId": "UsersControllerV1_migrateUserFromAuth0", "summary": "Migrate from Auth0", "description": "This route enables you to migrate your users from Auth0 to Frontegg easily. Add the Domain, Client ID, Secret and the tenant’s ID Field Name - they’ll be found on Auth0 and the migration will be as smooth as possible.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Auth0Configuration" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "Data migration" ], "security": [ { "bearer": [] } ] } }, "/resources/migrations/v1/local": { "post": { "operationId": "UsersControllerV1_migrateUserForVendor", "summary": "Migrate a vendor user", "description": "This route enables you to migrate a user by sending the following required fields: user’s email, their tenantId and metadata, a new user will be created. This endpoint takes other properties as well, such as the user’s name, their phone number, hashed password, etc...", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MigrateUserRequest" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserDto" } } } } }, "tags": [ "Data migration" ], "security": [ { "bearer": [] } ] } }, "/resources/migrations/v1/local/bulk": { "post": { "operationId": "UsersControllerV1_bulkMigrateUserForVendor", "summary": "Migrate vendor users in bulk", "description": "This route enables you to migrate users in bulk. Expects an array of `users`. Each entry must include a user's `email` and `tenantId`, which specifies that user's parent account. Use the the other fields as needed to store additional information. We recommend using the `metadata` property if you need to store custom information in a user's object.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MigrateUsersRequest" } } } }, "responses": { "202": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MigrationContext" } } } } }, "tags": [ "Data migration" ], "security": [ { "bearer": [] } ] } }, "/resources/migrations/v1/local/bulk/status/{migrationId}": { "get": { "operationId": "UsersControllerV1_checkBulkMigrationStatus", "summary": "Check status of bulk migration", "description": "This route returns the status of a pending or completed migration. The payload includes the migration's current `state`, the number of migrated users, and any errors that occured during migration. Payload is limited to 1,000 users.", "parameters": [ { "name": "migrationId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MigrationObject" } } } } }, "tags": [ "Data migration" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/delegation": { "get": { "operationId": "DelegationConfigurationControllerV1_getDelegationConfiguration", "x-vendor-only": "true", "summary": "Get delegation configuration", "description": "Get information about the delegation configuration (if enabled). A vendor token is required for this route.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetDelegationConfigurationResponseDto" } } } } }, "tags": [ "Delegation" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "DelegationConfigurationControllerV1_createOrUpdateDelegationConfiguration", "x-vendor-only": "true", "summary": "Create or update delegation configuration", "description": "Enable or disable the ability to use delegation in a token exchange flow. A vendor token is required for this route.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateDelegationConfigurationRequestDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "Delegation" ], "security": [ { "bearer": [] } ] } }, "/resources/mail/v1/configurations": { "post": { "operationId": "MailConfigController_createOrUpdateMailConfig", "summary": "Create or update configuration", "description": "Frontegg sends emails via SendGrid. If you already have an account on SendGrid and you wish emails to be sent from your SendGrid account, pass the SendGrid secret key as a body param. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "deprecated": true, "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateOrUpdateMailConfigRequestDto" } } } }, "responses": { "200": { "description": "" }, "201": { "description": "" } }, "tags": [ "Email configuration" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "MailConfigController_getMailConfig", "summary": "Get configuration", "description": "This route returns the mail configuration setup on Frontegg for your SendGrid account. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetMailConfigResponseDto" } } } } }, "tags": [ "Email configuration" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "MailConfigController_deleteMailConfig", "summary": "Delete configuration", "description": "A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [], "responses": { "200": { "description": "" } }, "tags": [ "Email configuration" ], "security": [ { "bearer": [] } ] } }, "/resources/mail/v2/configurations": { "post": { "operationId": "MailConfigController_createOrUpdateMailConfigV2", "summary": "Create or update configuration v2", "description": "Configure and manage email settings with our controller, supporting SES, Mailgun, and SendGrid. Easily set the email provider and sender details, include additional parameters as needed, and send configuration data via POST. A vendor token from the authentication route is required.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "payload": { "oneOf": [ { "$ref": "#/components/schemas/SendGridDto" }, { "$ref": "#/components/schemas/SesDto" }, { "$ref": "#/components/schemas/MailgunDto" }, { "$ref": "#/components/schemas/SesRoleDto" } ] } } } } } }, "responses": { "201": { "description": "" } }, "tags": [ "Email configuration" ], "security": [ { "bearer": [] } ] } }, "/resources/mail/v1/configs/templates": { "post": { "operationId": "MailV1Controller_addOrUpdateTemplate", "summary": "Add or update template", "description": "This route creates or updates an email template. Select the email template using the type. The type value needs to be the name of one of the Frontegg email templates. See the dropdown for available values. Also, set the sender using senderEmail. Optionally, include values for the other available body params. Send the information for the template in the POST body. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTemplateDto" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "Email templates" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "MailV1Controller_getTemplateConfiguration", "summary": "Get template", "description": "This route gets all the vendor’s email templates. In order to get a specific template, pass its type as a query param. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "type", "required": false, "in": "query", "schema": { "enum": [ "ResetPassword", "ActivateUser", "InviteToTenant", "PwnedPassword", "MagicLink", "OTC", "ConnectNewDevice", "UserUsedInvitation", "ResetPhoneNumber", "BulkInvitesToTenant", "MFAEnroll", "MFAUnenroll", "NewMFAMethod", "MFARecoveryCode", "RemoveMFAMethod", "EmailVerification", "BruteForceProtection", "SuspiciousIP", "MFAOTC", "ImpossibleTravel", "BotDetection", "SmsAuthenticationEnabled", "UnlockUser", "UnlockUserSuccess", "ActivateUserWithCode", "InviteToTenantWithCode" ], "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/GetTemplateResponseDto" } } } } } }, "tags": [ "Email templates" ], "security": [ { "bearer": [] } ] } }, "/resources/mail/v1/configs/templates/{templateId}": { "delete": { "operationId": "MailV1Controller_deleteTemplate", "summary": "Delete template", "description": "This route deletes specified email template. Select the email template using the ID of the template - which can be obtained via the **Get template** API. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "templateId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Email templates" ], "security": [ { "bearer": [] } ] } }, "/resources/mail/v1/configs/{type}/default": { "get": { "operationId": "MailV1Controller_getDefaultTemplateConfiguration", "summary": "Get default template by type", "description": "This route gets default email template by type, pass required type as a query param.", "parameters": [ { "name": "type", "required": true, "in": "path", "description": "The email template type", "schema": { "enum": [ "ResetPassword", "ActivateUser", "InviteToTenant", "PwnedPassword", "MagicLink", "OTC", "ConnectNewDevice", "UserUsedInvitation", "ResetPhoneNumber", "BulkInvitesToTenant", "MFAEnroll", "MFAUnenroll", "NewMFAMethod", "MFARecoveryCode", "RemoveMFAMethod", "EmailVerification", "BruteForceProtection", "SuspiciousIP", "MFAOTC", "ImpossibleTravel", "BotDetection", "SmsAuthenticationEnabled", "UnlockUser", "UnlockUserSuccess", "ActivateUserWithCode", "InviteToTenantWithCode" ], "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetTemplateResponseDto" } } } } }, "tags": [ "Email templates" ], "security": [ { "bearer": [] } ] } }, "/resources/vendor-only/users/access-tokens/v1/active": { "get": { "operationId": "VendorOnlyUserAccessTokensV1Controller_getActiveAccessTokens", "summary": "Get active access tokens list", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" } } } } } }, "tags": [ "M2M" ], "security": [ { "bearer": [] } ] } }, "/resources/vendor-only/users/access-tokens/v1/{id}": { "get": { "operationId": "VendorOnlyUserAccessTokensV1Controller_getUserAccessTokenData", "summary": "Get user access token data", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthUserAccessTokenResponse" } } } } }, "tags": [ "M2M" ], "security": [ { "bearer": [] } ] } }, "/resources/vendor-only/tenants/access-tokens/v1/{id}": { "get": { "operationId": "VendorOnlyTenantAccessTokensV1Controller_getTenantAccessTokenData", "summary": "Get tenant access token data", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthTenantAccessTokenResponse" } } } } }, "tags": [ "M2M" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/mfa": { "post": { "operationId": "MfaController_upsertMfaConfig", "summary": "Update MFA configuration", "description": "This route updates the MFA configuration for a vendor. Send values in the POST body as objects for params that you want to add or update. See the dropdowns for available values for each object param.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MfaConfigRequest" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MfaConfigResponse" } } } } }, "tags": [ "MFA configuration" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "MfaController_getMfaConfig", "summary": "Get MFA configuration", "description": "This route gets the MFA configuration for a vendor.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MfaConfigResponse" } } } } }, "tags": [ "MFA configuration" ], "security": [ { "bearer": [] } ] } }, "/resources/permissions/v1/categories": { "get": { "operationId": "PermissionsCategoriesController_getAllCategoriesWithPermissions", "summary": "Get permissions categories", "description": "This route returns all permissions categories for a vendor. Each category is an object containing the name, description, permissions, and other defining information.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PermissionCategoryResponseDto" } } } } } }, "tags": [ "Permission categories" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "PermissionsCategoriesController_createPermissionCategory", "summary": "Create category", "description": "Use this route to add a new permissions category. Each category you add requires you to send information about the category in the POST body. Note that you do not associate the category with permissions here. You do that using the add and update permission routes where you send the category ID as a body parameter.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateCategoryDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PermissionCategoryResponseDto" } } } } }, "tags": [ "Permission categories" ], "security": [ { "bearer": [] } ] } }, "/resources/permissions/v1/categories/{categoryId}": { "patch": { "operationId": "PermissionsCategoriesController_updateCategory", "summary": "Update category", "description": "This route updates an existing permissions category. Add the category ID as a path parameter to the route url to specify which category you are updating. Send the updated information about the category in the PATCH body. Note that here is not where you update the permissions associated with the category. Use the add or update permissions routes to do that. Use the **Get categories** API to get ", "parameters": [ { "name": "categoryId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateCategoryDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "Permission categories" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "PermissionsCategoriesController_deleteCategory", "summary": "Delete category", "description": "This route deletes a category. Add the category ID as a path parameter to the route url to specify which category you are deleting. Use the **Get categories** API to get the category ID.", "parameters": [ { "name": "categoryId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Permission categories" ], "security": [ { "bearer": [] } ] } }, "/resources/permissions/v1": { "get": { "operationId": "PermissionsControllerV1_getAllPermissions", "summary": "Get permissions", "description": "This route returns all permissions for the vendor. Each permission is an object containing 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": "This route adds a new permission. Each permission you add requires information about the permission in the POST body. Note that you do not associate permissions to the role here. Use the associate permission to roles route to do that.", "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}": { "delete": { "operationId": "PermissionsControllerV1_deletePermission", "summary": "Delete permission", "description": "This route deletes a permission. Add the permission ID as a path parameter to the route url to specify which permission you are deleting. Use the **Get permissions** API to get the permission ID.", "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": "This route updates an existing permission. Add the permission ID as a path parameter to the route url to specify which permission you are updating. Send the updated information about the permission in the PATCH body. Note that you do not update roles for the permission here. Use the associate permission to roles route to do that.", "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": { "put": { "operationId": "PermissionsControllerV1_setRolesToPermission", "summary": "Set a permission to multiple roles", "description": "This route associates a permission to multiple roles. Add the permission ID as a path parameter to the route url and include the role IDs in the request body as an array of strings. Any pre-existing roles associated with the permission will stay associated. Use the **Get roles** API to get the role IDs.", "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": { "put": { "operationId": "PermissionsControllerV1_updatePermissionsAssignmentType", "summary": "Set permissions classification", "description": "This route accepts an array of **`permissionIds`** and the type for these permissions classifications. This allows segregating which permissions will be used from 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": [] } ] } }, "/resources/roles/v1": { "get": { "operationId": "PermissionsControllerV1_getAllRoles", "summary": "Get roles", "description": "This route returns all roles for all tenants. To get a role for a specific tenant, send the tenant ID in the **`frontegg-tenant-id`** header. Each role is an object containing the name, permissions, and other defining information.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "For relating a role to a specific tenant, use `get tenants` API to find the tenant ids", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RoleResponse" } } } } } }, "tags": [ "Roles" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "PermissionsControllerV1_addRoles", "summary": "Create roles", "description": "This route adds a new role for all tenants. To add a role for a specific tenant, send tenant ID in the **`frontegg-tenant-id`** header. Each role you add requires information about the role in the POST body. Note that you do not assign permissions to the role here. Use the attach permissions to role route to do that.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "For relating a role to a specific tenant, use `get tenants` API to find the tenant ids", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AddRoleRequest" } } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RoleResponse" } } } } } }, "tags": [ "Roles" ], "security": [ { "bearer": [] } ] } }, "/resources/roles/v1/{roleId}": { "delete": { "operationId": "PermissionsControllerV1_deleteRole", "summary": "Delete role", "description": "This route deletes a role. Add the role ID as a path parameter to the route url to specify which role you are deleting.", "parameters": [ { "name": "roleId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "For relating a role to a specific tenant, use `get tenants` API to find the tenant ids", "required": false, "schema": { "type": "string" } } ], "responses": { "204": { "description": "" } }, "tags": [ "Roles" ], "security": [ { "bearer": [] } ] }, "patch": { "operationId": "PermissionsControllerV1_updateRole", "summary": "Update role", "description": "This route updates an existing role. Add the role ID as a path parameter to the route url to specify which role you are updating. Send the updated information about the role in the PATCH body. Note that you do not update permissions for the role here. Use the attach permissions to role route to do that. Use the **Get roles** API to get the role ID.", "parameters": [ { "name": "roleId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "For relating a role to a specific tenant, use `get tenants` API to find the tenant ids", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateRoleRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoleResponse" } } } } }, "tags": [ "Roles" ], "security": [ { "bearer": [] } ] } }, "/resources/roles/v1/{roleId}/permissions": { "put": { "operationId": "PermissionsControllerV1_setPermissionsToRole", "summary": "Assign permissions to a role", "description": "This route assigns permissions to a role. Add the role ID as a path parameter to the route url and include the permission IDs in the request body as an array of strings. Any pre-existing permissions will be overridden by the new permissions. Use the get roles API to get the role IDs. Use the **Get permissions** API to get the permissions IDs.", "parameters": [ { "name": "roleId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "For relating a role to a specific tenant, use `get tenants` API to find the tenant ids", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddPermissionToRoleRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoleResponse" } } } } }, "tags": [ "Roles" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/sms": { "post": { "operationId": "VendorSmsController_createSmsVendorConfig", "summary": "Creates or updates a vendor SMS config", "description": "This route creates or updates SMS configuration for a vendor.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSmsVendorConfigRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SmsVendorConfigResponse" } } } }, "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SmsVendorConfigResponse" } } } } }, "tags": [ "SMS configuration" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "VendorSmsController_deleteSmsVendorConfig", "summary": "Deletes a vendor SMS config", "parameters": [], "responses": { "200": { "description": "" } }, "tags": [ "SMS configuration" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "VendorSmsController_getSmsVendorConfig", "summary": "Gets a vendor SMS config", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SmsVendorConfigResponse" } } } } }, "tags": [ "SMS configuration" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/sms/templates": { "get": { "operationId": "VendorSmsController_getAllSmsTemplates", "summary": "Gets vendor SMS templates", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SmsTemplateResponse" } } } } }, "tags": [ "SMS templates" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/sms/templates/{type}": { "get": { "operationId": "VendorSmsController_getSmsTemplate", "summary": "Gets vendor SMS template by type", "parameters": [ { "name": "type", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SmsTemplateResponse" } } } } }, "tags": [ "SMS templates" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "VendorSmsController_deleteSmsTemplate", "summary": "Deletes vendor SMS template by type", "parameters": [ { "name": "type", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "SMS templates" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "VendorSmsController_createSmsTemplate", "summary": "Create or update a vendor SMS template", "parameters": [ { "name": "type", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSmsTemplateRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SmsTemplateResponse" } } } }, "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SmsTemplateResponse" } } } } }, "tags": [ "SMS templates" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/sms/templates/{type}/default": { "get": { "operationId": "VendorSmsController_getSmsDefaultTemplate", "summary": "Gets vendor default SMS template by type", "parameters": [ { "name": "type", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SmsTemplateResponse" } } } } }, "tags": [ "SMS templates" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/sessions/v1/vendor": { "get": { "operationId": "SessionConfigurationControllerV1_getVendorSessionConfiguration", "summary": "Get environment session configuration", "parameters": [], "responses": { "200": { "description": "" } }, "tags": [ "Sessions configuration" ], "security": [ { "bearer": [] } ] } }, "/resources/user-sources/v1": { "get": { "operationId": "UserSourcesControllerV1_getUserSources", "summary": "Get vendor user sources", "description": "This route gets all vendor's user sources. A vendor token is required for this route.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/GetUserSourceExtendedResponseDTO" } } } } } }, "tags": [ "User sources (pools)" ], "security": [ { "bearer": [] } ] } }, "/resources/user-sources/v1/{id}": { "get": { "operationId": "UserSourcesControllerV1_getUserSource", "summary": "Get vendor user source", "description": "This route gets a user source by id. A vendor token is required for this route.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetUserSourceResponseDTO" } } } } }, "tags": [ "User sources (pools)" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "UserSourcesControllerV1_deleteUserSource", "summary": "Delete user source", "description": "This route deletes a user source. A vendor token is required for this route.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "User sources (pools)" ], "security": [ { "bearer": [] } ] } }, "/resources/user-sources/v1/external/auth0": { "post": { "operationId": "UserSourcesControllerV1_createAuth0ExternalUserSource", "summary": "Create Auth0 external user source", "description": "This route creates a new external user source. A vendor token is required for this route.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateAuth0ExternalUserSourceRequestDTO" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserSourceResponse" } } } } }, "tags": [ "User sources (pools)" ], "security": [ { "bearer": [] } ] } }, "/resources/user-sources/v1/external/cognito": { "post": { "operationId": "UserSourcesControllerV1_createCognitoExternalUserSource", "summary": "Create Cognito external user source", "description": "This route creates a new external user source. A vendor token is required for this route.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateCognitoExternalUserSourceRequestDTO" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserSourceResponse" } } } } }, "tags": [ "User sources (pools)" ], "security": [ { "bearer": [] } ] } }, "/resources/user-sources/v1/external/firebase": { "post": { "operationId": "UserSourcesControllerV1_createFirebaseExternalUserSource", "summary": "Create Firebase external user source", "description": "This route creates a new external user source. A vendor token is required for this route.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateFirebaseExternalUserSourceRequestDTO" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserSourceResponse" } } } } }, "tags": [ "User sources (pools)" ], "security": [ { "bearer": [] } ] } }, "/resources/user-sources/v1/external/custom-code": { "post": { "operationId": "UserSourcesControllerV1_createCustomCodeExternalUserSource", "summary": "Create Custom-Code external user source", "description": "This route creates a new external user source. A vendor token is required for this route.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateCustomCodeExternalUserSourceRequestDTO" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserSourceResponse" } } } } }, "tags": [ "User sources (pools)" ], "security": [ { "bearer": [] } ] } }, "/resources/user-sources/v1/federation": { "post": { "operationId": "UserSourcesControllerV1_createFederationUserSource", "summary": "Create Federation user source", "description": "This route creates a new federation user source. A vendor token is required for this route.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateFederationUserSourceRequestDTO" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserSourceResponse" } } } } }, "tags": [ "User sources (pools)" ], "security": [ { "bearer": [] } ] } }, "/resources/user-sources/v1/external/auth0/{id}": { "put": { "operationId": "UserSourcesControllerV1_updateAuth0ExternalUserSource", "summary": "Update Auth0 external user source", "description": "This route updates an external user source. A vendor token is required for this route.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateExternalAuth0UserSourceRequestDTO" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "User sources (pools)" ], "security": [ { "bearer": [] } ] } }, "/resources/user-sources/v1/external/cognito/{id}": { "put": { "operationId": "UserSourcesControllerV1_updateCognitoExternalUserSource", "summary": "Update Cognito external user source", "description": "This route updates an external user source. A vendor token is required for this route.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateExternalCognitoUserSourceRequestDTO" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "User sources (pools)" ], "security": [ { "bearer": [] } ] } }, "/resources/user-sources/v1/external/firebase/{id}": { "put": { "operationId": "UserSourcesControllerV1_updateFirebaseExternalUserSource", "summary": "Update Firebase external user source", "description": "This route updates an external user source. A vendor token is required for this route.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateExternalFirebaseUserSourceRequestDTO" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "User sources (pools)" ], "security": [ { "bearer": [] } ] } }, "/resources/user-sources/v1/external/custom-code/{id}": { "put": { "operationId": "UserSourcesControllerV1_updateCustomCodeExternalUserSource", "summary": "Update Custom-Code external user source", "description": "This route updates an external user source. A vendor token is required for this route.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateExternalCustomCodeUserSourceRequestDTO" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "User sources (pools)" ], "security": [ { "bearer": [] } ] } }, "/resources/user-sources/v1/federation/{id}": { "put": { "operationId": "UserSourcesControllerV1_updateFederationUserSource", "summary": "Update Federation user source", "description": "This route updates a federation user source. A vendor token is required for this route.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateFederationUserSourceRequestDTO" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "User sources (pools)" ], "security": [ { "bearer": [] } ] } }, "/resources/user-sources/v1/assign": { "post": { "operationId": "UserSourcesControllerV1_assignUserSource", "summary": "Assign applications to a user source", "description": "This route assigns applications to a user source. A vendor token is required for this route.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssignApplicationsToUserSourceRequestDTO" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "User sources (pools)" ], "security": [ { "bearer": [] } ] } }, "/resources/user-sources/v1/unassign": { "post": { "operationId": "UserSourcesControllerV1_unassignUserSource", "summary": "Unassign applications from a user source", "description": "This route unassigns applications from a user source. A vendor token is required for this route.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UnassignApplicationsFromUserSourceRequestDTO" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "User sources (pools)" ], "security": [ { "bearer": [] } ] } }, "/resources/user-sources/v1/{id}/users": { "get": { "operationId": "UserSourcesControllerV1_getUserSourceUsers", "summary": "Get user source users", "description": "This route gets all of users of a user source. A vendor token is required for this route.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/GetUserSourceUsersResponseDTO" } } } } } }, "tags": [ "User sources (pools)" ], "security": [ { "bearer": [] } ] } }, "/resources/vendor-only/users/v1/{userId}": { "get": { "operationId": "VendorOnlyUsers_getUserById", "summary": "Get user", "description": "This route gets a user by its ID regardless of any tenant the user belongs to. Send the user’s ID as a path params. The route is for vendor-use only.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserDto" } } } } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] } }, "/resources/vendor-only/users/v1/{userId}/mfa/unenroll": { "post": { "operationId": "VendorOnlyUsers_MFAUnenroll", "summary": "Unenroll user from MFA globally", "description": "This route unenrolls a user from MFA regardless of any tenant the user belongs to. Send the user’s ID as a path params. The route is for vendor-use only.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] } }, "/resources/vendor-only/users/v1/passwords/verify": { "post": { "operationId": "VendorOnlyUsers_verifyUserPassword", "summary": "Verify user's password", "description": "This route verify user email and password. Send the user’s email and password and the response will be true or false. The route is for vendor-use only.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidateUserPasswordRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidateUserPasswordResponse" } } } } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] } }, "/resources/vendor-only/users/v1": { "post": { "operationId": "VendorOnlyUsers_createUser", "summary": "Create user", "description": "This route creates a user and allows setting **`mfaBypass`** property on that user for testing purposes. The route is for vendor-use only.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserDtoVendorOnly" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserDto" } } } } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] } }, "/resources/tenants/users/v1/statuses": { "get": { "operationId": "get", "summary": "Get users tenants statuses", "description": "This route gets the tenants statuses of vendor users. Expects an array of **`userIds`** with max of 200 and optionally an array of **`userTenantStatuses`** as query params. Note that there is a limit of 2000 tenants statuses per user.", "parameters": [ { "name": "userIds", "required": true, "in": "query", "description": "User IDs", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "userTenantStatuses", "required": false, "in": "query", "description": "Tenant Statuses", "schema": { "type": "array", "items": { "type": "string", "enum": [ "PendingInvitation", "PendingLogin", "Activated", "NotActivated" ] } } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserTenantStatusesResponse" } } } } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] } }, "/resources/users/temporary/v1/configuration": { "put": { "operationId": "TemporaryUsersV1Controller_updateConfiguration", "summary": "Set temporary users configuration", "description": "This route updates the settings for temporary users, use it to enable or disable it for an environment", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemporaryUsersConfigurationDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemporaryUsersConfigurationDto" } } } } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "TemporaryUsersV1Controller_getConfiguration", "summary": "Gets temporary users configuration", "description": "This route get the settings for temporary users, use it to check whether the policy is's enabled or disabled", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemporaryUsersConfigurationDto" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/bulk/v1/invite": { "post": { "operationId": "UsersBulkControllerV1_bulkInviteUsers", "summary": "Invite users to tenant in bulk", "description": "This route enables you to invite users to tenant in bulk. Expects an array of `users`. Each entry must include a user's `email`.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UsersBulkInviteRequestDto" } } } }, "responses": { "202": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskContext" } } } } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] } }, "/resources/users/bulk/v1/status/{id}": { "get": { "operationId": "UsersBulkControllerV1_getBulkInviteStatus", "summary": "Get status of bulk invite task", "description": "This route enables you to invite users to tenant in bulk. Expects an array of `users`. Each entry must include a user's `email`.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/email": { "get": { "operationId": "UsersControllerV1_getUserByEmail", "summary": "Get user by email", "description": "This route get user by email", "parameters": [ { "name": "email", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CoreUserDto" } } } } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/{id}": { "get": { "operationId": "UsersControllerV1_getUserById", "summary": "Get user by ID", "description": "This route gets a specific user from a tenant. Send the tenant’s ID in the **`frontegg-tenant-id`** header to declare which tenant and send the user’s ID as a path params to declare which user. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserDto" } } } } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/{userId}": { "put": { "operationId": "UsersControllerV1_updateUserForVendor", "summary": "Update user globally", "description": "This route updates a user’s information globally, not just for a specific tenant. Send the user’s ID as a path params to identify specific user. Send the updated user values within the PUT body. The PUT request does a complete update of the resource, so include values for all of the body params that you want to have values. This is a global update, so do not send a **`frontegg-tenant-id`** within the header.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateVendorUserDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserDto" } } } } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "UsersControllerV1_removeUserFromTenant", "summary": "Remove user", "description": "This route removes a user globally or from a specific tenant. To remove the user globally, no need to send a **`frontegg-tenant-id`**. To remove the user from only a specific tenant, send the tenant’s ID in the **`frontegg-tenant-id`** header. Send the user's ID as a path params to declare which user you are removing. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier (optional)", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/{userId}/verify": { "post": { "operationId": "UsersControllerV1_verifyUser", "summary": "Verify user", "description": "This route marks a user as verified. Send the user’s ID as a path params. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/{userId}/invisible": { "put": { "operationId": "UsersControllerV1_setUserInvisibleMode", "summary": "Make user invisible", "description": "This route sets whether a user is invisible or visible. If a user is invisible, the user data remains in the Frontegg system but the user will not appear in the list of users in the admin box. An invisible user remains part of the tenant. Send the user’s ID as a path params. Also send as a PUT body params a Boolean value for invisible. True is invisible and false is visible. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUserInvisibleDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserDto" } } } } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/{userId}/superuser": { "put": { "operationId": "UsersControllerV1_setUserSuperuserMode", "summary": "Make User superuser", "description": "This route sets a user as a super-user. Note that super-user functionality is no longer maintained due to incompatibility with newer features. A super user has access to all tenants within the workspace. Send the user ID as the path params. Also send as a PUT body params a Boolean value for super user. True is super user and false is not. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUserSuperuserDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserDto" } } } } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/{userId}/tenant": { "put": { "operationId": "UsersControllerV1_updateUserTenantForVendor", "summary": "Set user's tenant", "description": "This route is for the vendor to set the active tenant of a user. The active tenant is the tenant the user will see in their admin portal and also the tenant for which the API reference will default to in situations where a route is tenant specific. Send the user ID as a path param and the tenant ID as a PUT body param. When using a non-existing tenant ID, there will be a tenant create for the provided ID. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUserTenantWithValidationDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserDto" } } } } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "UsersControllerV1_addUserToTenantForVendor", "summary": "Add user to tenant", "description": "This route adds a user to a tenant. Send the user ID as a path params and the tenant ID as a POST body params. To skip the invite email requirement, pass as an optional POST body params for skipInviteEmail. Set its value to true to skip the invite email. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddUserToTenantRequest" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserDto" } } } } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/{userId}/email": { "put": { "operationId": "UsersControllerV1_updateUserEmail", "summary": "Update user email", "description": "This route updates the email address for a user globally, regardless of tenant. Send the user’s ID as a path params. Send the user’s new email address as a PUT body params.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUserEmailDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserDto" } } } } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/{userId}/links/generate-activation-token": { "post": { "operationId": "UsersControllerV1_generateUserActivationLink", "summary": "Generate activation token", "description": "This route generates a new activation token for a user. Send the user’s ID as a path params. You may need this route in combination with the routes under Users Activation. It will not send the activation email itself, but return the activation link and token. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateUserActivationLinkResponseDto" } } } } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/{userId}/links/generate-password-reset-token": { "post": { "operationId": "UsersControllerV1_generateUserPasswordResetLink", "summary": "Generate password reset token", "description": "This route generates a password reset token for a user. Send the user’s ID as a path params. You may need this route in combination with the routes under Users Passwords. It will not send the reset password email itself, but return the reset link and token. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateUserResetPasswordLinkResponseDto" } } } } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/{userId}/unlock": { "post": { "operationId": "UsersControllerV1_unlockUser", "summary": "Unlock user", "description": "This route unlocks a locked user. An unlocked user can sign in and use the system globally, regardless of the tenant. To unlock a user, call this route and send the user’s ID as a path params. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/{userId}/lock": { "post": { "operationId": "UsersControllerV1_lockUser", "summary": "Lock user", "description": "This route locks a user. A locked user cannot sign in or use the system globally, regardless of the tenant. To lock a user, call this route and send the user’s ID as a path params. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/tenants/migrate": { "put": { "operationId": "UsersControllerV1_moveAllUsersTenants", "summary": "Move all users from one tenant to another", "description": "This route migrates all the users from the source tenant to the target. Specify in the request body the srcTenantId (the source tenant ID) and targetTenantId (the target tenant ID). A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MigrateUsersFromTenantToTenantRequest" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "Users" ], "security": [ { "bearer": [] } ] } }, "/resources/tenants/invites/v1/user": { "get": { "operationId": "TenantInvitesController_getTenantInviteForUser", "summary": "Get tenant invite of user", "description": "This route gets an invitation for a specific user to join a tenant. Send the user’s ID in the **`frontegg-user-id`** header and the tenant’s ID in the **`frontegg-tenant-id`** header.", "parameters": [ { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InviteTokenDto" } } } } }, "tags": [ "Account invitations" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "TenantInvitesController_createTenantInviteForUser", "summary": "Create tenant invite for user", "description": "This route creates an invitation for a specific user to join a tenant. Send the user’s ID in the **`frontegg-user-id`** header and the tenant’s ID in the **`frontegg-tenant-id`** header. To create a general invitation, use the general invitation route.", "parameters": [ { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInviteTokenRequestForUser" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InviteTokenDto" } } } } }, "tags": [ "Account invitations" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "TenantInvitesController_deleteTenantInviteForUser", "summary": "Delete tenant invite of user", "description": "This route deletes an invitation for a specific user to join a tenant. Send the user’s ID in the **`frontegg-user-id`** header and the tenant’s ID in the **`frontegg-tenant-id`** header. To delete a general invitation, use the general invitation route.", "parameters": [ { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Account invitations" ], "security": [ { "bearer": [] } ] }, "patch": { "operationId": "TenantInvitesController_updateTenantInviteForUser", "summary": "Update tenant invite of user", "description": "This route updates an invitation for a specific user to join a tenant. In order to set up a specific expiration time, use the expiresInMinutes to declare when the invite is being invalidated. The shouldSendEmail boolean declares wether an invitation email will be sent or not. Send the user’s ID in the **`frontegg-user-id`** header and the tenant’s ID in the **`frontegg-tenant-id`** header. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateInviteTokenRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InviteTokenDto" } } } } }, "tags": [ "Account invitations" ], "security": [ { "bearer": [] } ] } }, "/resources/tenants/invites/v1/verify": { "post": { "operationId": "TenantInvitesController_verifyTenantInvite", "summary": "Verify tenant invite", "description": "This route verifies a tenant invitation. Pass the invitation token as the token param. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyInviteTokenRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InviteTokenDto" } } } } }, "tags": [ "Account invitations" ], "security": [ { "bearer": [] } ] } }, "/resources/tenants/invites/v1/configuration": { "get": { "operationId": "getInvitationConfiguration", "summary": "Get tenant invite configuration", "description": "This route checks if the vendor allows tenant invitations and if notifications are active. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InvitationConfigurationResponse" } } } } }, "tags": [ "Account invitations" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/restrictions/v1/email-domain": { "post": { "operationId": "DomainRestrictionsController_createDomainRestriction", "summary": "Create domain restriction", "description": "This route creates a new domain restriction for a tenant. Send values in the POST body as objects. See the dropdowns for available values for each object param.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DomainRestrictionsCreateRequest" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DomainRestrictionsResponse" } } } } }, "tags": [ "Domain restrictions" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "DomainRestrictionsController_getDomainRestrictions", "summary": "Get domain restrictions", "description": "This route gets the domain restrictions for a tenant.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DomainRestrictionsResponse" } } } } }, "tags": [ "Domain restrictions" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/restrictions/v1/email-domain/config": { "get": { "operationId": "DomainRestrictionsController_getDomainRestrictionsConfig", "summary": "Get domain restrictions", "description": "This route gets the domain restrictions for a tenant.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DomainRestrictionsConfigResponse" } } } } }, "tags": [ "Domain restrictions" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "DomainRestrictionsController_updateDomainRestrictionsConfig", "summary": "Change domain restrictions config list type and toggle it off/on", "description": "This route updates domain restrictions config, can toggle check on/off.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DomainRestrictionsConfigUpdateRequest" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DomainRestrictionsConfigResponse" } } } } }, "tags": [ "Domain restrictions" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/restrictions/v1/email-domain/{id}": { "delete": { "operationId": "DomainRestrictionsController_deleteDomainRestriction", "summary": "Delete domain restriction", "description": "This route deletes domain restriction.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Domain restrictions" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/restrictions/v1/email-domain/replace-bulk": { "post": { "operationId": "DomainRestrictionsController_createBulkDomainsRestriction", "summary": "Replace bulk domain restriction", "description": "This route replaces all domains from the incoming request", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DomainRestrictionsBulkRequestRequest" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DomainRestrictionsResponse" } } } } } }, "tags": [ "Domain restrictions" ], "security": [ { "bearer": [] } ] } }, "/resources/groups/v1": { "get": { "operationId": "GroupsControllerV1_getAllGroups", "summary": "Get all groups", "description": "This route gets all user groups for a tenant.", "parameters": [ { "name": "_groupsRelations", "required": false, "in": "query", "schema": { "enum": [ "roles", "users", "rolesAndUsers" ], "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GroupsResponse" } } } } }, "tags": [ "User groups" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "GroupsControllerV1_createGroup", "summary": "Create group", "description": "This route creates user group for a tenant.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateGroupDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GroupResponse" } } } } }, "tags": [ "User groups" ], "security": [ { "bearer": [] } ] } }, "/resources/groups/v1/bulkGet": { "post": { "operationId": "GroupsControllerV1_getGroupsByIds", "summary": "Get groups by ids", "description": "This route gets user group by given IDs for a tenant.", "parameters": [ { "name": "_groupsRelations", "required": false, "in": "query", "schema": { "enum": [ "roles", "users", "rolesAndUsers" ], "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetGroupsDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GroupsResponse" } } } } }, "tags": [ "User groups" ], "security": [ { "bearer": [] } ] } }, "/resources/groups/v1/{id}": { "patch": { "operationId": "GroupsControllerV1_updateGroup", "summary": "Update group", "description": "This route updates user group by id for a tenant.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateGroupDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GroupResponse" } } } } }, "tags": [ "User groups" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "GroupsControllerV1_deleteGroup", "summary": "Delete group", "description": "This route deletes user group by id for a tenant.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "User groups" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "GroupsControllerV1_getGroupById", "summary": "Get group by ID", "description": "This route gets user group by given ID for a tenant.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "_groupsRelations", "required": false, "in": "query", "schema": { "enum": [ "roles", "users", "rolesAndUsers" ], "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GroupResponse" } } } } }, "tags": [ "User groups" ], "security": [ { "bearer": [] } ] } }, "/resources/groups/v1/config": { "get": { "operationId": "GroupsControllerV1_getGroupsConfiguration", "summary": "Get groups configuration", "description": "This route gets the user group configuration for a vendor.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetGroupConfigurationResponse" } } } } }, "tags": [ "User groups" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "GroupsControllerV1_createOrUpdateGroupsConfiguration", "summary": "Create or update groups configuration", "description": "This route creates or updates the user group configuration for a vendor.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateOrUpdateGroupConfigurationDto" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "User groups" ], "security": [ { "bearer": [] } ] } }, "/resources/groups/v1/{groupId}/roles": { "post": { "operationId": "GroupsControllerV1_addRolesToGroup", "summary": "Add roles to group", "description": "This route adds requested roles to existing group. User can assign only roles that are lower then his own.", "parameters": [ { "name": "groupId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateRolesOnGroupDto" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "User groups" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "GroupsControllerV1_removeRolesFromGroup", "summary": "Remove roles from group", "description": "This route removes requested roles from existing group.", "parameters": [ { "name": "groupId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateRolesOnGroupDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "User groups" ], "security": [ { "bearer": [] } ] } }, "/resources/groups/v1/{groupId}/users": { "post": { "operationId": "GroupsControllerV1_addUsersToGroup", "summary": "Add users to group", "description": "This route adds requested users to existing group. Only allowed for users that have higher roles then group roles.", "parameters": [ { "name": "groupId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUsersOnGroupDto" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "User groups" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "GroupsControllerV1_removeUsersFromGroup", "summary": "Remove users from group", "description": "This route removes requested users from existing group.", "parameters": [ { "name": "groupId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUsersOnGroupDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "User groups" ], "security": [ { "bearer": [] } ] } }, "/resources/groups/v2": { "get": { "operationId": "GroupsControllerV2_getAllGroupsPaginated", "summary": "Get all groups paginated", "description": "This route gets all user groups for a tenant.", "parameters": [ { "name": "_groupsRelations", "required": false, "in": "query", "schema": { "enum": [ "roles", "users", "rolesAndUsers" ], "type": "string" } }, { "name": "_limit", "required": false, "in": "query", "schema": { "minimum": 1, "type": "number" } }, { "name": "_offset", "required": false, "in": "query", "schema": { "minimum": 0, "type": "number" } }, { "name": "_sortBy", "required": false, "in": "query", "schema": { "enum": [ "id", "name", "createdAt", "updatedAt" ], "type": "string" } }, { "name": "_order", "required": false, "in": "query", "schema": { "enum": [ "ASC", "DESC" ], "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GroupResponse" } } } } }, "tags": [ "User groups" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/restrictions/ip/config": { "post": { "operationId": "IPRestrictionsControllerV1_createDomainRestriction", "summary": "Create or update IP restriction configuration (ALLOW/BLOCK)", "description": "This route creates or updates ip restrictions config.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateOrUpdateIpRestrictionConfigDto" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "IP restrictions" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "IPRestrictionsControllerV1_getIpRestrictionConfig", "summary": "Get IP restriction configuration (ALLOW/BLOCK)", "description": "This route gets the ip restrictions config for a tenant.", "parameters": [], "responses": { "200": { "description": "" } }, "tags": [ "IP restrictions" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/restrictions/ip": { "get": { "operationId": "IPRestrictionsControllerV1_getAllIpRestrictions", "summary": "Get all IP restrictions", "description": "This route gets the ip restrictions for a tenant.", "parameters": [ { "name": "_limit", "required": false, "in": "query", "schema": { "minimum": 1, "type": "number" } }, { "name": "_offset", "required": false, "in": "query", "schema": { "minimum": 0, "type": "number" } }, { "name": "_filter", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "IP restrictions" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "IPRestrictionsControllerV1_createIpRestriction", "summary": "Create IP restriction", "description": "This route creates or updates ip restriction for a tenant. Send values in the POST body as objects. See the dropdowns for available values for each object param.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateOrUpdateIpRestrictionDto" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "IP restrictions" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/restrictions/ip/verify": { "post": { "operationId": "IPRestrictionsControllerV1_testCurrentIp", "summary": "Test Current IP", "description": "This route checks if current ip is allowed.", "parameters": [], "responses": { "201": { "description": "" } }, "tags": [ "IP restrictions" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/restrictions/ip/verify/allow": { "post": { "operationId": "testCurrentIpInAllowList", "summary": "Test current IP is in allow list", "description": "This route checks if current ip is active in the allow list.", "parameters": [], "responses": { "201": { "description": "" } }, "tags": [ "IP restrictions" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/restrictions/ip/{id}": { "delete": { "operationId": "IPRestrictionsControllerV1_deleteIpRestrictionById", "summary": "Delete IP restriction by IP", "description": "This route deletes ip restriction.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "IP restrictions" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/lockout-policy": { "post": { "operationId": "LockoutPolicyController_createLockoutPolicy", "summary": "Create lockout policy", "description": "This route creates a lockout policy for all tenants. To create a lockout policy for a specific tenant, send the tenant’s ID in the **`frontegg-tenant-id`** header. To enable the Lockout Policy, make sure to set the enabled variable to true and the maximum attempts to a number of your preference.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LockoutPolicyRequest" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LockoutPolicyResponse" } } } }, "409": { "description": "Lockout Policy already exists" } }, "tags": [ "Lockout policy" ], "security": [ { "bearer": [] } ] }, "patch": { "operationId": "LockoutPolicyController_updateLockoutPolicy", "summary": "Update lockout policy", "description": "This route updates a lockout policy for all tenants. To update a lockout policy for a specific tenant, send the tenant’s ID in the **`frontegg-tenant-id`** header. To disable the lockout policy, make sure to set the enabled variable to false. The maximum attempts variable can also be changed to a number of your preference", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LockoutPolicyRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LockoutPolicyResponse" } } } }, "404": { "description": "Lockout Policy not found. Try to use the Create Lockout Policy API" } }, "tags": [ "Lockout policy" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "LockoutPolicyController_getLockoutPolicy", "summary": "Get lockout policy", "description": "This route gets the lockout policy for all tenants or one tenant specifically. To get the lockout policy for a specific tenant, send the tenant’s ID in the **`frontegg-tenant-id`** header.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LockoutPolicyResponse" } } } }, "404": { "description": "Lockout policy is not defined" } }, "tags": [ "Lockout policy" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/mfa-policy": { "post": { "operationId": "SecurityPolicyController_createMfaPolicy", "summary": "Create MFA policy", "description": "This route creates the MFA policy globally or for a specific tenant. To create an MFA policy for a specific tenant, send the tenant’s ID in the **`frontegg-tenant-id`** header.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MfaPolicyRequest" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MfaPolicyResponse" } } } }, "409": { "description": "MFA Policy already exists. Try to use the Update MFA Policy API" } }, "tags": [ "MFA settings" ], "security": [ { "bearer": [] } ] }, "patch": { "operationId": "SecurityPolicyController_updateSecurityPolicy", "summary": "Update security policy", "description": "This route updates the MFA policy for all tenants. To update an MFA policy for a specific tenant, send the tenant’s ID in the **`frontegg-tenant-id`** header.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MfaPolicyRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MfaPolicyResponse" } } } }, "400": { "description": "Missing parameters to update" }, "404": { "description": "Security policy not found" } }, "tags": [ "MFA settings" ], "security": [ { "bearer": [] } ] }, "put": { "operationId": "SecurityPolicyController_upsertSecurityPolicy", "summary": "Upsert security policy", "description": "This route creates or updates the MFA policy for all tenants. To create or update an MFA policy for a specific tenant, send the tenant’s ID in the **`frontegg-tenant-id`** header.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MfaPolicyRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MfaPolicyResponse" } } } } }, "tags": [ "MFA settings" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "SecurityPolicyController_getSecurityPolicy", "summary": "Get security policy", "description": "This route gets the MFA policy for all tenants. To get the MFA policy for a specific tenant, send the tenant’s ID in the **`frontegg-tenant-id`** header.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MfaPolicyResponse" } } } }, "404": { "description": "Security Policy not found. MFA is disabled" } }, "tags": [ "MFA settings" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/mfa/strategies": { "get": { "operationId": "MFAStrategiesControllerV1_getMFAStrategies", "summary": "Get MFA strategies", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MFAStrategiesResponse" } } } } }, "tags": [ "MFA settings" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "MFAStrategiesControllerV1_createOrUpdateMFAStrategy", "summary": "Create or update MFA strategy", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateOrUpdateMFAStrategyRequest" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "MFA settings" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/password": { "post": { "operationId": "PasswordPolicyController_addOrUpdatePasswordConfig", "summary": "Update password configuration", "description": "This route updates the password policy for all tenants. To update the password policy for a specific tenant, send the tenant’s ID in the **`frontegg-tenant-id`** header. Send the updated values as POST body params.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordConfigRequest" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordConfigResponse" } } } } }, "tags": [ "Password settings" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "PasswordPolicyController_getPasswordConfig", "summary": "Gets password policy configuration", "description": "This route gets the password policy for all tenants. To get the password policy for a specific tenant, send the tenant’s ID in the **`frontegg-tenant-id`** header.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordConfigResponse" } } } } }, "tags": [ "Password settings" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/v1/password-history-policy": { "post": { "operationId": "PasswordHistoryPolicyController_createPolicy", "summary": "Create password history policy", "description": "This route creates the password history policy for all tenants. To create a password history policy for a specific tenant, send the tenant’s ID in the **`frontegg-tenant-id`** header. To enable the Password History, make sure to set the enabled variable to true and the password history size to a number between 1 to 10.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordHistoryPolicyRequest" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordHistoryPolicyResponse" } } } }, "409": { "description": "Policy already exists. Use the Update Password History Policy API." } }, "tags": [ "Password settings" ], "security": [ { "bearer": [] } ] }, "patch": { "operationId": "PasswordHistoryPolicyController_updatePolicy", "summary": "Update password history policy", "description": "This route updates the password history policy for all tenants. To update a password history policy for a specific tenant, send the tenant’s ID in the **`frontegg-tenant-id`** header. To disable the password history policy, make sure to set the enabled variable to false. The password history size can also be changed to a number between 1 to 10", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordHistoryPolicyRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordHistoryPolicyResponse" } } } }, "404": { "description": "History size must to be between 1 to 10" } }, "tags": [ "Password settings" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "PasswordHistoryPolicyController_getPolicy", "summary": "Get password history policy", "description": "This route gets the password history policy for all tenants or one tenant specifically. To create a password history policy for a specific tenant, send the tenant’s ID in the **`frontegg-tenant-id`** header.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordHistoryPolicyResponse" } } } }, "404": { "description": "Password History Policy not found. Policy is disabled" } }, "tags": [ "Password settings" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/passwords/reset": { "post": { "operationId": "UsersPasswordControllerV1_resetPassword", "summary": "Reset password", "description": "This route sends a reset password email to the user. Send the user’s email in the POST body. If your email template uses metadata, send email metadata in the POST body, too.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResetPasswordDto" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "Password settings" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/passwords/reset/verify": { "post": { "operationId": "UsersPasswordControllerV1_verifyResetPassword", "summary": "Verify password", "description": "This route verifies a user’s password using a verification token. Send the userId, token, and password in the POST body. For the token, see the route under users for generating user password reset token.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyPasswordDto" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "Password settings" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/passwords/change": { "post": { "operationId": "UsersPasswordControllerV1_changePassword", "summary": "Change password", "description": "This route changes the password for a logged-in user. Send the **`frontegg-user-id`** and **`frontegg-tenant-id`** headers to declare which user and which tenant. Send the current and new passwords in the POST body.", "parameters": [ { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUserPasswordDto" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "Password settings" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/passwords/config": { "get": { "operationId": "UsersPasswordControllerV1_getUserPasswordConfig", "summary": "Get strictest password configuration", "description": "This route gets the user’s hardest password configuration. This is useful when a user belongs to multiple tenants and does not have the same password complexity for all of them. The route returns the strictest setting the user is subject to.", "parameters": [ { "name": "userId", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PasswordConfigResponse" } } } } }, "tags": [ "Password settings" ], "security": [ { "bearer": [] } ] } }, "/resources/users/access-tokens/v1": { "post": { "operationId": "UserAccessTokensV1Controller_createUserAccessToken", "summary": "Create user access token", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserAccessTokenRequest" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserAccessTokenResponse" } } } } }, "tags": [ "Personal tokens" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "UserAccessTokensV1Controller_getUserAccessTokens", "summary": "Get user access tokens", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetUserAccessTokensResponse" } } } } }, "tags": [ "Personal tokens" ], "security": [ { "bearer": [] } ] } }, "/resources/users/access-tokens/v1/{id}": { "delete": { "operationId": "UserAccessTokensV1Controller_deleteUserAccessToken", "summary": "Delete user access token by token ID", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Personal tokens" ], "security": [ { "bearer": [] } ] } }, "/resources/users/api-tokens/v1": { "post": { "operationId": "UserApiTokensV1Controller_createTenantApiToken", "summary": "Create user client credentials token", "description": "This route creates a user-specific API token. Send the user’s ID in the **`frontegg-user-id`** header and the tenant’s ID in the **`frontegg-tenant-id`** header. Optionally, send as POST body params values for metadata and description.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserApiTokenDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserApiTokenResponseDto" } } } } }, "tags": [ "Personal tokens" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "UserApiTokensV1Controller_getApiTokens", "summary": "Get user client credentials tokens", "description": "This route gets a user-specific API token. Send the user’s ID in the **`frontegg-user-id`** header and the tenant’s ID in the **`frontegg-tenant-id`** header.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/GetUserApiTokensResponseDto" } } } } } }, "tags": [ "Personal tokens" ], "security": [ { "bearer": [] } ] } }, "/resources/users/api-tokens/v1/{id}": { "delete": { "operationId": "UserApiTokensV1Controller_deleteApiToken", "summary": "Delete user client credentials token by token ID", "description": "This route deletes a user-specific API token. Send the token as the ID path param. Send the user’s ID in the **`frontegg-user-id`** header and the tenant’s ID in the **`frontegg-tenant-id`** header. Optionally, send as POST body params values for metadata and description.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Personal tokens" ], "security": [ { "bearer": [] } ] } }, "/resources/roles/v2": { "get": { "operationId": "PermissionsControllerV2_getAllRoles", "summary": "Get roles v2", "description": "This route returns all roles for vendor. Each role is an object containing the name, permissions, and other defining information.", "parameters": [ { "name": "_limit", "required": false, "in": "query", "schema": { "minimum": 1, "maximum": 2000, "default": 50, "type": "number" } }, { "name": "_sortBy", "required": true, "in": "query", "schema": { "enum": [ "key", "name", "description", "isDefault", "firstUserRole", "level", "updatedAt", "createdAt", "permissions", "userTenants", "groups" ], "type": "string" } }, { "name": "_levels", "required": false, "in": "query", "schema": { "type": "array", "items": { "type": "number" } } }, { "name": "_tenantIds", "required": false, "in": "query", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "_offset", "required": false, "in": "query", "schema": { "minimum": 0, "default": 0, "type": "number" } }, { "name": "_order", "required": false, "in": "query", "schema": { "enum": [ "ASC", "DESC" ], "type": "string" } }, { "name": "_filter", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "For relating a role to a specific tenant, use `get tenants` API to find the tenant ids", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoleResponse" } } } } }, "tags": [ "Account roles" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "RolesControllerV2_addRole", "summary": "Create a new role", "description": "This route adds a new role for a specific tenant. Send the tenant ID in the **`frontegg-tenant-id`** header. Add the required permissions within the request body to customize the role.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "For relating a role to a specific tenant, use `get tenants` API to find the tenant ids", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddRoleWithPermissionsRequest" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddRoleWithPermissionsResponse" } } } } }, "tags": [ "Account roles" ], "security": [ { "bearer": [] } ] } }, "/resources/roles/v2/distinct-levels": { "get": { "operationId": "RolesControllerV2_getDistinctLevels", "summary": "Get distinct levels of roles", "description": "This route returns all levels from roles for vendor.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "For relating a role to a specific tenant, use `get tenants` API to find the tenant ids", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Account roles" ], "security": [ { "bearer": [] } ] } }, "/resources/roles/v2/distinct-tenants": { "get": { "operationId": "RolesControllerV2_getDistinctTenants", "summary": "Get distinct assigned tenants of roles", "description": "This route returns all assigned tenant ids from roles for vendor.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "For relating a role to a specific tenant, use `get tenants` API to find the tenant ids", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Account roles" ], "security": [ { "bearer": [] } ] } }, "/resources/configurations/sessions/v1": { "get": { "operationId": "SessionConfigurationControllerV1_getSessionConfiguration", "summary": "Get tenant or vendor default session configuration", "description": "This route gets the Session configuration for the entire environment or a specific tenant. To get the Session configuration for a specific tenant, send the tenant’s id in the **`frontegg-tenant-id`** header", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Sessions management" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "SessionConfigurationControllerV1_createSessionConfiguration", "summary": "Create or update tenant or vendor default session configuration", "description": "This route creates or updates Session configuration for the entire environment or a specific tenant. To update the Session configuration for a specific tenant, send the tenant’s ID in the **`frontegg-tenant-id`** header", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSessionConfigurationRequest" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "Sessions management" ], "security": [ { "bearer": [] } ] } }, "/resources/tenants/access-tokens/v1": { "post": { "operationId": "TenantAccessTokensV1Controller_createTenantAccessToken", "summary": "Create tenant access token", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTenantAccessTokenRequest" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TenantAccessTokenResponse" } } } } }, "tags": [ "API (tenant) tokens" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "TenantAccessTokensV1Controller_getTenantAccessTokens", "summary": "Get tenant access tokens", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetTenantAccessTokensResponse" } } } } }, "tags": [ "API (tenant) tokens" ], "security": [ { "bearer": [] } ] } }, "/resources/tenants/access-tokens/v1/{id}": { "delete": { "operationId": "TenantAccessTokensV1Controller_deleteTenantAccessToken", "summary": "Delete tenant access token", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "API (tenant) tokens" ], "security": [ { "bearer": [] } ] } }, "/resources/tenants/api-tokens/v1": { "post": { "operationId": "TenantApiTokensV1Controller_createTenantApiToken", "summary": "Create client credentials token", "description": "Do not use. Instead, use v2 of this route.", "deprecated": true, "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTenantApiTokenDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTenantApiTokenResponseDto" } } } } }, "tags": [ "API (tenant) tokens" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "TenantApiTokensV1Controller_getTenantsApiTokens", "summary": "Get client credentials tokens", "description": "This route gets all API tokens for a specific tenant. Send the tenant’s ID in the **`frontegg-tenant-id`** header.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/GetTenantApiTokensResponse" } } } } } }, "tags": [ "API (tenant) tokens" ], "security": [ { "bearer": [] } ] } }, "/resources/tenants/api-tokens/v1/{id}": { "delete": { "operationId": "TenantApiTokensV1Controller_deleteTenantApiToken", "summary": "Delete client credentials token", "description": "This route deletes a tenant API token. Send the token ID as the path param. Send the tenant’s ID in the **`frontegg-tenant-id`** header.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "API (tenant) tokens" ], "security": [ { "bearer": [] } ] }, "patch": { "operationId": "TenantApiTokensV1Controller_updateTenantApiToken", "summary": "Update client credentials token", "description": "This route updates a tenant API token. Send the tenant’s ID in the **`frontegg-tenant-id`** header. Optionally, send as POST body params values for description, roles, and permissions for the token.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateApiTokenDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTenantApiTokenResponseDto" } } } } }, "tags": [ "API (tenant) tokens" ], "security": [ { "bearer": [] } ] } }, "/resources/tenants/api-tokens/v2": { "post": { "operationId": "TenantApiTokensV2Controller_createTenantApiToken", "summary": "Create client credentials token", "description": "This route creates a tenant API token. Send the tenant’s ID in the **`frontegg-tenant-id`** header. Optionally, send as POST body params values for metadata, description, roles, and permissions for the token.

You can get roles & permissions via API", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTenantApiTokenDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTenantApiTokenResponseDto" } } } } }, "tags": [ "API (tenant) tokens" ], "security": [ { "bearer": [] } ] } }, "/resources/tenants/users/v1/{userId}/disable": { "post": { "operationId": "UsersTenantsControllerV1_disableUserTenant", "summary": "Disable user tenant", "description": "This route disable a user. A disabled user cannot log in to the tenant or use the system. To disable a user, call this route and send the user’s ID as a path params.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" }, "201": { "description": "" }, "403": { "description": "" } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/tenants/users/v1/{userId}/enable": { "post": { "operationId": "UsersTenantsControllerV1_enableUserTenant", "summary": "Enable user tenant", "description": "This route enables a disabled user. An enabled user can log in and use the system. To enable a user, call this route and send the user’s ID as a path params.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" }, "201": { "description": "" }, "403": { "description": "" } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/temporary/v1/{userId}": { "put": { "operationId": "TemporaryUsersV1Controller_editTimeLimit", "summary": "Sets a permanent user to temporary", "description": "This route updates the settings for temporary users, use it to enable or disable it for an environment", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemporaryUserDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemporaryUserDto" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "TemporaryUsersV1Controller_setUserPermanent", "summary": "Sets a temporary user to permanent", "description": "This route sets an existing temporary user as permanent. Send the user’s ID as a path params.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/sub-tenants/users/v1/{userId}/access": { "put": { "operationId": "UsersControllerV1_setUserRolesFromSubTenants", "summary": "Set sub-account access for a user", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSubAccountAccessRequestDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/activate/reset": { "post": { "operationId": "UsersActivationControllerV1_resetActivationToken", "summary": "Reset user activation token", "description": "This route resets the activation token for a user and triggers a new activation email being sent to the user’s email.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResetActivationTokenDto" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/invitation/reset": { "post": { "operationId": "UsersTenantManagementControllerV1_resetTenantInvitationToken", "summary": "Reset invitation", "description": "This route resets an invitation for a user to join a specific tenant. Send the tenant’s ID in the **`frontegg-tenant-id`** header and the user's email in the POST body. It returns a new invitation link with a new token.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResetTenantInvitationDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/invitation/reset/all": { "post": { "operationId": "UsersTenantManagementControllerV1_resetAllTenantsInvitationToken", "summary": "Reset all invitation tokens", "description": "This route resets all invitation for a user to join all sub tenants which currently have invitation token. Send the tenant’s ID in the **`frontegg-tenant-id`** header and the user's email in the POST body. It returns a new invitation link with a new token.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResetTenantInvitationDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v3": { "get": { "operationId": "UsersControllerV3_getUsers", "summary": "Get users", "description": "This route gets all users for a tenant OR environment. Send the tenant’s ID in the **`frontegg-tenant-id`** header to declare which tenant or leave it empty for all tenants' users", "parameters": [ { "name": "_limit", "required": false, "in": "query", "description": "The default limit is 50 users per request, the maximum is 200", "schema": { "type": "number" } }, { "name": "_includeSubTenants", "required": false, "in": "query", "description": "when passing a user id, gives the option to include or not include sub tenants when searching users", "schema": { "default": true, "type": "boolean" } }, { "name": "_offset", "required": false, "in": "query", "schema": { "minimum": 0, "type": "number" } }, { "name": "_email", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "_tenantId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "ids", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "_sortBy", "required": false, "in": "query", "schema": { "enum": [ "createdAt", "name", "email", "id", "verified", "isLocked", "provider", "tenantId" ], "type": "string" } }, { "name": "_order", "required": false, "in": "query", "schema": { "enum": [ "ASC", "DESC" ], "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserV3Dto" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v3/roles": { "get": { "operationId": "UsersControllerV3_getUsersRoles", "summary": "Get users roles", "description": "This route gets all users roles for a tenant. Send the tenant’s ID in the **`frontegg-tenant-id`** header to declare which tenant.", "parameters": [ { "name": "ids", "required": true, "in": "query", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetUserRolesResponse" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v3/groups": { "get": { "operationId": "UsersControllerV3_getUsersGroups", "summary": "Get users groups", "description": "This route gets all users groups for a tenant. Send the tenant’s ID in the **`frontegg-tenant-id`** header to declare which tenant.", "parameters": [ { "name": "ids", "required": true, "in": "query", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetUserGroupsResponse" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v3/me/unlock": { "post": { "operationId": "UsersControllerV3_unlock", "summary": "Unlock user", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UnlockUserRequestDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v2": { "post": { "operationId": "UsersControllerV2_createUser", "summary": "Invite user", "description": "This route creates a user for a specific tenant. Send the tenant’s ID in the **`frontegg-tenant-id`** header to declare to what tenant this user is assigned. Send the user's information in the POST body. The user's email and metadata are required. The metadata can be empty, like `{}`.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserCreatedResponse" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v2/me": { "put": { "operationId": "UsersControllerV2_updateUserProfile", "summary": "Update user profile", "description": "This route updates a logged-in user's profile. Send the updated values in the PUT body. Mind to use your Frontegg subdomain/custom domain as a host. A user token is required for this route. A user token can be obtained after user authentication.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUserDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserDto" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "UsersControllerV2_getUserProfile", "summary": "Get user profile", "description": "This route gets a logged-in user's profile. No params required. Mind to use your Frontegg subdomain/custom domain as a host. A user token is required for this route. A user token can be obtained after user authentication.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserDto" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1": { "post": { "operationId": "UsersControllerV1_createUser", "summary": "Create user", "description": "Use the V2 route for Invite User. This route is no longer relevant.", "deprecated": true, "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserCreatedResponse" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] }, "put": { "operationId": "UsersControllerV1_updateUser", "summary": "Update user", "description": "This route updates a user’s information for a specific tenant. Send the **`frontegg-user-id`** and **`frontegg-tenant-id`** headers to declare which user and which tenant.", "parameters": [ { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUserDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserDto" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/{userId}/roles": { "post": { "operationId": "UsersControllerV1_addRolesToUser", "summary": "Assign roles to user", "description": "This route associates roles to a specific user for a specific tenant. Send the tenant’s ID in the **`frontegg-tenant-id`** header to declare which tenant. Send the role IDs in the POST body. The role IDs need to be an array of strings. Also send the user's ID as a path params.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssignUserToRolesDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssignUserToRolesResponseDto" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "UsersControllerV1_deleteRolesFromUser", "summary": "Unassign roles from user", "description": "This route disassociates roles from a specific user for a specific tenant. Send the tenant’s ID in the **`frontegg-tenant-id`** header to declare which tenant. Send the role IDs in the POST body. The role IDs need to be an array of strings. Also send the user's ID as a path params.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UnassignUserFromRolesDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteUserToRolesResponseDto" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/tenant": { "put": { "operationId": "UsersControllerV1_updateUserTenant", "summary": "Update user's active tenant", "description": "This route updates the logged in user’s tenant. The user uses it when they have multiple tenants and they want to change the current tenant they log in to. Send the **`frontegg-user-id`** and **`frontegg-tenant-id`** headers to declare which user and which tenant to update when the request is sent with a vendor token. Send the tenant ID in the PUT body.", "parameters": [ { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUserTenantDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserDto" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/query/phrase": { "get": { "operationId": "UsersControllerV1_searchUsers", "summary": "Get users with fuzzy search", "description": "This route retrieves all users for a specific tenant or environment. To filter by tenant, include the tenant's ID in the **`frontegg-tenant-id`** header; otherwise, leave it empty to retrieve users from all tenants. In addition to all standard Get users query params, this route supports phrase search, allowing for complex queries using parameters such as contains, excludes, optional and approximate matching.", "parameters": [ { "name": "_limit", "required": false, "in": "query", "description": "The default limit is 50 users per request, the maximum is 200", "schema": { "type": "number" } }, { "name": "_includeSubTenants", "required": false, "in": "query", "description": "when passing a user id, gives the option to include or not include sub tenants when searching users", "schema": { "default": true, "type": "boolean" } }, { "name": "_phraseSearchContains", "required": false, "in": "query", "description": "Pass a list of strings, separated by comma, to search for users that contain all of the strings in the list", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "_phraseSearchExcludes", "required": false, "in": "query", "description": "Pass a list of strings, separated by comma, to search for users that do not contain any of the strings in the list", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "_phraseSearchOptional", "required": false, "in": "query", "description": "Pass a list of strings, separated by comma, to search for users that contain at least one of the strings in the list", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "_phraseSearchApproximate", "required": false, "in": "query", "description": "When true, the search will be approximate (fuzzy), meaning it will include similar characters to the ones in the search string", "schema": { "default": false, "type": "boolean" } }, { "name": "_offset", "required": false, "in": "query", "schema": { "minimum": 0, "type": "number" } }, { "name": "_email", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "_tenantId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "ids", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "_sortBy", "required": false, "in": "query", "schema": { "enum": [ "createdAt", "name", "email", "id", "verified", "isLocked", "provider", "tenantId" ], "type": "string" } }, { "name": "_order", "required": false, "in": "query", "schema": { "enum": [ "ASC", "DESC" ], "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserV3Dto" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/activate": { "post": { "operationId": "UsersActivationControllerV1_activateUser", "summary": "Activate user", "description": "This route activates a non-activated user. You can use it to create your own activation flow. Send the **`frontegg-vendor-host`** as a header to declare which vendor. This is your domain name in the Frontegg Portal ➜ Workspace Settings ➜ Domains ➜ Domain Name. Send the required userId and activation token in the POST body. For generating an activation token, see the route under users for generating an activation token. If the vendor's sign in flow requires a password or recaptcha, send those values in the POST body. Instead of this route, consider using our email template for user activation.", "parameters": [ { "name": "frontegg-vendor-host", "required": true, "in": "header", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActivateUserDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthenticationResponseDto" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/activate/strategy": { "get": { "operationId": "UsersActivationControllerV1_getActivationStrategy", "summary": "Get user activation strategy", "description": "This route gets a user’s activation strategy. The activation strategy tells the vendor whether the user needs to set a password. Send the required userId and activation token in the POST body. For the activation token, see the route under users for generating an activation token. The route returns a Boolean called shouldSetPassword. If it is true, the user needs to to set a password. If it is false, the user does not need to set a password. For instance, SSO users do not set passwords.", "parameters": [ { "name": "userId", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "token", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetActivateStrategyResponseDto" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/invitation/accept": { "post": { "operationId": "UsersTenantManagementControllerV1_acceptInvitation", "summary": "Accept invitation", "description": "This route accepts an invitation for a user to join a specific tenant. Send the required userId and activation token in the POST body. The userId and activation token appear as a query params in the url Frontegg sends to the user in the activation email.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AcceptInvitationDto" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/signUp": { "post": { "operationId": "UsersControllerV1_signUpUser", "summary": "Signup user", "description": "This route is for signing up a new user and new tenant. Send the **`frontegg-vendor-host`** header. This is your domain name in the Frontegg Portal ➜ Workspace Settings ➜ Domains ➜ Domain Name. Send the user's information in the POST body. The user's email, provider, companyName, and metadata are required. The provider is the authentication provider, like local, saml, google, github. See the dropdown for available values. The metadata can be empty, like `{}`. You also can send in the POST body additional information as shown in the example. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "frontegg-vendor-host", "required": true, "in": "header", "schema": { "type": "string" } }, { "name": "frontegg-application-id", "in": "header", "description": "The application id", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SignUpUserDto" } } } }, "responses": { "200": { "description": "" }, "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SignUpResponseDto" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v3/me": { "get": { "operationId": "UsersControllerV3_getUserProfile", "summary": "Get user profile", "description": "This route gets a logged-in user's profile. No params required. Mind to use your Frontegg subdomain/custom domain as a host. A user token is required for this route. A user token can be obtained after user authentication.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserV3Dto" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v2/me/tenants": { "get": { "operationId": "UsersControllerV2_getUserTenants", "summary": "Get user tenants", "description": "This route gets the list of tenants that a logged-in user belongs to. No params required. Mind to use your Frontegg subdomain/custom domain as a host. A user token is required for this route. A user token can be obtained after user authentication.", "parameters": [ { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserTenantDataDto" } } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v2/me/hierarchy": { "get": { "operationId": "UsersControllerV2_getUserTenantsHierarchy", "summary": "Get user tenants' hierarchy", "description": "This route gets the list of tenants with hierarchy metadata that a logged-in user belongs to. If the user is a member of several tenants in a tree some might be reduced. No params required. Mind to use your Frontegg subdomain/custom domain as a host. A user token is required for this route. A user token can be obtained after user authentication.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetUserTenantsHierarchyResponseDto" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/me/authorization": { "get": { "operationId": "UsersControllerV1_getMeAuthorization", "summary": "Get user permissions and roles", "description": "This route gets the list of permissions and roles that a logged-in user has. No params required. Mind to use your Frontegg subdomain/custom domain as a host. A user token is required for this route. A user token can be obtained after user authentication.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MeAuthorizationResponseDto" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/v1/me/tenants": { "get": { "operationId": "UsersControllerV1_getUserTenants", "summary": "Get user tenants", "description": "This route gets the list of tenants that a logged-in user belongs to. No params required. Mind to use your Frontegg subdomain/custom domain as a host. A user token is required for this route. A user token can be obtained after user authentication.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetUserTenantsResponseDto" } } } } }, "tags": [ "User management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/sessions/v1/me": { "get": { "operationId": "UserSessionsControllerV1_getActiveSessions", "summary": "Get user's active sessions", "description": "This route returns all the user's active sessions. Specify the user by sending its ID in frontegg-user-id header.", "parameters": [ { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "User sessions" ], "security": [ { "bearer": [] } ] } }, "/resources/users/sessions/v1/me/all": { "delete": { "operationId": "UserSessionsControllerV1_deleteAllUserActiveSessions", "summary": "Delete all user sessions", "description": "This route deletes all user's session. Specify the user by sending its ID in frontegg-user-id header.", "parameters": [ { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "User sessions" ], "security": [ { "bearer": [] } ] } }, "/resources/users/sessions/v1/me/{id}": { "delete": { "operationId": "UserSessionsControllerV1_deleteUserSession", "summary": "Delete single user's session", "description": "This route deletes user's session. Specify the user by sending its ID in frontegg-user-id header and the session ID in the url param.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "frontegg-user-id", "in": "header", "description": "The user ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "User sessions" ], "security": [ { "bearer": [] } ] } }, "/resources/users/phone-numbers/v1": { "get": { "operationId": "UserPhoneNumbersControllerV1_getAllPhoneNumbers", "summary": "Get all phone numbers", "description": "This route returns all user phone numbers.", "parameters": [ { "name": "_limit", "required": false, "in": "query", "schema": { "minimum": 1, "type": "number" } }, { "name": "_offset", "required": false, "in": "query", "schema": { "minimum": 0, "type": "number" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPhoneNumberResponseDto" } } } } }, "tags": [ "User Phone Numbers" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "UserPhoneNumbersControllerV1_createUserPhoneNumber", "summary": "Create user phone number", "description": "This route creates new user phone number. By default verification code will be sent to the user. To create phone number without verification code, send **`verify`** as part of the request with value **`false`**.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserPhoneNumberRequestDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPhoneNumberCreatedResponseDto" } } } } }, "tags": [ "User Phone Numbers" ], "security": [ { "bearer": [] } ] } }, "/resources/users/phone-numbers/v1/preverify": { "post": { "operationId": "UserPhoneNumbersControllerV1_preVerifyUserPhoneNumber", "summary": "Pre Verify User Phone Number", "description": "This route sends OTC to users phone number for verification.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PreVerifyUserPhoneNumberRequestDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPhoneNumberCreatedResponseDto" } } } } }, "tags": [ "User Phone Numbers" ], "security": [ { "bearer": [] } ] } }, "/resources/users/phone-numbers/v1/verify": { "post": { "operationId": "UserPhoneNumbersControllerV1_verifyCreateUserPhoneNumber", "summary": "Verify create user phone number", "description": "This route verifies user phone number using OTC code that was sent to the user.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyPhoneNumberOTCRequestDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "User Phone Numbers" ], "security": [ { "bearer": [] } ] } }, "/resources/users/phone-numbers/v1/{id}": { "delete": { "operationId": "UserPhoneNumbersControllerV1_deleteUserPhoneNumber", "summary": "Delete user phone number", "description": "This route starts delete process for user phone number. Verification code will be sent to the user. Phone number wont be deleted until delete verification.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPhoneNumberDeleteCodeResponseDto" } } } } }, "tags": [ "User Phone Numbers" ], "security": [ { "bearer": [] } ] } }, "/resources/users/phone-numbers/v1/{id}/delete/verify": { "post": { "operationId": "UserPhoneNumbersControllerV1_verifyDeleteUserPhoneNumber", "summary": "Verify delete dser phone number", "description": "This route verifies delete of user phone number using OTC code that was sent to the user and deletes phone number.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VerifyPhoneNumberOTCRequestDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "User Phone Numbers" ], "security": [ { "bearer": [] } ] } }, "/resources/users/phone-numbers/v1/vendor/{userId}": { "post": { "operationId": "UserPhoneNumbersControllerV1_createUserPhoneNumberVendor", "summary": "Create user phone number by vendor", "description": "This route creates new user phone number, phone numbers added by vendor will be automatically verified.", "parameters": [ { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PreVerifyUserPhoneNumberRequestDto" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "User Phone Numbers", "Vendor-only user management" ], "security": [ { "bearer": [] } ] } }, "/resources/users/phone-numbers/v1/vendor/{userId}/{phoneId}": { "delete": { "operationId": "UserPhoneNumbersControllerV1_deleteUserPhoneNumberVendor", "summary": "Delete user phone number by vendor", "description": "This route deletes user phone number without verification.", "parameters": [ { "name": "phoneId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "User Phone Numbers", "Vendor-only user management" ], "security": [ { "bearer": [] } ] } }, "/resources/v1/configurations/scim2": { "get": { "operationId": "Scim2ConnectionConfigController_fetchAll", "summary": "Get all SCIM configurations", "description": "Get all provisiong (SCIM) configurations for an environment.", "parameters": [ { "name": "tenantId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "source", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "connectionName", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "id", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "List of SCIM configurations. Vendor only endpoint", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Scim2ConnectionConfigResponse" } } } } } }, "tags": [ "SCIM Configurations" ] }, "post": { "operationId": "Scim2ConnectionConfigController_create", "summary": "Create a SCIM configuration", "description": "Create a provisioning (SCIM) configuration for an account (tenant).", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Scim2CreateConnectionConfigRequest" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Scim2CreateConnectionConfigResponse" } } } } }, "tags": [ "SCIM Setup" ] } }, "/resources/v1/configurations/scim2/{id}": { "get": { "operationId": "Scim2ConnectionConfigController_fetchById", "summary": "Get a SCIM configuration by ID", "description": "Get a provisioning (SCIM) configuration by its ID.", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Scim2ConnectionConfigResponse" } } } } }, "tags": [ "SCIM Setup" ] }, "patch": { "operationId": "Scim2ConnectionConfigController_partialUpdate", "summary": "Update a SCIM configuration", "description": "Create a provisioning (SCIM) configuration for an account (tenant).", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Scim2PatchConnectionConfigRequest" } } } }, "responses": { "204": { "description": "" } }, "tags": [ "SCIM Setup" ] }, "delete": { "operationId": "Scim2ConnectionConfigController_deleteById", "summary": "Delete a SCIM configuration", "description": "Create a provisioning (SCIM) configuration for an account (tenant).", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": false, "schema": { "type": "string" } } ], "responses": { "204": { "description": "" } }, "tags": [ "SCIM Setup" ] } }, "/resources/sso/v1/saml/configurations/vendor-config": { "get": { "operationId": "SamlControllerV1_getVendorSamlConfig", "summary": "Get vendor's SAML config", "description": "Get vendor's SAML config", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorSamlConfigurationResponse" } } } } }, "tags": [ "SAML Configurations Details" ] } }, "/resources/sso/v1/saml/configurations/sp-certificate": { "get": { "operationId": "SamlControllerV1_getSpCertificate", "summary": "Get service provider certificate", "description": "Get service provider certificate", "parameters": [], "responses": { "200": { "description": "" } }, "tags": [ "SAML Configurations Details" ] } }, "/resources/sso/v1/saml/configurations/sp-metadata": { "get": { "operationId": "SamlControllerV1_getSpMetadata", "summary": "Get service provider metadata", "description": "Get service provider metadata", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "SSO Settings" ] } }, "/resources/sso/v1/configurations": { "post": { "operationId": "SsoConfigurationControllerV1_createSsoConfiguration", "summary": "Create SSO configuration", "description": "Create SSO configuration", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSSOConfigurationRequestDto" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "SSO Configurations" ] }, "get": { "operationId": "SsoConfigurationControllerV1_getSsoConfigurations", "summary": "Get SSO configurations", "description": "Get SSO configurations", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "SSO Configurations" ] } }, "/resources/sso/v1/configurations/{configurationId}": { "delete": { "operationId": "SsoConfigurationControllerV1_deleteSsoConfiguration", "summary": "Delete SSO configuration", "description": "Delete SSO configuration", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "configurationId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "SSO Configurations" ] } }, "/resources/sso/v1/configurations/metadata": { "post": { "operationId": "SsoConfigurationControllerV1_createSsoConfigurationByMetadata", "summary": "Create SSO configuration using metadata", "description": "Create SSO configuration using metadata", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSSOConfigurationByMetadataRequestDto" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "SSO Configurations" ] } }, "/resources/sso/v1/configurations/{configurationId}/metadata": { "put": { "operationId": "SsoConfigurationControllerV1_updateSsoConfigurationByMetadata", "summary": "Update SSO configuration using metadata", "description": "Update SSO configuration using metadata", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "configurationId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSSOConfigurationByMetadataRequestDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "SSO Configurations" ] } }, "/resources/sso/v1/configurations/{configurationId}/domains": { "post": { "operationId": "SsoDomainControllerV1_createSsoDomain", "summary": "Create SSO domain", "description": "Create SSO domain", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "configurationId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSSODomainRequestDto" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "SSO Configurations" ] } }, "/resources/sso/v1/configurations/{configurationId}/domains/{domainId}": { "delete": { "operationId": "SsoDomainControllerV1_deleteSsoDomain", "summary": "Delete SSO domain", "description": "Delete SSO domain", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "configurationId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "domainId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "SSO Configurations" ] } }, "/resources/sso/v1/configurations/{configurationId}/domains/{domainId}/validate/email": { "put": { "operationId": "SsoDomainControllerV1_validateSsoDomainByEmail", "summary": "Validate SSO domain by email", "description": "Validate SSO using user's email domain", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "configurationId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "domainId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "SSO Configurations" ] } }, "/resources/sso/v2/configurations/{configurationId}/domains/{domainId}/validate": { "put": { "operationId": "SsoDomainControllerV2_validateSsoDomain", "summary": "Validate SSO domain", "description": "Validate SSO domain", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "configurationId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "domainId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "SSO Configurations" ] } }, "/resources/sso/v1/configurations/{configurationId}/roles": { "put": { "operationId": "SsoRolesControllerV1_setSsoDefaultRoles", "summary": "Set SSO default roles", "description": "Set SSO default roles", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "configurationId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetSSODefaultRoles" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "SSO Configurations" ] }, "get": { "operationId": "SsoRolesControllerV1_getSsoDefaultRoles", "summary": "Get SSO default roles", "description": "Get SSO default roles", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "configurationId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "SSO Configurations" ] } }, "/resources/sso/v1/configurations/{configurationId}/groups": { "post": { "operationId": "SsoGroupsControllerV1_createSsoGroup", "summary": "Create an SSO group", "description": "Create an SSO group", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "configurationId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSSOGroupRequestDto" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "SSO Configurations" ] }, "get": { "operationId": "SsoGroupsControllerV1_getSsoGroup", "summary": "Get SSO group", "description": "Get SSO group", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "configurationId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "SSO Configurations" ] } }, "/resources/sso/v1/configurations/{configurationId}/groups/{groupId}": { "patch": { "operationId": "SsoGroupsControllerV1_updateSsoGroup", "summary": "Update SSO group", "description": "Update SSO group", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "configurationId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "groupId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSSOGroupRequestDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "SSO Configurations" ] }, "delete": { "operationId": "SsoGroupsControllerV1_deleteSsoGroup", "summary": "Delete SSO group", "description": "Delete SSO group", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } }, { "name": "configurationId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "groupId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "SSO Configurations" ] } }, "/resources/sso/v1/configurations/excluded-emails": { "post": { "operationId": "ExcludeEmailsFromSSOV1_excludeSSOEmail", "summary": "Exclude email from SSO", "description": "Exclude email from SSO", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExcludeEmailFromSSORequestDto" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "SSO Settings" ] }, "get": { "operationId": "ExcludeEmailsFromSSOV1_getSSOExcludedEmails", "summary": "Get SSO excluded emails", "description": "Get SSO excluded emails", "parameters": [], "responses": { "200": { "description": "" } }, "tags": [ "SSO Settings" ] } }, "/resources/sso/v1/configurations/excluded-emails/{email}": { "delete": { "operationId": "ExcludeEmailsFromSSOV1_deleteSSOExcludedEmail", "summary": "Delete SSO excluded email", "description": "Delete SSO excluded email", "parameters": [ { "name": "email", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "SSO Settings" ] } }, "/resources/sso/v1/configurations/domains/{domain}/force-validate": { "put": { "operationId": "VendorOnlySsoConfigurationControllerV1_forceSsoDomainValidation", "summary": "Vendor only - Force SSO domain validation", "description": "Vendor only - Force SSO domain validation", "parameters": [ { "name": "domain", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ForceValidateDomainRequestDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "SSO Settings" ] } }, "/resources/sso/v1/configurations/multiple-sso-per-domain": { "get": { "operationId": "SsoPerTenantControllerV1_getSSOPerTenantConfig", "summary": "Get SSO per tenant configuration", "description": "Get SSO per tenant configuration", "parameters": [], "responses": { "200": { "description": "" } }, "tags": [ "SSO Settings" ] }, "put": { "operationId": "SsoPerTenantControllerV1_createOrUpdateSSOPerTenantConfig", "summary": "Create or update SSO per tenant configuration", "description": "Create or update SSO per tenant configuration", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSSOPerTenantConfigRequest" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "SSO Settings" ] } }, "/resources/sso/v1/configurations/domains": { "put": { "operationId": "SSODomainsConfigurationControllerV1_createOrUpdateSSODomainsConfiguration", "summary": "Create or update SSO domains configuration", "description": "Create or update SSO domains configuration", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSSODomainConfigurationRequest" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "SSO Configurations" ] }, "get": { "operationId": "SSODomainsConfigurationControllerV1_getSSODomainsConfiguration", "summary": "Get SSO domains configuration", "description": "Get SSO domains configuration", "parameters": [], "responses": { "200": { "description": "" } }, "tags": [ "SSO Configurations" ] } }, "/resources/sso/v1/oidc/configurations": { "get": { "operationId": "OidcControllerV1_getOidcConifguration", "summary": "Get OIDC configuration", "description": "Get OIDC configuration", "parameters": [], "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigureOidcResponse" } } } } }, "tags": [ "OIDC Configurations Details" ] }, "post": { "operationId": "OidcControllerV1_configureOidc", "summary": "Configure OIDC", "description": "Configure OIDC", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigureOidcRequest" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "SSO Settings" ] } }, "/resources/tenants/v1/{tenantId}": { "get": { "operationId": "TenantControllerV1_getTenant", "summary": "Get tenant by ID", "description": "Use the V2 route for **Get Tenant**. This route is no longer relevant.", "deprecated": true, "parameters": [ { "name": "tenantId", "required": true, "in": "path", "description": "The tenant ID to get.", "schema": { "type": "string" } } ], "responses": { "400": { "description": "When the tenant ID does not pass the validation." } }, "tags": [ "Tenants (Accounts)" ], "security": [ { "bearer": [] } ] }, "put": { "operationId": "TenantControllerV1_updateTenant", "summary": "Update Tenant", "description": "Use the V2 route for **Update Tenant**. This route is no longer relevant.", "deprecated": true, "parameters": [ { "name": "tenantId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTenantRequest" } } } }, "responses": { "400": { "description": "When body doesn't contain any property to change." }, "404": { "description": "When given tenant doesn't exist." } }, "tags": [ "Tenants (Accounts)" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "TenantControllerV1_deleteTenant", "summary": "Delete tenant (account)", "description": "Removes a tenant and all users of that tenant.If tenant is a part of the hierarchy, then all of its sub-tenants are assigned to deleted tenant's parent. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "tenantId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "404": { "description": "When the given tenant doesn't exist." } }, "tags": [ "Tenants (Accounts)" ], "security": [ { "bearer": [] } ] } }, "/resources/tenants/v1": { "post": { "operationId": "TenantControllerV1_createTenant", "summary": "Create tenant (account)", "description": "Create a new tenant. If tenant with given ID had existed before and was removed, then this action will reactivate that tenant. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateTenantRequest" } } } }, "responses": { "400": { "description": "When the tenant ID does not pass the validation." } }, "tags": [ "Tenants (Accounts)" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "TenantControllerV1_deleteCurrentTenant", "summary": "Delete current tenant", "description": "Removes current tenant and all users of that tenant. Only users that have the Frontegg Delete Account permission **fe.account-settings.delete.account** would be able to perform this action. A user token is required for this route. A user token can be obtained after user authentication.", "parameters": [], "responses": { "200": { "description": "When current tenant has been removed." } }, "tags": [ "Tenants (Accounts)" ], "security": [ { "bearer": [] } ] } }, "/resources/tenants/v1/{tenantId}/metadata": { "post": { "operationId": "TenantControllerV1_addTenantMetadata", "summary": "Add tenant metadata", "description": "Add metadata to a tenant. If given metadata key already exists, its value is overwritten. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "tenantId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddTenantMetadataRequest" } } } }, "responses": { "400": { "description": "When the given metadata is neither a JSON, nor JSON-string." }, "404": { "description": "When the given tenant doesn't exist." } }, "tags": [ "Tenants (Accounts)" ], "security": [ { "bearer": [] } ] } }, "/resources/tenants/v1/{tenantId}/metadata/{key}": { "delete": { "operationId": "TenantControllerV1_deleteTenantMetadata", "summary": "Delete tenant metadata", "description": "Remove a key/value from a tenant's metadata. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "tenantId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "key", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "404": { "description": "When the provided tenant doesn't exist." } }, "tags": [ "Tenants (Accounts)" ], "security": [ { "bearer": [] } ] } }, "/resources/tenants/v2": { "get": { "operationId": "TenantControllerV2_getTenants", "summary": "Get tenants", "description": "This route returns all roles for all tenants. To get a role for a specific tenant, send the tenant id in the **`frontegg-tenant-id`** header. Each role is an object containing the name, permissions, and other defining information.", "parameters": [], "responses": { "200": { "description": "" } }, "tags": [ "Tenants (Accounts)" ], "security": [ { "bearer": [] } ] } }, "/resources/tenants/v2/{tenantId}": { "get": { "operationId": "TenantControllerV2_getTenant", "summary": "Get tenant", "description": "Get a tenant by identifier. When tenant cannot be found, empty array is returned. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "tenantId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Tenants (Accounts)" ], "security": [ { "bearer": [] } ] }, "put": { "operationId": "TenantControllerV2_updateTenant", "summary": "Update tenant", "description": "Update the given tenant. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "tenantId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTenantRequestV2" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "Tenants (Accounts)" ], "security": [ { "bearer": [] } ] } }, "/resources/sub-tenants/v1": { "post": { "operationId": "SubTenantControllerV1_createSubTenant", "summary": "Create sub-tenant", "description": "Create a new sub tenant. If tenant with given ID had existed before and was removed, then this action will reactivate that tenant. A user or vendor token is required for this route. A user token can be obtained after user authentication.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSubTenantRequest" } } } }, "responses": { "400": { "description": "When tenant ID does not pass validation." } }, "tags": [ "Sub-Accounts" ], "security": [ { "bearer": [] } ] } }, "/resources/sub-tenants/v1/{tenantId}/management": { "put": { "operationId": "SubTenantControllerV1_updateSubTenantManagement", "summary": "Update sub-tenant management", "description": "Enable sub-tenants to give child accounts multi-seller management capabilities. Send isReseller: true to update sub-tenants with this capability", "parameters": [ { "name": "tenantId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSubTenantManagementRequest" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "Sub-Accounts" ], "security": [ { "bearer": [] } ] } }, "/resources/sub-tenants/v1/{tenantId}/hierarchy-settings": { "put": { "operationId": "SubTenantControllerV1_updateSubTenantHierarchySettings", "summary": "Update sub tenant hierarchy settings", "description": "Set the default behavior of sub-account access in a tenant. Set subAccountAccessType to defaultOff or defaultOn to allow sub-account access to be changed, or alwaysOn to force sub-account access on all users.", "parameters": [ { "name": "tenantId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSubTenantHierarchySettingsRequest" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "Sub-Accounts" ], "security": [ { "bearer": [] } ] } }, "/resources/sub-tenants/v1/{tenantId}": { "delete": { "operationId": "SubTenantControllerV1_deleteSubTenant", "summary": "Delete sub-tenant by ID", "description": "Delete a sub tenant. A user or vendor token is required for this route. A user token can be obtained after user authentication.", "parameters": [ { "name": "tenantId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "404": { "description": "When the given tenant doesn't exist." } }, "tags": [ "Sub-Accounts" ], "security": [ { "bearer": [] } ] } }, "/resources/account-settings/v1": { "get": { "operationId": "AccountSettingsControllerV1_getSettings", "summary": "Get settings", "description": "Get account settings of a tenant. A tenant is determined by a given user token when using a user token and by the `**frontegg-tenant-id**` when using a vendor token. A user token or vendor token are required for this route. A user token can be obtained after user authentication. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "404": { "description": "When tenant with given ID does not exist." } }, "tags": [ "Accounts Settings" ], "security": [ { "bearer": [] } ] }, "put": { "operationId": "AccountSettingsControllerV1_updateSettings", "summary": "Update settings", "description": "Update account settings of a tenant. There has to be at least one setting passed on the body. A tenant is determined by a given user token when using a user token and by the `**frontegg-tenant-id**` when using a vendor token. A user token or vendor token are required for this route. A user token can be obtained after user authentication. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccountSettingsUpdateRequest" } } } }, "responses": { "400": { "description": "When: a) given parameters do not pass validation b) empty object is passed in request content" }, "404": { "description": "When tenant with given ID does not exist." } }, "tags": [ "Accounts Settings" ], "security": [ { "bearer": [] } ] } }, "/resources/account-settings/v1/public": { "get": { "operationId": "AccountSettingsControllerV1_getPublicSettings", "summary": "Get public settings", "description": "Get account public settings of a tenant. A tenant is determined by a given user token when using a user token and by the `**frontegg-tenant-id**` when using a vendor token. A user token or vendor token are required for this route. A user token can be obtained after user authentication. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "404": { "description": "When tenant with given ID does not exist." } }, "tags": [ "Accounts Settings" ], "security": [ { "bearer": [] } ] } }, "/resources/migrations/v1/tenants": { "post": { "operationId": "MigrationControllerV1_migrateTenants", "summary": "Migrate tenants", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MigrateTenantsRequest" } } } }, "responses": { "202": { "description": "" } }, "tags": [ "Tenants migration" ], "security": [ { "bearer": [] } ] } }, "/resources/migrations/v1/tenants/status/{migrationId}": { "get": { "operationId": "MigrationControllerV1_getMigrateTenantsStatus", "summary": "Tenant migration status", "parameters": [ { "name": "migrationId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Tenants migration" ], "security": [ { "bearer": [] } ] } }, "/resources/hierarchy/v1": { "get": { "operationId": "TenantHierarchyControllerV1_getSubTenants", "summary": "Get sub-tenants", "description": "Get all sub-tenants from the hierarchy. A user token or vendor token are required for this route. A user token can be obtained after user authentication. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Sub-Accounts" ], "security": [ { "bearer": [] } ] }, "post": { "operationId": "TenantHierarchyControllerV1_createSubTenants", "summary": "Create sub-tenant", "description": "Assign an existing tenant to the hierarchy as a sub-tenant of a given parent tenant. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSubTenantRequestDto" } } } }, "responses": { "400": { "description": "When:a) given parameters do not pass validationb) or parent and child tenant are equalc) or child tenant is already a subtenant in other organization's hierarchy" } }, "tags": [ "Account Hierarchy" ], "security": [ { "bearer": [] } ] }, "delete": { "operationId": "TenantHierarchyControllerV1_deleteSubTenant", "summary": "Delete sub-tenant", "description": "Delete given sub-tenant from the hierarchy. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteSubTenantRequestDto" } } } }, "responses": { "400": { "description": "When provided parameters do not pass validation." }, "404": { "description": "When given tenants are not in parent-child relation." } }, "tags": [ "Account Hierarchy" ], "security": [ { "bearer": [] } ] } }, "/resources/hierarchy/v1/parents": { "get": { "operationId": "TenantHierarchyControllerV1_getParentTenants", "summary": "Get parent tenants", "description": "Get all parent tenants from the hierarchy. Tenant ID header is required. A user token or vendor token are required for this route. A user token can be obtained after user authentication. A vendor token can be obtained from the vendor authentication route.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Sub-Accounts" ], "security": [ { "bearer": [] } ] } }, "/resources/hierarchy/v1/tree": { "get": { "operationId": "TenantHierarchyControllerV1_getSubTenantsTree", "summary": "Get sub-tenants hierarchy tree", "description": "Get all tenants hierarchy as a tree structure. A user token or vendor token are required for this route. A user token can be obtained after user authentication. A vendor token is required for this route, it can be obtained from the vendor authentication route.", "parameters": [ { "name": "frontegg-tenant-id", "in": "header", "description": "The tenant ID identifier", "required": true, "schema": { "type": "string" } } ], "responses": { "400": { "description": "When circular dependency is detected in the hierarchy" } }, "tags": [ "Sub-Accounts" ], "security": [ { "bearer": [] } ] } } }, "components": { "schemas": { "IsEntitledToFeatureDto": { "type": "object", "properties": { "featureKey": { "type": "string", "example": "example-feature-key" } }, "required": [ "featureKey" ] }, "SubjectContext": { "type": "object", "properties": { "userId": { "type": "string", "example": "6c2ce177-66cd-4163-a012-b7833255a490" }, "tenantId": { "type": "string", "example": "f21ca66c-d23b-496f-b805-121ed37eb46a" }, "permissions": { "example": [ "example.permission.read", "example.permission.write" ], "type": "array", "items": { "type": "string" } }, "attributes": { "type": "object", "example": { "exampleAttribute": "example-value" } } }, "required": [ "tenantId" ] }, "EntitlementsResult": { "type": "object", "properties": { "justification": { "type": "string", "enum": [ "MISSING_FEATURE", "MISSING_PERMISSION", "PLAN_EXPIRED", "MISSING_ROUTE", "ROUTE_DENIED" ], "example": "MISSING_FEATURE" }, "monitoring": { "type": "boolean" }, "result": { "type": "boolean", "example": false } }, "required": [ "result" ] }, "PDPResponse": { "type": "object", "properties": { "decision_id": { "type": "string", "example": "df5dae62-be02-4333-bbe1-f7220e13c6c3" }, "metrics": { "type": "object" }, "result": { "$ref": "#/components/schemas/EntitlementsResult" } }, "required": [ "decision_id", "metrics", "result" ] }, "IsEntitledToPermissionDto": { "type": "object", "properties": { "permissionKey": { "type": "string", "example": "example.permission.read" } }, "required": [ "permissionKey" ] }, "IsEntitledToRouteDto": { "type": "object", "properties": { "method": { "type": "string", "enum": [ "GET", "POST", "PUT", "PATCH", "DELETE", "*" ], "example": "GET" }, "path": { "type": "string", "example": "/example" } }, "required": [ "method", "path" ] }, "PageDto": { "type": "object", "properties": {} }, "ConditionDto": { "type": "object", "properties": { "attribute": { "type": "string", "description": "String representing an attribute with a subset of condition(s) that is used in code to enact targeting rules", "example": "myCustomAttribute" }, "attributeType": { "type": "string", "description": "Enum that represents the attribute type (`frontegg` or `custom`)", "example": "custom", "enum": [ "custom", "frontegg" ] }, "negate": { "type": "boolean", "description": "Boolean that indicates whether the condition should negate the operation", "example": false }, "op": { "type": "string", "description": "Enum that represents the operation applied to the condition", "example": "in_list", "enum": [ "in_list", "starts_with", "ends_with", "contains", "matches", "equal", "greater_than", "greater_than_equal", "lower_than", "lower_than_equal", "between_numeric", "is", "on", "between_date", "on_or_after", "on_or_before" ] }, "value": { "type": "object", "description": "Object that contains the condition data according to selected operation, each operation requires different structure (see [documentation](https://docs.frontegg.com/docs/entitlements-backend-sdk#operations-and-corresponding-object-structure))", "example": { "list": [ "valueA", "valueB" ] } } }, "required": [ "attribute", "attributeType", "negate", "op", "value" ] }, "RuleDto": { "type": "object", "properties": { "description": { "type": "string", "description": "String that represents the description of the rule", "example": "This is the first rule" }, "conditionLogic": { "type": "string", "description": "Enum that represents the rule conditions logic", "example": "and", "enum": [ "and" ] }, "conditions": { "description": "Array of conditions", "type": "array", "items": { "$ref": "#/components/schemas/ConditionDto" } }, "treatment": { "type": "string", "description": "String that represents the treatment for this rule", "example": "true", "enum": [ "true", "false" ] } }, "required": [ "description", "conditionLogic", "conditions", "treatment" ] }, "PlanFeatureDto": { "type": "object", "properties": { "id": { "type": "string", "description": "UUID string representing the feature ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" }, "name": { "type": "string", "description": "String representing the feature name", "example": "Test Feature" }, "key": { "type": "string", "description": "String representing the feature key", "example": "test-feature" }, "permissions": { "description": "Array of permissions linked to a feature", "example": [ "permission.read", "permission.write" ], "type": "array", "items": { "type": "string" } } }, "required": [ "id", "name", "key", "permissions" ] }, "PlanDto": { "type": "object", "properties": { "id": { "type": "string", "description": "UUID string that represents the plan ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" }, "vendorId": { "type": "string", "description": "UUID string that represents the vendor ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" }, "name": { "type": "string", "description": "String that represents the plan name", "example": "Test Plan" }, "defaultTreatment": { "type": "string", "description": "Enum that represents the default treatment", "example": "true", "enum": [ "true", "false" ] }, "rules": { "description": "Array of rules that represents the set of conditions targeting the plan", "type": "array", "items": { "$ref": "#/components/schemas/RuleDto" } }, "description": { "type": "string", "description": "Feature plan description", "example": "This is a test plan" }, "metadata": { "type": "object", "description": "JSON String", "example": "{ \"some-key\": \"some-value\" }" }, "defaultTimeLimitation": { "type": "number", "description": "Number that represents the default time limitation in days for auto-assigned plans", "example": "30" }, "assignOnSignup": { "type": "boolean", "description": "Boolean indicating whether a plan is assigned automatically upon signup", "example": "true" }, "createdAt": { "type": "string", "description": "Date when plan was created", "example": "2022-01-01T00:00:00" }, "updatedAt": { "type": "string", "description": "Date when plan was last updated", "example": "2022-01-01T00:00:00" }, "features": { "description": "List of features linked to a plan", "allOf": [ { "$ref": "#/components/schemas/PlanFeatureDto" } ] }, "entitlements": { "description": "List of features linked to a plan", "allOf": [ { "$ref": "#/components/schemas/PlanFeatureDto" } ] } }, "required": [ "id", "vendorId", "name", "assignOnSignup", "createdAt" ] }, "CreatePlanDto": { "type": "object", "properties": { "name": { "type": "string", "description": "String that represents the plan name", "example": "Test Plan" }, "defaultTreatment": { "type": "string", "description": "Enum that represents the default treatment", "example": "true", "enum": [ "true", "false" ] }, "rules": { "description": "Array of rules that represents the set of conditions targeting the plan", "type": "array", "items": { "$ref": "#/components/schemas/RuleDto" } }, "description": { "type": "string", "description": "Feature plan description", "example": "This is a test plan" }, "metadata": { "type": "string", "description": "JSON String", "example": "{ \"some-key\": \"some-value\" }" }, "defaultTimeLimitation": { "type": "number", "description": "Number that represents the default time limitation in days for auto-assigned plans", "example": "30" }, "assignOnSignup": { "type": "boolean", "description": "Boolean indicating whether a plan is assigned automatically upon signup", "example": "true", "default": false } }, "required": [ "name" ] }, "UpdatePlanDto": { "type": "object", "properties": { "name": { "type": "string", "description": "String that represents the plan name", "example": "Test Plan" }, "defaultTreatment": { "type": "string", "description": "Enum that represents the default treatment", "example": "true", "enum": [ "true", "false" ] }, "rules": { "description": "Array of rules that represents the set of conditions targeting the plan", "type": "array", "items": { "$ref": "#/components/schemas/RuleDto" } }, "description": { "type": "string", "description": "Feature plan description", "example": "This is a test plan" }, "metadata": { "type": "string", "description": "JSON String", "example": "{ \"some-key\": \"some-value\" }" }, "defaultTimeLimitation": { "type": "number", "description": "Number that represents the default time limitation in days for auto-assigned plans", "example": "30" }, "assignOnSignup": { "type": "boolean", "description": "Boolean indicating whether a plan is assigned automatically upon signup", "example": "true" } } }, "LinkFeaturesDto": { "type": "object", "properties": { "featuresIds": { "description": "Array of UUID strings that represents the feature ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3", "type": "array", "items": { "type": "string" } } }, "required": [ "featuresIds" ] }, "UnlinkFeaturesDto": { "type": "object", "properties": { "featuresIds": { "description": "Array of UUID strings that represents the feature ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3", "type": "array", "items": { "type": "string" } } }, "required": [ "featuresIds" ] }, "RouteRuleDto": { "type": "object", "properties": { "id": { "type": "string", "readOnly": true, "example": "b796239c-6641-4cf3-9ff3-658ad4049131" }, "routeId": { "type": "string", "readOnly": true, "example": "b796239c-6641-4cf3-9ff3-658ad4049131" }, "type": { "type": "string", "readOnly": true, "example": "feature", "enum": [ "feature", "permission" ] }, "value": { "type": "string", "readOnly": true, "example": "my-feature-key" } }, "required": [ "id", "routeId", "type", "value" ] }, "RouteDto": { "type": "object", "properties": { "id": { "type": "string", "readOnly": true, "example": "b796239c-6641-4cf3-9ff3-658ad4049131" }, "method": { "type": "string", "readOnly": true, "example": "GET", "enum": [ "GET", "POST", "PUT", "PATCH", "DELETE", "*" ] }, "path": { "type": "string", "readOnly": true, "example": "/users" }, "priority": { "type": "number", "readOnly": true, "example": 100 }, "description": { "type": "string", "readOnly": true, "example": "This is an example route" }, "policyType": { "type": "string", "readOnly": true, "example": "allow", "enum": [ "allow", "deny", "ruleBased" ] }, "rules": { "readOnly": true, "type": "array", "items": { "$ref": "#/components/schemas/RouteRuleDto" } } }, "required": [ "id", "method", "path", "priority", "description", "policyType", "rules" ] }, "CreateRouteDto": { "type": "object", "properties": { "method": { "type": "string", "description": "Http Method", "enum": [ "GET", "POST", "PUT", "PATCH", "DELETE", "*" ], "example": "GET" }, "path": { "type": "string", "description": "Route path", "example": "/users" }, "policyType": { "type": "string", "description": "Route policy type", "enum": [ "allow", "deny", "ruleBased" ], "example": "allow" }, "description": { "type": "string", "description": "Route description", "example": "This is an example route" } }, "required": [ "method", "path", "policyType", "description" ] }, "UpdateRouteDto": { "type": "object", "properties": { "method": { "type": "string", "description": "Http Method", "enum": [ "GET", "POST", "PUT", "PATCH", "DELETE", "*" ], "example": "GET" }, "path": { "type": "string", "description": "Route path", "example": "/users" }, "policyType": { "type": "string", "description": "Route policy type", "enum": [ "allow", "deny", "ruleBased" ], "example": "allow" }, "description": { "type": "string", "description": "Route description", "example": "This is an example route" } }, "required": [ "method", "path", "policyType", "description" ] }, "CreateRouteRuleDto": { "type": "object", "properties": { "type": { "type": "string", "description": "Rule type - can be either \"feature\" or \"permission\"", "enum": [ "feature", "permission" ], "example": "feature" }, "value": { "type": "string", "description": "Rule value - represents a reference key to the rule type entity", "example": "my-feature-key" } }, "required": [ "type", "value" ] }, "ReplaceRouteRulesDto": { "type": "object", "properties": { "rules": { "description": "Set of route rules", "type": "array", "items": { "$ref": "#/components/schemas/CreateRouteRuleDto" } } }, "required": [ "rules" ] }, "RoutesConfigurationDto": { "type": "object", "properties": { "id": { "type": "string", "readOnly": true, "example": "b796239c-6641-4cf3-9ff3-658ad4049131" }, "vendorId": { "type": "string", "readOnly": true, "example": "b796239c-6641-4cf3-9ff3-658ad4049131" }, "accessControlMode": { "type": "string", "readOnly": true, "example": "monitor", "enum": [ "guard", "monitor" ] } }, "required": [ "id", "vendorId", "accessControlMode" ] }, "UpdateRoutesConfigurationDto": { "type": "object", "properties": { "accessControlMode": { "type": "string", "description": "Access control mode", "example": "monitor", "enum": [ "guard", "monitor" ] } }, "required": [ "accessControlMode" ] }, "FeatureFlagDtoThin": { "type": "object", "properties": { "id": { "type": "string", "description": "UUID string that represents the feature flag ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" }, "name": { "type": "string", "description": "String that represent the feature flag name", "example": "Test Feature Flag" }, "on": { "type": "boolean", "description": "Boolean indicating whether the feature flag is on", "example": true }, "offTreatment": { "type": "string", "description": "Enum that represents the treatment in case feature flag is off", "example": "false", "enum": [ "true", "false" ] }, "defaultTreatment": { "type": "string", "description": "Enum that represents the default treatment", "example": "true", "enum": [ "true", "false" ] }, "description": { "type": "string", "description": "String the represents the feature flag description", "example": "This is a test feature flag" }, "updatedAt": { "format": "date-time", "type": "string", "description": "Date when feature flag was created", "example": "2022-01-01T00:00:00" }, "createdAt": { "format": "date-time", "type": "string", "description": "Date when feature flag was last updated", "example": "2022-01-01T00:00:00" } } }, "FeatureDto": { "type": "object", "properties": { "id": { "type": "string", "description": "UUID string representing the feature ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" }, "vendorId": { "type": "string", "description": "UUID string representing the vendor ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" }, "name": { "type": "string", "description": "String representing the feature name", "example": "Test Feature" }, "key": { "type": "string", "description": "String representing the feature key", "example": "test-feature" }, "metadata": { "type": "object", "description": "JSON String", "example": "{ \"some-key\": \"some-value\" }" }, "description": { "type": "string", "description": "Feature description", "example": "This is a test feature" }, "createdAt": { "type": "string", "description": "Date when a feature was created", "example": "2022-01-01T00:00:00" }, "updatedAt": { "type": "string", "description": "Date when a feature was last updated", "example": "2022-01-01T00:00:00" }, "permissions": { "description": "Array of permissions linked to a feature", "example": [ "permission.read", "permission.write" ], "type": "array", "items": { "type": "string" } }, "featureFlag": { "description": "Related Feature-Flag", "allOf": [ { "$ref": "#/components/schemas/FeatureFlagDtoThin" } ] } }, "required": [ "id", "vendorId", "name", "key", "metadata", "createdAt" ] }, "CreateFeatureDto": { "type": "object", "properties": { "name": { "type": "string", "description": "String representing the feature name", "example": "Test Feature" }, "key": { "type": "string", "description": "String representing the feature key", "example": "test-feature" }, "description": { "type": "string", "description": "Feature description", "example": "This is a test feature" }, "permissions": { "description": "Array of permissions linked to a feature", "example": [ "permission.read", "permission.write" ], "type": "array", "items": { "type": "string" } } }, "required": [ "name", "key" ] }, "UpdateFeatureDto": { "type": "object", "properties": { "name": { "type": "string", "description": "String representing the feature name", "example": "Test Feature" }, "key": { "type": "string", "description": "String representing the feature key", "example": "test-feature" }, "description": { "type": "string", "description": "Feature description", "example": "This is a test feature" }, "permissions": { "description": "Array of permissions linked to a feature", "example": [ "permission.read", "permission.write" ], "type": "array", "items": { "type": "string" } } } }, "PermissionDto": { "type": "object", "properties": { "permissionKey": { "type": "string", "description": "Permission key", "example": "user.read" }, "permissionId": { "type": "string", "description": "Permission identifier", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" } } }, "CreateFeatureDtoV2": { "type": "object", "properties": { "name": { "type": "string", "description": "String representing the feature name", "example": "Test Feature" }, "key": { "type": "string", "description": "String representing the feature key", "example": "test-feature" }, "description": { "type": "string", "description": "Feature description", "example": "This is a test feature" }, "permissions": { "description": "Array of permissions linked to a feature", "type": "array", "items": { "$ref": "#/components/schemas/PermissionDto" } }, "metadata": { "type": "string", "description": "JSON String", "example": "{ \"some-key\": \"some-value\" }" } }, "required": [ "name", "key" ] }, "UpdateFeatureDtoV2": { "type": "object", "properties": { "name": { "type": "string", "description": "String representing the feature name", "example": "Test Feature" }, "key": { "type": "string", "description": "String representing the feature key", "example": "test-feature" }, "description": { "type": "string", "description": "Feature description", "example": "This is a test feature" }, "permissions": { "description": "Array of permissions linked to a feature", "type": "array", "items": { "$ref": "#/components/schemas/PermissionDto" } }, "metadata": { "type": "string", "description": "JSON String", "example": "{ \"some-key\": \"some-value\" }" } } }, "EntitlementPlan": { "type": "object", "properties": { "id": { "type": "string", "description": "UUID string that represents the plan ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" }, "vendorId": { "type": "string", "description": "UUID string that represents the vendor ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" }, "name": { "type": "string", "description": "String that represents the plan name", "example": "Test Plan" }, "defaultTimeLimitation": { "type": "number", "description": "Number that represents the default time limitation in days for auto-assigned plans", "example": "30" }, "description": { "type": "string", "description": "Feature plan description", "example": "This is a test plan" }, "createdAt": { "type": "string", "description": "Date when plan was created", "example": "2022-01-01T00:00:00" }, "updatedAt": { "type": "string", "description": "Date when plan was last updated", "example": "2022-01-01T00:00:00" } }, "required": [ "id", "vendorId", "name", "createdAt" ] }, "EntitlementDto": { "type": "object", "properties": { "id": { "type": "string", "description": "UUID string that represents the entitlement ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" }, "planId": { "type": "string", "description": "UUID string that represents the plan ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" }, "tenantId": { "type": "string", "description": "UUID string that represents the tenant ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" }, "userId": { "type": "string", "description": "UUID string that represents the user ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" }, "expirationDate": { "format": "date-time", "type": "string", "description": "Date of entitlement expiration", "example": "2022-01-01T12:00:00" }, "createdAt": { "format": "date-time", "type": "string", "description": "Date when entitlement was created", "example": "2022-01-01T12:00:00" }, "updatedAt": { "format": "date-time", "type": "string", "description": "Date when entitlement was last updated", "example": "2022-01-01T12:00:00" }, "plan": { "description": "Get the related plan object of the entitlement, in case `withRelations` is set to `true`", "allOf": [ { "$ref": "#/components/schemas/EntitlementPlan" } ] } }, "required": [ "id", "planId", "tenantId", "createdAt", "plan" ] }, "CreateEntitlementDto": { "type": "object", "properties": { "planId": { "type": "string", "description": "UUID string that represents the plan ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" }, "tenantId": { "type": "string", "description": "UUID string that represents the tenant ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" }, "userId": { "type": "string", "description": "UUID string that represents the user ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" }, "expirationDate": { "format": "date-time", "type": "string", "description": "Date of entitlement expiration", "example": "2022-01-01T12:00:00" } }, "required": [ "planId", "tenantId" ] }, "CreateManyEntitlementsDto": { "type": "object", "properties": { "entitlements": { "description": "Array of entitlements to create", "type": "array", "items": { "$ref": "#/components/schemas/CreateEntitlementDto" } } }, "required": [ "entitlements" ] }, "EntitlementIdsDto": { "type": "object", "properties": { "entitlementIds": { "description": "UUID string that represents the entitlement ID", "example": [ "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" ], "type": "array", "items": { "type": "string" } } }, "required": [ "entitlementIds" ] }, "UpdateEntitlementWithIdDto": { "type": "object", "properties": { "expirationDate": { "format": "date-time", "type": "string", "description": "Date of entitlement expiration", "example": "2022-01-01T12:00:00" }, "id": { "type": "string", "description": "UUID string that represents the entitlement ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" } }, "required": [ "id" ] }, "UpdateManyEntitlementsDto": { "type": "object", "properties": { "entitlements": { "description": "Array of entitlements to update", "type": "array", "items": { "$ref": "#/components/schemas/UpdateEntitlementWithIdDto" } } }, "required": [ "entitlements" ] }, "UpdateEntitlementDto": { "type": "object", "properties": { "expirationDate": { "format": "date-time", "type": "string", "description": "Date of entitlement expiration", "example": "2022-01-01T12:00:00" } } }, "FeatureFlagFeature": { "type": "object", "properties": { "id": { "type": "string", "description": "UUID string representing the feature ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" }, "key": { "type": "string", "description": "String representing the feature key", "example": "test-feature" }, "name": { "type": "string", "description": "String representing the feature name", "example": "Test Feature" } } }, "FeatureFlagDto": { "type": "object", "properties": { "id": { "type": "string", "description": "UUID string that represents the feature flag ID", "example": "e6a5012c-cbeb-4c1e-ab80-e5f43efd44e3" }, "name": { "type": "string", "description": "String that represent the feature flag name", "example": "Test Feature Flag" }, "on": { "type": "boolean", "description": "Boolean indicating whether the feature flag is on", "example": true }, "offTreatment": { "type": "string", "description": "Enum that represents the treatment in case feature flag is off", "example": "false", "enum": [ "true", "false" ] }, "defaultTreatment": { "type": "string", "description": "Enum that represents the default treatment", "example": "true", "enum": [ "true", "false" ] }, "feature": { "description": "Object that represents the related feature", "allOf": [ { "$ref": "#/components/schemas/FeatureFlagFeature" } ] }, "description": { "type": "string", "description": "String the represents the feature flag description", "example": "This is a test feature flag" }, "metadata": { "type": "string", "description": "JSON String that represents additional custom metadata to the feature flag entity", "example": "{}" }, "rules": { "description": "Array of rules that represents the set of conditions targeting the feature", "type": "array", "items": { "$ref": "#/components/schemas/RuleDto" } }, "updatedAt": { "format": "date-time", "type": "string", "description": "Date when feature flag was created", "example": "2022-01-01T00:00:00" }, "createdAt": { "format": "date-time", "type": "string", "description": "Date when feature flag was last updated", "example": "2022-01-01T00:00:00" } } }, "CreateFeatureFlagDto": { "type": "object", "properties": { "name": { "type": "string", "description": "String that represent the feature flag name", "example": "Test Feature Flag" }, "on": { "type": "boolean", "description": "Boolean indicating whether the feature flag is on", "example": true }, "offTreatment": { "type": "string", "description": "Enum that represents the treatment in case feature flag is off", "example": "false", "enum": [ "true", "false" ] }, "defaultTreatment": { "type": "string", "description": "Enum that represents the default treatment", "example": "true", "enum": [ "true", "false" ] }, "featureId": { "type": "string", "description": "UUID string that represents the related feature ID", "example": "26f1b6b8-0317-452c-becd-68a5f782417d " }, "description": { "type": "string", "description": "String the represents the feature flag description", "example": "This is a test feature flag" }, "metadata": { "type": "string", "description": "JSON String that represents additional custom metadata to the feature flag entity", "example": "{}" }, "rules": { "description": "Array of rules that represents the set of conditions targeting the feature", "type": "array", "items": { "$ref": "#/components/schemas/RuleDto" } } }, "required": [ "name", "on", "offTreatment", "defaultTreatment", "featureId" ] }, "UpdateFeatureFlagDto": { "type": "object", "properties": { "name": { "type": "string", "description": "String that represent the feature flag name", "example": "Test Feature Flag" }, "on": { "type": "boolean", "description": "Boolean indicating whether the feature flag is on", "example": true }, "offTreatment": { "type": "string", "description": "Enum that represents the treatment in case feature flag is off", "example": "false", "enum": [ "true", "false" ] }, "defaultTreatment": { "type": "string", "description": "Enum that represents the default treatment", "example": "true", "enum": [ "true", "false" ] }, "featureId": { "type": "string", "description": "UUID string that represents the related feature ID", "example": "26f1b6b8-0317-452c-becd-68a5f782417d " }, "description": { "type": "string", "description": "String the represents the feature flag description", "example": "This is a test feature flag" }, "metadata": { "type": "string", "description": "JSON String that represents additional custom metadata to the feature flag entity", "example": "{}" }, "rules": { "description": "Array of rules that represents the set of conditions targeting the feature", "type": "array", "items": { "$ref": "#/components/schemas/RuleDto" } } } }, "VendorAuthenticationRequest": { "type": "object", "required": [ "clientId", "secret" ], "properties": { "clientId": { "type": "string" }, "secret": { "type": "string" } } }, "VendorAuthenticationResponse": { "type": "object", "properties": { "token": { "type": "string" }, "expiresIn": { "type": "number" } } }, "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" ] }, "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" ] }, "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" ] }, "ClassifyPermissionsDto": { "type": "object", "properties": { "permissionIds": { "type": "array", "items": { "type": "string" } }, "type": { "type": "string", "enum": [ "NEVER", "ALWAYS", "ASSIGNABLE" ] } }, "required": [ "permissionIds", "type" ] }, "PermissionCategoryResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string", "nullable": true }, "createdAt": { "format": "date-time", "type": "string" }, "feCategory": { "type": "boolean" } }, "required": [ "id", "name", "description", "createdAt", "feCategory" ] }, "CreateCategoryDto": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" } }, "required": [ "name" ] }, "UpdateCategoryDto": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" } } }, "CreateUserAccessTokenRequest": { "type": "object", "properties": { "description": { "type": "string" }, "expiresInMinutes": { "type": "number", "minimum": 1, "description": "Token expiration time in minutes. In case of undefined, the token won't be expired" } } }, "UserAccessTokenResponse": { "type": "object", "properties": { "id": { "type": "string" }, "description": { "type": "string" }, "createdAt": { "format": "date-time", "type": "string" }, "secret": { "type": "string" }, "expires": { "format": "date-time", "type": "string" } }, "required": [ "id", "createdAt" ] }, "GetUserAccessTokensResponse": { "type": "object", "properties": { "accessTokens": { "type": "array", "items": { "$ref": "#/components/schemas/UserAccessTokenResponse" } } }, "required": [ "accessTokens" ] }, "CreateTenantAccessTokenRequest": { "type": "object", "properties": { "description": { "type": "string" }, "expiresInMinutes": { "type": "number", "minimum": 1, "description": "Token expiration time in minutes. In case of undefined, the token won't be expired" }, "roleIds": { "description": "Array of role IDs to attach to the token", "type": "array", "items": { "type": "string" } } } }, "TenantAccessTokenResponse": { "type": "object", "properties": { "id": { "type": "string" }, "description": { "type": "string" }, "createdAt": { "format": "date-time", "type": "string" }, "secret": { "type": "string" }, "expires": { "format": "date-time", "type": "string" }, "roleIds": { "description": "Array of role ids", "type": "array", "items": { "type": "string" } }, "createdByUserId": { "type": "string", "nullable": true } }, "required": [ "id", "createdAt", "roleIds", "createdByUserId" ] }, "GetTenantAccessTokensResponse": { "type": "object", "properties": { "accessTokens": { "type": "array", "items": { "$ref": "#/components/schemas/TenantAccessTokenResponse" } } }, "required": [ "accessTokens" ] }, "AuthUserAccessTokenResponse": { "type": "object", "properties": { "userId": { "type": "string" }, "id": { "type": "string" }, "tenantId": { "type": "string" }, "permissions": { "type": "array", "items": { "type": "string" } }, "roles": { "type": "array", "items": { "type": "string" } }, "expires": { "format": "date-time", "type": "string" } }, "required": [ "userId", "id", "tenantId", "permissions", "roles" ] }, "AuthTenantAccessTokenResponse": { "type": "object", "properties": { "id": { "type": "string" }, "tenantId": { "type": "string" }, "permissions": { "type": "array", "items": { "type": "string" } }, "roles": { "type": "array", "items": { "type": "string" } }, "expires": { "format": "date-time", "type": "string" } }, "required": [ "id", "tenantId", "permissions", "roles" ] }, "RecoverMfaDto": { "type": "object", "properties": { "recoveryCode": { "type": "string" }, "email": { "type": "string" } }, "required": [ "recoveryCode", "email" ] }, "VendorConfigRequest": { "type": "object", "properties": { "defaultTokenExpiration": { "type": "number" }, "defaultRefreshTokenExpiration": { "type": "number", "maximum": 15552000 }, "cookieSameSite": { "enum": [ "STRICT", "LAX", "NONE" ], "type": "string" }, "machineToMachineAuthStrategy": { "enum": [ "ClientCredentials", "AccessToken" ], "type": "string" }, "allowSignups": { "type": "boolean" }, "apiTokensEnabled": { "type": "boolean" }, "allowOverridePasswordComplexity": { "type": "boolean" }, "allowOverridePasswordExpiration": { "type": "boolean" }, "allowOverrideEnforcePasswordHistory": { "type": "boolean" }, "jwtAlgorithm": { "enum": [ "HS256", "RS256" ], "type": "string" }, "allowNotVerifiedUsersLogin": { "type": "boolean" }, "forcePermissions": { "type": "boolean" }, "addSamlAttributesToJwt": { "type": "boolean" }, "authStrategy": { "enum": [ "Code", "EmailAndPassword", "MagicLink", "NoLocalAuthentication", "SmsCode" ], "type": "string" }, "defaultPasswordlessTokenExpiration": { "type": "number" }, "forceSameDeviceOnAuth": { "type": "boolean" }, "allowTenantInvitations": { "type": "boolean" }, "rotateRefreshTokens": { "type": "boolean" }, "skipTenantValidation": { "type": "boolean" }, "addRolesToJwt": { "type": "boolean" }, "addPermissionsToJwt": { "type": "boolean" } } }, "VendorConfigResponse": { "type": "object", "properties": { "id": { "type": "string" }, "defaultTokenExpiration": { "type": "number" }, "defaultRefreshTokenExpiration": { "type": "number" }, "publicKey": { "type": "string" }, "cookieSameSite": { "enum": [ "STRICT", "LAX", "NONE" ], "type": "string" }, "allowSignups": { "type": "boolean" }, "apiTokensEnabled": { "type": "boolean" }, "allowOverridePasswordComplexity": { "type": "boolean" }, "allowOverridePasswordExpiration": { "type": "boolean" }, "allowOverrideEnforcePasswordHistory": { "type": "boolean" }, "jwtAlgorithm": { "enum": [ "RS256", "HS256" ], "type": "string" }, "jwtSecret": { "type": "string" }, "allowNotVerifiedUsersLogin": { "type": "boolean" }, "forcePermissions": { "type": "boolean" }, "authStrategy": { "enum": [ "EmailAndPassword", "MagicLink", "Code", "NoLocalAuthentication", "SmsCode" ], "type": "string" }, "defaultPasswordlessTokenExpiration": { "type": "number" }, "forceSameDeviceOnAuth": { "type": "boolean" }, "allowTenantInvitations": { "type": "boolean" }, "rotateRefreshTokens": { "type": "boolean" }, "machineToMachineAuthStrategy": { "enum": [ "ClientCredentials", "AccessToken" ], "type": "string" }, "addRolesToJwt": { "type": "boolean" }, "addPermissionsToJwt": { "type": "boolean" }, "refreshTokensRotationLimit": { "type": "number" }, "addSamlAttributesToJwt": { "type": "boolean" } }, "required": [ "id", "defaultTokenExpiration", "defaultRefreshTokenExpiration", "publicKey", "cookieSameSite", "allowSignups", "apiTokensEnabled", "allowOverridePasswordComplexity", "allowOverridePasswordExpiration", "allowOverrideEnforcePasswordHistory", "jwtAlgorithm", "jwtSecret", "allowNotVerifiedUsersLogin", "forcePermissions", "authStrategy", "defaultPasswordlessTokenExpiration", "forceSameDeviceOnAuth", "allowTenantInvitations", "rotateRefreshTokens", "machineToMachineAuthStrategy", "addRolesToJwt", "addPermissionsToJwt", "refreshTokensRotationLimit", "addSamlAttributesToJwt" ] }, "MfaAuthAppConfig": { "type": "object", "properties": { "active": { "type": "boolean" }, "serviceName": { "type": "string" } }, "required": [ "active", "serviceName" ] }, "MfaSmsConfig": { "type": "object", "properties": { "active": { "type": "boolean" }, "tokenLifetimeSeconds": { "type": "number", "minimum": 300 } }, "required": [ "active", "tokenLifetimeSeconds" ] }, "MfaEmailConfig": { "type": "object", "properties": { "active": { "type": "boolean" }, "tokenLifetimeSeconds": { "type": "number", "minimum": 300 }, "sender": { "type": "string" } }, "required": [ "active", "tokenLifetimeSeconds", "sender" ] }, "MfaConfigRequest": { "type": "object", "properties": { "authenticationApp": { "$ref": "#/components/schemas/MfaAuthAppConfig" }, "sms": { "$ref": "#/components/schemas/MfaSmsConfig" }, "email": { "$ref": "#/components/schemas/MfaEmailConfig" } } }, "AuthenticationAppConfiguration": { "type": "object", "properties": { "active": { "type": "boolean" }, "serviceName": { "type": "string" } }, "required": [ "active", "serviceName" ] }, "SmsConfiguration": { "type": "object", "properties": { "active": { "type": "boolean" }, "tokenLifetimeSeconds": { "type": "number" } }, "required": [ "active", "tokenLifetimeSeconds" ] }, "EmailConfiguration": { "type": "object", "properties": { "active": { "type": "boolean" }, "tokenLifetimeSeconds": { "type": "number" }, "sender": { "type": "string" } }, "required": [ "active", "tokenLifetimeSeconds", "sender" ] }, "MfaConfigResponse": { "type": "object", "properties": { "authenticationApp": { "$ref": "#/components/schemas/AuthenticationAppConfiguration" }, "sms": { "$ref": "#/components/schemas/SmsConfiguration" }, "email": { "$ref": "#/components/schemas/EmailConfiguration" } }, "required": [ "authenticationApp", "sms", "email" ] }, "PasswordConfigRequest": { "type": "object", "properties": { "allowPassphrases": { "type": "boolean" }, "maxLength": { "type": "number" }, "minLength": { "type": "number" }, "minPhraseLength": { "type": "number" }, "minOptionalTestsToPass": { "type": "number" }, "blockPwnedPasswords": { "type": "boolean" } } }, "PasswordConfigResponse": { "type": "object", "properties": { "allowPassphrases": { "type": "boolean" }, "maxLength": { "type": "number" }, "minLength": { "type": "number" }, "minPhraseLength": { "type": "number" }, "minOptionalTestsToPass": { "type": "number" }, "blockPwnedPasswords": { "type": "boolean" } }, "required": [ "blockPwnedPasswords" ] }, "MfaPolicyRequest": { "type": "object", "properties": { "enforceMFAType": { "type": "string", "enum": [ "DontForce", "Force", "ForceExceptSAML" ], "description": "Determine whether MFA should be enforced.", "default": "Force" }, "allowRememberMyDevice": { "type": "boolean", "description": "Determine whether devices can be remembered and authentication can be skipped.", "default": false }, "mfaDeviceExpiration": { "type": "number", "description": "Expiration time of device in seconds", "default": 1209600 } } }, "MfaPolicyResponse": { "type": "object", "properties": { "id": { "type": "string" }, "enforceMFAType": { "type": "string" }, "allowRememberMyDevice": { "type": "boolean" }, "mfaDeviceExpiration": { "type": "number" }, "createdAt": { "format": "date-time", "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" } }, "required": [ "id", "allowRememberMyDevice", "mfaDeviceExpiration", "createdAt", "updatedAt" ] }, "LockoutPolicyRequest": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Determine whether the Lockout Policy is enabled" }, "maxAttempts": { "type": "number", "description": "The number of the maximum login attempts user can do", "minimum": 1 } }, "required": [ "enabled", "maxAttempts" ] }, "LockoutPolicyResponse": { "type": "object", "properties": { "id": { "type": "string" }, "enabled": { "type": "boolean" }, "maxAttempts": { "type": "number" }, "createdAt": { "format": "date-time", "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" } }, "required": [ "id", "enabled", "maxAttempts", "createdAt", "updatedAt" ] }, "PasswordHistoryPolicyRequest": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Detemine whether the history policy is enbaled.", "default": false }, "historySize": { "type": "number", "description": "Number of passwords per user to remember in the history.", "maximum": 10, "minimum": 1, "default": 1 } }, "required": [ "enabled", "historySize" ] }, "PasswordHistoryPolicyResponse": { "type": "object", "properties": { "id": { "type": "string" }, "enabled": { "type": "boolean" }, "historySize": { "type": "number" }, "createdAt": { "format": "date-time", "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" } }, "required": [ "id", "enabled", "historySize", "createdAt", "updatedAt" ] }, "CaptchaPolicyRequest": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "siteKey": { "type": "string" }, "secretKey": { "type": "string" }, "minScore": { "type": "number" }, "ignoredEmails": { "description": "Captcha validation will be skipped for those emails.", "type": "array", "items": { "type": "string" } } }, "required": [ "enabled", "siteKey", "secretKey", "minScore" ] }, "CaptchaPolicyResponse": { "type": "object", "properties": { "id": { "type": "string" }, "siteKey": { "type": "string" }, "secretKey": { "type": "string" }, "enabled": { "type": "boolean" }, "minScore": { "type": "number" }, "ignoredEmails": { "type": "array", "items": { "type": "string" } }, "createdAt": { "format": "date-time", "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" } }, "required": [ "id", "siteKey", "secretKey", "enabled", "minScore", "ignoredEmails", "createdAt", "updatedAt" ] }, "CreateTemplateDto": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "ResetPassword", "ActivateUser", "InviteToTenant", "PwnedPassword", "MagicLink", "OTC", "ConnectNewDevice", "UserUsedInvitation", "ResetPhoneNumber", "BulkInvitesToTenant", "MFAEnroll", "MFAUnenroll", "NewMFAMethod", "MFARecoveryCode", "RemoveMFAMethod", "EmailVerification", "BruteForceProtection", "SuspiciousIP", "MFAOTC", "ImpossibleTravel", "BotDetection", "SmsAuthenticationEnabled", "UnlockUser", "UnlockUserSuccess", "ActivateUserWithCode", "InviteToTenantWithCode" ] }, "senderEmail": { "type": "string" }, "redirectURL": { "type": "string", "description": "Only required for: ResetPassword, ActivateUser, InviteToTenant, MagicLink, BulkInvitesToTenant" }, "htmlTemplate": { "type": "string", "maxLength": 100000 }, "subject": { "type": "string" }, "fromName": { "type": "string" }, "successRedirectUrl": { "type": "string" }, "active": { "type": "boolean" } }, "required": [ "type" ] }, "GetTemplateResponseDto": { "type": "object", "properties": { "htmlTemplate": { "type": "string" }, "senderEmail": { "type": "string" }, "redirectURL": { "type": "string" }, "successRedirectUrl": { "type": "string" }, "subject": { "type": "string" }, "fromName": { "type": "string" }, "active": { "type": "boolean" }, "type": { "type": "object" }, "redirectURLPattern": { "type": "string" }, "successRedirectUrlPattern": { "type": "string" } }, "required": [ "htmlTemplate", "senderEmail", "redirectURL", "successRedirectUrl", "subject", "fromName", "active", "type" ] }, "CreateOrUpdateMailConfigRequestDto": { "type": "object", "properties": { "secret": { "type": "string" } }, "required": [ "secret" ] }, "GetMailConfigResponseDto": { "type": "object", "properties": { "secret": { "type": "string" }, "createdAt": { "format": "date-time", "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" }, "extension": { "type": "array", "items": { "type": "object" } }, "provider": { "type": "string", "enum": [ "sendgrid", "mailgun", "ses", "ses-role" ] } }, "required": [ "secret", "createdAt", "updatedAt", "extension", "provider" ] }, "SendGridDto": { "type": "object", "properties": { "provider": { "type": "string", "enum": [ "sendgrid" ] }, "secret": { "type": "string" } }, "required": [ "provider", "secret" ] }, "SesDto": { "type": "object", "properties": { "provider": { "type": "string", "enum": [ "ses" ] }, "secret": { "type": "string" }, "id": { "type": "string" }, "region": { "type": "string" } }, "required": [ "provider", "secret", "id", "region" ] }, "MailgunDto": { "type": "object", "properties": { "provider": { "type": "string", "enum": [ "mailgun" ] }, "secret": { "type": "string" }, "domain": { "type": "string" }, "region": { "default": "us", "enum": [ { "US": "us", "EU": "eu" } ], "type": "number" } }, "required": [ "provider", "secret", "domain", "region" ] }, "SesRoleDto": { "type": "object", "properties": { "provider": { "type": "string", "enum": [ "ses-role" ] }, "secret": { "type": "string" }, "region": { "type": "string" } }, "required": [ "provider", "secret", "region" ] }, "CreateTenantApiTokenDto": { "type": "object", "properties": { "metadata": { "type": "object", "description": "Extra data that will be encoded as part of the JWT" }, "description": { "type": "string" }, "roleIds": { "description": "Array of role ids. Either this or permissionIds must be provided, but not both.", "type": "array", "items": { "type": "string" } }, "permissionIds": { "description": "Array of permission ids. Either this or roleIds must be provided, but not both. roleIds will override permissionIds.", "type": "array", "items": { "type": "string" } } } }, "CreateTenantApiTokenResponseDto": { "type": "object", "properties": { "clientId": { "type": "string" }, "description": { "type": "string", "nullable": true }, "tenantId": { "type": "string" }, "secret": { "type": "string" }, "createdByUserId": { "type": "string", "nullable": true }, "metadata": { "type": "object", "description": "Extra data that will be encoded as part of the JWT" }, "createdAt": { "format": "date-time", "type": "string" }, "permissionIds": { "description": "Array of permission ids", "type": "array", "items": { "type": "string" } }, "roleIds": { "description": "Array of role ids", "type": "array", "items": { "type": "string" } }, "expires": { "format": "date-time", "type": "string" } }, "required": [ "clientId", "description", "tenantId", "secret", "createdByUserId", "metadata", "createdAt" ] }, "GetTenantApiTokensResponse": { "type": "object", "properties": { "clientId": { "type": "string" }, "description": { "type": "string", "nullable": true }, "tenantId": { "type": "string" }, "createdByUserId": { "type": "string", "nullable": true }, "metadata": { "type": "object", "description": "Extra data that will be encoded as part of the JWT" }, "createdAt": { "format": "date-time", "type": "string" }, "permissionIds": { "description": "Array of permission ids. Either this or roleIds will be present, but not both.", "type": "array", "items": { "type": "string" } }, "roleIds": { "description": "Array of role ids. Either this or permissionIds will be present, but not both.", "type": "array", "items": { "type": "string" } }, "expires": { "format": "date-time", "type": "string" } }, "required": [ "clientId", "description", "tenantId", "createdByUserId", "metadata", "createdAt", "permissionIds", "roleIds", "expires" ] }, "UpdateApiTokenDto": { "type": "object", "properties": { "description": { "type": "string" }, "roleIds": { "description": "Array of role ids", "type": "array", "items": { "type": "string" } }, "permissionIds": { "description": "Array of permission ids", "type": "array", "items": { "type": "string" } } } }, "UpdateTenantApiTokenResponseDto": { "type": "object", "properties": { "clientId": { "type": "string" }, "description": { "type": "string", "nullable": true }, "tenantId": { "type": "string" }, "createdByUserId": { "type": "string", "nullable": true }, "metadata": { "type": "object", "description": "Extra data that will be encoded as part of the JWT" }, "createdAt": { "format": "date-time", "type": "string" }, "permissionIds": { "description": "Array of permission ids", "type": "array", "items": { "type": "string" } }, "roleIds": { "description": "Array of role ids", "type": "array", "items": { "type": "string" } }, "expires": { "format": "date-time", "type": "string" } }, "required": [ "clientId", "description", "tenantId", "createdByUserId", "metadata", "createdAt" ] }, "CreateUserApiTokenDto": { "type": "object", "properties": { "metadata": { "type": "object", "description": "Extra data that will be encoded as part of the JWT" }, "description": { "type": "string" }, "expiresInMinutes": { "type": "number", "minimum": 1, "maximum": 5256000, "description": "Token expiration time in minutes. In case of undefined, the token won't be expired" } } }, "CreateUserApiTokenResponseDto": { "type": "object", "properties": { "clientId": { "type": "string" }, "description": { "type": "string" }, "metadata": { "type": "object", "description": "Extra data that will be encoded as part of the JWT" }, "createdAt": { "format": "date-time", "type": "string" }, "secret": { "type": "string" }, "expires": { "format": "date-time", "type": "string" } }, "required": [ "clientId", "description", "metadata", "createdAt", "secret" ] }, "GetUserApiTokensResponseDto": { "type": "object", "properties": { "clientId": { "type": "string" }, "description": { "type": "string" }, "metadata": { "type": "object", "description": "Extra data that will be encoded as part of the JWT" }, "createdAt": { "format": "date-time", "type": "string" }, "expires": { "format": "date-time", "type": "string" } }, "required": [ "clientId", "description", "metadata", "createdAt" ] }, "RoleResponse": { "type": "object", "properties": { "id": { "type": "string" }, "vendorId": { "type": "string" }, "tenantId": { "type": "string" }, "key": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "isDefault": { "type": "boolean" }, "firstUserRole": { "type": "boolean" }, "level": { "type": "number" }, "createdAt": { "format": "date-time", "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" }, "permissions": { "type": "array", "items": { "type": "string" } } }, "required": [ "id", "vendorId", "tenantId", "key", "name", "description", "isDefault", "firstUserRole", "level", "createdAt", "updatedAt", "permissions" ] }, "UserTenantDto": { "type": "object", "properties": { "tenantId": { "type": "string" }, "roles": { "type": "array", "items": { "$ref": "#/components/schemas/RoleResponse" } }, "temporaryExpirationDate": { "format": "date-time", "type": "string" }, "isDisabled": { "type": "boolean" } }, "required": [ "tenantId", "roles" ] }, "UserDto": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "name": { "type": "string" }, "profilePictureUrl": { "type": "string" }, "sub": { "type": "string" }, "verified": { "type": "boolean" }, "mfaEnrolled": { "type": "boolean" }, "mfaBypass": { "type": "boolean" }, "phoneNumber": { "type": "string" }, "roles": { "type": "array", "items": { "$ref": "#/components/schemas/RoleResponse" } }, "permissions": { "type": "array", "items": { "$ref": "#/components/schemas/PermissionResponse" } }, "provider": { "type": "string" }, "tenantId": { "type": "string" }, "tenantIds": { "type": "array", "items": { "type": "string" } }, "activatedForTenant": { "type": "boolean" }, "isLocked": { "type": "boolean" }, "tenants": { "type": "array", "items": { "$ref": "#/components/schemas/UserTenantDto" } }, "invisible": { "type": "boolean" }, "superUser": { "type": "boolean" }, "metadata": { "type": "string" }, "vendorMetadata": { "type": "string" }, "createdAt": { "format": "date-time", "type": "string" }, "lastLogin": { "format": "date-time", "type": "string" }, "groups": { "type": "array", "items": { "type": "object" } }, "subAccountAccessAllowed": { "type": "boolean" }, "managedBy": { "enum": [ "frontegg", "scim2", "external" ], "type": "string" } }, "required": [ "id", "email", "sub", "verified", "mfaEnrolled", "roles", "permissions", "provider", "tenantId", "tenantIds", "tenants", "metadata", "vendorMetadata", "createdAt", "lastLogin", "subAccountAccessAllowed" ] }, "ValidateUserPasswordRequest": { "type": "object", "properties": { "email": { "type": "string" }, "password": { "type": "string" } }, "required": [ "email", "password" ] }, "ValidateUserPasswordResponse": { "type": "object", "properties": {} }, "CreateUserDtoVendorOnly": { "type": "object", "properties": { "email": { "type": "string" }, "name": { "type": "string" }, "password": { "type": "string" }, "metadata": { "type": "string", "description": "Stringified JSON object" }, "vendorMetadata": { "type": "string", "description": "Extra vendor-only data. stringified JSON object" }, "roleIds": { "description": "Role IDs to assign to the user", "type": "array", "items": { "type": "string" } }, "tenantId": { "type": "string" }, "expirationInSeconds": { "type": "number", "description": "Temporary user expiration in seconds" }, "mfaBypass": { "type": "boolean", "description": "Bypass MFA for this user" } }, "required": [ "email", "tenantId" ] }, "CreateInviteTokenRequest": { "type": "object", "properties": { "tenantId": { "type": "string" }, "userId": { "type": "string" }, "expiresInMinutes": { "type": "number" }, "shouldSendEmail": { "type": "boolean" } }, "required": [ "tenantId" ] }, "InviteTokenDto": { "type": "object", "properties": { "id": { "type": "string" }, "vendorId": { "type": "string" }, "tenantId": { "type": "string" }, "userId": { "type": "string" }, "token": { "type": "string" }, "expires": { "format": "date-time", "type": "string" }, "shouldSendEmail": { "type": "boolean" }, "name": { "type": "string" } }, "required": [ "id", "vendorId", "tenantId", "token", "expires", "shouldSendEmail" ] }, "CreateInviteTokenRequestForUser": { "type": "object", "properties": { "expiresInMinutes": { "type": "number" }, "shouldSendEmail": { "type": "boolean" } }, "required": [ "expiresInMinutes", "shouldSendEmail" ] }, "UpdateInviteTokenRequest": { "type": "object", "properties": { "expiresInMinutes": { "type": "number" }, "shouldSendEmail": { "type": "boolean" } } }, "VerifyInviteTokenRequest": { "type": "object", "properties": { "token": { "type": "string" } }, "required": [ "token" ] }, "InvitationConfigurationResponse": { "type": "object", "properties": { "tenantInvitationsAllowed": { "type": "boolean" }, "emailsEnabled": { "type": "boolean" } }, "required": [ "tenantInvitationsAllowed", "emailsEnabled" ] }, "SessionIdleTimeoutConfigurationDto": { "type": "object", "properties": { "isActive": { "type": "boolean" }, "timeout": { "type": "number", "minimum": 60, "maximum": 2073600 } }, "required": [ "isActive", "timeout" ] }, "SessionTimeoutConfigurationDto": { "type": "object", "properties": { "isActive": { "type": "boolean" }, "timeout": { "type": "number", "minimum": 60 } }, "required": [ "isActive", "timeout" ] }, "SessionConcurrentConfigurationDto": { "type": "object", "properties": { "isActive": { "type": "boolean" }, "maxSessions": { "type": "number", "minimum": 1 } }, "required": [ "isActive", "maxSessions" ] }, "CreateSessionConfigurationRequest": { "type": "object", "properties": { "sessionIdleTimeoutConfiguration": { "$ref": "#/components/schemas/SessionIdleTimeoutConfigurationDto" }, "sessionTimeoutConfiguration": { "$ref": "#/components/schemas/SessionTimeoutConfigurationDto" }, "sessionConcurrentConfiguration": { "$ref": "#/components/schemas/SessionConcurrentConfigurationDto" } } }, "MFAStrategyResponse": { "type": "object", "properties": { "strategy": { "enum": [ "AuthenticatorApp", "WebAuthnPlatform", "WebAuthnCrossPlatform", "SMS" ], "type": "string" }, "isActive": { "type": "boolean" } }, "required": [ "strategy", "isActive" ] }, "MFAStrategiesResponse": { "type": "object", "properties": { "strategies": { "type": "array", "items": { "$ref": "#/components/schemas/MFAStrategyResponse" } } }, "required": [ "strategies" ] }, "CreateOrUpdateMFAStrategyRequest": { "type": "object", "properties": { "isActive": { "type": "boolean" }, "strategy": { "type": "string", "enum": [ "AuthenticatorApp", "WebAuthnPlatform", "WebAuthnCrossPlatform", "SMS" ] } }, "required": [ "isActive", "strategy" ] }, "RoleDto": { "type": "object", "properties": { "id": { "type": "string" }, "vendorId": { "type": "string" }, "tenantId": { "type": "string" }, "key": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "isDefault": { "type": "boolean" }, "firstUserRole": { "type": "boolean" }, "level": { "type": "number" }, "createdAt": { "format": "date-time", "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" } }, "required": [ "id", "vendorId", "tenantId", "key", "name", "description", "isDefault", "firstUserRole", "level", "createdAt", "updatedAt" ] }, "GroupUserDto": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "name": { "type": "string" }, "profilePictureUrl": { "type": "string" }, "createdAt": { "format": "date-time", "type": "string" }, "activatedForTenant": { "type": "boolean" } }, "required": [ "id", "email", "name", "profilePictureUrl", "createdAt", "activatedForTenant" ] }, "GroupResponse": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "color": { "type": "string" }, "description": { "type": "string" }, "metadata": { "type": "string" }, "roles": { "type": "array", "items": { "$ref": "#/components/schemas/RoleDto" } }, "users": { "type": "array", "items": { "$ref": "#/components/schemas/GroupUserDto" } }, "managedBy": { "enum": [ "frontegg", "scim2" ], "type": "string" }, "createdAt": { "format": "date-time", "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" } }, "required": [ "id", "name", "color", "description", "metadata", "roles", "users", "managedBy", "createdAt", "updatedAt" ] }, "GroupsResponse": { "type": "object", "properties": { "groups": { "type": "array", "items": { "$ref": "#/components/schemas/GroupResponse" } } }, "required": [ "groups" ] }, "GetGroupsDto": { "type": "object", "properties": { "groupsIds": { "description": "Group IDs", "type": "array", "items": { "type": "string" } } }, "required": [ "groupsIds" ] }, "CreateGroupDto": { "type": "object", "properties": { "color": { "type": "string", "description": "Color for group display" }, "description": { "type": "string", "description": "Group description" }, "metadata": { "type": "string", "description": "Stringified JSON object", "example": "{}" }, "name": { "type": "string", "description": "Group unique name" } }, "required": [ "name" ] }, "UpdateGroupDto": { "type": "object", "properties": { "color": { "type": "string", "description": "Color for group display" }, "description": { "type": "string", "description": "Group description" }, "metadata": { "type": "string", "description": "Stringified JSON object", "example": "{}" }, "name": { "type": "string", "description": "Group unique name" } } }, "GetGroupConfigurationResponse": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "rolesEnabled": { "type": "boolean" } }, "required": [ "enabled", "rolesEnabled" ] }, "CreateOrUpdateGroupConfigurationDto": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Determine whether groups are enabled/disabled. Default value is true.", "default": true }, "rolesEnabled": { "type": "boolean", "description": "Determine whether groups can have roles or not. Default value is true.", "default": true } } }, "UpdateRolesOnGroupDto": { "type": "object", "properties": { "roleIds": { "description": "Will add / remove requested roles from the group", "example": [ "5fbae0d3-a3b7-4b1e-8d64-6c9428f84aae", "8b2d0f9a-f39e-49b3-98ca-93c85c06d1a7" ], "type": "array", "items": { "type": "string" } } }, "required": [ "roleIds" ] }, "UpdateUsersOnGroupDto": { "type": "object", "properties": { "userIds": { "description": "An array of User IDs to add / remove existing users to / from the group.", "example": [ "262io276-3c5v-9y31-ba03-281674a89d4c", "eeooc819-87dd-1cdd-b81d-e8829vm9d684" ], "type": "array", "items": { "type": "string" } } }, "required": [ "userIds" ] }, "TenantStatus": { "type": "object", "properties": { "tenantId": { "type": "string" }, "status": { "type": "string", "enum": [ "PendingInvitation", "PendingLogin", "Activated", "NotActivated" ] } }, "required": [ "tenantId", "status" ] }, "UserTenantStatusesResponse": { "type": "object", "properties": { "userId": { "type": "string" }, "tenantsStatuses": { "description": "Tenants Statuses", "type": "array", "items": { "$ref": "#/components/schemas/TenantStatus" } } }, "required": [ "userId", "tenantsStatuses" ] }, "AddRoleRequest": { "type": "object", "properties": { "key": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "isDefault": { "type": "boolean", "description": "This role will be assigned for every user that will be added without specified roles" }, "migrateRole": { "type": "boolean", "description": "Set this property to `true` together with `isDefault` in order to assign this role to all users" }, "firstUserRole": { "type": "boolean", "description": "This role will be assigned to the first user of a tenant (new tenants only)" }, "level": { "type": "number", "minimum": 0, "maximum": 32767, "description": "Role level for roles elevation, lower level means stronger role." } }, "required": [ "key", "name", "level" ] }, "UpdateRoleRequest": { "type": "object", "properties": { "isDefault": { "type": "boolean", "description": "This role will be assigned for every user that will be added without specified roles" }, "firstUserRole": { "type": "boolean", "description": "This role will be assigned to the first user of a tenant (new tenants only)" }, "migrateRole": { "type": "boolean", "description": "Set this property to `true` together with `isDefault` in order to assign this role to all users" }, "level": { "type": "number", "minimum": 0, "maximum": 32767, "description": "Role level for roles elevation, lower level means stronger role." }, "key": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" } } }, "AddPermissionToRoleRequest": { "type": "object", "properties": { "permissionIds": { "description": "Set permission ids to attach to the role", "type": "array", "items": { "type": "string" } } }, "required": [ "permissionIds" ] }, "AddRoleWithPermissionsRequest": { "type": "object", "properties": { "key": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "isDefault": { "type": "boolean", "description": "This role will be assigned for every user that will be added without specified roles" }, "baseRoleId": { "type": "string", "description": "Role level of the new role will be based on this parameter" }, "permissionIds": { "type": "array", "items": { "type": "string" } } }, "required": [ "key", "name", "baseRoleId", "permissionIds" ] }, "AddRoleWithPermissionsResponse": { "type": "object", "properties": { "id": { "type": "string" }, "vendorId": { "type": "string" }, "tenantId": { "type": "string" }, "key": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "isDefault": { "type": "boolean" }, "permissions": { "type": "array", "items": { "type": "string" } } }, "required": [ "id", "vendorId", "tenantId", "key", "name", "description", "isDefault", "permissions" ] }, "TemporaryUserDto": { "type": "object", "properties": { "expirationInSeconds": { "type": "number", "minimum": 300 } }, "required": [ "expirationInSeconds" ] }, "TemporaryUsersConfigurationDto": { "type": "object", "properties": { "enabled": { "type": "boolean" } }, "required": [ "enabled" ] }, "UserPhoneNumberResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "userId": { "type": "string" }, "phoneNumber": { "type": "string" }, "verified": { "type": "boolean" }, "createdAt": { "format": "date-time", "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" } }, "required": [ "id", "userId", "phoneNumber", "verified", "createdAt", "updatedAt" ] }, "CreateUserPhoneNumberRequestDto": { "type": "object", "properties": { "phoneNumber": { "type": "string", "description": "New phone number" }, "verify": { "type": "boolean", "default": true, "description": "Should send verification code, default is true" } }, "required": [ "phoneNumber" ] }, "UserPhoneNumberCreatedResponseDto": { "type": "object", "properties": {} }, "PreVerifyUserPhoneNumberRequestDto": { "type": "object", "properties": { "phoneNumber": { "type": "string", "description": "New phone number" } }, "required": [ "phoneNumber" ] }, "VerifyPhoneNumberOTCRequestDto": { "type": "object", "properties": { "otcToken": { "type": "string", "description": "OTC token" }, "code": { "type": "string", "description": "Code that was sent to the user" } }, "required": [ "otcToken", "code" ] }, "UserPhoneNumberDeleteCodeResponseDto": { "type": "object", "properties": {} }, "UserBulkInviteRequestDto": { "type": "object", "properties": { "email": { "type": "string", "format": "email" }, "name": { "type": "string" }, "profilePictureUrl": { "type": "string", "maxLength": 4095 }, "password": { "type": "string" }, "phoneNumber": { "type": "string" }, "provider": { "type": "string", "default": "local", "enum": [ "local", "saml", "google", "github", "facebook", "microsoft", "scim2", "slack", "apple" ] }, "metadata": { "type": "string", "description": "Stringified JSON object", "example": "{}" }, "skipInviteEmail": { "type": "boolean" }, "roleIds": { "type": "array", "items": { "type": "string" } }, "emailMetadata": { "type": "object" }, "expirationInSeconds": { "type": "number", "minimum": 300, "description": "Temporary user expiration in seconds" }, "verified": { "type": "boolean" } }, "required": [ "email" ] }, "UsersBulkInviteRequestDto": { "type": "object", "properties": { "users": { "type": "array", "items": { "$ref": "#/components/schemas/UserBulkInviteRequestDto" } } }, "required": [ "users" ] }, "TaskContext": { "type": "object", "properties": {} }, "Auth0Configuration": { "type": "object", "properties": { "domain": { "type": "string" }, "clientId": { "type": "string" }, "secret": { "type": "string" }, "tenantIdFieldName": { "type": "string", "description": "The field name that the tenant ID will be taken from under app metadata" }, "isTenantIdOnUserMetadata": { "type": "boolean", "description": "If you would like to take tenant ID from user metadata, set this field to true" } }, "required": [ "domain", "clientId", "secret", "tenantIdFieldName" ] }, "PasswordHashingType": { "type": "string", "enum": [ "bcrypt", "scrypt", "firebase-scrypt", "pbkdf2", "argon2" ] }, "MigrateUserRequest": { "type": "object", "properties": { "passwordHash": { "type": "string", "description": "The password hash. For SCrypt should include the salt and key seperated by the salt separator" }, "passwordHashType": { "$ref": "#/components/schemas/PasswordHashingType" }, "passwordHashConfig": { "type": "string", "maxLength": 4095, "description": "Stringified JSON Hashing config for the migrated password. For SCrypt should be formatted as { saltSeparator, N, r, p, keyLen }. For FirebaseScrypt should be formatted as { memCost, rounds, saltSeparator, signerKey }" }, "phoneNumber": { "type": "string", "description": "phoneNumber can be used both for login with SMS and for MFA This auto-enrolls the user in MFA, prompting them at first login (regardless of tenant/vendor MFA settings). The required format is an area code + number, no spaces. For example: \"+16037184056\" The number must be unique" }, "provider": { "type": "string", "enum": [ "local", "saml", "google", "github", "facebook", "microsoft", "scim2", "slack", "apple" ], "default": "local" }, "metadata": { "type": "string", "description": "Stringified JSON object" }, "verifyUser": { "type": "boolean", "default": false, "description": "Whether to verify the user as part of the migration process. If this is set to false, another call is required for the verify user API" }, "roleIds": { "default": [], "description": "Role ids of the migrated users. If not provided, the user will be assigned the default roles", "type": "array", "items": { "type": "string" } }, "email": { "type": "string" }, "tenantId": { "type": "string" }, "name": { "type": "string" }, "profilePictureUrl": { "type": "string", "maxLength": 4095 }, "authenticatorAppMfaSecret": { "type": "string" } }, "required": [ "email", "tenantId" ] }, "MigrateUsersRequest": { "type": "object", "properties": { "users": { "type": "array", "items": { "$ref": "#/components/schemas/MigrateUserRequest" } } }, "required": [ "users" ] }, "MigrationContext": { "type": "object", "properties": { "migrationId": { "type": "string" } }, "required": [ "migrationId" ] }, "MigrationObject": { "type": "object", "properties": {} }, "UpdateSubAccountAccessRequestDto": { "type": "object", "properties": { "allowAccess": { "type": "boolean" } }, "required": [ "allowAccess" ] }, "ResetPasswordDto": { "type": "object", "properties": { "email": { "type": "string", "format": "email" }, "emailMetadata": { "type": "object" } }, "required": [ "email" ] }, "VerifyPasswordDto": { "type": "object", "properties": { "userId": { "type": "string" }, "token": { "type": "string" }, "password": { "type": "string" } }, "required": [ "userId", "token", "password" ] }, "UpdateUserPasswordDto": { "type": "object", "properties": { "password": { "type": "string" }, "newPassword": { "type": "string" } }, "required": [ "password", "newPassword" ] }, "ResetActivationTokenDto": { "type": "object", "properties": { "email": { "type": "string", "format": "email" }, "emailMetadata": { "type": "object" } }, "required": [ "email", "emailMetadata" ] }, "CreateCustomSsoRequestDto": { "type": "object", "properties": { "type": { "type": "string" }, "clientId": { "type": "string" }, "secret": { "type": "string" }, "redirectUrl": { "type": "string" }, "authorizationUrl": { "type": "string" }, "tokenUrl": { "type": "string" }, "userInfoUrl": { "type": "string" }, "scopes": { "type": "string" }, "ssoLogoUrl": { "type": "string" }, "displayName": { "type": "string" }, "active": { "type": "boolean" } }, "required": [ "type", "clientId", "secret", "redirectUrl", "authorizationUrl", "tokenUrl", "userInfoUrl", "scopes", "ssoLogoUrl", "displayName", "active" ] }, "UpdateCustomSsoRequestDto": { "type": "object", "properties": { "type": { "type": "string" }, "clientId": { "type": "string" }, "secret": { "type": "string" }, "redirectUrl": { "type": "string" }, "authorizationUrl": { "type": "string" }, "tokenUrl": { "type": "string" }, "userInfoUrl": { "type": "string" }, "scopes": { "type": "string" }, "ssoLogoUrl": { "type": "string" }, "displayName": { "type": "string" }, "active": { "type": "boolean" } } }, "UserApplicationsResponseDto": { "type": "object", "properties": { "userId": { "type": "string" }, "appIds": { "type": "array", "items": { "type": "string" } } }, "required": [ "userId", "appIds" ] }, "ApplicationUsersResponseDto": { "type": "object", "properties": { "appId": { "type": "string" }, "userIds": { "type": "array", "items": { "type": "string" } } }, "required": [ "appId", "userIds" ] }, "AssignUsersToAppRequestDto": { "type": "object", "properties": { "appId": { "type": "string" }, "tenantId": { "type": "string" }, "userIds": { "type": "array", "items": { "type": "string" } } }, "required": [ "appId", "tenantId", "userIds" ] }, "ApplicationUserTenantsResponseDto": { "type": "object", "properties": { "appId": { "type": "string" }, "userTenantId": { "type": "string" }, "createdAt": { "format": "date-time", "type": "string" } }, "required": [ "appId", "userTenantId", "createdAt" ] }, "AssignUserToMultipleApplicationsRequestDto": { "type": "object", "properties": { "userId": { "type": "string" }, "tenantId": { "type": "string" }, "appIds": { "type": "array", "items": { "type": "string" } } }, "required": [ "userId", "tenantId", "appIds" ] }, "UnassignUsersFromAppRequestDto": { "type": "object", "properties": { "appId": { "type": "string" }, "tenantId": { "type": "string" }, "userIds": { "type": "array", "items": { "type": "string" } } }, "required": [ "appId", "tenantId", "userIds" ] }, "UnassignUserFromMultipleAppsRequestDto": { "type": "object", "properties": { "userId": { "type": "string" }, "tenantId": { "type": "string" }, "appIds": { "type": "array", "items": { "type": "string" } } }, "required": [ "userId", "tenantId", "appIds" ] }, "UserApplicationActiveTenantResponse": { "type": "object", "properties": { "tenantId": { "type": "string" }, "applicationId": { "type": "string" } }, "required": [ "tenantId", "applicationId" ] }, "UserApplicationActiveTenantsResponseDto": { "type": "object", "properties": { "applicationActiveTenants": { "type": "array", "items": { "$ref": "#/components/schemas/UserApplicationActiveTenantResponse" } } }, "required": [ "applicationActiveTenants" ] }, "SwitchApplicationActiveUserTenantDto": { "type": "object", "properties": { "applicationId": { "type": "string", "description": "Desired application to set active tenant in" }, "tenantId": { "type": "string", "description": "Desired tenant to set as active tenant for user in application" } }, "required": [ "applicationId", "tenantId" ] }, "SwitchApplicationActiveUserTenantsRequestDto": { "type": "object", "properties": { "activeApplicationTenants": { "description": "List of applications and tenants to set as active, for user", "type": "array", "items": { "$ref": "#/components/schemas/SwitchApplicationActiveUserTenantDto" } } }, "required": [ "activeApplicationTenants" ] }, "GetDelegationConfigurationResponseDto": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Indicates whether delegation has been enabled or disabled.", "example": "true" } }, "required": [ "enabled" ] }, "CreateDelegationConfigurationRequestDto": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Used to enable or disable delegation for access tokens created using Token Exchange.", "example": "true" } } }, "DisableMFAAuthAppRequest": { "type": "object", "properties": { "token": { "type": "string" } } }, "RequestDisableMFARequest": { "type": "object", "properties": {} }, "RequestDisableMFASMSResponse": { "type": "object", "properties": {} }, "DisableMFASMSRequest": { "type": "object", "properties": { "otcToken": { "type": "string" }, "code": { "type": "string" } }, "required": [ "otcToken", "code" ] }, "ResetTenantInvitationDto": { "type": "object", "properties": { "email": { "type": "string" } }, "required": [ "email" ] }, "UserV3Dto": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "name": { "type": "string" }, "profilePictureUrl": { "type": "string" }, "sub": { "type": "string" }, "verified": { "type": "boolean" }, "mfaEnrolled": { "type": "boolean" }, "mfaBypass": { "type": "boolean" }, "phoneNumber": { "type": "string" }, "provider": { "type": "string" }, "tenantId": { "type": "string" }, "tenantIds": { "type": "array", "items": { "type": "string" } }, "activatedForTenant": { "type": "boolean" }, "isLocked": { "type": "boolean" }, "tenants": { "type": "array", "items": { "$ref": "#/components/schemas/UserTenantDto" } }, "invisible": { "type": "boolean" }, "superUser": { "type": "boolean" }, "metadata": { "type": "string" }, "vendorMetadata": { "type": "string" }, "createdAt": { "format": "date-time", "type": "string" }, "lastLogin": { "format": "date-time", "type": "string" }, "subAccountAccessAllowed": { "type": "boolean" }, "managedBy": { "enum": [ "frontegg", "scim2", "external" ], "type": "string" } }, "required": [ "id", "email", "sub", "verified", "mfaEnrolled", "provider", "tenantId", "tenantIds", "tenants", "metadata", "vendorMetadata", "createdAt", "lastLogin", "subAccountAccessAllowed" ] }, "GetUserRolesResponse": { "type": "object", "properties": {} }, "GetUserGroupsResponse": { "type": "object", "properties": {} }, "UnlockUserRequestDto": { "type": "object", "properties": { "token": { "type": "string" } }, "required": [ "token" ] }, "CreateUserDto": { "type": "object", "properties": { "email": { "type": "string", "format": "email" }, "name": { "type": "string" }, "profilePictureUrl": { "type": "string", "maxLength": 4095 }, "password": { "type": "string" }, "phoneNumber": { "type": "string" }, "provider": { "type": "string", "default": "local", "enum": [ "local", "saml", "google", "github", "facebook", "microsoft", "scim2", "slack", "apple" ] }, "metadata": { "type": "string", "description": "Stringified JSON object", "example": "{}" }, "skipInviteEmail": { "type": "boolean" }, "roleIds": { "type": "array", "items": { "type": "string" } }, "emailMetadata": { "type": "object" }, "expirationInSeconds": { "type": "number", "minimum": 300, "description": "Temporary user expiration in seconds" } }, "required": [ "email" ] }, "UserCreatedResponse": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "verified": { "type": "boolean" }, "name": { "type": "string" }, "profilePictureUrl": { "type": "string" }, "roles": { "type": "array", "items": { "type": "string" } }, "permissions": { "type": "array", "items": { "type": "string" } }, "metadata": { "type": "string" }, "createdAt": { "format": "date-time", "type": "string" }, "lastLogin": { "format": "date-time", "type": "string" }, "activatedForTenant": { "type": "boolean" }, "temporaryExpirationDate": { "format": "date-time", "type": "string" } } }, "UpdateUserDto": { "type": "object", "properties": { "phoneNumber": { "type": "string", "pattern": "^\\+[1-9]{1}(\\-?)(([0-9])(\\-?)){5,13}(([0-9]$){1})" }, "profilePictureUrl": { "type": "string", "nullable": true, "maxLength": 4095 }, "metadata": { "type": "string", "description": "Stringified JSON object", "example": "{}" }, "name": { "type": "string" } } }, "CoreUserDto": { "type": "object", "properties": { "id": { "type": "string" }, "email": { "type": "string" }, "name": { "type": "string" }, "profilePictureUrl": { "type": "string" }, "sub": { "type": "string" }, "verified": { "type": "boolean" }, "mfaEnrolled": { "type": "boolean" }, "mfaBypass": { "type": "boolean" }, "phoneNumber": { "type": "string" }, "provider": { "type": "string" }, "tenantId": { "type": "string" }, "tenantIds": { "type": "array", "items": { "type": "string" } }, "activatedForTenant": { "type": "boolean" }, "isLocked": { "type": "boolean" }, "tenants": { "type": "array", "items": { "$ref": "#/components/schemas/UserTenantDto" } }, "invisible": { "type": "boolean" }, "superUser": { "type": "boolean" }, "metadata": { "type": "string" }, "vendorMetadata": { "type": "string" }, "createdAt": { "format": "date-time", "type": "string" }, "lastLogin": { "format": "date-time", "type": "string" }, "subAccountAccessAllowed": { "type": "boolean" }, "managedBy": { "type": "string", "enum": [ "frontegg", "scim2", "external" ] } }, "required": [ "id", "email", "sub", "verified", "mfaEnrolled", "provider", "tenantId", "tenantIds", "tenants", "metadata", "vendorMetadata", "createdAt", "lastLogin", "subAccountAccessAllowed" ] }, "AssignUserToRolesDto": { "type": "object", "properties": { "roleIds": { "type": "array", "items": { "type": "string" } } }, "required": [ "roleIds" ] }, "IRole": { "type": "object", "properties": { "id": { "type": "string" }, "key": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "isDefault": { "type": "boolean" }, "level": { "type": "number" }, "createdAt": { "format": "date-time", "type": "string" } }, "required": [ "id", "key", "name", "description", "isDefault", "level", "createdAt" ] }, "AssignUserToRolesResponseDto": { "type": "object", "properties": { "tenantId": { "type": "string" }, "userId": { "type": "string" }, "roles": { "type": "array", "items": { "$ref": "#/components/schemas/IRole" } } }, "required": [ "tenantId", "userId", "roles" ] }, "UnassignUserFromRolesDto": { "type": "object", "properties": { "roleIds": { "type": "array", "items": { "type": "string" } } }, "required": [ "roleIds" ] }, "DeleteUserToRolesResponseDto": { "type": "object", "properties": { "tenantId": { "type": "string" }, "userId": { "type": "string" }, "roles": { "type": "array", "items": { "$ref": "#/components/schemas/IRole" } } }, "required": [ "tenantId", "userId", "roles" ] }, "UpdateUserTenantDto": { "type": "object", "properties": { "tenantId": { "type": "string", "description": "Desired tenant to set as active tenant for user" } }, "required": [ "tenantId" ] }, "UpdateUserInvisibleDto": { "type": "object", "properties": { "invisible": { "type": "boolean" } }, "required": [ "invisible" ] }, "UpdateUserSuperuserDto": { "type": "object", "properties": { "superUser": { "type": "boolean" } }, "required": [ "superUser" ] }, "UpdateVendorUserDto": { "type": "object", "properties": { "phoneNumber": { "type": "string", "pattern": "^\\+[1-9]{1}(\\-?)(([0-9])(\\-?)){5,13}(([0-9]$){1})" }, "profilePictureUrl": { "type": "string", "nullable": true, "maxLength": 4095 }, "metadata": { "type": "string", "description": "Stringified JSON object", "example": "{}" }, "vendorMetadata": { "type": "string", "description": "Extra vendor-only data. stringified JSON object" }, "mfaBypass": { "type": "boolean", "description": "Indicates whether MFA should be bypassed for this user" }, "name": { "type": "string" } } }, "UpdateUserTenantWithValidationDto": { "type": "object", "properties": { "tenantId": { "type": "string", "description": "Desired tenant to set as active tenant for user" }, "validateTenantExist": { "type": "boolean" } }, "required": [ "tenantId" ] }, "AddUserToTenantRequest": { "type": "object", "properties": { "validateTenantExist": { "type": "boolean" }, "tenantId": { "type": "string" }, "skipInviteEmail": { "type": "boolean" } }, "required": [ "tenantId" ] }, "UpdateUserEmailDto": { "type": "object", "properties": { "email": { "type": "string", "format": "email" } }, "required": [ "email" ] }, "GenerateUserActivationLinkResponseDto": { "type": "object", "properties": { "link": { "type": "string" }, "token": { "type": "string" }, "userId": { "type": "string" } }, "required": [ "link", "token", "userId" ] }, "GenerateUserResetPasswordLinkResponseDto": { "type": "object", "properties": { "link": { "type": "string" }, "token": { "type": "string" }, "userId": { "type": "string" } }, "required": [ "link", "token", "userId" ] }, "MigrateUsersFromTenantToTenantRequest": { "type": "object", "properties": { "srcTenantId": { "type": "string" }, "targetTenantId": { "type": "string" } }, "required": [ "srcTenantId", "targetTenantId" ] }, "GetUserSourceExtendedResponseDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "type": { "type": "string" }, "description": { "type": "string" }, "appIds": { "type": "array", "items": { "type": "string" } }, "index": { "type": "number" }, "configuration": { "type": "object" }, "usersCount": { "type": "number" } }, "required": [ "id", "name", "type", "description", "appIds", "index", "configuration", "usersCount" ] }, "GetUserSourceResponseDTO": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "type": { "type": "string" }, "description": { "type": "string" }, "appIds": { "type": "array", "items": { "type": "string" } }, "index": { "type": "number" }, "configuration": { "type": "object" } }, "required": [ "id", "name", "type", "description", "appIds", "index", "configuration" ] }, "UserSourceDynamicTenantConfig": { "type": "object", "properties": { "tenantIdFieldName": { "type": "string", "description": "The attribute name of which the tenant id would be taken from" }, "tenantResolverType": { "type": "string", "enum": [ "dynamic" ] } }, "required": [ "tenantIdFieldName", "tenantResolverType" ] }, "UserSourceNewTenantConfig": { "type": "object", "properties": { "tenantResolverType": { "type": "string", "enum": [ "new" ] } }, "required": [ "tenantResolverType" ] }, "UserSourceStaticTenantConfig": { "type": "object", "properties": { "tenantId": { "type": "string", "description": "The tenant id which all of the users would be added to" }, "tenantResolverType": { "type": "string", "enum": [ "static" ] } }, "required": [ "tenantId", "tenantResolverType" ] }, "UserSourceFromSourceTenantConfig": { "type": "object", "properties": { "tenantResolverType": { "type": "string", "enum": [ "from-source" ] } }, "required": [ "tenantResolverType" ] }, "ExternalAuth0UserSourceConfig": { "type": "object", "properties": { "syncOnLogin": { "type": "boolean", "description": "Whether to sync user profile attributes on each login" }, "isMigrated": { "type": "boolean", "description": "Whether to migrate the users" }, "domain": { "type": "string", "description": "the auth0 domain" }, "clientId": { "type": "string", "description": "the auth0 application clientId" }, "secret": { "type": "string", "description": "the auth0 application secret" }, "tenantConfig": { "oneOf": [ { "$ref": "#/components/schemas/UserSourceDynamicTenantConfig" }, { "$ref": "#/components/schemas/UserSourceStaticTenantConfig" }, { "$ref": "#/components/schemas/UserSourceNewTenantConfig" } ] } }, "required": [ "syncOnLogin", "isMigrated", "domain", "clientId", "secret", "tenantConfig" ] }, "CreateAuth0ExternalUserSourceRequestDTO": { "type": "object", "properties": { "name": { "type": "string", "description": "The user source name" }, "configuration": { "description": "User source configuration", "allOf": [ { "$ref": "#/components/schemas/ExternalAuth0UserSourceConfig" } ] }, "appIds": { "description": "The application ids to assign to this user source", "type": "array", "items": { "type": "string" } }, "index": { "type": "number", "description": "The user source index" }, "description": { "type": "string", "description": "The user source description" } }, "required": [ "name", "configuration", "index" ] }, "CreateUserSourceResponse": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "type": { "type": "string" }, "appIds": { "type": "array", "items": { "type": "string" } }, "description": { "type": "string" }, "index": { "type": "number" } }, "required": [ "id", "name", "type", "appIds", "description", "index" ] }, "ExternalCognitoUserSourceConfig": { "type": "object", "properties": { "syncOnLogin": { "type": "boolean", "description": "Whether to sync user profile attributes on each login" }, "isMigrated": { "type": "boolean", "description": "Whether to migrate the users" }, "region": { "type": "string", "description": "The aws region of the cognito user pool" }, "clientId": { "type": "string", "description": "The cognito app client id" }, "userPoolId": { "type": "string", "description": "The id of the cognito user pool" }, "accessKeyId": { "type": "string", "description": "The access key of the aws account" }, "secretAccessKey": { "type": "string", "description": "The secret of the aws account" }, "clientSecret": { "type": "string", "description": "The cognito application client secret, required if the app client is configured with a client secret" }, "tenantConfig": { "oneOf": [ { "$ref": "#/components/schemas/UserSourceDynamicTenantConfig" }, { "$ref": "#/components/schemas/UserSourceStaticTenantConfig" }, { "$ref": "#/components/schemas/UserSourceNewTenantConfig" } ] } }, "required": [ "syncOnLogin", "isMigrated", "region", "clientId", "userPoolId", "accessKeyId", "secretAccessKey", "tenantConfig" ] }, "CreateCognitoExternalUserSourceRequestDTO": { "type": "object", "properties": { "name": { "type": "string", "description": "The user source name" }, "configuration": { "description": "User source configuration", "allOf": [ { "$ref": "#/components/schemas/ExternalCognitoUserSourceConfig" } ] }, "appIds": { "description": "The application ids to assign to this user source", "type": "array", "items": { "type": "string" } }, "index": { "type": "number", "description": "The user source index" }, "description": { "type": "string", "description": "The user source description" } }, "required": [ "name", "configuration", "index" ] }, "FirebaseServiceAccountConfig": { "type": "object", "properties": { "type": { "type": "string" }, "project_id": { "type": "string" }, "private_key_id": { "type": "string" }, "private_key": { "type": "string" }, "client_email": { "type": "string" }, "client_id": { "type": "string" }, "auth_uri": { "type": "string" }, "token_uri": { "type": "string" }, "auth_provider_x509_cert_url": { "type": "string" }, "client_x509_cert_url": { "type": "string" }, "universe_domain": { "type": "string" } }, "required": [ "type", "project_id", "private_key_id", "private_key", "client_email", "client_id", "auth_uri", "token_uri", "auth_provider_x509_cert_url", "client_x509_cert_url", "universe_domain" ] }, "ExternalFirebaseUserSourceConfig": { "type": "object", "properties": { "syncOnLogin": { "type": "boolean", "description": "Whether to sync user profile attributes on each login" }, "isMigrated": { "type": "boolean", "description": "Whether to migrate the users" }, "apiKey": { "type": "string", "description": "The firebase Web API Key" }, "serviceAccount": { "$ref": "#/components/schemas/FirebaseServiceAccountConfig" }, "tenantConfig": { "oneOf": [ { "$ref": "#/components/schemas/UserSourceStaticTenantConfig" }, { "$ref": "#/components/schemas/UserSourceNewTenantConfig" } ] } }, "required": [ "syncOnLogin", "isMigrated", "apiKey", "serviceAccount", "tenantConfig" ] }, "CreateFirebaseExternalUserSourceRequestDTO": { "type": "object", "properties": { "name": { "type": "string", "description": "The user source name" }, "configuration": { "description": "User source configuration", "allOf": [ { "$ref": "#/components/schemas/ExternalFirebaseUserSourceConfig" } ] }, "appIds": { "description": "The application ids to assign to this user source", "type": "array", "items": { "type": "string" } }, "index": { "type": "number", "description": "The user source index" }, "description": { "type": "string", "description": "The user source description" } }, "required": [ "name", "configuration", "index" ] }, "ExternalCustomCodeUserSourceConfig": { "type": "object", "properties": { "syncOnLogin": { "type": "boolean", "description": "Whether to sync user profile attributes on each login" }, "isMigrated": { "type": "boolean", "description": "Whether to migrate the users" }, "codePayload": { "type": "string" }, "getUserCodePayload": { "type": "string" }, "tenantConfig": { "oneOf": [ { "$ref": "#/components/schemas/UserSourceNewTenantConfig" }, { "$ref": "#/components/schemas/UserSourceFromSourceTenantConfig" } ] } }, "required": [ "syncOnLogin", "isMigrated", "codePayload", "tenantConfig" ] }, "CreateCustomCodeExternalUserSourceRequestDTO": { "type": "object", "properties": { "name": { "type": "string", "description": "The user source name" }, "configuration": { "description": "User source configuration", "allOf": [ { "$ref": "#/components/schemas/ExternalCustomCodeUserSourceConfig" } ] }, "appIds": { "description": "The application ids to assign to this user source", "type": "array", "items": { "type": "string" } }, "index": { "type": "number", "description": "The user source index" }, "description": { "type": "string", "description": "The user source description" } }, "required": [ "name", "configuration", "index" ] }, "FederationUserSourceConfig": { "type": "object", "properties": { "syncOnLogin": { "type": "boolean", "description": "Whether to sync user profile attributes on each login" }, "wellknownUrl": { "type": "string", "description": "The url of the service provider" }, "clientId": { "type": "string", "description": "The client id from the service provider" }, "secret": { "type": "string", "description": "The secret from the service provider" }, "tenantConfig": { "oneOf": [ { "$ref": "#/components/schemas/UserSourceDynamicTenantConfig" }, { "$ref": "#/components/schemas/UserSourceStaticTenantConfig" }, { "$ref": "#/components/schemas/UserSourceNewTenantConfig" } ] } }, "required": [ "syncOnLogin", "wellknownUrl", "clientId", "secret", "tenantConfig" ] }, "CreateFederationUserSourceRequestDTO": { "type": "object", "properties": { "name": { "type": "string", "description": "The user source name" }, "configuration": { "description": "User source configuration", "allOf": [ { "$ref": "#/components/schemas/FederationUserSourceConfig" } ] }, "appIds": { "description": "The application ids to assign to this user source", "type": "array", "items": { "type": "string" } }, "index": { "type": "number", "description": "The user source index" }, "description": { "type": "string", "description": "The user source description" } }, "required": [ "name", "configuration", "index" ] }, "UpdateExternalAuth0UserSourceRequestDTO": { "type": "object", "properties": { "name": { "type": "string", "description": "The user source name" }, "configuration": { "description": "User source configuration", "allOf": [ { "$ref": "#/components/schemas/ExternalAuth0UserSourceConfig" } ] }, "index": { "type": "number", "description": "The user source index" }, "description": { "type": "string", "description": "The user source description" } } }, "UpdateExternalCognitoUserSourceRequestDTO": { "type": "object", "properties": { "name": { "type": "string", "description": "The user source name" }, "configuration": { "description": "User source configuration", "allOf": [ { "$ref": "#/components/schemas/ExternalCognitoUserSourceConfig" } ] }, "index": { "type": "number", "description": "The user source index" }, "description": { "type": "string", "description": "The user source description" } } }, "UpdateExternalFirebaseUserSourceRequestDTO": { "type": "object", "properties": { "name": { "type": "string", "description": "The user source name" }, "configuration": { "description": "User source configuration", "allOf": [ { "$ref": "#/components/schemas/ExternalFirebaseUserSourceConfig" } ] }, "index": { "type": "number", "description": "The user source index" }, "description": { "type": "string", "description": "The user source description" } } }, "UpdateExternalCustomCodeUserSourceRequestDTO": { "type": "object", "properties": { "name": { "type": "string", "description": "The user source name" }, "configuration": { "description": "User source configuration", "allOf": [ { "$ref": "#/components/schemas/ExternalCustomCodeUserSourceConfig" } ] }, "index": { "type": "number", "description": "The user source index" }, "description": { "type": "string", "description": "The user source description" } } }, "UpdateFederationUserSourceRequestDTO": { "type": "object", "properties": { "name": { "type": "string", "description": "The user source name" }, "configuration": { "description": "User source configuration", "allOf": [ { "$ref": "#/components/schemas/FederationUserSourceConfig" } ] }, "index": { "type": "number", "description": "The user source index" }, "description": { "type": "string", "description": "The user source description" } } }, "AssignApplicationsToUserSourceRequestDTO": { "type": "object", "properties": { "appIds": { "description": "The application ids to assign to this user source", "type": "array", "items": { "type": "string" } }, "userSourceId": { "type": "string", "description": "The user source id" } }, "required": [ "appIds", "userSourceId" ] }, "UnassignApplicationsFromUserSourceRequestDTO": { "type": "object", "properties": { "appIds": { "description": "The application ids to assign to this user source", "type": "array", "items": { "type": "string" } }, "userSourceId": { "type": "string", "description": "The user source id" } }, "required": [ "appIds", "userSourceId" ] }, "GetUserSourceUsersResponseDTO": { "type": "object", "properties": { "email": { "type": "string" }, "lastLogin": { "format": "date-time", "type": "string" } }, "required": [ "email", "lastLogin" ] }, "ActivationStrategyResponse": { "type": "object", "properties": { "strategy": { "type": "string", "enum": [ "code", "link" ] } }, "required": [ "strategy" ] }, "CreateOrUpdateActivationStrategyRequest": { "type": "object", "properties": { "strategy": { "type": "string", "enum": [ "code", "link" ] } }, "required": [ "strategy" ] }, "InvitationStrategyResponse": { "type": "object", "properties": { "strategy": { "type": "string", "enum": [ "code", "link" ] } }, "required": [ "strategy" ] }, "CreateOrUpdateInvitationStrategyRequest": { "type": "object", "properties": { "strategy": { "type": "string", "enum": [ "code", "link" ] } }, "required": [ "strategy" ] }, "CreateOrUpdateIpRestrictionConfigDto": { "type": "object", "properties": { "strategy": { "enum": [ "ALLOW", "BLOCK" ], "type": "string" }, "isActive": { "type": "boolean" } } }, "CreateOrUpdateIpRestrictionDto": { "type": "object", "properties": { "ip": { "type": "string", "description": "IP or CIDR (v4 and v6 are supported)" }, "description": { "type": "string" }, "strategy": { "type": "string", "enum": [ "ALLOW", "BLOCK" ] }, "isActive": { "type": "boolean" } }, "required": [ "ip", "strategy" ] }, "DomainRestrictionsCreateRequest": { "type": "object", "properties": { "domain": { "type": "string", "pattern": "domainRegex" }, "type": { "type": "string", "enum": [ "ALLOW", "BLOCK" ] } }, "required": [ "domain", "type" ] }, "DomainRestrictionsResponse": { "type": "object", "properties": { "id": { "type": "string" }, "domain": { "type": "string" }, "type": { "enum": [ "ALLOW", "BLOCK" ], "type": "string" } }, "required": [ "id", "domain", "type" ] }, "DomainRestrictionsConfigResponse": { "type": "object", "properties": { "active": { "type": "boolean" }, "listType": { "enum": [ "ALLOW", "BLOCK" ], "type": "string" }, "blockPublicDomains": { "type": "boolean" } }, "required": [ "active", "listType", "blockPublicDomains" ] }, "DomainRestrictionsConfigUpdateRequest": { "type": "object", "properties": { "active": { "type": "boolean" }, "blockPublicDomains": { "type": "boolean" }, "type": { "type": "string", "enum": [ "ALLOW", "BLOCK" ] } }, "required": [ "active" ] }, "DomainRestrictionsBulkRequestRequest": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "ALLOW", "BLOCK" ] }, "domains": { "type": "array", "items": { "type": "string", "pattern": "domainRegexString" } } }, "required": [ "type", "domains" ] }, "CreateSmsVendorConfigRequest": { "type": "object", "properties": { "senderName": { "type": "string", "description": "The sender name will be used only when alphanumeric sender is supported in the recipient country. This is usually a phone number or the name of the sender, dependeing on what is configured on your Twilio account" }, "accountId": { "type": "string", "description": "account ID" }, "token": { "type": "string", "description": "token" } } }, "SmsVendorConfigResponse": { "type": "object", "properties": {} }, "SmsTemplateResponse": { "type": "object", "properties": {} }, "CreateSmsTemplateRequest": { "type": "object", "properties": {} }, "VendorConfigBasicResponse": { "type": "object", "properties": { "forcePermissions": { "type": "boolean" } }, "required": [ "forcePermissions" ] }, "ActivateUserDto": { "type": "object", "properties": { "userId": { "type": "string" }, "token": { "type": "string" }, "password": { "type": "string" }, "recaptchaToken": { "type": "string" }, "lastTermsCheck": { "type": "string" } }, "required": [ "userId", "token" ] }, "UserMFAWebAuthnDeviceResponse": { "type": "object", "properties": { "id": { "type": "string" }, "deviceType": { "type": "string", "enum": [ "Platform", "CrossPlatform" ] }, "name": { "type": "string" } }, "required": [ "id", "deviceType", "name" ] }, "UserMFAPhoneDeviceResponse": { "type": "object", "properties": { "id": { "type": "string" }, "phoneNumber": { "type": "string" } }, "required": [ "id", "phoneNumber" ] }, "UserMFAAuthenticatorAppResponse": { "type": "object", "properties": { "id": { "type": "string" } }, "required": [ "id" ] }, "UserMFAEmailCodeResponse": { "type": "object", "properties": { "email": { "type": "string" } }, "required": [ "email" ] }, "UserMFADevicesResponse": { "type": "object", "properties": { "webauthn": { "type": "array", "items": { "$ref": "#/components/schemas/UserMFAWebAuthnDeviceResponse" } }, "phones": { "type": "array", "items": { "$ref": "#/components/schemas/UserMFAPhoneDeviceResponse" } }, "authenticators": { "type": "array", "items": { "$ref": "#/components/schemas/UserMFAAuthenticatorAppResponse" } }, "emails": { "type": "array", "items": { "$ref": "#/components/schemas/UserMFAEmailCodeResponse" } } }, "required": [ "webauthn", "phones", "authenticators", "emails" ] }, "AuthenticationResponseDto": { "type": "object", "properties": { "tokenType": { "type": "string", "default": "bearer" }, "mfaRequired": { "type": "boolean" }, "mfaToken": { "type": "string" }, "mfaEnrolled": { "type": "boolean" }, "mfaDevices": { "$ref": "#/components/schemas/UserMFADevicesResponse" }, "mfaStrategies": { "type": "object" }, "qrCode": { "type": "string" }, "recoveryCode": { "type": "string" }, "accessToken": { "type": "string" }, "refreshToken": { "type": "string" }, "expiresIn": { "type": "number" }, "expires": { "type": "string" }, "userId": { "type": "string" }, "userEmail": { "type": "string" }, "emailVerified": { "type": "boolean" }, "isBreachedPassword": { "type": "boolean" } }, "required": [ "mfaRequired", "accessToken", "refreshToken", "expiresIn", "expires" ] }, "GetActivateStrategyResponseDto": { "type": "object", "properties": { "shouldSetPassword": { "type": "boolean" } }, "required": [ "shouldSetPassword" ] }, "AuthenticateUserPasswordDto": { "type": "object", "properties": { "email": { "type": "string" }, "password": { "type": "string" }, "recaptchaToken": { "type": "string" }, "invitationToken": { "type": "string" } }, "required": [ "email", "password" ] }, "RefreshTokenDto": { "type": "object", "properties": {} }, "AuthApiTokenDto": { "type": "object", "properties": { "clientId": { "type": "string" }, "secret": { "type": "string" } }, "required": [ "clientId", "secret" ] }, "ApiTokenAuthV2Response": { "type": "object", "properties": { "access_token": { "type": "string" }, "refresh_token": { "type": "string" }, "expires_in": { "type": "number" }, "expires": { "type": "string" } }, "required": [ "access_token", "refresh_token", "expires_in", "expires" ] }, "RefreshApiTokenDto": { "type": "object", "properties": { "refreshToken": { "type": "string" } }, "required": [ "refreshToken" ] }, "PasswordlessAuthenticationSmsOtcPreloginDto": { "type": "object", "properties": { "recaptchaToken": { "type": "string" }, "invitationToken": { "type": "string" }, "email": { "type": "string" }, "userId": { "type": "string" }, "phoneNumber": { "type": "string" } }, "required": [ "email", "userId", "phoneNumber" ] }, "PasswordlessAuthenticationSmsOTCPreloginResponseDto": { "type": "object", "properties": { "phoneNumber": { "type": "string" }, "resetPhoneNumberToken": { "type": "string" } } }, "AuthenticateUserPasswordlessDto": { "type": "object", "properties": { "token": { "type": "string", "description": "One time code to login with - get it from the email sent after prelogin request" }, "recaptchaToken": { "type": "string" }, "invitationToken": { "type": "string" } }, "required": [ "token" ] }, "PasswordlessAuthenticationPreloginDto": { "type": "object", "properties": { "recaptchaToken": { "type": "string" }, "invitationToken": { "type": "string" }, "email": { "type": "string" }, "userId": { "type": "string" } }, "required": [ "email", "userId" ] }, "VerifyMFAAuthAppRequest": { "type": "object", "properties": { "value": { "type": "string" }, "mfaToken": { "type": "string" }, "rememberDevice": { "type": "boolean" } }, "required": [ "value", "mfaToken" ] }, "AuthRequestVerifyMfaRequest": { "type": "object", "properties": { "mfaToken": { "type": "string" } }, "required": [ "mfaToken" ] }, "VerifyMFAEmailOTCRequest": { "type": "object", "properties": { "otcToken": { "type": "string" }, "code": { "type": "string" }, "mfaToken": { "type": "string" }, "rememberDevice": { "type": "boolean" } }, "required": [ "otcToken", "code", "mfaToken" ] }, "AuthRequestEnrollMFARequest": { "type": "object", "properties": { "mfaToken": { "type": "string" } }, "required": [ "mfaToken" ] }, "VerifyEnrollMFAAuthAppRequest": { "type": "object", "properties": { "token": { "type": "string" }, "mfaToken": { "type": "string" }, "rememberDevice": { "type": "boolean" } }, "required": [ "token", "mfaToken" ] }, "RequestEnrollMFASMSRequest": { "type": "object", "properties": { "phoneNumber": { "type": "string", "pattern": "phoneNumberRegexp" } }, "required": [ "phoneNumber" ] }, "VerifyEnrollMFASMSRequest": { "type": "object", "properties": { "otcToken": { "type": "string" }, "code": { "type": "string" } }, "required": [ "otcToken", "code" ] }, "VerifyMFASMSRequest": { "type": "object", "properties": { "otcToken": { "type": "string" }, "code": { "type": "string" }, "mfaToken": { "type": "string" }, "rememberDevice": { "type": "boolean" } }, "required": [ "otcToken", "code", "mfaToken" ] }, "WebAuthNClientResponse": { "type": "object", "properties": { "clientDataJSON": { "type": "string" }, "attestationObject": { "type": "string" } }, "required": [ "clientDataJSON", "attestationObject" ] }, "VerifyNewWebAuthnDeviceRequest": { "type": "object", "properties": { "id": { "type": "string" }, "response": { "$ref": "#/components/schemas/WebAuthNClientResponse" }, "deviceType": { "type": "string", "enum": [ "Platform", "CrossPlatform" ] } }, "required": [ "id", "response" ] }, "VerifyEnrollMFAWebAuthnRequest": { "type": "object", "properties": { "deviceType": { "type": "string", "enum": [ "Platform", "CrossPlatform" ] }, "webauthnToken": { "type": "string" }, "options": { "$ref": "#/components/schemas/VerifyNewWebAuthnDeviceRequest" }, "mfaToken": { "type": "string" }, "rememberDevice": { "type": "boolean" } }, "required": [ "deviceType", "webauthnToken", "options", "mfaToken" ] }, "WebAuthNResponse": { "type": "object", "properties": { "clientDataJSON": { "type": "string" }, "authenticatorData": { "type": "string" }, "signature": { "type": "string" }, "userHandle": { "type": "string" } }, "required": [ "clientDataJSON", "authenticatorData", "signature", "userHandle" ] }, "AuthenticateUserWebAuthNDto": { "type": "object", "properties": { "id": { "type": "string" }, "response": { "$ref": "#/components/schemas/WebAuthNResponse" }, "recaptchaToken": { "type": "string" }, "invitationToken": { "type": "string" } }, "required": [ "id", "response" ] }, "VerifyMFAWebAuthnRequest": { "type": "object", "properties": { "webauthnToken": { "type": "string" }, "options": { "$ref": "#/components/schemas/AuthenticateUserWebAuthNDto" }, "mfaToken": { "type": "string" }, "rememberDevice": { "type": "boolean" } }, "required": [ "webauthnToken", "options", "mfaToken" ] }, "CheckAllowRememberResponse": { "type": "object", "properties": {} }, "RequestEnrollAuthenticatorAppMfaResponse": { "type": "object", "properties": { "qrCode": { "type": "string", "description": "QR code to be verified by authenticator app" } }, "required": [ "qrCode" ] }, "VerifyEnrollMFAUserAuthAppRequest": { "type": "object", "properties": { "token": { "type": "string" } }, "required": [ "token" ] }, "VerifyEnrollMFAResponse": { "type": "object", "properties": { "recoveryCode": { "type": "string" } }, "required": [ "recoveryCode" ] }, "AcceptInvitationDto": { "type": "object", "properties": { "userId": { "type": "string" }, "token": { "type": "string" } }, "required": [ "userId", "token" ] }, "SignUpUserDto": { "type": "object", "properties": { "provider": { "type": "string", "enum": [ "local", "saml", "google", "github", "facebook", "microsoft", "scim2", "slack", "apple" ] }, "metadata": { "type": "string", "description": "Stringified JSON object. Use the JSON.stringify() method." }, "email": { "type": "string" }, "name": { "type": "string" }, "profilePictureUrl": { "type": "string", "maxLength": 4095 }, "password": { "type": "string" }, "phoneNumber": { "type": "string" }, "skipInviteEmail": { "type": "boolean" }, "roleIds": { "type": "array", "items": { "type": "string" } }, "emailMetadata": { "type": "object" }, "companyName": { "type": "string" }, "recaptchaToken": { "type": "string" }, "invitationToken": { "type": "string" } }, "required": [ "provider", "email", "companyName" ] }, "SignUpResponseDto": { "type": "object", "properties": { "shouldActivate": { "type": "boolean" }, "userId": { "type": "string" }, "tenantId": { "type": "string" }, "authResponse": { "$ref": "#/components/schemas/AuthenticationResponseDto" } } }, "UserTenantDataDto": { "type": "object", "properties": { "tenantId": { "type": "string" }, "name": { "type": "string" } }, "required": [ "tenantId", "name" ] }, "GetUserTenantsHierarchyResponseDto": { "type": "object", "properties": {} }, "MeAuthorizationResponseDto": { "type": "object", "properties": { "roles": { "type": "array", "items": { "$ref": "#/components/schemas/RoleResponse" } }, "permissions": { "type": "array", "items": { "$ref": "#/components/schemas/PermissionResponse" } } }, "required": [ "roles", "permissions" ] }, "GetUserTenantsResponseDto": { "type": "object", "properties": {} }, "Scim2ConnectionConfigResponse": { "type": "object", "properties": { "id": { "type": "string" }, "tenantId": { "type": "string" }, "connectionName": { "type": "string" }, "source": { "type": "string" }, "syncToUserManagement": { "type": "boolean" }, "lastSync": { "format": "date-time", "type": "string", "nullable": true }, "createdAt": { "format": "date-time", "type": "string" } }, "required": [ "id", "tenantId", "connectionName", "source", "syncToUserManagement", "lastSync", "createdAt" ] }, "Scim2CreateConnectionConfigRequest": { "type": "object", "properties": { "source": { "type": "string", "enum": [ "frontegg", "okta", "azure-ad", "other" ] }, "connectionName": { "type": "string" }, "syncToUserManagement": { "type": "boolean" } }, "required": [ "source" ] }, "Scim2CreateConnectionConfigResponse": { "type": "object", "properties": { "id": { "type": "string" }, "connectionName": { "type": "string" }, "token": { "type": "string" } }, "required": [ "id", "connectionName", "token" ] }, "Scim2PatchConnectionConfigRequest": { "type": "object", "properties": { "syncToUserManagement": { "type": "boolean" } }, "required": [ "syncToUserManagement" ] }, "VendorSamlConfigurationResponse": { "type": "object", "properties": {} }, "CreateSSOConfigurationRequestDto": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "ssoEndpoint": { "type": "string" }, "publicCertificate": { "type": "string" }, "signRequest": { "type": "boolean" }, "acsUrl": { "type": "string" }, "spEntityId": { "type": "string" }, "type": { "type": "string" }, "oidcClientId": { "type": "string" }, "oidcSecret": { "type": "string" }, "configMetadata": { "type": "object" }, "overrideActiveTenant": { "type": "boolean" }, "subAccountAccessLimit": { "type": "number" } }, "required": [ "enabled", "ssoEndpoint", "publicCertificate", "signRequest", "acsUrl", "spEntityId", "type", "oidcClientId", "oidcSecret", "configMetadata", "overrideActiveTenant", "subAccountAccessLimit" ] }, "UpdateSSOConfigurationByMetadataRequestDto": { "type": "object", "properties": { "metadata": { "type": "string" } }, "required": [ "metadata" ] }, "CreateSSODomainRequestDto": { "type": "object", "properties": {} }, "SetSSODefaultRoles": { "type": "object", "properties": { "roleIds": { "type": "array", "items": { "type": "string" } } }, "required": [ "roleIds" ] }, "CreateSSOGroupRequestDto": { "type": "object", "properties": { "group": { "type": "string" }, "roleIds": { "type": "array", "items": { "type": "string" } } }, "required": [ "group", "roleIds" ] }, "UpdateSSOGroupRequestDto": { "type": "object", "properties": { "group": { "type": "string" }, "roleIds": { "type": "array", "items": { "type": "string" } } }, "required": [ "group", "roleIds" ] }, "ExcludeEmailFromSSORequestDto": { "type": "object", "properties": { "email": { "type": "string" } }, "required": [ "email" ] }, "ForceValidateDomainRequestDto": { "type": "object", "properties": {} }, "CreateSSOPerTenantConfigRequest": { "type": "object", "properties": { "unspecifiedTenantStrategy": { "type": "string" }, "active": { "type": "boolean" }, "useActiveTenant": { "type": "boolean" } }, "required": [ "unspecifiedTenantStrategy", "active", "useActiveTenant" ] }, "CreateSSODomainConfigurationRequest": { "type": "object", "properties": { "allowVerifiedUsersToAddDomains": { "type": "boolean" }, "skipDomainVerification": { "type": "boolean" }, "bypassDomainCrossValidation": { "type": "boolean" } }, "required": [ "allowVerifiedUsersToAddDomains", "skipDomainVerification", "bypassDomainCrossValidation" ] }, "ConfigureOidcResponse": { "type": "object", "properties": {} }, "ConfigureOidcRequest": { "type": "object", "properties": { "active": { "type": "boolean" }, "redirectUri": { "type": "string", "description": "Redirect URI that the user will be redirected. Should match the redirect URI you set on your application. Leave it empty if you didn't change it on your application" } }, "required": [ "active" ] }, "CreateTenantRequest": { "type": "object", "properties": { "tenantId": { "type": "string", "description": "Send your own unique tenantId or Frontegg will auto-generate a UUID" }, "name": { "type": "string" }, "status": { "type": "string", "description": "This field can be used for custom logic, it is not enforced in Frontegg flows" }, "website": { "type": "string" }, "applicationUrl": { "type": "string" }, "logo": { "type": "string", "description": "Base64-encoded image to use as logo." }, "logoUrl": { "type": "string" }, "address": { "type": "string" }, "timezone": { "type": "string" }, "currency": { "type": "string" }, "creatorName": { "type": "string" }, "creatorEmail": { "type": "string" }, "isReseller": { "type": "boolean" }, "parentTenantId": { "type": "string" } } }, "UpdateTenantRequest": { "type": "object", "properties": {} }, "AddTenantMetadataRequest": { "type": "object", "properties": { "metadata": { "oneOf": [ { "type": "object", "example": { "maximumUsers": 50 } } ] } }, "required": [ "metadata" ] }, "UpdateTenantRequestV2": { "type": "object", "properties": {} }, "CreateSubTenantRequest": { "type": "object", "properties": { "tenantId": { "type": "string" }, "name": { "type": "string" }, "parentTenantId": { "type": "string" }, "status": { "type": "string", "description": "This field can be used for custom logic, it is not enforced in Frontegg flows" }, "logo": { "type": "string", "description": "Base64-encoded image to use as logo." }, "logoUrl": { "type": "string" }, "creatorName": { "type": "string" }, "creatorEmail": { "type": "string" }, "isReseller": { "type": "boolean" } }, "required": [ "tenantId", "name", "parentTenantId" ] }, "UpdateSubTenantManagementRequest": { "type": "object", "properties": {} }, "UpdateSubTenantHierarchySettingsRequest": { "type": "object", "properties": {} }, "AccountSettingsUpdateRequest": { "type": "object", "properties": {} }, "MigrateTenantsRequest": { "type": "object", "properties": { "tenants": { "type": "array", "items": { "type": "string" } } }, "required": [ "tenants" ] }, "CreateSubTenantRequestDto": { "type": "object", "properties": { "parentTenantId": { "type": "string" }, "childTenantId": { "type": "string" } } }, "DeleteSubTenantRequestDto": { "type": "object", "properties": {} } }, "securitySchemes": { "bearer": { "scheme": "bearer", "bearerFormat": "JWT", "type": "http" } } }, "x-tagGroups": [ { "name": "Entitlements Agent (PDP)", "tags": [ "Entitlements Check" ] }, { "name": "Entitlements Service", "tags": [ "Plans (Formerly Bundles)", "API Access Control", "API Access Control Configurations", "Features", "Entitlements", "Feature Flags" ] }, { "name": "Authenticate with env credentials", "tags": [ "env-auth_other" ] }, { "name": "Authentication and Identity Management", "tags": [ "User management (multi-app)", "API token", "General", "MFA", "Passwordless", "Account invitations settings", "Core settings", "Custom social OAuth provider", "Data migration", "Delegation", "Email configuration", "Email templates", "M2M", "MFA configuration", "Permission categories", "Permissions", "Roles", "SMS configuration", "SMS templates", "Sessions configuration", "User sources (pools)", "Users", "User management", "Account invitations", "Domain restrictions", "User groups", "IP restrictions", "Lockout policy", "MFA settings", "Password settings", "Personal tokens", "Account roles", "Sessions management", "API (tenant) tokens", "User sessions", "User Phone Numbers", "Vendor-only user management" ] }, { "name": "Provisioning (SCIM) Service", "tags": [ "SCIM Configurations", "SCIM Setup" ] }, { "name": "Single Sign-On Service", "tags": [ "SAML Configurations Details", "SSO Settings", "SSO Configurations", "OIDC Configurations Details" ] }, { "name": "Account Management Service", "tags": [ "Tenants (Accounts)", "Sub-Accounts", "Accounts Settings", "Tenants migration", "Account Hierarchy" ] } ] }