roboto.domain.orgs
Submodules
Package Contents
BindEmailDomainRequest
Bases: pydantic.BaseModel
Request payload to bind an email domain to an organization.
Parameters
data AnyAttributes
CreateOrgRequest
Bases: pydantic.BaseModel
Request payload to create an organization.
Parameters
data AnyAttributes
CreateOrgRequest.bind_email_domain
Whether to automatically bind the creator’s email domain to this organization.
CreateOrgRequest.data_region
AWS region where the organization’s data will be stored.
InviteUserRequest
Bases: pydantic.BaseModel
Request payload to invite a user to an organization.
Parameters
data AnyAttributes
ModifyRoleForUserRequest
Bases: pydantic.BaseModel
Request payload to modify the role for a user in an organization.
Parameters
data AnyAttributes
ModifyRoleForUserRequest.role_name
Role to assign to the user.
Org
A collaborative workspace for multiple Roboto users.
Organizations are the primary grouping mechanism in Roboto, allowing multiple users to collaborate on datasets, actions, and other resources. Each organization has its own isolated namespace for resources and can have different limits and functionality depending on its tier (free or premium).
Organization names are unique within the Roboto platform. Users can be members of multiple organizations with different roles (user, admin, owner). Organizations can also be configured with email domain binding to automatically add users with matching email domains.
Parameters
roboto_client Optional[roboto.Org.add_role_for_user()
Add a role to a user in this organization.
Grants the specified role to a user who is already a member of the organization. Users can have multiple roles simultaneously.
Parameters
user_id strUnique identifier for the user.
Role to add (user, admin, or owner).
Returns
This Org instance for method chaining.
Raises
The user is not a member of this organization.
The caller lacks permission to modify user roles.
Usage
Grant admin role to a user:
from roboto.domain.orgs import Org, OrgRoleName
org = Org.from_id("org_12345")
org.add_role_for_user("alice@example.com", OrgRoleName.admin)Org.bind_email_domain()
Bind an email domain to this organization.
Users with email addresses from the bound domain will automatically be added to this organization when they sign up for Roboto.
Parameters
email_domain strEmail domain to bind (e.g., “example.com”).
Returns
This Org instance for method chaining.
Raises
The email domain is invalid or already bound.
The caller lacks permission to bind email domains.
Usage
Bind a company email domain:
from roboto.domain.orgs import Org
org = Org.from_id("org_12345")
org.bind_email_domain("acme.com")Org.create()
Create a new organization.
Creates a new organization with the specified name and configuration.
Parameters
name strName for the organization.
bind_email_domain boolWhether to automatically bind the email domain from the creator’s email address to this organization.
data_region roboto.Geographic region where the organization’s data will be stored.
roboto_client Optional[roboto.Optional Roboto client instance. If not provided, uses the default client.
Returns
A new Org instance representing the created organization.
Raises
The request contains invalid data.
The caller is not authorized to create organizations.
Usage
Create a basic organization:
from roboto.domain.orgs import Org
org = Org.create("my-company")
print(f"Created org: {org.name}")Create an organization with email domain binding:
from roboto import RobotoRegion
from roboto.domain.orgs import Org
org = Org.create(name="acme-corp", bind_email_domain=True, data_region=RobotoRegion.EU_CENTRAL)Org.delete()
Delete this organization permanently.
Permanently removes the organization and all associated data including datasets, actions, and user memberships. This action cannot be undone.
Raises
The caller lacks permission to delete this organization.
The organization cannot be deleted due to active resources.
Return type
Usage
Delete an organization:
from roboto.domain.orgs import Org
org = Org.from_id("org_12345")
org.delete() # Permanently removes the organizationOrg.email_domains()
Retrieve all email domains bound to this organization.
Returns
Collection of email domain strings bound to this organization.
Raises
The caller lacks permission to view email domains.
Usage
List bound email domains:
from roboto.domain.orgs import Org
org = Org.from_id("org_12345")
domains = org.email_domains()
for domain in domains:
print(f"Bound domain: {domain}")Properties
Org.files
The files associated with the org itself, rather than with one of its datasets or devices.
Shared URDFs, runbooks, and other files that belong to the org as a whole live here. Files associated with a dataset or a device are reached through that dataset’s or device’s files.
Org.for_self()
Retrieve all organizations the current user is a member of.
Parameters
roboto_client Optional[roboto.Optional Roboto client instance. If not provided, uses the default client.
Returns
Sequence of Org instances for organizations the user belongs to.
Raises
No valid authentication credentials provided.
Usage
List user’s organizations:
from roboto.domain.orgs import Org
orgs = Org.for_self()
for org in orgs:
print(f"Member of: {org.name}")Org.for_user()
Retrieve all organizations a specific user is a member of.
Parameters
user_id strUnique identifier for the user.
roboto_client Optional[roboto.Optional Roboto client instance. If not provided, uses the default client.
Returns
Sequence of Org instances for organizations the user belongs to.
Raises
No user exists with the specified ID.
The caller is not authorized to view this user’s organizations.
Usage
List another user’s organizations:
from roboto.domain.orgs import Org
orgs = Org.for_user("alice@example.com")
print(f"Alice is in {len(orgs)} organizations")Org.from_id()
Load an existing organization by its unique ID.
Parameters
org_id strUnique identifier for the organization to retrieve.
roboto_client Optional[roboto.Optional Roboto client instance. If not provided, uses the default client.
Returns
Org instance for the specified organization ID.
Raises
No organization exists with the specified ID.
The caller is not authorized to access this organization.
Usage
Load an organization by ID:
from roboto.domain.orgs import Org
org = Org.from_id("org_12345")
print(f"Organization: {org.name}")Org.invite_user()
Invite a user to join this organization.
Creates an invitation that the specified user can accept to become a member of this organization.
Parameters
user_id strUnique identifier for the user to invite.
Returns
OrgInvite instance representing the created invitation.
Raises
The specified user does not exist.
The user is already a member or has a pending invite.
The caller lacks permission to invite users.
Usage
Invite a user to the organization:
from roboto.domain.orgs import Org
org = Org.from_id("org_12345")
invite = org.invite_user("alice@example.com")
print(f"Invitation created: {invite.invite_id}")Org.invites()
Retrieve all pending invitations for this organization.
Returns
Collection of OrgInvite instances for pending invitations.
Raises
The caller lacks permission to view invitations.
Usage
List pending invitations:
from roboto.domain.orgs import Org
org = Org.from_id("org_12345")
invites = org.invites()
for invite in invites:
print(f"Pending invite for: {invite.invited_user_id}")Org.refresh()
Refresh this organization’s data from the server.
Fetches the latest organization data from Roboto and updates this instance’s internal state.
Returns
This Org instance with updated data.
Raises
The organization no longer exists.
The caller no longer has access to this organization.
Usage
Refresh organization data:
from roboto.domain.orgs import Org
org = Org.from_id("org_12345")
org.refresh() # Updates with latest data from serverOrg.remove_role_from_user()
Remove a role from a user in this organization.
Revokes the specified role from a user. The user remains a member of the organization unless all roles are removed.
Parameters
user_id strUnique identifier for the user.
Role to remove (user, admin, or owner).
Returns
This Org instance for method chaining.
Raises
The user is not a member of this organization.
The caller lacks permission to modify user roles.
Usage
Remove admin role from a user:
from roboto.domain.orgs import Org, OrgRoleName
org = Org.from_id("org_12345")
org.remove_role_from_user("alice@example.com", OrgRoleName.admin)Org.remove_user()
Remove a user from this organization.
Completely removes the user from the organization, revoking all roles and access to organization resources.
Parameters
user_id strUnique identifier for the user to remove.
Returns
This Org instance for method chaining.
Raises
The user is not a member of this organization.
The caller lacks permission to remove users.
Usage
Remove a user from the organization:
from roboto.domain.orgs import Org
org = Org.from_id("org_12345")
org.remove_user("alice@example.com")Properties
Org.status
Current status of this organization.
Returns
The organization’s status (provisioning, active, or de-provisioning).
Org.tier
Subscription tier of this organization.
Returns
The organization’s tier (free or premium).
Org.to_dict()
Convert this organization to a dictionary representation.
Returns a JSON-serializable dictionary containing all organization data.
Returns
Dictionary representation of the organization.
Usage
Export organization data:
from roboto.domain.orgs import Org
org = Org.from_id("org_12345")
org_data = org.to_dict()
print(f"Org created: {org_data.get('created')}")Org.unbind_email_domain()
Remove an email domain binding from this organization.
Users with email addresses from this domain will no longer be automatically added to the organization.
Parameters
email_domain strEmail domain to unbind (e.g., “example.com”).
Returns
This Org instance for method chaining.
Raises
The email domain is not bound to this organization.
The caller lacks permission to unbind email domains.
Usage
Unbind an email domain:
from roboto.domain.orgs import Org
org = Org.from_id("org_12345")
org.unbind_email_domain("old-company.com")Org.update()
Update this organization’s properties.
Updates the organization with the provided changes and refreshes this instance with the updated data.
Parameters
Update request containing the changes to apply.
Returns
This Org instance with updated data.
Raises
The update contains invalid data.
The caller lacks permission to update this organization.
Usage
Update organization name:
from roboto.domain.orgs import Org, UpdateOrgRequest, OrgRecordUpdates
org = Org.from_id("org_12345")
request = UpdateOrgRequest(updates=OrgRecordUpdates(name="New Company Name"))
org.update(request)Org.users()
Retrieve all users who are members of this organization.
Returns
Collection of OrgUserRecord instances representing organization members.
Raises
The caller lacks permission to view organization members.
Usage
List organization members:
from roboto.domain.orgs import Org
org = Org.from_id("org_12345")
users = org.users()
for user_record in users:
print(f"Member: {user_record.user.name} ({user_record.roles})")OrgInvite
An invitation to join an organization from one user to another.
Organization invitations allow existing members to invite new users to join their organization. Invitations are created by calling Org.invite_user() and can be accepted or declined by the invited user.
Invitations cannot be created directly through the constructor - they must be created through the organization’s invite_user method.
Parameters
roboto_client Optional[roboto.OrgInvite.accept()
Accept this invitation and join the organization.
The invited user becomes a member of the organization with default user role permissions.
Raises
The caller is not the invited user.
The invitation has already been accepted or declined.
Return type
Usage
Accept an invitation:
from roboto import OrgInvite
invite = OrgInvite.from_id("invite_12345")
invite.accept() # Join the organizationOrgInvite.create()
Create a new organization invitation.
Creates an invitation for the specified user to join the organization. This method is typically called internally by Org.invite_user().
Parameters
invited_user_id strUnique identifier for the user to invite.
org_id strUnique identifier for the organization.
roboto_client Optional[roboto.Optional Roboto client instance. If not provided, uses the default client.
Returns
A new OrgInvite instance representing the created invitation.
Raises
The user or organization does not exist.
The user is already a member or has a pending invite.
The caller lacks permission to invite users.
Usage
Create an invitation (typically done via Org.invite_user):
from roboto import OrgInvite
invite = OrgInvite.create("alice@example.com", "org_12345")OrgInvite.decline()
Decline this invitation and do not join the organization.
The invitation is marked as declined and cannot be accepted later.
Raises
The caller is not the invited user.
The invitation has already been accepted or declined.
Return type
Usage
Decline an invitation:
from roboto import OrgInvite
invite = OrgInvite.from_id("invite_12345")
invite.decline() # Do not join the organizationOrgInvite.for_org()
Retrieve all pending invitations for an organization.
Parameters
org_id strUnique identifier for the organization.
roboto_client Optional[roboto.Optional Roboto client instance. If not provided, uses the default client.
Returns
Collection of OrgInvite instances for pending invitations.
Raises
The organization does not exist.
The caller lacks permission to view invitations.
Usage
List all invitations for an organization:
from roboto import OrgInvite
invites = OrgInvite.for_org("org_12345")
for invite in invites:
print(f"Pending invite for: {invite.invited_user_id}")OrgInvite.from_id()
Load an existing invitation by its unique ID.
Parameters
invite_id strUnique identifier for the invitation to retrieve.
roboto_client Optional[roboto.Optional Roboto client instance. If not provided, uses the default client.
Returns
OrgInvite instance for the specified invitation ID.
Raises
No invitation exists with the specified ID.
The caller is not authorized to access this invitation.
Usage
Load an invitation by ID:
from roboto import OrgInvite
invite = OrgInvite.from_id("invite_12345")
print(f"Invited user: {invite.invited_user_id}")Properties
OrgInvite.invite_id
Unique identifier for this invitation.
Returns
The invitation’s unique ID.
OrgInvite.invited_by_user_id
User ID of the person who created this invitation.
Returns
The unique identifier of the user who sent the invitation.
OrgInvite.invited_user_id
User ID of the person who was invited.
Returns
The unique identifier of the invited user.
OrgInvite.org_id
Organization ID for the organization this invitation is for.
Returns
The unique identifier of the organization.
OrgInvite.to_dict()
Convert this invitation to a dictionary representation.
Returns a JSON-serializable dictionary containing all invitation data.
Returns
Dictionary representation of the invitation.
Usage
Export invitation data:
from roboto import OrgInvite
invite = OrgInvite.from_id("invite_12345")
invite_data = invite.to_dict()
print(f"Invited user: {invite_data.get('user_id')}")OrgInviteRecord
Bases: pydantic.BaseModel
A wire-transmissible representation of an organization invite.
Parameters
data AnyAttributes
OrgInviteRecord.invited_by
User information for the person who created the invitation.
OrgRecord
Bases: pydantic.BaseModel
A wire-transmissible representation of an organization.
Parameters
data AnyAttributes
OrgRecordUpdates
Bases: pydantic.BaseModel
Payload containing organization field updates.
Parameters
data AnyAttributes
OrgRecordUpdates.status
Updated status for the organization.
OrgRoleName
Bases: roboto.compat.StrEnum
Organization role enumeration.
Defines the different permission levels users can have within an organization.
Attributes
OrgRoleName.admin
Administrative role with management permissions for organization resources.
OrgRoleName.owner
Owner role with full control over the organization including billing and deletion.
OrgStatus
Bases: roboto.compat.StrEnum
Organization status enumeration.
Represents the current operational state of an organization.
Attributes
OrgStatus.Deprovisioning
Organization is being deleted and resources are being cleaned up.
OrgStatus.Provisioning
Organization is being set up and is not yet ready for use.
OrgTier
Bases: roboto.compat.StrEnum
Organization tier enumeration.
See our pricing page for details on different organization tiers and their associated features and limits.
OrgUserRecord
Bases: pydantic.BaseModel
A wire-transmissible representation of an organization user.
Parameters
data AnyAttributes
OrgUserRecord.user
User information for the organization member.
RemoveUserFromOrgRequest
Bases: pydantic.BaseModel
Request payload to remove a user from an organization.
Parameters
data AnyAttributes
UpdateOrgRequest
Bases: pydantic.BaseModel
Request payload to update an organization.
Parameters
data AnyAttributes
UpdateOrgUserRequest
Bases: pydantic.BaseModel
Request payload to update an organization user’s roles.
Parameters
data AnyAttributes
UpdateOrgUserRequest.add_roles
Roles to add to the user.
UpdateOrgUserRequest.check_some_updates_present()
Return type
Attributes
UpdateOrgUserRequest.remove_roles
Roles to remove from the user.