roboto.domain.orgs#
Submodules#
Package Contents#
- class roboto.domain.orgs.BindEmailDomainRequest(/, **data)#
Bases:
pydantic.BaseModel
Request payload to bind an email domain to an organization.
- Parameters:
data (Any)
- email_domain: str#
Email domain to bind (e.g., “example.com”).
- class roboto.domain.orgs.CreateOrgRequest(/, **data)#
Bases:
pydantic.BaseModel
Request payload to create an organization.
- Parameters:
data (Any)
- bind_email_domain: bool = False#
Whether to automatically bind the creator’s email domain to this organization.
- data_region: roboto.regionalization.RobotoRegion#
AWS region where the organization’s data will be stored.
- name: str#
Unique name for the organization.
- class roboto.domain.orgs.InviteUserRequest(/, **data)#
Bases:
pydantic.BaseModel
Request payload to invite a user to an organization.
- Parameters:
data (Any)
- invited_user_id: str#
Unique identifier for the user to invite.
- class roboto.domain.orgs.ModifyRoleForUserRequest(/, **data)#
Bases:
pydantic.BaseModel
Request payload to modify the role for a user in an organization.
Deprecated since version Use:
UpdateOrgUserRequest
instead.- Parameters:
data (Any)
- role_name: roboto.domain.orgs.org_records.OrgRoleName#
Role to assign to the user.
- user_id: str#
Unique identifier for the user.
- class roboto.domain.orgs.Org(record, roboto_client=None)#
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.http.RobotoClient])
- add_role_for_user(user_id, role)#
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 (roboto.domain.orgs.org_records.OrgRoleName) – Role to add (user, admin, or owner).
- Returns:
This Org instance for method chaining.
- Raises:
RobotoNotFoundException – The user is not a member of this organization.
RobotoUnauthorizedException – The caller lacks permission to modify user roles.
- Return type:
Examples
Grant admin role to a user:
>>> from roboto import Org, OrgRoleName >>> org = Org.from_id("org_12345") >>> org.add_role_for_user("alice@example.com", OrgRoleName.admin)
- bind_email_domain(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 (str) – Email domain to bind (e.g., “example.com”).
- Returns:
This Org instance for method chaining.
- Raises:
RobotoInvalidRequestException – The email domain is invalid or already bound.
RobotoUnauthorizedException – The caller lacks permission to bind email domains.
- Return type:
Examples
Bind a company email domain:
>>> from roboto import Org >>> org = Org.from_id("org_12345") >>> org.bind_email_domain("acme.com")
- classmethod create(name, bind_email_domain=False, data_region=RobotoRegion.US_WEST, roboto_client=None)#
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.
data_region (roboto.regionalization.RobotoRegion) – 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:
RobotoInvalidRequestException – The request contains invalid data.
RobotoUnauthorizedException – The caller is not authorized to create organizations.
- Return type:
Examples
Create a basic organization:
>>> from roboto import Org >>> org = Org.create("my-company") >>> print(f"Created org: {org.name}")
Create an organization with email domain binding:
>>> from roboto import Org, RobotoRegion >>> org = Org.create( ... name="acme-corp", ... bind_email_domain=True, ... data_region=RobotoRegion.EU_WEST ... )
- 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:
RobotoUnauthorizedException – The caller lacks permission to delete this organization.
RobotoInvalidRequestException – The organization cannot be deleted due to active resources.
- Return type:
None
Examples
Delete an organization:
>>> from roboto import Org >>> org = Org.from_id("org_12345") >>> org.delete() # Permanently removes the organization
- email_domains()#
Retrieve all email domains bound to this organization.
- Returns:
Collection of email domain strings bound to this organization.
- Raises:
RobotoUnauthorizedException – The caller lacks permission to view email domains.
- Return type:
collections.abc.Collection[str]
Examples
List bound email domains:
>>> from roboto import Org >>> org = Org.from_id("org_12345") >>> domains = org.email_domains() >>> for domain in domains: ... print(f"Bound domain: {domain}")
- classmethod for_self(roboto_client=None)#
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:
Sequence of Org instances for organizations the user belongs to.
- Raises:
RobotoUnauthorizedException – No valid authentication credentials provided.
- Return type:
collections.abc.Sequence[Org]
Examples
List user’s organizations:
>>> from roboto import Org >>> orgs = Org.for_self() >>> for org in orgs: ... print(f"Member of: {org.name}")
- classmethod for_user(user_id, roboto_client=None)#
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:
Sequence of Org instances for organizations the user belongs to.
- Raises:
RobotoNotFoundException – No user exists with the specified ID.
RobotoUnauthorizedException – The caller is not authorized to view this user’s organizations.
- Return type:
collections.abc.Sequence[Org]
Examples
List another user’s organizations:
>>> from roboto import Org >>> orgs = Org.for_user("alice@example.com") >>> print(f"Alice is in {len(orgs)} organizations")
- classmethod from_id(org_id, roboto_client=None)#
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:
RobotoNotFoundException – No organization exists with the specified ID.
RobotoUnauthorizedException – The caller is not authorized to access this organization.
- Return type:
Examples
Load an organization by ID:
>>> from roboto import Org >>> org = Org.from_id("org_12345") >>> print(f"Organization: {org.name}")
- invite_user(user_id)#
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:
RobotoNotFoundException – The specified user does not exist.
RobotoInvalidRequestException – The user is already a member or has a pending invite.
RobotoUnauthorizedException – The caller lacks permission to invite users.
- Return type:
Examples
Invite a user to the organization:
>>> from roboto import Org >>> org = Org.from_id("org_12345") >>> invite = org.invite_user("alice@example.com") >>> print(f"Invitation created: {invite.invite_id}")
- invites()#
Retrieve all pending invitations for this organization.
- Returns:
Collection of OrgInvite instances for pending invitations.
- Raises:
RobotoUnauthorizedException – The caller lacks permission to view invitations.
- Return type:
collections.abc.Collection[roboto.domain.orgs.org_invite.OrgInvite]
Examples
List pending invitations:
>>> from roboto import Org >>> org = Org.from_id("org_12345") >>> invites = org.invites() >>> for invite in invites: ... print(f"Pending invite for: {invite.invited_user_id}")
- property name: str#
Human-readable name of this organization.
- Returns:
The organization’s name.
- Return type:
str
- property org_id#
Unique identifier for this organization.
- Returns:
The organization’s unique ID.
- 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:
RobotoNotFoundException – The organization no longer exists.
RobotoUnauthorizedException – The caller no longer has access to this organization.
- Return type:
Examples
Refresh organization data:
>>> from roboto import Org >>> org = Org.from_id("org_12345") >>> org.refresh() # Updates with latest data from server
- remove_role_from_user(user_id, role)#
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 (roboto.domain.orgs.org_records.OrgRoleName) – Role to remove (user, admin, or owner).
- Returns:
This Org instance for method chaining.
- Raises:
RobotoNotFoundException – The user is not a member of this organization.
RobotoUnauthorizedException – The caller lacks permission to modify user roles.
- Return type:
Examples
Remove admin role from a user:
>>> from roboto import Org, OrgRoleName >>> org = Org.from_id("org_12345") >>> org.remove_role_from_user("alice@example.com", OrgRoleName.admin)
- remove_user(user_id)#
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:
RobotoNotFoundException – The user is not a member of this organization.
RobotoUnauthorizedException – The caller lacks permission to remove users.
- Return type:
Examples
Remove a user from the organization:
>>> from roboto import Org >>> org = Org.from_id("org_12345") >>> org.remove_user("alice@example.com")
- property status: roboto.domain.orgs.org_records.OrgStatus#
Current status of this organization.
- Returns:
The organization’s status (provisioning, active, or de-provisioning).
- Return type:
- property tier: roboto.domain.orgs.org_records.OrgTier#
Subscription tier of this organization.
- Returns:
The organization’s tier (free or premium).
- Return type:
- to_dict()#
Convert this organization to a dictionary representation.
Returns a JSON-serializable dictionary containing all organization data.
- Returns:
Dictionary representation of the organization.
- Return type:
dict[str, Any]
Examples
Export organization data:
>>> from roboto import Org >>> org = Org.from_id("org_12345") >>> org_data = org.to_dict() >>> print(f"Org created: {org_data.get('created')}")
- unbind_email_domain(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 (str) – Email domain to unbind (e.g., “example.com”).
- Returns:
This Org instance for method chaining.
- Raises:
RobotoNotFoundException – The email domain is not bound to this organization.
RobotoUnauthorizedException – The caller lacks permission to unbind email domains.
- Return type:
Examples
Unbind an email domain:
>>> from roboto import Org >>> org = Org.from_id("org_12345") >>> org.unbind_email_domain("old-company.com")
- update(update)#
Update this organization’s properties.
Updates the organization with the provided changes and refreshes this instance with the updated data.
- Parameters:
update (roboto.domain.orgs.org_operations.UpdateOrgRequest) – Update request containing the changes to apply.
- Returns:
This Org instance with updated data.
- Raises:
RobotoInvalidRequestException – The update contains invalid data.
RobotoUnauthorizedException – The caller lacks permission to update this organization.
- Return type:
Examples
Update organization name:
>>> from roboto import Org, UpdateOrgRequest, OrgRecordUpdates >>> org = Org.from_id("org_12345") >>> update = UpdateOrgRequest( ... updates=OrgRecordUpdates(name="New Company Name") ... ) >>> org.update(update)
- users()#
Retrieve all users who are members of this organization.
- Returns:
Collection of OrgUserRecord instances representing organization members.
- Raises:
RobotoUnauthorizedException – The caller lacks permission to view organization members.
- Return type:
collections.abc.Collection[roboto.domain.orgs.org_records.OrgUserRecord]
Examples
List organization members:
>>> from roboto 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})")
- class roboto.domain.orgs.OrgInvite(record, roboto_client=None)#
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.http.RobotoClient])
- accept()#
Accept this invitation and join the organization.
The invited user becomes a member of the organization with default user role permissions.
- Raises:
RobotoUnauthorizedException – The caller is not the invited user.
RobotoInvalidRequestException – The invitation has already been accepted or declined.
- Return type:
None
Examples
Accept an invitation:
>>> from roboto import OrgInvite >>> invite = OrgInvite.from_id("invite_12345") >>> invite.accept() # Join the organization
- classmethod create(invited_user_id, org_id, roboto_client=None)#
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 (str) – Unique identifier for the user to invite.
org_id (str) – Unique identifier for the organization.
roboto_client (Optional[roboto.http.RobotoClient]) – Optional Roboto client instance. If not provided, uses the default client.
- Returns:
A new OrgInvite instance representing the created invitation.
- Raises:
RobotoNotFoundException – The user or organization does not exist.
RobotoInvalidRequestException – The user is already a member or has a pending invite.
RobotoUnauthorizedException – The caller lacks permission to invite users.
- Return type:
Examples
Create an invitation (typically done via Org.invite_user):
>>> from roboto import OrgInvite >>> invite = OrgInvite.create("alice@example.com", "org_12345")
- decline()#
Decline this invitation and do not join the organization.
The invitation is marked as declined and cannot be accepted later.
- Raises:
RobotoUnauthorizedException – The caller is not the invited user.
RobotoInvalidRequestException – The invitation has already been accepted or declined.
- Return type:
None
Examples
Decline an invitation:
>>> from roboto import OrgInvite >>> invite = OrgInvite.from_id("invite_12345") >>> invite.decline() # Do not join the organization
- classmethod for_org(org_id, roboto_client=None)#
Retrieve all pending invitations for an organization.
- Parameters:
org_id (str) – Unique identifier for the organization.
roboto_client (Optional[roboto.http.RobotoClient]) – Optional Roboto client instance. If not provided, uses the default client.
- Returns:
Collection of OrgInvite instances for pending invitations.
- Raises:
RobotoNotFoundException – The organization does not exist.
RobotoUnauthorizedException – The caller lacks permission to view invitations.
- Return type:
collections.abc.Collection[OrgInvite]
Examples
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}")
- classmethod from_id(invite_id, roboto_client=None)#
Load an existing invitation by its unique ID.
- Parameters:
invite_id (str) – Unique identifier for the invitation to retrieve.
roboto_client (Optional[roboto.http.RobotoClient]) – Optional Roboto client instance. If not provided, uses the default client.
- Returns:
OrgInvite instance for the specified invitation ID.
- Raises:
RobotoNotFoundException – No invitation exists with the specified ID.
RobotoUnauthorizedException – The caller is not authorized to access this invitation.
- Return type:
Examples
Load an invitation by ID:
>>> from roboto import OrgInvite >>> invite = OrgInvite.from_id("invite_12345") >>> print(f"Invited user: {invite.invited_user_id}")
- property invite_id: str#
Unique identifier for this invitation.
- Returns:
The invitation’s unique ID.
- Return type:
str
- property invited_by_user_id: str#
User ID of the person who created this invitation.
- Returns:
The unique identifier of the user who sent the invitation.
- Return type:
str
- property invited_user_id: str#
User ID of the person who was invited.
- Returns:
The unique identifier of the invited user.
- Return type:
str
- property org_id: str#
Organization ID for the organization this invitation is for.
- Returns:
The unique identifier of the organization.
- Return type:
str
- to_dict()#
Convert this invitation to a dictionary representation.
Returns a JSON-serializable dictionary containing all invitation data.
- Returns:
Dictionary representation of the invitation.
- Return type:
dict[str, Any]
Examples
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')}")
- class roboto.domain.orgs.OrgInviteRecord(/, **data)#
Bases:
pydantic.BaseModel
A wire-transmissible representation of an organization invite.
- Parameters:
data (Any)
- invite_id: str#
Unique identifier for the invitation.
- invited_by: roboto.domain.users.UserRecord#
User information for the person who created the invitation.
- user_id: str#
User ID of the person who was invited.
- class roboto.domain.orgs.OrgRecord(/, **data)#
Bases:
pydantic.BaseModel
A wire-transmissible representation of an organization.
- Parameters:
data (Any)
- created: datetime.datetime#
Timestamp when the organization was created.
- created_by: str | None = None#
User ID of the organization creator.
- name: str#
Human-readable name of the organization.
- org_id: str#
Unique identifier for the organization.
- class roboto.domain.orgs.OrgRecordUpdates(/, **data)#
Bases:
pydantic.BaseModel
Payload containing organization field updates.
- Parameters:
data (Any)
- name: str | None = None#
Updated name for the organization.
- status: roboto.domain.orgs.org_records.OrgStatus | None = None#
Updated status for the organization.
- class roboto.domain.orgs.OrgRoleName#
Bases:
str
,enum.Enum
Organization role enumeration.
Defines the different permission levels users can have within an organization.
- admin = 'admin'#
Administrative role with management permissions for organization resources.
- owner = 'owner'#
Owner role with full control over the organization including billing and deletion.
- user = 'user'#
Basic user role with read access to organization resources.
- class roboto.domain.orgs.OrgStatus#
Bases:
str
,enum.Enum
Organization status enumeration.
Represents the current operational state of an organization.
- Active = 'active'#
Organization is fully operational and ready for use.
- Deprovisioning = 'de-provisioning'#
Organization is being deleted and resources are being cleaned up.
- Provisioning = 'provisioning'#
Organization is being set up and is not yet ready for use.
- class roboto.domain.orgs.OrgTier#
Bases:
str
,enum.Enum
Organization tier enumeration.
See our pricing page for details on different organization tiers and their associated features and limits.
- free = 'free'#
Free tier with basic features and usage limits.
Premium tier with advanced features and higher usage limits.
- class roboto.domain.orgs.OrgUserRecord(/, **data)#
Bases:
pydantic.BaseModel
A wire-transmissible representation of an organization user.
- Parameters:
data (Any)
- roles: list[OrgRoleName]#
List of roles the user has within the organization.
- user: roboto.domain.users.UserRecord#
User information for the organization member.
- class roboto.domain.orgs.RemoveUserFromOrgRequest(/, **data)#
Bases:
pydantic.BaseModel
Request payload to remove a user from an organization.
- Parameters:
data (Any)
- user_id: str#
Unique identifier for the user to remove.
- class roboto.domain.orgs.UpdateOrgRequest(/, **data)#
Bases:
pydantic.BaseModel
Request payload to update an organization.
- Parameters:
data (Any)
- updates: OrgRecordUpdates#
Organization field updates to apply.
- class roboto.domain.orgs.UpdateOrgUserRequest(/, **data)#
Bases:
pydantic.BaseModel
Request payload to update an organization user’s roles.
- Parameters:
data (Any)
- add_roles: list[roboto.domain.orgs.org_records.OrgRoleName] | None = None#
Roles to add to the user.
- check_some_updates_present()#
- Return type:
- remove_roles: list[roboto.domain.orgs.org_records.OrgRoleName] | None = None#
Roles to remove from the user.