Skip to main content
Version: 2.26.1

Admin reference

The Admin class is designed to manage and facilitate the interactions with Edge organizations and users, including the roles associated with these entities. By providing a robust framework for CRUD operations, this class handles administrative tasks related to organizational structure, user management, and their respective roles within Edge.

# List organization names
[1]: edge.admin.list_organization_names()
list(str)

# Get organization
[2]: edge.admin.get_organization('myorg')
<edge.admin.organization.Organization>

Constructor

Constructing these yourself is not recommended. You should make an EdgeSession and access the .admin property.


Methods

list_organization_names

list_organization_names() -> list(str)

List names of stored organizations.

Returns

list(str) Names of stored organizations.


get_organization

get_organization(organization_name) -> Organization

Retrieve a stored organization object, given its name.

Parameters

  • organization_name (str)
    Name of the organization to retrieve.

Returns

edge.admin.organization.Organization The object corresponding to the retrieved organization.

Raises

  • NotFound: Raised if an organization with the given name is not found.

add_organization

add_organization(organization)

Creates an organization.

Parameters

  • organization (edge.admin.Organization)
    Organization object to store.

Raises

  • AlreadyExists: Raised if an organization with the given name already exists.
  • BadEntry: Raised if the organization definition or name is invalid.

update_organization

update_organization(organization)

Changes an organization.

Parameters

  • organization (edge.admin.Organization)
    Organization object to update.

Raises

  • NotFound: Raised if the organization doesn't already exist.
  • BadEntry: Raised if the organization definition is invalid.

remove_organization

remove_organization(organization_name)

Delete a given organization from storage.

Parameters

  • organization_name (str)
    Name of the organization to remove.

invite_to_organization

invite_to_organization(organization_name, email, license_name=None, roles=None) -> dict

Send an invitation for an organization to a user. If the user does not already exist on Edge, they will be created.

Parameters

  • organization_name (str)
    Name of the organization to send the invite for.
  • email (str)
    The e-mail address to send the invitation to. This should also be the user_name of the invited user.
  • license_name (str)
    Optional; A license name to assign the user upon creation.
  • roles list(str)
    Optional; A list of roles for the user. The "user" role is always added for the user.

Returns

dict A result object, with fields:

  • operation : str or None
    A user operation "create", "update" or None.
  • roles : List[str]
    A list of organization roles given to the user.
  • email : bool
    True, if an invitation email was successfully sent.

set_organization_invite_template

set_organization_invite_template(organization_name, template)

Sets the e-mail template for an organization's invites.

Parameters

  • organization_name (str)
    The organization to set the template for.
  • template (str)
    The template text.

get_organization_invite_template

get_organization_invite_template(organization_name) -> str

Sets the e-mail template for an organization's invites.

Parameters

  • organization_name (str)
    The organization to get the template for.

Returns

str The template text.

Raises

  • NotFound: Raised if the organization does not have an invite template set.

remove_organization_invite_template

remove_organization_invite_template(organization_name)

Removes the organization invite e-mail template.

Parameters

  • organization_name (str)
    The organization to remove the template for.

list_user_names

list_user_names() -> list(str)

List names of stored users.

Returns

list(str) Names of users.


get_user

get_user(user_name) -> User

Retrieve a stored user object, given its name.

Parameters

  • user_name (str)
    Name of the user to retrieve.

Returns

User The object corresponding to the retrieved user.

Raises

  • NotFound: Raised if a user with the given name is not found.

add_user

add_user(user)

Adds a user.

Parameters

  • user (edge.admin.User)
    User object to store.

Raises

  • AlreadyExists: Raised if a user with the given name already exists.
  • BadEntry: Raised if the user definition is invalid.

update_user

update_user(user)

Changes a user.

Parameters

  • user (edge.admin.User)
    User object to store.

Raises

  • AlreadyExists: Raised if a user with the given name already exists.
  • BadEntry: Raised if the user definition is invalid.

remove_user

remove_user(user_name)

Delete a given user from storage.

Parameters

  • user_name (User)
    Name of the user to remove.

list_org_users

list_org_users(org_name) -> list(User)

List users in an organization.

Parameters

  • org_name (str)
    Organization to list users of.

Returns

list(User) A list of User objects.


list_org_user_names

list_org_user_names(org_name) -> list(str)

List names of stored users in an organization.

Parameters

  • org_name (str)
    Organization to list users of.

Returns

list(str) Names of users.


get_org_user

get_org_user(org_name, user_name) -> User

Retrieve a stored user object, given its name, constrained to an organization.

Parameters

  • org_name (str)
    Organization to list users of.
  • user_name (str)
    Name of the user to retrieve.

Returns

User The object corresponding to the retrieved user.

Raises

  • NotFound: Raised if a user with the given name is not found.

set_user_home_org

set_user_home_org(user_name, org_name) -> User

Sets a user's home organization. You must be an administrator of the organization that will become the user's home organization. The user must also not have a current home organization.

Parameters

  • user_name (str)
    User name.
  • org_name (str)
    The organization name to set as the user's home.

Returns

User The object corresponding to the updated user.

Raises

  • NotFound: Raised if a user with the given name is not found.

unset_user_home_org

unset_user_home_org(user_name) -> User

Unsets a user's home organization. The user must not have a license assigned to them. You must be an administrator of the user's current home organization.

Parameters

  • user_name (str)
    User name.

Returns

User The object corresponding to the updated user.

Raises

  • NotFound: Raised if a user with the given name is not found.
  • LicenseError: Raise if a user currently has a license.

list_org_roles

list_org_roles(org_name) -> list(dict)

List the organization roles for all users in the organization.

Parameters

  • org_name (str)
    The organization whose roles we are listing.

Returns

list(dict) A list of roles.

Raises

  • NotFound: Raise if the organization is not found.

list_user_org_roles

list_user_org_roles(org_name, user_name) -> list(str)

List the organization roles for this user.

Parameters

  • org_name (str)
    The organization whose roles we are listing.
  • user_name (str)
    The user whose roles we are listing.

Returns

list(str) A list of roles.

Raises

  • NotFound: Raised if the user or organization is not found.

update_user_org_roles

update_user_org_roles(org_name, user_name, roles)

Update the organization roles for this user.

Parameters

  • org_name (str)
    The organization whose roles we are updating.
  • user_name (str)
    The user whose roles we are updating.
  • roles list(str)
    The new set of roles for this user in this organization.

Raises

  • NotFound: Raised if the user or organization is not found.

get_org_license_quotas

get_org_license_quotas(org_name=None) -> list(dict)

List the organization license quotas.

Parameters

  • org_name (str)
    Optional; The organization whose license quotas we are retrieving. If org_name is None, then license quotas aggregated for all organizations are retrieved.

Returns

list(dict) A list of dictionaries, containing license_name, description, limit and used.

Raises

  • NotFound: Raised if if the organization not could not be found.

update_org_license_quotas

update_org_license_quotas(org_name, licenses)

Updates the license quotas for an organization. Licenses quotas that are not included are not updated.

Parameters

  • org_name (str)
    The organization name to set license quotas on.
  • licenses list(dict)
    A list of dictionaries with license limits, with keys:
    • license_name : str
    • limit : int

Raises

  • NotFound: If org_name or a license_name could not be found.
  • LicenseError: If setting the organization license quota would cause it to fall below that organization's current license usage.

get_org_license_logs

get_org_license_logs(org_name, start_time=None, end_time=None, event_type=None,
user_name=None) -> list(dict)

List the organization's license events.

Parameters

  • org_name (str)
    The organization to retrieve license events for.
  • start_time datetime
    Optional; A starting datetime to search for events. If None, then events from the start of the day will be returned.
  • end_time (datetime)
    Optional; An ending datetime for events, inclusive. If None, then all events up until now will be returned.
  • event_type (str)
    Optional; An event type to search for.
  • user_name (str)
    Optional; A user_name to filter for associated events.

Returns

list(dict) A list of dictionaries where each event is a licensing event associated with the given organization.

Raises

  • NotFound: Raised if if the organization not could not be found.

get_user_license

get_user_license(user_name) -> dict

Get the user's license.

Parameters

  • user_name (str)
    The user whose license we are retrieving.

Returns

dict A user's license.

Raises

  • NotFound: Raised if if the user name not could not be found.

set_user_license

set_user_license(user_name, license_name)

Set the user's Edge license.

Parameters

  • user_name (str)
    The user whose license we are setting.
  • license_name (str)
    The name of the license.

Raises

  • NotFound: Raised if if the user name not could not be found.

remove_user_license

remove_user_license(user_name)

Removes the Edge license from a user.

Parameters

  • user_name (str)
    The user whose license we are removing.

Raises

  • NotFound: Raised if if the user name not could not be found.

list_user_server_roles

list_user_server_roles(user_name) -> list(str)

List the server roles for this user.

Parameters

  • user_name (str)
    The user whose roles we are listing.

Returns

list(str) A list of server roles.

Raises

  • NotFound: Raised if if the user name not could not be found.

update_user_server_roles

update_user_server_roles(user_name, roles)

Update the server roles for this user.

Parameters

  • user_name (str)
    The user whose roles we are updating.
  • roles list(str)
    The new set of server roles for this user.

Raises

  • NotFound: Raised if if the user name not could not be found.

get_server_licenses

get_server_licenses() -> dict

Gets the server's licenses.

Returns

dict A dictionary with server license data.


update_server_licenses

update_server_licenses(signed_jwt) -> dict

Updates the server's license.

Parameters

  • signed_jwt (str)
    The signed license data.

Returns

dict A dictionary with server license data.

Raises

  • LicenseError

get_server_license_logs

get_server_license_logs(start_time=None, end_time=None, event_type=None,
user_name=None, org_name=None) -> list(dict)

List the organization's license events.

Parameters

  • start_time (datetime)
    Optional; A starting datetime to search for events. If None, then events from the start of the day will be returned.
  • end_time (datetime)
    Optional; An ending datetime for events, inclusive. If None, then all events up until now will be returned.
  • event_type (str)
    Optional; An event type to search for.
  • user_name (str)
    Optional; A user_name to filter for associated events.
  • org_name (str)
    Optional; The organization to retrieve license events for. If None, then all events regardless of organization are returned.

Returns

list(dict) A list of dictionaries where each event is a licensing event associated with the given organization.


query_cloud_usage

query_cloud_usage(usage_type=None, org_name=None, classification=None,
service=None, billing_date=None, data_range=None, start_after_id=None,
page_size=1000) -> BillingCloudUsage

Query cloud usage for this organization.

Parameters

  • usage_type (str)
    Optional; A usage type to filter for.
  • org_name (str)
    Optional; An org name to filter for.
  • classification (str)
    Optional; A classification to filter for.
  • service (str)
    Optional; A service to filter for.
  • billing_date (date)
    Optional; A billing_date to filter for. Mutually exclusive with date_range.
  • date_range (edge.edge_billing.DateRange)
    Optional; A date range to filter for. Mutually exclusive with billing_date.
  • start_after_id (int)
    Optional; A cloud usage ID to return query results after, for pagination.
  • page_size (int)
    Optional; A page size for paginated results. Default is 1000. Minimum is 100 and maximum is 10000.

Returns

edge.edge_billing.BillingCloudUsage Cloud Usage result.


query_computed_costs

query_computed_costs(usage_type=None, org_name=None, classification=None, service=None,
category=None, billing_date=None, include_unallocated=False, date_range=None,
start_after_id=None, page_size=1000) -> BillingComputedCost

Query cloud usage for this organization.

Parameters

  • usage_type (str)
    Optional; A usage type to filter for.
  • org_name (str)
    Optional; An org name to filter for.
  • classification (str)
    Optional; A classification to filter for.
  • service (str)
    Optional; A service to filter for.
  • category (str)
    Optional; A category to filter for.
  • billing_date (date)
    Optional; A billing_date to filter for. Mutually exclusive with date_range.
  • include_unallocated (bool)
    Optional; Whether or not to include unallocated costs. This option may only be True if you are a server admin.
  • date_range (edge.edge_billing.DateRange)
    Optional; A date range to filter for. Mutually exclusive with billing_date.
  • start_after_id (int)
    Optional; A cloud usage ID to return query results after, for pagination.
  • page_size (int)
    Optional; A page size for paginated results. Default is 1000. Minimum is 100 and maximum is 10000.

Returns

edge.edge_billing.BillingComputedCost Computed Cost result.


reset_service_defaults

reset_service_defaults(org_name=None)

Resets the default service status for this organization. If a service is a "default" service, then its server_admin_approved and org_admin_approved flags will be set to True. Other services will not be modified.

Parameters

  • org_name (str)
    Optional; The organization name to reset service defaults for. If None, then it defaults to the organization for this EdgeSession.

set_org_service_approval

set_org_service_approval(service_name, org_admin_approved=None,
server_admin_approved=None, org_name=None)

Sets the approval of a service for this organization. A service is available for use if both the org_admin_approved and server_admin_approved flags are set to True. Only a server admin may set the server_admin_approved flag.

Parameters

  • service_name (str)
    The name of the service to set approval for.
  • org_admin_approved (bool)
    Optional; If not None, then the org_admin approval flag for this service will be set to this argument's value (True or False). Requires org admin.
  • server_admin_approved (bool)
    Optional; If not None, then the server_admin approval flag for this service will be set to this argument's value (True or False). Requires server admin.
  • org_name (str)
    Optional; The organization name to reset service defaults for. If None, then it defaults to the organization for this EdgeSession.

Raises

  • NotFound: Raised if the organization or service name does not exist.
  • Forbidden: Raised if the service is mandatory. Approval flags do not impact mandatory services.
  • NotAuthorized: Raised if a non-server admin tries to write the server_admin_approved flag.