sym.sdk.user

Representations of Users in both Sym and third parties.

Functions

user_ids(user_list)

Fetch a list of User IDs from a list of Users.

Classes

User

The atomic representation of a user in Sym.

UserIdentity

Represents a User's identity in an external system such as Slack or PagerDuty.

UserRole

UserRoles represent very basic permission sets for users in the Sym platform.

class sym.sdk.user.User

Bases: sym.sdk.resource.SymBaseResource

The atomic representation of a user in Sym.

UserIdentity, which are used for referencing said user in external systems.

dict()

Represent this resource as a dictionary.

property email

The User’s email if the user is of type “normal”, or None otherwise.

property first_name

The User’s first name.

get_event_count(event_name: approval.ApprovalTemplateStep, since: Optional[datetime.datetime] = None, until: Optional[datetime.datetime] = None, filter_on: Literal['flow', 'target'] = 'flow', include_errored: bool = False) int

Retrieve a count of Events that have occurred on Runs where this User was the requester.

For example, to determine whether this User has ever been granted access to the current Flow via Sym, the following check could be used:

if user.get_event_count(
    event_name=ApprovalTemplateStep.ESCALATE,
    filter_on="flow",
) > 0:
    ...
Parameters
  • event_name – The name of the Event to count.

  • since – Filter counted Events to those that were scheduled to be processed at or after this time.

  • until – Filter counted Events to those that were scheduled to be processed at or before this time.

  • filter_on – Filter counted Events to those that occurred on Runs using the same Flow if “flow” is given, or where the same AccessTarget was requested if “target” is given.

  • include_errored – Whether to count Events that were ignored or encountered errors while being processed.

property id

The User’s globally unique identifier.

property identities

Retrieves the set of identities associated with this User, grouped by service type.

A mapping of service types to lists of UserIdentity.

identity(service_type: str, service_id: Optional[str] = None) Optional[sym.sdk.user.UserIdentity]

Retrieves this User’s UserIdentity for a particular external system.

External systems specified by a service_type, and optionally a service_id.

Parameters
  • service_type – The name of one of Sym’s integrations.

  • service_id – An identifier for an instance of a service, such as a Slack Workspace ID.

Returns

A UserIdentity, or None if no identity is found for the Integration.

property last_name

The User’s last name.

property role

The User’s role (i.e., “admin”, “member”, or “guest”).

property type

The User’s type (i.e., “bot” or “normal”).

property username

The User’s username if the user is of type “bot”, or the email if the user is of type “normal”.

class sym.sdk.user.UserIdentity

Bases: sym.sdk.resource.SymBaseResource

Represents a User’s identity in an external system such as Slack or PagerDuty.

dict()

Represent this resource as a dictionary.

property service

The name of the external system providing the identity.

For example, slack.

property service_id

The ID of the external system providing the identity.

For example, “T123ABC” for a Slack Workspace.

property user_id

The User’s identifier in the external system.

For example, the User’s Slack ID.

class sym.sdk.user.UserRole(value)

Bases: str, enum.Enum

UserRoles represent very basic permission sets for users in the Sym platform.

UserRoles are defined in descending order of permissions. Each role should include all permissions of the roles below it.

ADMIN = 'admin'

Admins are allowed to do anything. (e.g. Use symflow CLI, run Flows, apply Terraform)

GUEST = 'guest'

Guests can approve/deny/revoke requests, if the Flow is configured to allow guest interactions

MEMBER = 'member'

Members can run Flows and interact with requests.

permission_levels() Set[sym.sdk.request_permission.PermissionLevel]

Returns a set of PermissionLevels that apply to the role.

sym.sdk.user.user_ids(user_list: List[sym.sdk.user.User]) List[uuid.UUID]

Fetch a list of User IDs from a list of Users.