pub enum WamiAction {
Show 85 variants
All,
ServiceAll(WamiServicePrefix),
PlatformAdmin,
PlatformViewSettings,
PlatformUpdateSettings,
PlatformViewAuditLog,
TenantCreate,
TenantConfigure,
TenantManageMembers,
TenantSuspend,
TenantResume,
TenantList,
TenantRead,
TenantUpdate,
TenantDelete,
TenantCreateSubTenant,
TenantManageUsers,
TenantManageRoles,
TenantManagePolicies,
IamCreateUser,
IamDeleteUser,
IamReadUser,
IamUpdateUser,
IamListUsers,
IamCreateGroup,
IamDeleteGroup,
IamManageGroupMembers,
IamCreateRole,
IamDeleteRole,
IamReadRole,
IamAssumeRole,
IamCreatePolicy,
IamDeletePolicy,
IamReadPolicy,
IamAttachPolicy,
IamDetachPolicy,
IamSetBoundary,
IamManageCredentials,
DbQuery,
DbWrite,
DbDelete,
DbCreate,
DbDrop,
DbList,
DbConfigureAccess,
DbImport,
DbExport,
ChatSend,
ChatReadHistory,
ChatDeleteConversation,
ChatStream,
PersonaCreate,
PersonaDelete,
PersonaRead,
PersonaUpdate,
PersonaList,
PersonaInvoke,
RoomCreate,
RoomDelete,
RoomJoin,
RoomRead,
RoomSend,
RoomManage,
InferenceListModels,
InferenceInvoke,
InferenceConfigureRouter,
InferenceViewUsage,
AnalyticsViewUsage,
AnalyticsViewConversations,
AnalyticsExport,
AnalyticsViewActivity,
IntegrationCreate,
IntegrationDelete,
IntegrationConfigure,
IntegrationList,
IntegrationReceive,
IntegrationSend,
CognitiveRead,
CognitiveWrite,
CognitiveReset,
GdprGrantConsent,
GdprRevokeConsent,
GdprExportData,
GdprEraseData,
GdprViewAudit,
}Expand description
Exhaustive action vocabulary for the obrain ecosystem.
Actions are organized by service prefix:
platform:*— Platform-level administrationtenant:*— Tenant hierarchy managementiam:*— Identity & access managementdb:*— Database / knowledge store operationschat:*— Chat and conversationpersona:*— Persona managementroom:*— Room / channel managementinference:*— Model and inference operationsanalytics:*— Analytics and reportingintegration:*— External platform integrationscognitive:*— Cognitive layer (brain, memory)gdpr:*— GDPR / data privacy operations
Variants§
All
Matches every action (*)
ServiceAll(WamiServicePrefix)
Matches every action within a service prefix (service:*)
PlatformAdmin
Full platform administration
PlatformViewSettings
View platform settings and stats
PlatformUpdateSettings
Update platform configuration
PlatformViewAuditLog
View platform audit logs
TenantCreate
Create a new tenant
TenantConfigure
Configure tenant domain and port
TenantManageMembers
Manage tenant members (add, remove, ban)
TenantSuspend
Suspend a tenant
Its opposite is TenantResume and not this: cutting access off and
giving it back are not one permission. A tenant is usually suspended
FOR a reason — unpaid, abusive, breached — and whoever may cut it off is
not automatically whoever may decide the reason has passed.
TenantResume
Lift a suspension
TenantList
List all tenants (platform-level)
TenantRead
Read tenant info
TenantUpdate
Update tenant
TenantDelete
Delete tenant
TenantCreateSubTenant
Create sub-tenant
TenantManageUsers
Manage users within tenant
TenantManageRoles
Manage roles within tenant
TenantManagePolicies
Manage policies within tenant
IamCreateUser
Create IAM user
IamDeleteUser
Delete IAM user
IamReadUser
Read IAM user info
IamUpdateUser
Update IAM user
IamListUsers
List IAM users
IamCreateGroup
Create IAM group
IamDeleteGroup
Delete IAM group
IamManageGroupMembers
Manage group membership
IamCreateRole
Create IAM role
IamDeleteRole
Delete IAM role
IamReadRole
Read IAM role
IamAssumeRole
Assume IAM role
IamCreatePolicy
Create an IAM policy
Attaching it is IamAttachPolicy, which exists. Saying both here would
make that one grant nothing anybody could not already do.
IamDeletePolicy
Delete an IAM policy
Detaching it is IamDetachPolicy, for the same reason.
IamReadPolicy
Read IAM policy
IamAttachPolicy
Attach policy to user/group/role
IamDetachPolicy
Detach policy from user/group/role
IamSetBoundary
Set permissions boundary
IamManageCredentials
Manage credentials (access keys, MFA, etc.)
DbQuery
Query / read from a knowledge database
DbWrite
Write / insert into a knowledge database
DbDelete
Delete data from a knowledge database
DbCreate
Create a new knowledge database
DbDrop
Drop a knowledge database
DbList
List available databases
DbConfigureAccess
Configure database access policies
DbImport
Import data into a database
DbExport
Export data from a database
ChatSend
Send a chat message
ChatReadHistory
Read chat history
ChatDeleteConversation
Delete a conversation
ChatStream
Use streaming chat (SSE)
PersonaCreate
Create a persona
PersonaDelete
Delete a persona
PersonaRead
Read persona info
PersonaUpdate
Update persona configuration
PersonaList
List personas
PersonaInvoke
Invoke / use a persona in chat
RoomCreate
Create a room / channel
RoomDelete
Delete a room
RoomJoin
Join a room
RoomRead
Read room messages
RoomSend
Send message to room
RoomManage
Manage room settings
InferenceListModels
List available models
InferenceInvoke
Invoke a model (generate)
InferenceConfigureRouter
Configure model routing
InferenceViewUsage
View model usage / costs
AnalyticsViewUsage
View usage analytics
AnalyticsViewConversations
View conversation analytics
AnalyticsExport
Export analytics reports
AnalyticsViewActivity
View user activity
IntegrationCreate
Create an integration bridge
IntegrationDelete
Delete an integration bridge
IntegrationConfigure
Configure integration settings
IntegrationList
List integrations
IntegrationReceive
Receive inbound messages (webhook)
IntegrationSend
Send outbound messages
CognitiveRead
Read cognitive state (brain, memory)
CognitiveWrite
Write / update cognitive state
CognitiveReset
Reset cognitive state
GdprGrantConsent
Grant data consent
GdprRevokeConsent
Revoke data consent
GdprExportData
Export personal data
GdprEraseData
Erase personal data (right to be forgotten)
GdprViewAudit
View audit log
Implementations§
Source§impl WamiAction
impl WamiAction
Source§impl WamiAction
impl WamiAction
Sourcepub fn matches(&self, requested: &WamiAction) -> bool
pub fn matches(&self, requested: &WamiAction) -> bool
Check whether self (a policy action pattern) matches a requested action.
Matching rules:
All(*) matches everythingServiceAll(prefix)(service:*) matches any action in that service- Exact variant matches only itself
This also supports string-based matching for backward compatibility
with existing Vec<String> policy statements.
Sourcepub fn matches_str(policy_action: &str, requested: &str) -> bool
pub fn matches_str(policy_action: &str, requested: &str) -> bool
Check whether a policy action string matches a requested action string.
This provides backward compatibility with the existing Vec<String> in
PolicyStatement without requiring a full migration to the enum.
Supports: "*", "service:*", and exact strings like "db:Query".
Trait Implementations§
Source§impl Clone for WamiAction
impl Clone for WamiAction
Source§fn clone(&self) -> WamiAction
fn clone(&self) -> WamiAction
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more