{ "openapi": "3.0.3", "info": { "title": "User and Access Management API", "description": "REST endpoints for retrieving and managing user and access in your organization.", "version": "v1" }, "servers": [ { "url": "https://ODC_PORTAL_DOMAIN/api/identity/v1", "description": "Replace ODC_PORTAL_DOMAIN with the domain of your organization." }, { "url": "https://{odc-portal-domain}/api/identity/v1", "description": "User and Access Management API", "variables": { "odc-portal-domain": { "default": "ODC_PORTAL_DOMAIN", "description": "The domain of your organization" } } } ], "paths": { "/application-roles": { "get": { "tags": [ "application-roles" ], "summary": "Returns a list of application roles.", "description": "Returns a list of application roles that match the specified filters. Use query parameters to refine the search.\n\nAPI Client needs the **User management > View end users** permission.", "operationId": "ApplicationRole_QueryApplicationRoles", "parameters": [ { "name": "key", "in": "query", "description": "The application role key.", "schema": { "type": "string", "format": "uuid" } }, { "name": "assetKey", "in": "query", "description": "The asset key that the application role belongs to.", "schema": { "type": "string", "format": "uuid" } }, { "name": "environmentKey", "in": "query", "description": "Filters application roles by environment key (stage). Mutually exclusive with `environmentKeys`.", "schema": { "type": "string", "format": "uuid" } }, { "name": "environmentKeys", "in": "query", "description": "Filters application roles by environment keys (stages). Comma-separated list of environment keys. Mutually exclusive with `environmentKey`.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "portfolioKeys", "in": "query", "description": "Only returns application roles in environments belonging to the specified portfolios.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "nameContains", "in": "query", "description": "Filters application roles by name.", "schema": { "type": "string" } }, { "name": "sort", "in": "query", "description": "Used for sorting the list. Ascending by default. Prepend a hyphen, \"-\", to get a descending sort, for example \"-name\". Default: name. Allowed: name, environmentKey or assetKey.", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results returned. Allowed values: 1 to 100 Default value: 100.", "schema": { "type": "integer", "format": "int32" } }, { "name": "offset", "in": "query", "description": "Offset of the first result returned. Default value: 0.", "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicationRoleApiResponsePaginatedResponseApi" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > View end users** permission." } }, "/application-roles/{key}/users": { "get": { "tags": [ "application-roles" ], "summary": "Returns the list of users for the specific application role.", "description": "Returns a list of users that match the specified filters. Use query parameters to refine the search.\n\nAPI Client needs the **User management > View end users** permission.", "operationId": "ApplicationRole_QueryUsersByApplicationRole", "parameters": [ { "name": "key", "in": "path", "description": "Application role key.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "userKey", "in": "query", "description": "User's key to search.", "schema": { "type": "string", "format": "uuid" } }, { "name": "nameOrEmailContains", "in": "query", "description": "Filters users by name or email address. Parameter value must be URL-encoded (percent-encoding) to ensure it's correctly interpreted by the server. Example: Searching for an email with a +\n \n Incorrect: .../users?email=`john+doe@example.com`.\n \n Correct: .../users?email=`john%2Bdoe@example.com`", "schema": { "type": "string" } }, { "name": "nameOrEmailOrUsernameContains", "in": "query", "description": "Filters users by name or email address or username.. Parameter value must be URL-encoded (percent-encoding) to ensure it's correctly interpreted by the server. Example: Searching for an email with a +\n \n Incorrect: .../users?email=`john+doe@example.com`.\n \n Correct: .../users?email=`john%2Bdoe@example.com`", "schema": { "type": "string" } }, { "name": "lastLoginAtSince", "in": "query", "description": "Only returns users whose last login occurred on or after the specified date and time.", "schema": { "type": "string", "format": "date-time" } }, { "name": "lastLoginAtTo", "in": "query", "description": "Only returns users whose last login occurred before or on the specified date and time.", "schema": { "type": "string", "format": "date-time" } }, { "name": "limit", "in": "query", "description": "Maximum number of results returned. Allowed values: 1 to 100 Default value: 100.", "schema": { "type": "integer", "format": "int32" } }, { "name": "offset", "in": "query", "description": "Offset of the first result returned. Default value: 0.", "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "Used for sorting the list. Ascending by default. Prepend a hyphen, \"-\", to get a descending sort, for example \"-name\". Default: name. Allowed: userKey, name, email, status, lastLoginAt.", "schema": { "type": "string" } }, { "name": "embed", "in": "query", "description": "List of fields to embed in the response.", "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserProfileEmbedType" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoleUserResponsePaginatedResponseApi" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > View end users** permission." } }, "/users/bulk": { "post": { "tags": [ "users" ], "summary": "Bulk create users and optionally in the built-in identity provider.", "description": "The number of users added must be between 1 and 100 (inclusive), otherwise a bad request is returned.\nReturns an operations status object with an operation key that can be used later to get the status of the bulk create.\n \nAPI Client needs the User management > Manage users permission.\n\nAPI Client needs the **User management > Manage users** permission.", "operationId": "BulkUserProfile_CreateBulkUserProfilesOperation", "requestBody": { "description": "Bulk Create User Request.", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/UserProfileCreateApiRequestBulkApiRequest" } ] } }, "application/*+json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/UserProfileCreateApiRequestBulkApiRequest" } ] } } } }, "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkUserProfileOperationApiRecordBulkApiResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage users** permission." } }, "/users/bulk/{key}": { "get": { "tags": [ "users" ], "summary": "Get the bulk user operation status.", "description": "Returns an operations status object that contains the overall status of the bulk operation.\nIf the bulk operation has a Finished or FinishedWithError status,\nthe result of each and every item in the list is returned as well.\nIf the bulk operation has a Pending or Processing status, only the overall status is returned.\n \nAPI Client needs the User management > Manage users permission.\n\nAPI Client needs the **User management > Manage users** permission.", "operationId": "BulkUserProfile_GetBulkUserProfileOperationStatus", "parameters": [ { "name": "key", "in": "path", "description": "Key of the operation that was obtained during submitting bulk operation.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkUserProfileOperationApiRecordBulkApiResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage users** permission." } }, "/groups/{key}/users": { "patch": { "tags": [ "groups" ], "summary": "Allow to add or remove users from a group.", "description": "Allows adding or removing users from a specified group. Manage group membership by specifying the group key and providing lists of user keys to be added or removed.\n\nAPI Client needs the **User management > Manage end-user groups** permission.", "operationId": "Group_AddOrRemoveUsersFromGroup", "parameters": [ { "name": "key", "in": "path", "description": "The group key.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "description": "The request object.", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/PatchUsersByGroupRequest" } ] } }, "application/*+json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/PatchUsersByGroupRequest" } ] } } } }, "responses": { "200": { "description": "OK" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage end-user groups** permission." }, "get": { "tags": [ "groups" ], "summary": "Returns a list of users associated with a group.", "description": "Returns a list of users associated with a group that match the specified filters. Use query parameters to refine the search.\n\nAPI Client needs the **User management > Manage end-user groups** permission.", "operationId": "Group_QueryUsersFromGroup", "parameters": [ { "name": "key", "in": "path", "description": "The group's key.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "userKey", "in": "query", "description": "The user's key. Mutually exclusive with `userKeys`.", "schema": { "type": "string", "format": "uuid" } }, { "name": "userKeys", "in": "query", "description": "Only returns the users matching any of the specified keys. Comma-separated list of user keys. Mutually exclusive with `userKey`.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "nameOrEmailContains", "in": "query", "description": "Filters users by name or email address. Parameter value must be URL-encoded (percent-encoding) to ensure it's correctly interpreted by the server. Example: Searching for an email with a +\n \n Incorrect: .../users?email=`john+doe@example.com`.\n \n Correct: .../users?email=`john%2Bdoe@example.com`", "schema": { "type": "string" } }, { "name": "nameOrEmailOrUsernameContains", "in": "query", "description": "Filters users by name or email or username. Parameter value must be URL-encoded (percent-encoding) to ensure it's correctly interpreted by the server. Example: Searching for an email with a +\n \n Incorrect: .../users?email=`john+doe@example.com`.\n \n Correct: .../users?email=`john%2Bdoe@example.com`", "schema": { "type": "string" } }, { "name": "lastLoginAtSince", "in": "query", "description": "Only returns users whose last login occurred on or after the specified date and time.", "schema": { "type": "string", "format": "date-time" } }, { "name": "lastLoginAtTo", "in": "query", "description": "Only returns users whose last login occurred before or on the specified date and time.", "schema": { "type": "string", "format": "date-time" } }, { "name": "membershipType", "in": "query", "description": "Filters users by membership type that can be `Assigned` or `Mapped`.", "schema": { "allOf": [ { "$ref": "#/components/schemas/MembershipType" } ] } }, { "name": "limit", "in": "query", "description": "Maximum number of results returned. Allowed values: 1 to 100 Default value: 100.", "schema": { "type": "integer", "format": "int32" } }, { "name": "offset", "in": "query", "description": "Offset of the first result returned. Default value: 0.", "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "Used for sorting the list. Ascending by default. Prepend a hyphen, \"-\", to get a descending sort, for example \"-name\". Default: name. Allowed: key, name, email, status, lastLoginAt.", "schema": { "type": "string" } }, { "name": "embed", "in": "query", "description": "List of fields to embed in the response.", "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserProfileEmbedType" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GroupUserResponsePaginatedResponseApi" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage end-user groups** permission." } }, "/groups": { "post": { "tags": [ "groups" ], "summary": "Creates a new group.", "description": "Creates a new group by specifying a name and environment (stage). Optionally, you can include a list of users and application roles to assign to the group during creation.\n\nAPI Client needs the **User management > Manage end-user groups** permission.", "operationId": "Group_CreateGroup", "requestBody": { "description": "Group object with the necessary information.", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/GroupCreateRequest" } ] } }, "application/*+json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/GroupCreateRequest" } ] } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GroupCreateResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage end-user groups** permission." }, "get": { "tags": [ "groups" ], "summary": "Returns the list of groups based on specified conditions.", "description": "Returns a list of groups that match the specified filters. Use query parameters to refine the search.\n\nAPI Client needs the **User management > Manage end-user groups** permission.", "operationId": "Group_QueryGroups", "parameters": [ { "name": "nameContains", "in": "query", "description": "Filters users by name.", "schema": { "type": "string" } }, { "name": "environmentKey", "in": "query", "description": "Only returns groups associated with the specified environment (stage). Mutually exclusive with `environmentKeys`.", "schema": { "type": "string", "format": "uuid" } }, { "name": "environmentKeys", "in": "query", "description": "Only returns groups associated with any of the specified environments (stages). Comma-separated list of environment keys. Mutually exclusive with `environmentKey`.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "identityProviderKey", "in": "query", "description": "Only returns groups with claim mappings for the specified identity provider.", "schema": { "type": "string", "format": "uuid" } }, { "name": "portfolioKeys", "in": "query", "description": "Only returns groups in environments belonging to any of the specified portfolios.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "limit", "in": "query", "description": "Maximum number of results returned. Allowed values: 1 to 100 Default value: 100.", "schema": { "type": "integer", "format": "int32" } }, { "name": "offset", "in": "query", "description": "Offset of the first result returned. Default value: 0.", "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GroupApiResponsePaginatedResponseApi" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage end-user groups** permission." } }, "/groups/{key}": { "delete": { "tags": [ "groups" ], "summary": "Deletes a group.", "description": "Deletes a specified group using the group's key.\n\nAPI Client needs the **User management > Manage end-user groups** permission.", "operationId": "Group_DeleteGroup", "parameters": [ { "name": "key", "in": "path", "description": "The key of the group to be deleted.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "default": { "description": "Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage end-user groups** permission." }, "get": { "tags": [ "groups" ], "summary": "Returns information for a group.", "description": "Retrieves detailed information about a group, including its name, description, and environment.\n\nAPI Client needs the **User management > Manage end-user groups** permission.", "operationId": "Group_ReadGroup", "parameters": [ { "name": "key", "in": "path", "description": "Group key.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GroupApiResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage end-user groups** permission." }, "patch": { "tags": [ "groups" ], "summary": "Updates a group.", "description": "Updates the details of a group using the group's key. Allows modification of the group's name or description.\n\nAPI Client needs the **User management > Manage end-user groups** permission.", "operationId": "Group_UpdateGroup", "parameters": [ { "name": "key", "in": "path", "description": "The key of the group to be updated.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "description": "The request object with the new values.", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/PatchGroupRequest" } ] } }, "application/*+json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/PatchGroupRequest" } ] } } } }, "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "default": { "description": "Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage end-user groups** permission." } }, "/groups/{key}/application-roles": { "patch": { "tags": [ "groups" ], "summary": "Allow to add or remove application roles from a group.", "description": "Allows adding or removing application roles from a specified group. Manage roles by specifying the group key and providing lists of application role keys to be added or removed.\n\nAPI Client needs the **User management > Manage end-user groups** permission.", "operationId": "Group_ModifyGroupApplicationRoles", "parameters": [ { "name": "key", "in": "path", "description": "The group key.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "description": "Request object with the application role keys to add or remove.", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/PatchGroupApplicationRolesRequest" } ] } }, "application/*+json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/PatchGroupApplicationRolesRequest" } ] } } } }, "responses": { "200": { "description": "OK" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage end-user groups** permission." }, "get": { "tags": [ "groups" ], "summary": "Returns a list of application roles associated with a group.", "description": "Returns a list of application roles that match the specified filters. Use query parameters to refine the search.\n\nAPI Client needs the **User management > Manage end-user groups** permission.", "operationId": "Group_QueryApplicationRolesGroups", "parameters": [ { "name": "key", "in": "path", "description": "The group key.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "assetKey", "in": "query", "description": "The asset key.", "schema": { "type": "string", "format": "uuid" } }, { "name": "applicationRoleKey", "in": "query", "description": "The application role key. Mutually exclusive with `applicationRoleKeys`.", "schema": { "type": "string", "format": "uuid" } }, { "name": "applicationRoleKeys", "in": "query", "description": "Only returns the application roles matching any of the specified keys. Comma-separated list of application role keys. Mutually exclusive with `applicationRoleKey`.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "nameContains", "in": "query", "description": "Filters application roles by name.", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results returned. Allowed values: 1 to 100 Default value: 100.", "schema": { "type": "integer", "format": "int32" } }, { "name": "offset", "in": "query", "description": "Offset of the first result returned. Default value: 0.", "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "Used for sorting the list. Ascending by default. Prepend a hyphen, \"-\", to get a descending sort, for example \"-name\". Default: name. Allowed: name, assetkey.", "schema": { "type": "string" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicationRoleApiResponsePaginatedResponseApi" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage end-user groups** permission." } }, "/groups/{key}/claim-mappings/{mappingKey}": { "delete": { "tags": [ "groups" ], "summary": "Delete a Group Idp Mapping.", "description": "Delete a specified Group Idp Mapping object using its key.\n\nAPI Client needs the **User management > Manage end-user groups** permission.", "operationId": "GroupIdpClaimMapping_DeleteGroupIdpClaimMapping", "parameters": [ { "name": "key", "in": "path", "description": "The key of the Group for the Idp Mapping object to delete.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "mappingKey", "in": "path", "description": "Claim Mapping key.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "default": { "description": "Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage end-user groups** permission." } }, "/identity-providers": { "get": { "tags": [ "identity-providers" ], "summary": "Returns a list of identity providers.", "description": "Returns a list of identity providers for the given conditions/filters. Use query parameters to filter the result based on different criteria.\n\nAPI client must have at least one permission.", "operationId": "IdentityProvider_QueryIdentityProviders", "parameters": [ { "name": "key", "in": "query", "description": "Unique identifier of the identity provider.", "schema": { "type": "string", "format": "uuid" } }, { "name": "nameContains", "in": "query", "description": "Pattern to be searched in provider name.", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results returned. Allowed values: 1 to 100 Default value: 100.", "schema": { "type": "integer", "format": "int32" } }, { "name": "offset", "in": "query", "description": "Offset of the first result returned. Default value: 0.", "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IdentityProviderResponsePaginatedResponseApi" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API client must have at least one permission." } }, "/identity-providers/{key}": { "get": { "tags": [ "identity-providers" ], "summary": "Retrieves an identity provider.", "description": "Returns the identity provider by key.\n\nAPI client must have at least one permission.", "operationId": "IdentityProvider_ReadIdentityProvider", "parameters": [ { "name": "key", "in": "path", "description": "The Identity Provider Key.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IdentityProviderResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API client must have at least one permission." } }, "/organization-roles": { "post": { "tags": [ "organization-roles" ], "summary": "Create an organization role.", "description": "Creates an organization role.\n\nAPI Client needs the **User management > Manage organization roles** permission.", "operationId": "OrganizationRole_CreateOrganizationRole", "requestBody": { "description": "Organization role object.", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/OrganizationRoleCreateRequest" } ] } }, "application/*+json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/OrganizationRoleCreateRequest" } ] } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationRoleCreateResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage organization roles** permission." }, "get": { "tags": [ "organization-roles" ], "summary": "Returns the list of organization roles.", "description": "Returns a list of organization roles. Use query parameters to filter the result based on different criteria.\n\nAPI client must have at least one permission.", "operationId": "OrganizationRole_QueryOrganizationRoles", "parameters": [ { "name": "roleKey", "in": "query", "description": "Organization role key.", "schema": { "type": "string", "format": "uuid" } }, { "name": "nameContains", "in": "query", "description": "Filters list by name.", "schema": { "type": "string" } }, { "name": "sort", "in": "query", "description": "Used for sorting the list. Ascending by default. Prepend a hyphen, \"-\", to get a descending sort, for example \"-name\". The default is name. Allowed: name.", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results returned. The value must be within 1 - 100 (both inclusive). The default value is 100.", "schema": { "type": "integer", "format": "int32" } }, { "name": "offset", "in": "query", "description": "Starting point or position of the first result returned. The default value is 0.", "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationRoleApiResponsePaginatedResponseApi" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API client must have at least one permission." } }, "/organization-roles/{key}": { "delete": { "tags": [ "organization-roles" ], "summary": "Delete an organization role.", "description": "Deletes an organization role.\n\nAPI Client needs the **User management > Manage organization roles** permission.", "operationId": "OrganizationRole_DeleteOrganizationRole", "parameters": [ { "name": "key", "in": "path", "description": "Organization role key.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage organization roles** permission." }, "get": { "tags": [ "organization-roles" ], "summary": "Returns information for an organization role.", "description": "Returns details about an organization role based on the organization role key.\n\nAPI client must have at least one permission.", "operationId": "OrganizationRole_ReadOrganizationRole", "parameters": [ { "name": "key", "in": "path", "description": "Organization role key.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationRoleApiResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API client must have at least one permission." }, "patch": { "tags": [ "organization-roles" ], "summary": "Update an organization role.", "description": "Updates the details of an organization role based on the organization role key.\n\nAPI Client needs the **User management > Manage organization roles** permission.", "operationId": "OrganizationRole_UpdateOrganizationRole", "parameters": [ { "name": "key", "in": "path", "description": "Organization role key.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "description": "Organization role object.", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/OrganizationRoleUpdateRequest" } ] } }, "application/*+json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/OrganizationRoleUpdateRequest" } ] } } } }, "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "409": { "description": "Conflict", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage organization roles** permission." } }, "/organization-roles/{key}/users": { "get": { "tags": [ "organization-roles" ], "summary": "Returns a list of users with a specific organization role.", "description": "Returns a list of users with a specific organization role, based on the organization role key.\nUse query parameters to filter the result based on different criteria.\n\nAPI Client needs the **User management > View members** permission.", "operationId": "OrganizationRole_QueryUsersByRole", "parameters": [ { "name": "key", "in": "path", "description": "Organization role key.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "nameOrEmailContains", "in": "query", "description": "Filters list by name or email. Parameter value must be URL-encoded (percent-encoding) to ensure it's correctly interpreted by the server. Example: Searching for an email with a +\n \n Incorrect: .../users?email=`john+doe@example.com`.\n \n Correct: .../users?email=`john%2Bdoe@example.com`", "schema": { "type": "string" } }, { "name": "nameOrEmailOrUsernameContains", "in": "query", "description": "Filters list by name, email, or username. Parameter value must be URL-encoded (percent-encoding) to ensure it's correctly interpreted by the server. Example: Searching for an email with a +\n \n Incorrect: .../users?email=`john+doe@example.com`.\n \n Correct: .../users?email=`john%2Bdoe@example.com`", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results returned. The value must be within 1 - 100 (both inclusive). The default value is 100.", "schema": { "type": "integer", "format": "int32" } }, { "name": "offset", "in": "query", "description": "Starting point or position of the first result returned. The default value is 0.", "schema": { "type": "integer", "format": "int32" } }, { "name": "sort", "in": "query", "description": "Used for sorting the list. Ascending by default. Prepend a hyphen, \"-\", to get a descending sort, for example \"-name\". The default is name. Allowed: userKey, name, email, status, lastLoginAt.", "schema": { "type": "string" } }, { "name": "embed", "in": "query", "description": "List of fields to embed in the response.", "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserProfileEmbedType" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoleUserResponsePaginatedResponseApi" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > View members** permission." } }, "/permissions": { "get": { "tags": [ "permissions" ], "summary": "Returns the list of permissions.", "description": "Returns the list of permissions.\nUse query parameters to filter the result based on different criteria.\n\nAPI client must have at least one permission.", "operationId": "Permission_QueryPermissions", "parameters": [ { "name": "nameContains", "in": "query", "description": "Filters list by name.", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results returned. The value must be within 1 - 100 (both inclusive). The default value is 100.", "schema": { "type": "integer", "format": "int32" } }, { "name": "offset", "in": "query", "description": "Starting point or position of the first result returned. The default value is 0.", "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PermissionResponsePaginatedResponseApi" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API client must have at least one permission." } }, "/permissions/{key}": { "get": { "tags": [ "permissions" ], "summary": "Retrieve details about a permission.", "description": "Returns details about a permission based on the permission key.\n\nAPI client must have at least one permission.", "operationId": "Permission_ReadPermission", "parameters": [ { "name": "key", "in": "path", "description": "Permission key.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PermissionResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API client must have at least one permission." } }, "/users/{key}/application-roles/{roleKey}": { "post": { "tags": [ "users" ], "summary": "Grants an application role to a user.", "description": "Assigns an application role to a user by providing the application role key and the user key.\n\nAPI Client needs the **User management > Manage end-user access** permission.", "operationId": "UserApplicationRoles_GrantApplicationRoleToUser", "parameters": [ { "name": "key", "in": "path", "description": "User key.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "roleKey", "in": "path", "description": "Application role creation request.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "201": { "description": "Created" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage end-user access** permission." }, "delete": { "tags": [ "users" ], "summary": "Revokes an application role to a user.", "description": "Revokes an application role from a user by providing the user key and application role key.\n\nAPI Client needs the **User management > Manage end-user access** permission.", "operationId": "UserApplicationRoles_RevokeApplicationRoleForUser", "parameters": [ { "name": "key", "in": "path", "description": "User key.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "roleKey", "in": "path", "description": "Role key for the application.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage end-user access** permission." } }, "/users/{key}/application-roles": { "get": { "tags": [ "users" ], "summary": "Returns the list of application roles associated with a user.", "description": "Returns a list of application roles associated with a user that match the specified filters. Use query parameters to refine the search.\n\nAPI Client needs the **User management > View end users** permission.", "operationId": "UserApplicationRoles_QueryUserApplicationRoles", "parameters": [ { "name": "key", "in": "path", "description": "User key.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "nameContains", "in": "query", "description": "Filters application roles by name.", "schema": { "type": "string" } }, { "name": "assetKey", "in": "query", "description": "Only returns application roles for the specified asset. Mutually exclusive with `assetKeys`.", "schema": { "type": "string", "format": "uuid" } }, { "name": "assetKeys", "in": "query", "description": "Only returns application roles for any of the specified assets. Comma-separated list of asset keys. Mutually exclusive with `assetKey`.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "environmentKey", "in": "query", "description": "Only returns application roles in the specified environment (stage). Mutually exclusive with `environmentKeys`.", "schema": { "type": "string", "format": "uuid" } }, { "name": "environmentKeys", "in": "query", "description": "Only returns application roles in any of the specified environments (stages). Mutually exclusive with `environmentKey`.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "portfolioKeys", "in": "query", "description": "Only returns application roles in the environments belonging to any of the specified portfolios.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "groupKeys", "in": "query", "description": "Only returns application roles inherited from the specified groups.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "applicationRoleKeys", "in": "query", "description": "Only returns the application roles matching any of the specified keys. Comma-separated list of application role keys.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "sort", "in": "query", "description": "Used for sorting the list. Ascending by default. Prepend a hyphen, \"-\", to get a descending sort, for example \"-name\". Default: name. Allowed: name, environmentKey or assetKey.", "schema": { "type": "string" } }, { "name": "limit", "in": "query", "description": "Maximum number of results returned. Allowed values: 1 to 100 Default value: 100.", "schema": { "type": "integer", "format": "int32" } }, { "name": "offset", "in": "query", "description": "Offset of the first result returned. Default value: 0.", "schema": { "type": "integer", "format": "int32" } }, { "name": "assignmentSources", "in": "query", "description": "Filters by assignment source. Repeatable. Allowed: Direct, GroupAssigned, GroupMapped. Empty or omitted defaults to Direct. The IsDirectlyAssigned flag and AssignedGroups list on each returned role reflect only the selected sources.", "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AssignmentSource" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserApplicationRoleApiResponsePaginatedResponseApi" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > View end users** permission." } }, "/users/{key}/organization-roles": { "get": { "tags": [ "users" ], "summary": "Returns the list of organization roles associated with a user.", "description": "Returns the list of organization roles associated with a user.\nIf the authenticated user is requesting their own roles, no permission is required.\n\nAPI Client needs the **User management > View members** or **User management > Manage users** permissions.", "operationId": "UserOrganizationRoles_GetUserOrganizationRoles", "parameters": [ { "name": "key", "in": "path", "description": "User key.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "scopes", "in": "query", "description": "Optional. Comma-separated. `Organization` returns roles assigned in Organization scope; `Asset` returns roles assigned in Asset scope. Both together (or omitted) returns all.", "schema": { "type": "array", "items": { "$ref": "#/components/schemas/OrganizationRoleAssignmentScope" } } }, { "name": "assetKeys", "in": "query", "description": "Optional. Comma-separated list of asset keys. Only returns organization roles assigned in Asset scope for any of the specified assets.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "limit", "in": "query", "description": "Maximum number of results returned. The value must be within 1 - 100 (both inclusive). The default value is 100.", "schema": { "type": "integer", "format": "int32" } }, { "name": "offset", "in": "query", "description": "Starting point or position of the first result returned. The default value is 0.", "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationRoleByUserApiResponsePaginatedResponseApi" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > View members** or **User management > Manage users** permissions." } }, "/users/{key}/organization-roles/{roleKey}": { "post": { "tags": [ "users" ], "summary": "Grant organization roles to a user.", "description": "Assigns organization roles to a user based on the user key.\n\nAPI Client needs the **User management > Manage member access** permission.", "operationId": "UserOrganizationRoles_GrantOrganizationRoleToUser", "parameters": [ { "name": "key", "in": "path", "description": "User key.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "roleKey", "in": "path", "description": "Organization role key.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "description": "Contains role validity period and asset keys for which we assign this organization role.", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/GrantDetailsRequest" } ] } }, "application/*+json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/GrantDetailsRequest" } ] } } } }, "responses": { "201": { "description": "Created" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage member access** permission." }, "delete": { "tags": [ "users" ], "summary": "Delete a user's organization roles.", "description": "Revokes organization roles for a user.\n\nAPI Client needs the **User management > Manage member access** permission.", "operationId": "UserOrganizationRoles_RevokeOrganizationRoleForUser", "parameters": [ { "name": "key", "in": "path", "description": "User key.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "roleKey", "in": "path", "description": "Organization role key.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "description": "Revoke details contains the asset keys for which to revoke the organization role.", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/RevokeDetailsRequest" } ] } }, "application/*+json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/RevokeDetailsRequest" } ] } } } }, "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage member access** permission." } }, "/users/count": { "get": { "tags": [ "users" ], "summary": "Returns the user count based on specified conditions.", "description": "Returns the user count that match the specified filters. Use query parameters to refine the search.\n\nAPI Client needs the **User management > View end users** or **User management > View members** or **User management > Manage users** permissions. If API Client has the **User management > View end users** permission, retrieves the list of users with end-user roles. If API Client has the **User management > View members** permission, retrieves the list of users with organization roles. To get a list of all users (with or without roles), the API client needs either both the **User management > View end users** and **User management > View members** permissions, or the **User management > Manage users** permission.", "operationId": "UserProfile_CountUsers", "parameters": [ { "name": "domains", "in": "query", "description": "Only counts users with the specified domains.", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "status", "in": "query", "description": "Only counts users with the specified status.", "schema": { "allOf": [ { "$ref": "#/components/schemas/UserProfileStatus" } ] } }, { "name": "hasOrganizationRoles", "in": "query", "description": "When set to true, only counts users that have at least one organization role. Default is false.", "schema": { "type": "boolean" } }, { "name": "hasApplicationRoles", "in": "query", "description": "When set to true, only counts users that have at least one application role. Default is false.", "schema": { "type": "boolean" } }, { "name": "environmentKeys", "in": "query", "description": "Only counts users that have roles in any of the specified environments (stages).", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "portfolioKeys", "in": "query", "description": "Only counts users that have roles in any of the specified portfolios.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "loggedInEnvironmentKeys", "in": "query", "description": "Only counts users that have logged in to any of the specified environments (stages). When combined with last login date filters, the date range applies to the per-environment login timestamp.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "loggedInPortfolioKeys", "in": "query", "description": "Only counts users that have logged in to any environment in the specified portfolios. When combined with last login date filters, the date range applies to the per-environment login timestamp.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "lastLoginAtSince", "in": "query", "description": "Only counts users whose last login occurred on or after the specified date and time. Applies to the top-level last login unless logged-in environment or portfolio filters are specified.", "schema": { "type": "string", "format": "date-time" } }, { "name": "lastLoginAtTo", "in": "query", "description": "Only counts users whose last login occurred before or on the specified date and time. Applies to the top-level last login unless logged-in environment or portfolio filters are specified.", "schema": { "type": "string", "format": "date-time" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserProfileCountApiResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > View end users** or **User management > View members** or **User management > Manage users** permissions. If API Client has the **User management > View end users** permission, retrieves the list of users with end-user roles. If API Client has the **User management > View members** permission, retrieves the list of users with organization roles. To get a list of all users (with or without roles), the API client needs either both the **User management > View end users** and **User management > View members** permissions, or the **User management > Manage users** permission." } }, "/users": { "post": { "tags": [ "users" ], "summary": "Creates a new user.", "description": "Creates a new user by specifying the user information. You can provide the user's name, photo URL, and active status. Additionally, the AddToBuiltInIdentityProvider can be used to add the user to the built-in provider.\n\nAPI Client needs the **User management > Manage users** permission.", "operationId": "UserProfile_CreateUser", "requestBody": { "description": "The user object with the necessary information.", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/UserProfileCreateApiRequest" } ] } }, "application/*+json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/UserProfileCreateApiRequest" } ] } } } }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserProfileCreateResponse" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage users** permission." }, "get": { "tags": [ "users" ], "summary": "Returns the list of users based on specified conditions.", "description": "Returns a list of users that match the specified filters. Use query parameters to refine the search.\n\nAPI Client needs the **User management > View end users** or **User management > View members** or **User management > Manage users** permissions. If API Client has the **User management > View end users** permission, retrieves the list of users with end-user roles. If API Client has the **User management > View members** permission, retrieves the list of users with organization roles. To get a list of all users (with or without roles), the API client needs either both the **User management > View end users** and **User management > View members** permissions, or the **User management > Manage users** permission.", "operationId": "UserProfile_QueryUsers", "parameters": [ { "name": "nameOrEmailContains", "in": "query", "description": "Filters users by name or email address. Parameter value must be URL-encoded (percent-encoding) to ensure it's correctly interpreted by the server. Example: Searching for an email with a +\n \n Incorrect: .../users?email=`john+doe@example.com`.\n \n Correct: .../users?email=`john%2Bdoe@example.com`", "schema": { "type": "string" } }, { "name": "nameOrEmailOrUsernameContains", "in": "query", "description": "Filters users by name or email address or username. Parameter value must be URL-encoded (percent-encoding) to ensure it's correctly interpreted by the server. Example: Searching for an email with a +\n \n Incorrect: .../users?email=`john+doe@example.com`.\n \n Correct: .../users?email=`john%2Bdoe@example.com`", "schema": { "type": "string" } }, { "name": "userKeys", "in": "query", "description": "Only returns users that match the specified keys. For more than one key, separates the keys with a comma. Allows up to 20 user keys.", "schema": { "type": "string" } }, { "name": "assetKey", "in": "query", "description": "Only returns users that have roles for the specified Asset.", "schema": { "type": "string", "format": "uuid" } }, { "name": "status", "in": "query", "description": "Only returns users with the specified status.", "schema": { "allOf": [ { "$ref": "#/components/schemas/UserProfileStatus" } ] } }, { "name": "lastLoginAtSince", "in": "query", "description": "Only returns users whose last login occurred on or after the specified date and time.", "schema": { "type": "string", "format": "date-time" } }, { "name": "lastLoginAtTo", "in": "query", "description": "Only returns users whose last login occurred before or on the specified date and time.", "schema": { "type": "string", "format": "date-time" } }, { "name": "hasOrganizationRoles", "in": "query", "description": "When set to true, only returns users that have at least one organization role. Default is false.", "schema": { "type": "boolean" } }, { "name": "hasApplicationRoles", "in": "query", "description": "When set to true, only returns users that have at least one application role. Default is false.", "schema": { "type": "boolean" } }, { "name": "sort", "in": "query", "description": "Used for sorting the list. Ascending by default. Prepend a hyphen, \"-\", to get a descending sort, for example \"-name\". Default: name. Allowed: key, name, email, status, lastLoginAt.", "schema": { "type": "string" } }, { "name": "environmentKey", "in": "query", "description": "Only returns users that have roles in the specified environment (stage). Mutually exclusive with `environmentKeys`.", "schema": { "type": "string", "format": "uuid" } }, { "name": "environmentKeys", "in": "query", "description": "Only returns users that have roles in any of the specified environments (stages). Comma-separated list of environment keys. Mutually exclusive with `environmentKey`.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "portfolioKeys", "in": "query", "description": "Only returns users that have roles in any of the specified portfolios.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "domains", "in": "query", "description": "Only returns users with the specified domains.", "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "loggedInEnvironmentKeys", "in": "query", "description": "Only returns users that have logged in to any of the specified environments (stages). When combined with last login date filters, the date range applies to the per-environment login timestamp.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "loggedInPortfolioKeys", "in": "query", "description": "Only returns users that have logged in to any environment in the specified portfolios. When combined with last login date filters, the date range applies to the per-environment login timestamp.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "embed", "in": "query", "description": "List of fields to embed in the response.", "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserProfileEmbedType" } } }, { "name": "limit", "in": "query", "description": "Maximum number of results returned. Allowed values: 1 to 100 Default value: 100.", "schema": { "type": "integer", "format": "int32" } }, { "name": "offset", "in": "query", "description": "Offset of the first result returned. Default value: 0.", "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserProfileApiResponsePaginatedResponseApi" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > View end users** or **User management > View members** or **User management > Manage users** permissions. If API Client has the **User management > View end users** permission, retrieves the list of users with end-user roles. If API Client has the **User management > View members** permission, retrieves the list of users with organization roles. To get a list of all users (with or without roles), the API client needs either both the **User management > View end users** and **User management > View members** permissions, or the **User management > Manage users** permission." } }, "/users/{key}": { "delete": { "tags": [ "users" ], "summary": "Deletes a user.", "description": "Deletes a specified user using the user's key.\n\nAPI Client needs the **User management > Manage users** permission.", "operationId": "UserProfile_DeleteUser", "parameters": [ { "name": "key", "in": "path", "description": "User key.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "No Content" }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage users** permission." }, "get": { "tags": [ "users" ], "summary": "Retrieves a user.", "description": "Retrieves detailed information about a user using the user's key.\n\nAPI Client needs the **User management > View end users** or **User management > View members** or **User management > Manage users** permissions. If API Client has the **User management > View end users** permission, retrieves the list of users with end-user roles. If API Client has the **User management > View members** permission, retrieves the list of users with organization roles. To get a list of all users (with or without roles), the API client needs either both the **User management > View end users** and **User management > View members** permissions, or the **User management > Manage users** permission.", "operationId": "UserProfile_GetUser", "parameters": [ { "name": "key", "in": "path", "description": "User key.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "embed", "in": "query", "description": "List of fields to embed in the response.", "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserProfileEmbedType" } } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserProfileApiResponse" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > View end users** or **User management > View members** or **User management > Manage users** permissions. If API Client has the **User management > View end users** permission, retrieves the list of users with end-user roles. If API Client has the **User management > View members** permission, retrieves the list of users with organization roles. To get a list of all users (with or without roles), the API client needs either both the **User management > View end users** and **User management > View members** permissions, or the **User management > Manage users** permission." }, "patch": { "tags": [ "users" ], "summary": "Updates the user.", "description": "Updates the details of a user using the user's key. Allows modification of the user's name, photo URL, and active status.\n\nAPI Client needs the **User management > Manage users** permission.", "operationId": "UserProfile_PatchUser", "parameters": [ { "name": "key", "in": "path", "description": "User key.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "description": "User object with the information to be updated.", "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/UserProfilePatchRequest" } ] } }, "application/*+json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/UserProfilePatchRequest" } ] } } } }, "responses": { "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "204": { "description": "No Content" }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage users** permission." } }, "/users/{key}/groups": { "get": { "tags": [ "users" ], "summary": "Returns a list of groups associated with a user.", "description": "Returns a list of groups associated with a user that match the specified filters. Use query parameters to refine the search.\n\nAPI Client needs the **User management > Manage end-user groups** permission.", "operationId": "UserProfile_QueryGroupsByUser", "parameters": [ { "name": "key", "in": "path", "description": "The user key.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "nameContains", "in": "query", "description": "Filters groups by name.", "schema": { "type": "string" } }, { "name": "assetKey", "in": "query", "description": "Filters groups by asset key.", "schema": { "type": "string", "format": "uuid" } }, { "name": "environmentKey", "in": "query", "description": "Filters groups by environment key (stage). Mutually exclusive with `environmentKeys`.", "schema": { "type": "string", "format": "uuid" } }, { "name": "environmentKeys", "in": "query", "description": "Filters groups by environment keys (stages). Comma-separated list of environment keys. Mutually exclusive with `environmentKey`.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "portfolioKeys", "in": "query", "description": "Only returns groups in environments belonging to any of the specified portfolios.", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "membershipType", "in": "query", "description": "Filters groups by user's membership type that can be `Assigned` or `Mapped`.", "schema": { "allOf": [ { "$ref": "#/components/schemas/MembershipType" } ] } }, { "name": "limit", "in": "query", "description": "Maximum number of results returned. Allowed values: 1 to 100 Default value: 100.", "schema": { "type": "integer", "format": "int32" } }, { "name": "offset", "in": "query", "description": "Offset of the first result returned. Default value: 0.", "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserGroupResponsePaginatedResponseApi" } } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "404": { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "x-os-permissions": "API Client needs the **User management > Manage end-user groups** permission." } } }, "components": { "schemas": { "ApplicationRoleApiResponse": { "type": "object", "properties": { "key": { "type": "string", "description": "The application role key.", "format": "uuid" }, "name": { "type": "string", "description": "The name of the application role.", "nullable": true }, "environmentKey": { "type": "string", "description": "The environment key.", "format": "uuid" }, "assetKey": { "type": "string", "description": "The asset key.", "format": "uuid" }, "externalKey": { "type": "string", "description": "The unique identifier for an application role independently of the environment.", "format": "uuid" }, "claim": { "type": "string", "description": "The claim name.", "nullable": true }, "portfolioKey": { "type": "string", "description": "The portfolio key associated with the environment.", "format": "uuid" } }, "additionalProperties": false }, "ApplicationRoleApiResponsePaginatedResponseApi": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/ApplicationRoleApiResponse" }, "description": "The List of results.", "nullable": true }, "page": { "allOf": [ { "$ref": "#/components/schemas/PageInfoWithTotalsApi" } ], "description": "The details of the page information.", "nullable": true } }, "additionalProperties": false }, "AssetContext": { "enum": [ "Organization", "Asset" ], "type": "string" }, "AssignedGroupInfoApiResponse": { "type": "object", "properties": { "key": { "type": "string", "description": "The application group key.", "format": "uuid" }, "name": { "type": "string", "description": "The name of the application group.", "nullable": true }, "membershipType": { "enum": [ "Assigned", "Mapped" ], "allOf": [ { "$ref": "#/components/schemas/MembershipType" } ], "description": "The membership type of the user in the application group." } }, "additionalProperties": false }, "AssignmentSource": { "enum": [ "Direct", "GroupAssigned", "GroupMapped" ], "type": "string" }, "BulkApiOperationStatus": { "enum": [ "Error", "Inserted", "Updated", "Deleted" ], "type": "string" }, "BulkApiStatus": { "enum": [ "FinishedWithErrors", "Finished", "Processing", "Pending" ], "type": "string" }, "BulkUserProfileOperationApiRecord": { "type": "object", "properties": { "key": { "type": "string", "description": "User profile record key", "format": "uuid", "nullable": true }, "email": { "type": "string", "description": "Email of the user", "nullable": true }, "username": { "type": "string", "description": "The user's username for the IdP", "nullable": true }, "subject": { "type": "string", "description": "The user's subject claim value for the IdP", "nullable": true } }, "additionalProperties": false }, "BulkUserProfileOperationApiRecordBulkApiOperation": { "type": "object", "properties": { "status": { "enum": [ "Error", "Inserted", "Updated", "Deleted" ], "allOf": [ { "$ref": "#/components/schemas/BulkApiOperationStatus" } ], "description": "Status of the individual operation in the list of bulk operations.\nFor example: Inserted, Updated, Errored" }, "errorCode": { "type": "string", "description": "Self-support error code for the one operation if any error occured.", "nullable": true }, "errorMessage": { "type": "string", "description": "Self-support error message for the one operation if any error occured.", "nullable": true }, "record": { "allOf": [ { "$ref": "#/components/schemas/BulkUserProfileOperationApiRecord" } ], "description": "A JSON object containing some extra info about the record in this operation.\nThis could contain some pieces of request info as well as additional info from the operation output.", "nullable": true } }, "additionalProperties": false }, "BulkUserProfileOperationApiRecordBulkApiResponse": { "type": "object", "properties": { "key": { "type": "string", "description": "The identiifer of the bulk operation record", "format": "uuid" }, "status": { "enum": [ "FinishedWithErrors", "Finished", "Processing", "Pending" ], "allOf": [ { "$ref": "#/components/schemas/BulkApiStatus" } ], "description": "Bullk API statuses Pending, Processing, Finished and FinishedWithErrors" }, "errorCode": { "type": "string", "description": "Self Service error code for the overall bulk API operation.\nFor example, when the operation times out.", "nullable": true }, "errorMessage": { "type": "string", "description": "Self Service error message for the overall bulk API operation.\nFor example, when the operation times out.", "nullable": true }, "operations": { "type": "array", "items": { "$ref": "#/components/schemas/BulkUserProfileOperationApiRecordBulkApiOperation" }, "description": "Details of each operation performed in the bulk request.\nAvailable when the bulk operation has Finished or FinishedWithErrors.\nThis will be an empty list when the bulk operation is Pending or Progressing.", "nullable": true } }, "additionalProperties": false }, "ClientAssertionSigningAlgorithmServiceModel": { "enum": [ "ES256", "ES384", "ES512", "HS256", "HS384", "HS512", "PS256", "PS384", "PS512", "RS256", "RS384", "RS512" ], "type": "string" }, "ClientAuthenticationMethodServiceModel": { "enum": [ "client_secret_post", "client_secret_basic", "client_secret_jwt", "private_key_jwt" ], "type": "string" }, "EmailTrustTypeServiceModel": { "enum": [ "None", "EmailVerifiedClaim", "All" ], "type": "string" }, "ForeignClaimModel": { "required": [ "name", "value" ], "type": "object", "properties": { "name": { "minLength": 1, "type": "string", "description": "Gets or sets Name of the claim to match in the foreign token." }, "valueDelimiter": { "type": "string", "description": "Gets or sets string to split the foreign claim value on.", "nullable": true }, "value": { "minLength": 1, "type": "string", "description": "Gets or sets exact match string for the entire foreign claim value or one of the, split elements if a delimiter was specified." } }, "additionalProperties": false }, "GrantDetailsRequest": { "type": "object", "properties": { "grantPeriod": { "allOf": [ { "$ref": "#/components/schemas/GrantPeriodApiModel" } ], "description": "Gets or sets the grant period.", "nullable": true }, "assetKeys": { "type": "array", "items": { "type": "string", "format": "uuid" }, "description": "Gets or sets the asset keys.", "nullable": true }, "portfolioKey": { "type": "string", "description": "Gets or sets the portfolio key this assignment belongs to. Optional; applies only to asset-scoped grants\nand, when omitted, the assignment is associated with the tenant's main portfolio.", "format": "uuid", "nullable": true } }, "additionalProperties": false }, "GrantPeriodApiModel": { "type": "object", "properties": { "startTime": { "type": "string", "description": "The start date and time in utc.", "format": "date-time", "nullable": true }, "endTime": { "type": "string", "description": "The end date and time in utc.", "format": "date-time", "nullable": true } }, "additionalProperties": false }, "GroupApiResponse": { "type": "object", "properties": { "key": { "type": "string", "description": "The key of the group.", "format": "uuid" }, "name": { "type": "string", "description": "The name of the group.", "nullable": true }, "description": { "type": "string", "description": "The description of the group.", "nullable": true }, "environmentKey": { "type": "string", "description": "The environment key.", "format": "uuid" }, "portfolioKey": { "type": "string", "description": "The portfolio key associated with the environment.", "format": "uuid" }, "updatedAt": { "type": "string", "description": "The last updated date and time of the group.", "format": "date-time" }, "groupIdpClaimMappings": { "type": "array", "items": { "$ref": "#/components/schemas/GroupIdpClaimMappingEmbedded" }, "description": "The group's identity providers claim mappings.", "nullable": true } }, "additionalProperties": false }, "GroupApiResponsePaginatedResponseApi": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/GroupApiResponse" }, "description": "The List of results.", "nullable": true }, "page": { "allOf": [ { "$ref": "#/components/schemas/PageInfoWithTotalsApi" } ], "description": "The details of the page information.", "nullable": true } }, "additionalProperties": false }, "GroupCreateRequest": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the group.", "nullable": true }, "description": { "type": "string", "description": "The description of the group.", "nullable": true }, "environmentKey": { "type": "string", "description": "The environment key to associate with the group.", "format": "uuid" }, "applicationRoleKeys": { "type": "array", "items": { "type": "string", "format": "uuid" }, "description": "The application role keys to associate with the group.", "nullable": true }, "userKeys": { "type": "array", "items": { "type": "string", "format": "uuid" }, "description": "The user keys to associate with the group.", "nullable": true } }, "additionalProperties": false }, "GroupCreateResponse": { "type": "object", "properties": { "key": { "type": "string", "description": "The group key.", "format": "uuid" } }, "additionalProperties": false }, "GroupIdpClaimMappingEmbedded": { "required": [ "foreignClaim", "key", "providerKey" ], "type": "object", "properties": { "key": { "type": "string", "description": "Claim mapping identifier.", "format": "uuid" }, "providerKey": { "type": "string", "description": "The key of the associated IdP object.", "format": "uuid" }, "foreignClaim": { "allOf": [ { "$ref": "#/components/schemas/ForeignClaimModel" } ], "description": "Foreign Claim." }, "lastUpdatedDate": { "type": "string", "description": "The last updated date field.", "format": "date-time", "nullable": true } }, "additionalProperties": false }, "GroupUserProfileResponse": { "type": "object", "properties": { "key": { "type": "string", "description": "The user's key.", "format": "uuid" }, "name": { "type": "string", "description": "The user's name.", "nullable": true }, "email": { "type": "string", "description": "The user's email.", "nullable": true }, "status": { "enum": [ "Active", "Invited", "Inactive", "PendingRegistration" ], "allOf": [ { "$ref": "#/components/schemas/UserProfileStatus" } ], "description": "The user's status. Allowed values are 'Active', 'Inactive', 'PendingRegistration' and 'Invited'." }, "photoUrl": { "type": "string", "description": "A URL pointing to the user's photo.", "nullable": true }, "lastLoginAt": { "type": "string", "description": "The date of the last time the user logged in.", "format": "date-time" }, "_embedded": { "allOf": [ { "$ref": "#/components/schemas/UserProfileEmbeddedResponse" } ], "description": "The embedded information to provide. (optional) Only available when the request includes the query parameter `embed=`, e.g. `embed=userIdentityProviders`", "nullable": true } }, "additionalProperties": false, "description": "The profile of a group member." }, "GroupUserResponse": { "type": "object", "properties": { "membershipTypes": { "type": "array", "items": { "$ref": "#/components/schemas/MembershipType" }, "description": "The list of membership types of this user in this group. Allowed values are 'Assigned' (if directly added to the group) or 'Mapped' (if added via group mappings).", "nullable": true }, "user": { "allOf": [ { "$ref": "#/components/schemas/GroupUserProfileResponse" } ], "description": "The user details.", "nullable": true } }, "additionalProperties": false, "description": "Represents a user in a group." }, "GroupUserResponsePaginatedResponseApi": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/GroupUserResponse" }, "description": "The List of results.", "nullable": true }, "page": { "allOf": [ { "$ref": "#/components/schemas/PageInfoWithTotalsApi" } ], "description": "The details of the page information.", "nullable": true } }, "additionalProperties": false }, "HostingServiceModel": { "enum": [ "oscloud", "selfhosted" ], "type": "string" }, "IdentityProviderResponse": { "type": "object", "properties": { "key": { "type": "string", "description": "Gets or sets the key associated with the identity provider.", "format": "uuid" }, "name": { "type": "string", "description": "Gets or sets the name of the identity provider.", "nullable": true }, "oidcConfiguration": { "allOf": [ { "$ref": "#/components/schemas/OidcConfigurationResponse" } ], "description": "Gets or sets the OIDC configuration of the identity provider.", "nullable": true }, "samlConfiguration": { "type": "array", "items": { "$ref": "#/components/schemas/SamlConfigurationItemModel" }, "description": "Gets or sets the SAML configuration as a dynamic JSON object.", "nullable": true }, "tokenNormalizations": { "type": "array", "items": { "$ref": "#/components/schemas/TokenNormalizationModel" }, "description": "Gets or sets a list of token normalization map of the identity provider.", "nullable": true }, "lastUpdatedDate": { "type": "string", "description": "Gets or sets the last updated date of the identity provider.", "format": "date-time", "nullable": true }, "type": { "enum": [ "OIDC", "SAML", "Cognito" ], "allOf": [ { "$ref": "#/components/schemas/ProviderTypeServiceModel" } ], "description": "Gets or sets the provider type." }, "subtype": { "enum": [ "Custom", "AppleId", "Google", "Facebook", "LinkedIn", "OutSystems11" ], "allOf": [ { "$ref": "#/components/schemas/ProviderSubtypeServiceModel" } ], "description": "Gets or sets the provider subtype." }, "emailTrustType": { "enum": [ "None", "EmailVerifiedClaim", "All" ], "allOf": [ { "$ref": "#/components/schemas/EmailTrustTypeServiceModel" } ], "description": "Gets or sets the email trust type of the identity provider." }, "hosting": { "enum": [ "oscloud", "selfhosted" ], "allOf": [ { "$ref": "#/components/schemas/HostingServiceModel" } ], "description": "Gets or sets the hosting type of the identity provider." }, "autoCreateProfiles": { "type": "boolean", "description": "Gets or sets a value indicating whether to automatically create profiles." }, "profileLinkingField": { "enum": [ "Email", "Username", "None" ], "allOf": [ { "$ref": "#/components/schemas/ProfileLinkingFieldServiceModel" } ], "description": "Gets or sets the profile linking field." } }, "additionalProperties": false }, "IdentityProviderResponsePaginatedResponseApi": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/IdentityProviderResponse" }, "description": "The List of results.", "nullable": true }, "page": { "allOf": [ { "$ref": "#/components/schemas/PageInfoWithTotalsApi" } ], "description": "The details of the page information.", "nullable": true } }, "additionalProperties": false }, "MembershipType": { "enum": [ "Assigned", "Mapped" ], "type": "string" }, "OidcConfigurationResponse": { "type": "object", "properties": { "discoveryUrl": { "type": "string", "description": "Gets or sets discovery url of the identity provider.", "nullable": true }, "authorizationUrl": { "type": "string", "description": "Gets or sets authorization url of the identity provider.", "nullable": true }, "tokenUrl": { "type": "string", "description": "Gets or sets token url of the identity provider.", "nullable": true }, "userInfoUrl": { "type": "string", "description": "Gets or sets userInfo url of the identity provider.", "nullable": true }, "logoutUrl": { "type": "string", "description": "Gets or sets logout url of the identity provider.", "nullable": true }, "jwksUrl": { "type": "string", "description": "Gets or sets json web key sets url of the identity provider.", "nullable": true }, "issuer": { "type": "string", "description": "Gets or sets issuer of the identity provider.", "nullable": true }, "clientAuthenticationMethod": { "allOf": [ { "$ref": "#/components/schemas/ClientAuthenticationMethodServiceModel" } ], "description": "Gets or sets client authentication method of the identity provider.", "nullable": true }, "clientAssertionSigningAlgorithm": { "allOf": [ { "$ref": "#/components/schemas/ClientAssertionSigningAlgorithmServiceModel" } ], "description": "Gets or sets client assertation signing algorithm of the identity provider.", "nullable": true }, "scopes": { "type": "array", "items": { "type": "string" }, "description": "Gets or sets list of scopes supported by the identity provider.", "nullable": true }, "clientId": { "type": "string", "description": "Gets or sets client id provided by the identity provider.", "nullable": true }, "clientSecret": { "type": "string", "description": "Gets or sets client secret provided by the identity provider.", "nullable": true }, "usePkce": { "type": "boolean", "description": "Gets or sets a value indicating whether true if authorization code flow should be used." }, "pkceMethod": { "enum": [ "plain", "S256" ], "allOf": [ { "$ref": "#/components/schemas/PkceMethodServiceModel" } ], "description": "Gets or sets pkceMethod of the identity provider." }, "providerCustomConfig": { "allOf": [ { "$ref": "#/components/schemas/ProviderCustomConfigModel" } ], "description": "Gets or sets ProviderCustomConfig of the identity provider.", "nullable": true }, "suppressNonceVerification": { "type": "boolean", "description": "Gets or sets a value indicating whether gets or Sets the field SuppressNonceVerification." } }, "additionalProperties": false }, "OrgRolePermissionDetailsApiResponse": { "type": "object", "properties": { "permissionKey": { "type": "string", "description": "Gets or sets the permission key.", "format": "uuid" }, "environmentKeys": { "type": "array", "items": { "type": "string", "format": "uuid" }, "description": "Gets or sets the environment keys.", "nullable": true }, "portfolioKeys": { "type": "array", "items": { "type": "string", "format": "uuid" }, "description": "Gets or sets the portfolio keys.", "nullable": true }, "claimName": { "type": "string", "description": "Gets or sets the claim name.", "nullable": true }, "name": { "type": "string", "description": "Gets or sets the permission name.", "nullable": true } }, "additionalProperties": false }, "OrgRolePermissionsVisibility": { "enum": [ "Hidden", "Public", "Internal" ], "type": "string" }, "OrganizationRoleApiResponse": { "required": [ "permissions" ], "type": "object", "properties": { "key": { "type": "string", "description": "Gets or sets the organization role key.", "format": "uuid" }, "name": { "type": "string", "description": "Gets or sets the organization role name.", "nullable": true }, "permissions": { "type": "array", "items": { "$ref": "#/components/schemas/OrgRolePermissionDetailsApiResponse" }, "description": "Gets or sets the permissions.", "nullable": true }, "isReadOnly": { "type": "boolean", "description": "Gets or sets a value indicating whether the organization role is readonly." } }, "additionalProperties": false }, "OrganizationRoleApiResponsePaginatedResponseApi": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/OrganizationRoleApiResponse" }, "description": "The List of results.", "nullable": true }, "page": { "allOf": [ { "$ref": "#/components/schemas/PageInfoWithTotalsApi" } ], "description": "The details of the page information.", "nullable": true } }, "additionalProperties": false }, "OrganizationRoleAssignmentScope": { "enum": [ "Organization", "Asset" ], "type": "string", "description": "API query scope for listing a user's organization role assignments." }, "OrganizationRoleByUserApiResponse": { "type": "object", "properties": { "key": { "type": "string", "description": "Gets or sets organization role key.", "format": "uuid" }, "name": { "type": "string", "description": "Gets or sets organization role name.", "nullable": true }, "grantPeriod": { "allOf": [ { "$ref": "#/components/schemas/GrantPeriodApiModel" } ], "description": "Gets or sets the period during which the role is valid.", "nullable": true }, "assetKey": { "type": "string", "description": "Gets or sets the asset key.", "format": "uuid", "nullable": true }, "portfolioKey": { "type": "string", "description": "Gets or sets the portfolio key this assignment belongs to.", "format": "uuid", "nullable": true } }, "additionalProperties": false }, "OrganizationRoleByUserApiResponsePaginatedResponseApi": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/OrganizationRoleByUserApiResponse" }, "description": "The List of results.", "nullable": true }, "page": { "allOf": [ { "$ref": "#/components/schemas/PageInfoWithTotalsApi" } ], "description": "The details of the page information.", "nullable": true } }, "additionalProperties": false }, "OrganizationRoleCreateRequest": { "type": "object", "properties": { "name": { "type": "string", "description": "Gets or sets the name of Organization Role.", "nullable": true }, "permissions": { "type": "array", "items": { "$ref": "#/components/schemas/PermissionDetailsRequest" }, "description": "Gets or sets the list of permissions for the Organization Role.", "nullable": true } }, "additionalProperties": false }, "OrganizationRoleCreateResponse": { "type": "object", "properties": { "orgRoleKey": { "type": "string", "description": "Gets or sets the Organization Role Key.", "format": "uuid" } }, "additionalProperties": false }, "OrganizationRoleUpdateRequest": { "type": "object", "properties": { "name": { "type": "string", "description": "Gets or sets the name of the organization role.", "nullable": true }, "permissions": { "type": "array", "items": { "$ref": "#/components/schemas/PermissionDetailsRequest" }, "description": "Gets or sets the list of permissions for the organization role.", "nullable": true } }, "additionalProperties": false }, "PageInfoWithTotalsApi": { "required": [ "count", "limit", "offset" ], "type": "object", "properties": { "count": { "type": "integer", "description": "The results of the current page.", "format": "int32" }, "limit": { "type": "integer", "description": "The limit of results per page.", "format": "int32" }, "offset": { "type": "integer", "description": "The offset of the current page of results.", "format": "int32" }, "totalResults": { "type": "integer", "description": "The total number of results.", "format": "int32", "nullable": true }, "nextPageOffset": { "type": "integer", "description": "The offset of the next page of results. (optional)", "format": "int32", "nullable": true, "readOnly": true }, "totalPages": { "type": "integer", "description": "The total number of pages with results.", "format": "int32", "nullable": true, "readOnly": true } }, "additionalProperties": false }, "PatchGroupApplicationRolesRequest": { "type": "object", "properties": { "applicationRoleKeysToAdd": { "type": "array", "items": { "type": "string", "format": "uuid" }, "description": "The list of application role keys to add to the group.", "nullable": true }, "applicationRoleKeysToRemove": { "type": "array", "items": { "type": "string", "format": "uuid" }, "description": "The list of application role keys to remove from the group.", "nullable": true } }, "additionalProperties": false }, "PatchGroupRequest": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the group.", "nullable": true }, "description": { "type": "string", "description": "The description of the group.", "nullable": true } }, "additionalProperties": false }, "PatchUsersByGroupRequest": { "type": "object", "properties": { "userKeysToAdd": { "type": "array", "items": { "type": "string", "format": "uuid" }, "description": "The list of user keys to add to the group.", "nullable": true }, "userKeysToRemove": { "type": "array", "items": { "type": "string", "format": "uuid" }, "description": "The list of user keys to remove from the group.", "nullable": true } }, "additionalProperties": false }, "PermissionDetailsRequest": { "type": "object", "properties": { "permissionKey": { "type": "string", "description": "Gets or sets the permission key.", "format": "uuid" }, "environmentKeys": { "type": "array", "items": { "type": "string", "format": "uuid" }, "description": "Gets or sets the environment keys.", "nullable": true }, "portfolioKeys": { "type": "array", "items": { "type": "string", "format": "uuid" }, "description": "Gets or sets the portfolio keys.", "nullable": true }, "claimName": { "type": "string", "description": "Gets or sets the claim name.", "nullable": true }, "name": { "type": "string", "description": "Gets or sets the permission name.", "nullable": true } }, "additionalProperties": false }, "PermissionInheritance": { "required": [ "realmStages" ], "type": "object", "properties": { "key": { "type": "string", "description": "Gets or sets the permission key.", "format": "uuid" }, "realmStages": { "type": "array", "items": { "$ref": "#/components/schemas/StageServiceModel" }, "description": "Gets or sets the realm stage list.", "nullable": true }, "realmPortfolio": { "allOf": [ { "$ref": "#/components/schemas/PortfolioInheritanceServiceModel" } ], "description": "Gets or sets the realm portfolio.", "nullable": true } }, "additionalProperties": false }, "PermissionResponse": { "required": [ "allowedScopes", "inherits" ], "type": "object", "properties": { "key": { "type": "string", "description": "Gets or sets the permission key.", "format": "uuid" }, "name": { "type": "string", "description": "Gets or sets the permission name.", "nullable": true }, "category": { "type": "string", "description": "Gets or sets the category for the permission.", "nullable": true }, "purpose": { "type": "string", "description": "Gets or sets the purpose for the permission.", "nullable": true }, "visibility": { "enum": [ "Hidden", "Public", "Internal" ], "allOf": [ { "$ref": "#/components/schemas/OrgRolePermissionsVisibility" } ], "description": "Gets or sets the visibility for the permission." }, "inherits": { "type": "array", "items": { "$ref": "#/components/schemas/PermissionInheritance" }, "description": "Gets or sets the inherits.", "nullable": true }, "allowStages": { "type": "boolean", "description": "Gets or sets a value indicating whether permission applies to a specific stage." }, "allowPortfolios": { "type": "boolean", "description": "Gets or sets a value indicating whether permission applies to a specific portfolio." }, "allowedScopes": { "type": "array", "items": { "$ref": "#/components/schemas/AssetContext" }, "description": "Gets or sets the allowed scopes.", "nullable": true }, "claimName": { "type": "string", "description": "Gets or sets the claim name.", "nullable": true }, "remarks": { "type": "string", "description": "Gets or sets the remarks for the permission.", "nullable": true } }, "additionalProperties": false }, "PermissionResponsePaginatedResponseApi": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/PermissionResponse" }, "description": "The List of results.", "nullable": true }, "page": { "allOf": [ { "$ref": "#/components/schemas/PageInfoWithTotalsApi" } ], "description": "The details of the page information.", "nullable": true } }, "additionalProperties": false }, "PkceMethodServiceModel": { "enum": [ "plain", "S256" ], "type": "string" }, "PortfolioInheritanceServiceModel": { "enum": [ "SAME_PORTFOLIO", "MAIN_PORTFOLIO", "ALL_PORTFOLIO" ], "type": "string" }, "ProblemDetails": { "type": "object", "properties": { "type": { "type": "string", "description": "A URI reference that identifies the problem type.", "nullable": true }, "title": { "type": "string", "description": "A short, human-readable summary of the problem.", "nullable": true }, "status": { "type": "integer", "description": "The HTTP status code applicable to the problem.", "format": "int32", "nullable": true }, "detail": { "type": "string", "description": "A human-readable explanation of the error.", "nullable": true }, "instance": { "type": "string", "description": "A URI that identifies the specific occurrence of the problem.", "nullable": true }, "traceId": { "type": "string", "description": "This field helps OutSystems support track and investigate specific error occurrences. Providing this identifier when reporting an issue allows for more precise and faster troubleshooting." }, "errorCode": { "type": "string", "description": "This error code serves the purpose to communicate with OutSystems Support and help diagnose errors." } }, "description": "A standardized error response as per RFC 7807 (Problem Details for HTTP APIs)." }, "ProfileLinkingFieldServiceModel": { "enum": [ "Email", "Username", "None" ], "type": "string" }, "ProviderCustomConfigModel": { "type": "object", "properties": { "keyId": { "type": "string", "description": "Gets or sets the KeyId value.", "nullable": true }, "teamId": { "type": "string", "description": "Gets or sets the TeamId value.", "nullable": true } }, "additionalProperties": false }, "ProviderSubtypeServiceModel": { "enum": [ "Custom", "AppleId", "Google", "Facebook", "LinkedIn", "OutSystems11" ], "type": "string" }, "ProviderTypeServiceModel": { "enum": [ "OIDC", "SAML", "Cognito" ], "type": "string" }, "RevokeDetailsRequest": { "type": "object", "properties": { "assetKeys": { "type": "array", "items": { "type": "string", "format": "uuid" }, "description": "Gets or sets the asset keys.", "nullable": true } }, "additionalProperties": false }, "RoleUserResponse": { "type": "object", "properties": { "key": { "type": "string", "description": "The user's key.", "format": "uuid" }, "name": { "type": "string", "description": "The user's full name.", "nullable": true }, "email": { "type": "string", "description": "The user's email address.", "nullable": true }, "status": { "enum": [ "Active", "Invited", "Inactive", "PendingRegistration" ], "allOf": [ { "$ref": "#/components/schemas/UserProfileStatus" } ], "description": "The user's status." }, "photoUrl": { "type": "string", "description": "The user's photo URL.", "nullable": true }, "lastLoginAt": { "type": "string", "description": "The timestamp of the last login (or token refresh) for this user in UTC.", "format": "date-time", "nullable": true }, "_embedded": { "allOf": [ { "$ref": "#/components/schemas/UserProfileEmbeddedResponse" } ], "description": "The embedded information to provide. (optional)\nOnly available when the request includes the query parameter `embed=`,\ne.g. `embed=userIdentityProviders`", "nullable": true } }, "additionalProperties": false }, "RoleUserResponsePaginatedResponseApi": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/RoleUserResponse" }, "description": "The List of results.", "nullable": true }, "page": { "allOf": [ { "$ref": "#/components/schemas/PageInfoWithTotalsApi" } ], "description": "The details of the page information.", "nullable": true } }, "additionalProperties": false }, "SamlConfigurationItemModel": { "type": "object", "properties": { "configName": { "type": "string", "description": "Gets or sets the ConfigName value.", "nullable": true }, "configValue": { "type": "string", "description": "Gets or sets the ConfigValue value.", "nullable": true } }, "additionalProperties": false }, "StageServiceModel": { "enum": [ "PRD", "QA", "DEV", "SAME_STAGE" ], "type": "string" }, "TokenNormalizationModel": { "type": "object", "properties": { "normalClaim": { "type": "string", "description": "Gets or sets the NormalClaim value.", "nullable": true }, "foreignClaim": { "type": "string", "description": "Gets or sets the ForeignClaim value.", "nullable": true } }, "additionalProperties": false }, "UserApplicationRoleApiResponse": { "type": "object", "properties": { "key": { "type": "string", "description": "The application role key.", "format": "uuid" }, "name": { "type": "string", "description": "The name of the application role.", "nullable": true }, "environmentKey": { "type": "string", "description": "The environment key.", "format": "uuid" }, "assetKey": { "type": "string", "description": "The asset key.", "format": "uuid" }, "externalKey": { "type": "string", "description": "The unique identifier for an application role independently of the environment.", "format": "uuid" }, "claim": { "type": "string", "description": "The claim name.", "nullable": true }, "portfolioKey": { "type": "string", "description": "The portfolio key associated with the environment.", "format": "uuid" }, "isDirectlyAssigned": { "type": "boolean", "description": "Indicates whether the role is directly assigned to the user." }, "assignedGroups": { "type": "array", "items": { "$ref": "#/components/schemas/AssignedGroupInfoApiResponse" }, "description": "The application groups through which the user inherits this role, if any.", "nullable": true } }, "additionalProperties": false }, "UserApplicationRoleApiResponsePaginatedResponseApi": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/UserApplicationRoleApiResponse" }, "description": "The List of results.", "nullable": true }, "page": { "allOf": [ { "$ref": "#/components/schemas/PageInfoWithTotalsApi" } ], "description": "The details of the page information.", "nullable": true } }, "additionalProperties": false }, "UserGroupResponse": { "required": [ "group", "membershipTypes" ], "type": "object", "properties": { "membershipTypes": { "type": "array", "items": { "$ref": "#/components/schemas/MembershipType" }, "description": "The list of membership types of the user in this group. Allowed values are 'Assigned' (if directly added to the group) or 'Mapped' (if added via group mappings).", "nullable": true }, "group": { "allOf": [ { "$ref": "#/components/schemas/GroupApiResponse" } ], "description": "A group that a user is part of.", "nullable": true } }, "additionalProperties": false }, "UserGroupResponsePaginatedResponseApi": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/UserGroupResponse" }, "description": "The List of results.", "nullable": true }, "page": { "allOf": [ { "$ref": "#/components/schemas/PageInfoWithTotalsApi" } ], "description": "The details of the page information.", "nullable": true } }, "additionalProperties": false }, "UserIdpProfileResponse": { "type": "object", "properties": { "userKey": { "type": "string", "description": "The user key.", "format": "uuid" }, "identityProviderKey": { "type": "string", "description": "The identity provider key (format: guid).", "format": "uuid" }, "subject": { "type": "string", "description": "The subject claims in the token issued by the IdP.", "nullable": true }, "username": { "type": "string", "description": "The username.", "nullable": true }, "name": { "type": "string", "description": "The user's full name.", "nullable": true }, "email": { "type": "string", "description": "The user's email address.", "nullable": true }, "photoUrl": { "type": "string", "description": "The user's photo URL.", "nullable": true }, "firstLoginAt": { "type": "string", "description": "The timestamp of the first login for this user using the idp in UTC.", "format": "date-time", "nullable": true }, "lastLoginAt": { "type": "string", "description": "The timestamp of the last login for this user using the idp in UTC.", "format": "date-time", "nullable": true }, "isEmailVerified": { "type": "boolean", "description": "The value indicating whether or not the user's email is verified.", "nullable": true } }, "additionalProperties": false }, "UserProfileAccessResponse": { "type": "object", "properties": { "hasOrganizationRoles": { "type": "boolean", "description": "User has organization-level roles" }, "hasApplicationRoles": { "type": "boolean", "description": "User has application roles" } }, "additionalProperties": false }, "UserProfileApiResponse": { "type": "object", "properties": { "key": { "type": "string", "description": "The user key (format: guid).", "format": "uuid" }, "name": { "type": "string", "description": "The user's full name.", "nullable": true }, "email": { "type": "string", "description": "The user's email address.", "nullable": true }, "status": { "enum": [ "Active", "Invited", "Inactive", "PendingRegistration" ], "allOf": [ { "$ref": "#/components/schemas/UserProfileStatus" } ], "description": "The user's Profile Status." }, "access": { "allOf": [ { "$ref": "#/components/schemas/UserProfileAccessResponse" } ], "description": "The user's profile access.", "nullable": true }, "lastLoginAt": { "type": "string", "description": "The timestamp of the last login (or token refresh) for this user in UTC.", "format": "date-time", "nullable": true }, "isActive": { "type": "boolean", "description": "The value indicating whether user profile is active or not." }, "photoUrl": { "type": "string", "description": "The user's photo URL.", "nullable": true }, "isEmailVerified": { "type": "boolean", "description": "The value indicating whether or not the user's email is verified.", "nullable": true }, "isTermsAndConditionsAccepted": { "type": "boolean", "description": "The value indicating whether or not the user has accepted the terms and conditions." }, "_embedded": { "allOf": [ { "$ref": "#/components/schemas/UserProfileWithApplicationRolesEmbeddedResponse" } ], "description": "The embedded information to provide. (optional)\nOnly available when the request includes the query parameter `embed=`,\ne.g. `embed=applicationRoles`", "nullable": true } }, "additionalProperties": false }, "UserProfileApiResponsePaginatedResponseApi": { "type": "object", "properties": { "results": { "type": "array", "items": { "$ref": "#/components/schemas/UserProfileApiResponse" }, "description": "The List of results.", "nullable": true }, "page": { "allOf": [ { "$ref": "#/components/schemas/PageInfoWithTotalsApi" } ], "description": "The details of the page information.", "nullable": true } }, "additionalProperties": false }, "UserProfileCountApiResponse": { "type": "object", "properties": { "userCount": { "type": "integer", "format": "int32" } }, "additionalProperties": false }, "UserProfileCreateApiRequest": { "type": "object", "properties": { "name": { "type": "string", "description": "The user's name.", "nullable": true }, "email": { "type": "string", "description": "The user’s email address.", "nullable": true }, "isActive": { "type": "boolean", "description": "Sets the user as active. Default is true (active)." }, "photoUrl": { "type": "string", "description": "The user’s photo url.", "nullable": true }, "addToBuiltInIdentityProvider": { "type": "boolean", "description": "Creates the user in the built-in identity provider. Default is false (not created in the built-in identity provider)." }, "identityProviderKey": { "type": "string", "description": "The identity provider key. When provided, a UserIdpProfile will be created or linked.", "format": "uuid", "nullable": true }, "subject": { "type": "string", "description": "The user’s subject claim value for this IdP.", "nullable": true }, "username": { "type": "string", "description": "The user’s username for this IdP.", "nullable": true } }, "additionalProperties": false }, "UserProfileCreateApiRequestBulkApiRequest": { "required": [ "records" ], "type": "object", "properties": { "records": { "type": "array", "items": { "$ref": "#/components/schemas/UserProfileCreateApiRequest" }, "description": "The list of requests", "nullable": true } }, "additionalProperties": false }, "UserProfileCreateResponse": { "type": "object", "properties": { "key": { "type": "string", "description": "The user's key.", "format": "uuid" } }, "additionalProperties": false }, "UserProfileEmbedType": { "enum": [ "ApplicationRoles", "UserIdentityProviders" ], "type": "string" }, "UserProfileEmbeddedResponse": { "type": "object", "properties": { "applicationRoles": { "type": "array", "items": { "$ref": "#/components/schemas/ApplicationRoleApiResponse" }, "description": "List of application roles.", "nullable": true }, "userIdentityProviders": { "type": "array", "items": { "$ref": "#/components/schemas/UserIdpProfileResponse" }, "description": "List of user identity providers.", "nullable": true } }, "additionalProperties": false }, "UserProfilePatchRequest": { "type": "object", "properties": { "name": { "type": "string", "description": "The user's name.", "nullable": true }, "isActive": { "type": "boolean", "description": "The user as active or inactive.", "nullable": true }, "photoUrl": { "type": "string", "description": "The user's photo url.", "nullable": true } }, "additionalProperties": false }, "UserProfileStatus": { "enum": [ "Active", "Invited", "Inactive", "PendingRegistration" ], "type": "string" }, "UserProfileWithApplicationRolesEmbeddedResponse": { "type": "object", "properties": { "applicationRoles": { "type": "array", "items": { "$ref": "#/components/schemas/UserApplicationRoleApiResponse" }, "description": "List of application roles. Each role includes whether it is directly assigned to the user\nand the application groups through which the user inherits it, if any.", "nullable": true }, "userIdentityProviders": { "type": "array", "items": { "$ref": "#/components/schemas/UserIdpProfileResponse" }, "description": "List of user identity providers.", "nullable": true } }, "additionalProperties": false } }, "securitySchemes": { "bearerAuth": { "type": "http", "description": "Enter your bearer token in the format 'Bearer {token}'", "scheme": "bearer", "bearerFormat": "JWT" } } }, "security": [ { "bearerAuth": [] } ], "tags": [ { "name": "private" }, { "name": "action-tokens" }, { "name": "public" }, { "name": "application-roles" }, { "name": "bcdr" }, { "name": "users" }, { "name": "groups" }, { "name": "identity-providers" }, { "name": "migration" }, { "name": "oidc-clients" }, { "name": "organization-roles" }, { "name": "permissions" }, { "name": "realms" }, { "name": "subjects" } ] }