vendor_connectors.google.workspace
Google Workspace (Admin Directory) operations.
This module provides operations for managing Google Workspace users and groups through the Admin Directory API.
Module Contents
Section titled “Module Contents”Classes
Section titled “Classes”GoogleWorkspaceMixin | Mixin providing Google Workspace operations. |
|---|
class vendor_connectors.google.workspace.GoogleWorkspaceMixin
Section titled “class vendor_connectors.google.workspace.GoogleWorkspaceMixin”Mixin providing Google Workspace operations.
This mixin requires the base GoogleConnector class to provide:
- get_admin_directory_service()
- get_service()
- logger
list_users(domain: str | None = None, max_results: int = 500, unhump_users: bool = False, subject: str | None = None) → list[dict[str, Any]]
Section titled “list_users(domain: str | None = None, max_results: int = 500, unhump_users: bool = False, subject: str | None = None) → list[dict[str, Any]]”List users from Google Workspace.
Args: domain: Optional domain to filter users. max_results: Maximum results per page. Defaults to 500. unhump_users: Convert keys to snake_case. Defaults to False. subject: Email to impersonate for domain-wide delegation.
Returns: List of user dictionaries.
get_user(user_key: str, subject: str | None = None) → dict[str, Any] | None
Section titled “get_user(user_key: str, subject: str | None = None) → dict[str, Any] | None”Get a specific user from Google Workspace.
Args: user_key: Email or unique ID of the user. subject: Email to impersonate for domain-wide delegation.
Returns: User dictionary or None if not found.
create_user(primary_email: str, given_name: str, family_name: str, password: str | None = None, change_password_at_next_login: bool = True, org_unit_path: str = ’/’, subject: str | None = None, **additional_fields) → dict[str, Any]
Section titled “create_user(primary_email: str, given_name: str, family_name: str, password: str | None = None, change_password_at_next_login: bool = True, org_unit_path: str = ’/’, subject: str | None = None, **additional_fields) → dict[str, Any]”Create a user in Google Workspace.
Args: primary_email: Primary email address. given_name: First name. family_name: Last name. password: Initial password. Generated if not provided. change_password_at_next_login: Force password change. Defaults to True. org_unit_path: Organizational unit path. Defaults to ‘/’. subject: Email to impersonate for domain-wide delegation. **additional_fields: Additional user fields.
Returns: Created user dictionary.
update_user(user_key: str, subject: str | None = None, **fields) → dict[str, Any]
Section titled “update_user(user_key: str, subject: str | None = None, **fields) → dict[str, Any]”Update a user in Google Workspace.
Args: user_key: Email or unique ID of the user. subject: Email to impersonate for domain-wide delegation. **fields: Fields to update.
Returns: Updated user dictionary.
delete_user(user_key: str, subject: str | None = None) → None
Section titled “delete_user(user_key: str, subject: str | None = None) → None”Delete a user from Google Workspace.
Args: user_key: Email or unique ID of the user. subject: Email to impersonate for domain-wide delegation.
list_groups(domain: str | None = None, max_results: int = 200, unhump_groups: bool = False, subject: str | None = None) → list[dict[str, Any]]
Section titled “list_groups(domain: str | None = None, max_results: int = 200, unhump_groups: bool = False, subject: str | None = None) → list[dict[str, Any]]”List groups from Google Workspace.
Args: domain: Optional domain to filter groups. max_results: Maximum results per page. Defaults to 200. unhump_groups: Convert keys to snake_case. Defaults to False. subject: Email to impersonate for domain-wide delegation.
Returns: List of group dictionaries.
get_group(group_key: str, subject: str | None = None) → dict[str, Any] | None
Section titled “get_group(group_key: str, subject: str | None = None) → dict[str, Any] | None”Get a specific group from Google Workspace.
Args: group_key: Email or unique ID of the group. subject: Email to impersonate for domain-wide delegation.
Returns: Group dictionary or None if not found.
create_group(email: str, name: str, description: str = ”, subject: str | None = None) → dict[str, Any]
Section titled “create_group(email: str, name: str, description: str = ”, subject: str | None = None) → dict[str, Any]”Create a group in Google Workspace.
Args: email: Group email address. name: Display name. description: Group description. subject: Email to impersonate for domain-wide delegation.
Returns: Created group dictionary.
delete_group(group_key: str, subject: str | None = None) → None
Section titled “delete_group(group_key: str, subject: str | None = None) → None”Delete a group from Google Workspace.
Args: group_key: Email or unique ID of the group. subject: Email to impersonate for domain-wide delegation.
list_group_members(group_key: str, roles: list[str] | None = None, unhump_members: bool = False, subject: str | None = None) → list[dict[str, Any]]
Section titled “list_group_members(group_key: str, roles: list[str] | None = None, unhump_members: bool = False, subject: str | None = None) → list[dict[str, Any]]”List members of a Google Workspace group.
Args: group_key: Email or unique ID of the group. roles: Filter by roles (OWNER, MANAGER, MEMBER). Defaults to all. unhump_members: Convert keys to snake_case. Defaults to False. subject: Email to impersonate for domain-wide delegation.
Returns: List of member dictionaries.
add_group_member(group_key: str, email: str, role: str = ‘MEMBER’, subject: str | None = None) → dict[str, Any]
Section titled “add_group_member(group_key: str, email: str, role: str = ‘MEMBER’, subject: str | None = None) → dict[str, Any]”Add a member to a Google Workspace group.
Args: group_key: Email or unique ID of the group. email: Email of the member to add. role: Member role (OWNER, MANAGER, MEMBER). Defaults to MEMBER. subject: Email to impersonate for domain-wide delegation.
Returns: Created member dictionary.
remove_group_member(group_key: str, member_key: str, subject: str | None = None) → None
Section titled “remove_group_member(group_key: str, member_key: str, subject: str | None = None) → None”Remove a member from a Google Workspace group.
Args: group_key: Email or unique ID of the group. member_key: Email or unique ID of the member. subject: Email to impersonate for domain-wide delegation.
list_org_units(org_unit_path: str = ’/’, org_unit_type: str = ‘all’, subject: str | None = None) → list[dict[str, Any]]
Section titled “list_org_units(org_unit_path: str = ’/’, org_unit_type: str = ‘all’, subject: str | None = None) → list[dict[str, Any]]”List organizational units in Google Workspace.
Args: org_unit_path: Parent org unit path. Defaults to ‘/’. org_unit_type: Type filter (all, children, allIncludingParent). subject: Email to impersonate for domain-wide delegation.
Returns: List of org unit dictionaries.
create_or_update_user(primary_email: str, given_name: str, family_name: str, password: str | None = None, update_if_exists: bool = False, change_password_at_next_login: bool = True, org_unit_path: str = ’/’, subject: str | None = None, **additional_fields) → dict[str, Any]
Section titled “create_or_update_user(primary_email: str, given_name: str, family_name: str, password: str | None = None, update_if_exists: bool = False, change_password_at_next_login: bool = True, org_unit_path: str = ’/’, subject: str | None = None, **additional_fields) → dict[str, Any]”Create or update a user in Google Workspace.
This method provides terraform-style idempotent user management. If update_if_exists is True and the user exists, it updates instead of failing.
Args: primary_email: Primary email address. given_name: First name. family_name: Last name. password: Initial password. Generated if not provided. update_if_exists: If True, update existing user instead of failing. change_password_at_next_login: Force password change. Defaults to True. org_unit_path: Organizational unit path. Defaults to ‘/’. subject: Email to impersonate for domain-wide delegation. **additional_fields: Additional user fields.
Returns: Created or updated user dictionary.
create_or_update_group(email: str, name: str, description: str = ”, update_if_exists: bool = False, subject: str | None = None, **additional_fields) → dict[str, Any]
Section titled “create_or_update_group(email: str, name: str, description: str = ”, update_if_exists: bool = False, subject: str | None = None, **additional_fields) → dict[str, Any]”Create or update a group in Google Workspace.
This method provides terraform-style idempotent group management. If update_if_exists is True and the group exists, it updates instead of failing.
Args: email: Group email address. name: Display name. description: Group description. update_if_exists: If True, update existing group instead of failing. subject: Email to impersonate for domain-wide delegation. **additional_fields: Additional group fields.
Returns: Created or updated group dictionary.
list_available_licenses(customer_id: str = ‘my_customer’, product_id: str | None = None, subject: str | None = None) → list[dict[str, Any]]
Section titled “list_available_licenses(customer_id: str = ‘my_customer’, product_id: str | None = None, subject: str | None = None) → list[dict[str, Any]]”List available Google Workspace licenses.
Args: customer_id: Customer ID. Defaults to ‘my_customer’. product_id: Filter by product (e.g., ‘Google-Apps’, ‘Google-Vault’). subject: Email to impersonate for domain-wide delegation.
Returns: List of license dictionaries.
get_license_summary(customer_id: str = ‘my_customer’, subject: str | None = None) → dict[str, dict[str, int]]
Section titled “get_license_summary(customer_id: str = ‘my_customer’, subject: str | None = None) → dict[str, dict[str, int]]”Get a summary of license usage by product.
Args: customer_id: Customer ID. Defaults to ‘my_customer’. subject: Email to impersonate for domain-wide delegation.
Returns: Dictionary mapping product IDs to usage counts.