Skip to content
Roboto
Esc
↑↓navigate↵open⌘Jpreview
On this page

roboto.domain.orgs.org

Module Contents

Org

class roboto.domain.orgs.org.Org(record, roboto_client=None)#View Source

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.

Org.add_role_for_user()

add_role_for_user(user_id, role)#View Source

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 str

Unique 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_email_domain(email_domain)#View Source

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 str

Email 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()

classmethod create(name, bind_email_domain=False, data_region=RobotoRegion.US_WEST, roboto_client=None)#View Source

Create a new organization.

Creates a new organization with the specified name and configuration.

Parameters

name str

Name for the organization.

bind_email_domain bool

Whether to automatically bind the email domain from the creator’s email address to this organization.

Geographic region where the organization’s data will be stored.

roboto_client Optional[roboto.http.RobotoClient]

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()#View Source

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

None

Usage

Delete an organization:

from roboto.domain.orgs import Org
org = Org.from_id("org_12345")
org.delete()  # Permanently removes the organization

Org.email_domains()

email_domains()#View Source

Retrieve all email domains bound to this organization.

Returns

collections.abc.Collection[str]

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()

classmethod for_self(roboto_client=None)#View Source

Retrieve all organizations the current user is a member of.

Parameters

roboto_client Optional[roboto.http.RobotoClient]

Optional Roboto client instance. If not provided, uses the default client.

Returns

collections.abc.Sequence[Org]

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()

classmethod for_user(user_id, roboto_client=None)#View Source

Retrieve all organizations a specific user is a member of.

Parameters

user_id str

Unique identifier for the user.

roboto_client Optional[roboto.http.RobotoClient]

Optional Roboto client instance. If not provided, uses the default client.

Returns

collections.abc.Sequence[Org]

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()

classmethod from_id(org_id, roboto_client=None)#View Source

Load an existing organization by its unique ID.

Parameters

org_id str

Unique identifier for the organization to retrieve.

roboto_client Optional[roboto.http.RobotoClient]

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_user(user_id)#View Source

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 str

Unique 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()

invites()#View Source

Retrieve all pending invitations for this organization.

Returns

collections.abc.Collection[roboto.domain.orgs.org_invite.OrgInvite]

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}")

Properties

Org.name

name str #

Human-readable name of this organization.

Returns

str

The organization’s name.

Org.org_id

org_id #

Unique identifier for this organization.

Returns

The organization’s unique ID.

Org.refresh()

refresh()#View Source

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 server

Org.remove_role_from_user()

remove_role_from_user(user_id, role)#View Source

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 str

Unique 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_user(user_id)#View Source

Remove a user from this organization.

Completely removes the user from the organization, revoking all roles and access to organization resources.

Parameters

user_id str

Unique 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()

to_dict()#View Source

Convert this organization to a dictionary representation.

Returns a JSON-serializable dictionary containing all organization data.

Returns

dict[str, Any]

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()

unbind_email_domain(email_domain)#View Source

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 str

Email 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(update)#View Source

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()

users()#View Source

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})")

Was this page helpful?