> ## Documentation Index > Fetch the complete documentation index at: https://docs.britive.com/llms.txt > Use this file to discover all available pages before exploring further. # Add permission to resource profile ## OpenAPI ````json POST /api/resource-manager/profiles/{profileId}/permissions { "openapi": "3.0.1", "info": { "title": "Britive Services API Documentation", "version": "v1", "description": "API documentation for Users, Tags, Identity providers, Applications, Reporting, Audit logs, Tenants, SSO, Profiles, Password policies, MFA, Access Builder Settings, etc." }, "servers": [ { "url": "https://{tenantURL}", "description": "The primary server", "variables": { "tenantURL": { "default": "test.britive-app.com", "description": "The host of the server" } } } ], "security": [ { "bearerAuth": [] } ], "tags": [ { "name": "Access Request Tag Membership", "description": "Manage tag memberships granted via access requests" }, { "name": "API Tokens", "description": "Manage API Tokens" }, { "name": "Application Environments", "description": "Manage Application Environments" }, { "name": "Application Environments - Accounts", "description": "Manage Application Environments Accounts" }, { "name": "Application Profiles", "description": "Manage Application Profiles" }, { "name": "Application Profiles - Advanced Settings", "description": "Manage Application Profiles Advanced Settings" }, { "name": "Application Profiles - Permissions", "description": "Manage Application Profiles Permissions" }, { "name": "Application Profiles - Permission Constraint Manager", "description": "Manage Profile Permission Constraints for the permissions that support to define constraints." }, { "name": "Application Profiles - Policies", "description": "Manage Application Profiles Policies" }, { "name": "Application Profiles - Scopes", "description": "Manage Application Profiles Scopes" }, { "name": "Application Profiles - Session Attributes", "description": "Manage Application Profiles Session Attributes" }, { "name": "Application Profiles - Sessions", "description": "Manage Application Profiles Sessions" }, { "name": "Application Profiles - Users and Tags", "description": "Manage Application Profiles" }, { "name": "Applications", "description": "Manage Applications" }, { "name": "Applications - Access Builder Settings", "description": "Manage access builder settings for an application" }, { "name": "Applications - Advanced Settings", "description": "Manage Applications Advanced Settings" }, { "name": "Applications - Approvers Groups", "description": "Manage approvers groups for association approvers" }, { "name": "Applications - Association Approvers", "description": "Manage association approvers for an application" }, { "name": "Applications - Managed Permissions", "description": "Manage Britive Permissions" }, { "name": "Applications - Permissions", "description": "Manage Application Permissions" }, { "name": "Applications - Root Environment Groups", "description": "Manage Application Root Environment Groups" }, { "name": "Applications - Scans", "description": "Manage Application Scans" }, { "name": "Audit Log Webhooks", "description": "Manage Audit Log Webhooks" }, { "name": "Audit Logs(v1 Deprecated)", "description": "Manage Audit Logs (Deprecated - use Audit Logs v2 instead)" }, { "name": "Audit Logs v2", "description": "Manage Audit Logs v2" }, { "name": "CSPM Integration", "description": "Manage Cloud Security Posture Management (CSPM) tool integrations and their tokens" }, { "name": "CSPM Integration - Findings", "description": "Discover and fetch CSPM finding data, cross-referenced against Britive applications and profiles" }, { "name": "Custom App Template Uploader", "description": "Uploads custom app template." }, { "name": "Custom App Manager", "description": "Creates an app using custom template and other operations for managing the template." }, { "name": "Global Landing Page", "description": "Manage global landing page" }, { "name": "Identity Providers", "description": "Manage identity providers and settings" }, { "name": "IP Restrictions", "description": "Manage firewall rules/settings" }, { "name": "ITSM Connection Metadata", "description": "Manage ITSM Connection Metadata" }, { "name": "ITSM Connections", "description": "Manage ITSM Connections" }, { "name": "ITSM Integration", "description": "Manage ITSM Connections" }, { "name": "IM Connection Metadata", "description": "Manage IM Connection Metadata" }, { "name": "IM Connections", "description": "Manage IM Connections" }, { "name": "IM Integration", "description": "Manage IM Connections" }, { "name": "MCP Access Manager", "description": "Access MCP servers and check out credentials for their tools" }, { "name": "MCP Audit", "description": "Submit MCP gateway audit events" }, { "name": "MCP Server Tools", "description": "Manage the tools exposed by an MCP Server" }, { "name": "MCP Servers", "description": "Manage MCP Servers" }, { "name": "MCP Servers - Policies", "description": "Manage MCP Server Policies" }, { "name": "Multi Factor Authentication", "description": "Manage MFA authentication settings" }, { "name": "My Access", "description": "Manage My Access" }, { "name": "My Devices", "description": "Manage My Devices" }, { "name": "My Resources", "description": "Manage My Resources" }, { "name": "My Resources - Integration", "description": "Manage My Resource Integration" }, { "name": "My Resources - Profiles", "description": "Manage My Resource Profiles" }, { "name": "Notifications", "description": "Manage notifications" }, { "name": "Profile Requests - Managed Permissions", "description": "Manage Profile Requests Britive Permissions" }, { "name": "Reports", "description": "Manage Reports" }, { "name": "Resource Manager", "description": "Manage Resources" }, { "name": "Resource Manager - Broker Pool Management", "description": "Manage remote broker pools, their tokens, labels, and brokers" }, { "name": "Resource Manager - Labels", "description": "Manage Resource Labels" }, { "name": "Resource Manager - Permissions", "description": "Manage Resource Permissions" }, { "name": "Resource Manager - Policies", "description": "Manage Resource Policies" }, { "name": "Resource Manager - Response Templates", "description": "Manage Resource Response Templates" }, { "name": "Resource Manager - Types", "description": "Manage Resource Types" }, { "name": "Resource Profiles", "description": "Manage Resource Profiles" }, { "name": "Resource Profiles - Advanced Settings", "description": "Manage Resource Profiles Advanced Settings" }, { "name": "Resource Profiles - Associations", "description": "Manage Resource Profiles Associations" }, { "name": "Resource Profiles - Permissions", "description": "Manage Resource Profiles Permissions" }, { "name": "Resource Profiles - Policies", "description": "Manage Resource Profiles Policies" }, { "name": "SAML Configuration", "description": "Manage SAML Configuration" }, { "name": "Step Up Authentication", "description": "Manage service identity association to identity provider" }, { "name": "System Announcements", "description": "Manage the system announcements" }, { "name": "Tag Access Request Settings", "description": "Manage access request settings for a user tag" }, { "name": "Tag Access Requests", "description": "Browse tags available for access request" }, { "name": "Task Scheduler", "description": "Manage Tasks" }, { "name": "User Identity Attributes", "description": "Manage User Identity Attributes" }, { "name": "User Resources", "description": "Manage User Built Resources" }, { "name": "User Tags", "description": "Manage User Tags" }, { "name": "Users, Service Identities and AI Identities", "description": "Manage Users, Service Identities and AI Identities" }, { "name": "Workload Identity Providers", "description": "Manage workload identity providers" }, { "name": "Workload SCIM Identity Providers", "description": "Manage service identity association to SCIM provisioning for identity provider" }, { "name": "Workload Service Identity Providers", "description": "Manage service identity association to identity provider" }, { "name": "User Tag Owner", "description": "Tag Owners manage the tag memberships of their owned tags" }, { "name": "Shared Signals - Catalog", "description": "Manage shared signals catalog data" }, { "name": "Shared Signals - Issuers", "description": "Manage shared signals issuers" }, { "name": "Shared Signals - Receivers", "description": "Manage shared signals receivers" }, { "name": "Shared Signals - Results", "description": "Query shared signals processing results" }, { "name": "ThemesManager", "description": "Manage tenant custom theme configurations (public read, admin write)" }, { "name": "BrandingManager", "description": "Manage tenant branding assets — logos, favicon, right-panel image, brand text (saved/applied lifecycle)" } ], "paths": { "/api/resource-manager/profiles/{profileId}/permissions": { "post": { "tags": [ "Resource Profiles - Permissions" ], "summary": "Add permission to resource profile", "operationId": "AddProfilePermission", "parameters": [ { "name": "profileId", "in": "path", "description": "Id of profile to add permission", "required": "true", "schema": { "type": "string" } } ], "requestBody": { "description": "Permission to add to the profile", "required": "true", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfilePermissionDto" } } } }, "responses": { "200": { "description": "permission got added to profile successfully", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProfilePermissionDto" } } } }, "404": { "description": "Not Found" } } } } }, "components": { "schemas": { "ProfilePermissionDto": { "type": "object", "properties": { "permissionId": { "type": "string" }, "version": { "type": "string" }, "permissionName": { "type": "string" }, "description": { "type": "string" }, "resourceTypeId": { "type": "string" }, "resourceTypeName": { "type": "string" }, "variables": { "type": "array", "items": { "$ref": "#/components/schemas/VariableValues" } } } }, "VariableValues": { "type": "object", "description": "Variable binding on a profile-permission. Three mutually exclusive runtime resolution states encoded by (isSystemDefined, promptAtCheckout): Static (both false; value is literal); System-defined (isSystemDefined=true; server resolves at runtime); Prompt-at-checkout (promptAtCheckout=true; end user supplies at checkout via Settings.checkoutVariableValues). isSystemDefined=true AND promptAtCheckout=true is rejected (RM-0027). Sending a non-blank value in a state that resolves it at checkout is rejected (RM-0031) — see the value property.\n", "properties": { "name": { "type": "string" }, "value": { "type": "string", "description": "Populated in the Static state, and in the System-defined state for type=String (the system template). Null for Prompt-at-checkout and for a System-defined type=password, both of which resolve the value at checkout. Sending a non-blank value in either of those two resolved states is rejected at attach and update (400 RM-0031) rather than silently dropped, so declarative clients do not see a permanent diff on the field. A blank value is accepted and normalized to null.\n" }, "isSystemDefined": { "type": "boolean", "default": "false", "description": "Marks the System-defined state. Mutually exclusive with promptAtCheckout. For type=password the value is server-generated, so a non-blank value on the binding is rejected (RM-0031).\n" }, "promptAtCheckout": { "type": "boolean", "default": "false", "description": "Marks the Prompt-at-checkout state. Applies to any type, including String. The end user supplies the value at checkout, so a non-blank value on the binding is rejected (RM-0031). Mutually exclusive with isSystemDefined. Legacy records (no flag) are interpreted as promptAtCheckout=true iff type=password AND isSystemDefined=false.\n" }, "type": { "type": "string", "enum": [ "String", "password" ], "readOnly": "true", "description": "Variable type, server-derived (read-only). Set at attach time from the permission's variable token — `password` when the permission declares the variable as `name:password`, otherwise `String`. Any value sent by the client is ignored and overwritten.\n" }, "regexPattern": { "type": "string", "description": "Java-compatible regular expression constraining this variable's value (syntax-checked at attach time; 400 RM-0023 when invalid). For type=password: required in every state (RM-0022) — governs server-side generation (System-defined) and validation of user-supplied values (Prompt-at-checkout); a password must be system-defined or prompt-at-checkout (static rejected, RM-0028). For type=String: optional, and only valid with promptAtCheckout=true -- sending it in the system-defined or static state is rejected (400 RM-0032) rather than silently dropped, so declarative clients do not see a permanent diff on the field.\n" }, "description": { "type": "string", "description": "Optional human-readable explanation of regexPattern, shown to the end user at checkout so they understand what a valid value looks like. Valid only alongside a regexPattern (any type); sending it without one is rejected (400 RM-0033), keeping the two in lockstep.\n" } } } }, "securitySchemes": { "bearerAuth": { "type": "http", "scheme": "bearer" } } } } ````