API calls for all endpoints tagged AccessProfiles.
Summary
Functions
Activate access profile Sets the profile active. Idempotent.
Add an extra virtual key under a user's access profile
Attach roles to access profile
Attaches one or more roles. Setting is_default: true makes the profile the role's default for new users. apply_to_existing: true provisions the profile to users already in the role.
Clone an access profile Creates a fresh copy of the profile under a new name. The clone has no role attachments or user copies.
Create access profile Creates a new access profile template. The profile is inactive until attached to a role. No size limits are enforced on create; the limits apply on update.
Deactivate access profile Sets the profile inactive. Idempotent. User copies are preserved; the profile is hidden from selection menus.
Delete access profile Blocked with 409 if any users still hold copies. Detach role attachments or remove user assignments first.
Delete a virtual key from a user's access profile
Detach role from access profile
Detach a user's access profile Removes the profile from the user and deletes every virtual key it produced. Fails closed if a virtual key cannot be deleted.
Get access profile by ID Returns the profile plus its role attachments and the count of users holding a copy.
Get a single version snapshot
List workspace-wide audit log entries
List audit log entries for a single profile
List version snapshots for an access profile
List access profiles Returns access profiles visible to the caller.
List access profiles held by a user
Propagate template changes to user copies
Pushes selected fields from the template to every user that holds a copy. Use dry_run: true to preview the impact. By default, accumulated usage is preserved.
Update access profile
Partial update. Omitted fields preserve the current value. rate_limit: null explicitly clears the existing rate limit. Size limits enforced: max 100 provider_configs, max 100 budgets, max 50 tags.
Functions
@spec activate_access_profile(Tesla.Env.client(), integer(), keyword()) :: {:ok, nil} | {:ok, ExBifrost.Model.CreateAccessProfile201Response.t()} | {:ok, ExBifrost.Model.BifrostError.t()} | {:error, Tesla.Env.t()}
Activate access profile Sets the profile active. Idempotent.
Parameters
connection(ExBifrost.Connection): Connection to serverid(integer()):opts(keyword): Optional parameters
Returns
{:ok, ExBifrost.Model.CreateAccessProfile201Response.t}on success{:error, Tesla.Env.t}on failure
@spec add_user_access_profile_virtual_key( Tesla.Env.client(), String.t(), integer(), keyword() ) :: {:ok, nil} | {:ok, ExBifrost.Model.BifrostError.t()} | {:ok, ExBifrost.Model.AddUserAccessProfileVirtualKey200Response.t()} | {:error, Tesla.Env.t()}
Add an extra virtual key under a user's access profile
Parameters
connection(ExBifrost.Connection): Connection to servertarget_user_id(String.t):profile_id(integer()):opts(keyword): Optional parameters:body(AddUserAccessProfileVirtualKeyRequest):
Returns
{:ok, ExBifrost.Model.AddUserAccessProfileVirtualKey200Response.t}on success{:error, Tesla.Env.t}on failure
@spec attach_roles_to_access_profile( Tesla.Env.client(), integer(), ExBifrost.Model.AttachRolesToAccessProfileRequest.t(), keyword() ) :: {:ok, nil} | {:ok, ExBifrost.Model.AttachRolesToAccessProfile200Response.t()} | {:ok, ExBifrost.Model.BifrostError.t()} | {:error, Tesla.Env.t()}
Attach roles to access profile
Attaches one or more roles. Setting is_default: true makes the profile the role's default for new users. apply_to_existing: true provisions the profile to users already in the role.
Parameters
connection(ExBifrost.Connection): Connection to serverid(integer()):attach_roles_to_access_profile_request(AttachRolesToAccessProfileRequest):opts(keyword): Optional parameters
Returns
{:ok, ExBifrost.Model.AttachRolesToAccessProfile200Response.t}on success{:error, Tesla.Env.t}on failure
@spec clone_access_profile( Tesla.Env.client(), integer(), ExBifrost.Model.CloneAccessProfileRequest.t(), keyword() ) :: {:ok, nil} | {:ok, ExBifrost.Model.CreateAccessProfile201Response.t()} | {:ok, ExBifrost.Model.BifrostError.t()} | {:error, Tesla.Env.t()}
Clone an access profile Creates a fresh copy of the profile under a new name. The clone has no role attachments or user copies.
Parameters
connection(ExBifrost.Connection): Connection to serverid(integer()):clone_access_profile_request(CloneAccessProfileRequest):opts(keyword): Optional parameters
Returns
{:ok, ExBifrost.Model.CreateAccessProfile201Response.t}on success{:error, Tesla.Env.t}on failure
@spec create_access_profile( Tesla.Env.client(), ExBifrost.Model.CreateAccessProfileRequest.t(), keyword() ) :: {:ok, nil} | {:ok, ExBifrost.Model.CreateAccessProfile201Response.t()} | {:ok, ExBifrost.Model.BifrostError.t()} | {:error, Tesla.Env.t()}
Create access profile Creates a new access profile template. The profile is inactive until attached to a role. No size limits are enforced on create; the limits apply on update.
Parameters
connection(ExBifrost.Connection): Connection to servercreate_access_profile_request(CreateAccessProfileRequest):opts(keyword): Optional parameters
Returns
{:ok, ExBifrost.Model.CreateAccessProfile201Response.t}on success{:error, Tesla.Env.t}on failure
@spec deactivate_access_profile(Tesla.Env.client(), integer(), keyword()) :: {:ok, nil} | {:ok, ExBifrost.Model.CreateAccessProfile201Response.t()} | {:ok, ExBifrost.Model.BifrostError.t()} | {:error, Tesla.Env.t()}
Deactivate access profile Sets the profile inactive. Idempotent. User copies are preserved; the profile is hidden from selection menus.
Parameters
connection(ExBifrost.Connection): Connection to serverid(integer()):opts(keyword): Optional parameters
Returns
{:ok, ExBifrost.Model.CreateAccessProfile201Response.t}on success{:error, Tesla.Env.t}on failure
@spec delete_access_profile(Tesla.Env.client(), integer(), keyword()) :: {:ok, nil} | {:ok, ExBifrost.Model.Logout200Response.t()} | {:ok, ExBifrost.Model.BifrostError.t()} | {:error, Tesla.Env.t()}
Delete access profile Blocked with 409 if any users still hold copies. Detach role attachments or remove user assignments first.
Parameters
connection(ExBifrost.Connection): Connection to serverid(integer()):opts(keyword): Optional parameters
Returns
{:ok, ExBifrost.Model.Logout200Response.t}on success{:error, Tesla.Env.t}on failure
@spec delete_user_access_profile_virtual_key( Tesla.Env.client(), String.t(), String.t(), keyword() ) :: {:ok, nil} | {:ok, ExBifrost.Model.Logout200Response.t()} | {:ok, ExBifrost.Model.BifrostError.t()} | {:error, Tesla.Env.t()}
Delete a virtual key from a user's access profile
Parameters
connection(ExBifrost.Connection): Connection to servertarget_user_id(String.t):vk_id(String.t):opts(keyword): Optional parameters
Returns
{:ok, ExBifrost.Model.Logout200Response.t}on success{:error, Tesla.Env.t}on failure
@spec detach_role_from_access_profile( Tesla.Env.client(), integer(), integer(), keyword() ) :: {:ok, nil} | {:ok, ExBifrost.Model.Logout200Response.t()} | {:ok, ExBifrost.Model.BifrostError.t()} | {:error, Tesla.Env.t()}
Detach role from access profile
Parameters
connection(ExBifrost.Connection): Connection to serverid(integer()):role_id(integer()):opts(keyword): Optional parameters
Returns
{:ok, ExBifrost.Model.Logout200Response.t}on success{:error, Tesla.Env.t}on failure
@spec detach_user_access_profile(Tesla.Env.client(), String.t(), integer(), keyword()) :: {:ok, nil} | {:ok, ExBifrost.Model.DetachUserAccessProfile200Response.t()} | {:ok, ExBifrost.Model.BifrostError.t()} | {:error, Tesla.Env.t()}
Detach a user's access profile Removes the profile from the user and deletes every virtual key it produced. Fails closed if a virtual key cannot be deleted.
Parameters
connection(ExBifrost.Connection): Connection to servertarget_user_id(String.t):profile_id(integer()):opts(keyword): Optional parameters
Returns
{:ok, ExBifrost.Model.DetachUserAccessProfile200Response.t}on success{:error, Tesla.Env.t}on failure
@spec get_access_profile(Tesla.Env.client(), integer(), keyword()) :: {:ok, nil} | {:ok, ExBifrost.Model.BifrostError.t()} | {:ok, ExBifrost.Model.GetAccessProfile200Response.t()} | {:error, Tesla.Env.t()}
Get access profile by ID Returns the profile plus its role attachments and the count of users holding a copy.
Parameters
connection(ExBifrost.Connection): Connection to serverid(integer()):opts(keyword): Optional parameters
Returns
{:ok, ExBifrost.Model.GetAccessProfile200Response.t}on success{:error, Tesla.Env.t}on failure
@spec get_access_profile_version(Tesla.Env.client(), integer(), integer(), keyword()) :: {:ok, nil} | {:ok, ExBifrost.Model.BifrostError.t()} | {:ok, ExBifrost.Model.GetAccessProfileVersion200Response.t()} | {:error, Tesla.Env.t()}
Get a single version snapshot
Parameters
connection(ExBifrost.Connection): Connection to serverid(integer()):version(integer()):opts(keyword): Optional parameters
Returns
{:ok, ExBifrost.Model.GetAccessProfileVersion200Response.t}on success{:error, Tesla.Env.t}on failure
@spec list_access_profile_audit_logs( Tesla.Env.client(), keyword() ) :: {:ok, ExBifrost.Model.ListAccessProfileAuditLogsById200Response.t()} | {:ok, ExBifrost.Model.BifrostError.t()} | {:error, Tesla.Env.t()}
List workspace-wide audit log entries
Parameters
connection(ExBifrost.Connection): Connection to serveropts(keyword): Optional parameters:limit(integer())::offset(integer())::action(String.t)::user_id(String.t):
Returns
{:ok, ExBifrost.Model.ListAccessProfileAuditLogsById200Response.t}on success{:error, Tesla.Env.t}on failure
@spec list_access_profile_audit_logs_by_id(Tesla.Env.client(), integer(), keyword()) :: {:ok, ExBifrost.Model.ListAccessProfileAuditLogsById200Response.t()} | {:ok, ExBifrost.Model.BifrostError.t()} | {:error, Tesla.Env.t()}
List audit log entries for a single profile
Parameters
connection(ExBifrost.Connection): Connection to serverid(integer()):opts(keyword): Optional parameters:limit(integer())::offset(integer())::action(String.t): One of create, update, delete, propagate, attach_role, detach_role, clone, activate, deactivate.:user_id(String.t):
Returns
{:ok, ExBifrost.Model.ListAccessProfileAuditLogsById200Response.t}on success{:error, Tesla.Env.t}on failure
@spec list_access_profile_versions(Tesla.Env.client(), integer(), keyword()) :: {:ok, ExBifrost.Model.ListAccessProfileVersions200Response.t()} | {:ok, ExBifrost.Model.BifrostError.t()} | {:error, Tesla.Env.t()}
List version snapshots for an access profile
Parameters
connection(ExBifrost.Connection): Connection to serverid(integer()):opts(keyword): Optional parameters
Returns
{:ok, ExBifrost.Model.ListAccessProfileVersions200Response.t}on success{:error, Tesla.Env.t}on failure
@spec list_access_profiles( Tesla.Env.client(), keyword() ) :: {:ok, ExBifrost.Model.BifrostError.t()} | {:ok, ExBifrost.Model.ListAccessProfiles200Response.t()} | {:error, Tesla.Env.t()}
List access profiles Returns access profiles visible to the caller.
Parameters
connection(ExBifrost.Connection): Connection to serveropts(keyword): Optional parameters:limit(integer())::offset(integer())::search(String.t)::tags(String.t): Comma-separated list of tags to filter on.:is_active(boolean()):
Returns
{:ok, ExBifrost.Model.ListAccessProfiles200Response.t}on success{:error, Tesla.Env.t}on failure
@spec list_user_access_profiles(Tesla.Env.client(), String.t(), keyword()) :: {:ok, ExBifrost.Model.ListUserAccessProfiles200Response.t()} | {:ok, ExBifrost.Model.BifrostError.t()} | {:error, Tesla.Env.t()}
List access profiles held by a user
Parameters
connection(ExBifrost.Connection): Connection to servertarget_user_id(String.t):opts(keyword): Optional parameters
Returns
{:ok, ExBifrost.Model.ListUserAccessProfiles200Response.t}on success{:error, Tesla.Env.t}on failure
@spec propagate_access_profile( Tesla.Env.client(), integer(), ExBifrost.Model.PropagateAccessProfileRequest.t(), keyword() ) :: {:ok, nil} | {:ok, ExBifrost.Model.PropagateAccessProfile200Response.t()} | {:ok, ExBifrost.Model.BifrostError.t()} | {:error, Tesla.Env.t()}
Propagate template changes to user copies
Pushes selected fields from the template to every user that holds a copy. Use dry_run: true to preview the impact. By default, accumulated usage is preserved.
Parameters
connection(ExBifrost.Connection): Connection to serverid(integer()):propagate_access_profile_request(PropagateAccessProfileRequest):opts(keyword): Optional parameters
Returns
{:ok, ExBifrost.Model.PropagateAccessProfile200Response.t}on success{:error, Tesla.Env.t}on failure
@spec update_access_profile( Tesla.Env.client(), integer(), ExBifrost.Model.UpdateAccessProfileRequest.t(), keyword() ) :: {:ok, nil} | {:ok, ExBifrost.Model.CreateAccessProfile201Response.t()} | {:ok, ExBifrost.Model.BifrostError.t()} | {:error, Tesla.Env.t()}
Update access profile
Partial update. Omitted fields preserve the current value. rate_limit: null explicitly clears the existing rate limit. Size limits enforced: max 100 provider_configs, max 100 budgets, max 50 tags.
Parameters
connection(ExBifrost.Connection): Connection to serverid(integer()):update_access_profile_request(UpdateAccessProfileRequest):opts(keyword): Optional parameters
Returns
{:ok, ExBifrost.Model.CreateAccessProfile201Response.t}on success{:error, Tesla.Env.t}on failure