XmtpElixirSdk.Groups (xmtp_elixir_sdk v0.1.2)

Copy Markdown

Group membership, roles, permissions, and metadata.

Use this module once you already have a group conversation and need to manage it.

Common tasks:

  • change group name, image, description, or app data
  • inspect or update group permissions
  • add or remove members
  • promote or demote admins and super admins
  • inspect group debug information and timestamps

Summary

Functions

add_admin(conversation, inbox_id)

add_members(conversation, inbox_ids)

@spec add_members(XmtpElixirSdk.Conversation.t(), [String.t()]) ::
  {:ok, XmtpElixirSdk.Conversation.t()} | {:error, XmtpElixirSdk.Error.t()}

add_members_by_identifiers(conversation, identifiers)

@spec add_members_by_identifiers(XmtpElixirSdk.Conversation.t(), [
  XmtpElixirSdk.Types.Identifier.t()
]) ::
  {:ok, XmtpElixirSdk.Conversation.t()} | {:error, XmtpElixirSdk.Error.t()}

add_super_admin(conversation, inbox_id)

@spec add_super_admin(XmtpElixirSdk.Conversation.t(), String.t()) ::
  {:ok, XmtpElixirSdk.Conversation.t()} | {:error, XmtpElixirSdk.Error.t()}

debug_info(conversation)

hmac_keys(conversation)

is_admin(conversation, inbox_id)

@spec is_admin(XmtpElixirSdk.Conversation.t(), String.t()) ::
  {:ok, boolean()} | {:error, XmtpElixirSdk.Error.t()}

is_message_disappearing_enabled(conversation)

@spec is_message_disappearing_enabled(XmtpElixirSdk.Conversation.t()) ::
  {:ok, boolean()} | {:error, XmtpElixirSdk.Error.t()}

is_pending_removal(conversation)

@spec is_pending_removal(XmtpElixirSdk.Conversation.t()) ::
  {:ok, boolean()} | {:error, XmtpElixirSdk.Error.t()}

is_super_admin(conversation, inbox_id)

@spec is_super_admin(XmtpElixirSdk.Conversation.t(), String.t()) ::
  {:ok, boolean()} | {:error, XmtpElixirSdk.Error.t()}

last_read_times(conversation)

@spec last_read_times(XmtpElixirSdk.Conversation.t()) ::
  {:ok, [XmtpElixirSdk.Types.LastReadTime.t()]}
  | {:error, XmtpElixirSdk.Error.t()}

list_admins(conversation)

@spec list_admins(XmtpElixirSdk.Conversation.t()) ::
  {:ok, [String.t()]} | {:error, XmtpElixirSdk.Error.t()}

list_super_admins(conversation)

@spec list_super_admins(XmtpElixirSdk.Conversation.t()) ::
  {:ok, [String.t()]} | {:error, XmtpElixirSdk.Error.t()}

message_disappearing_settings(conversation)

@spec message_disappearing_settings(XmtpElixirSdk.Conversation.t()) ::
  {:ok, XmtpElixirSdk.Types.DisappearingSettings.t() | nil}
  | {:error, XmtpElixirSdk.Error.t()}

paused_for_version(conversation)

@spec paused_for_version(XmtpElixirSdk.Conversation.t()) ::
  {:ok, String.t() | nil} | {:error, XmtpElixirSdk.Error.t()}

permissions(conversation)

remove_admin(conversation, inbox_id)

remove_members(conversation, inbox_ids)

@spec remove_members(XmtpElixirSdk.Conversation.t(), [String.t()]) ::
  {:ok, XmtpElixirSdk.Conversation.t()} | {:error, XmtpElixirSdk.Error.t()}

remove_members_by_identifiers(conversation, identifiers)

@spec remove_members_by_identifiers(XmtpElixirSdk.Conversation.t(), [
  XmtpElixirSdk.Types.Identifier.t()
]) ::
  {:ok, XmtpElixirSdk.Conversation.t()} | {:error, XmtpElixirSdk.Error.t()}

remove_message_disappearing_settings(conversation)

@spec remove_message_disappearing_settings(XmtpElixirSdk.Conversation.t()) ::
  {:ok, XmtpElixirSdk.Conversation.t()} | {:error, XmtpElixirSdk.Error.t()}

remove_super_admin(conversation, inbox_id)

@spec remove_super_admin(XmtpElixirSdk.Conversation.t(), String.t()) ::
  {:ok, XmtpElixirSdk.Conversation.t()} | {:error, XmtpElixirSdk.Error.t()}

request_removal(conversation)

@spec request_removal(XmtpElixirSdk.Conversation.t()) ::
  {:ok, XmtpElixirSdk.Conversation.t()} | {:error, XmtpElixirSdk.Error.t()}

sync(conversation)

update_app_data(conversation, app_data)

@spec update_app_data(XmtpElixirSdk.Conversation.t(), String.t()) ::
  {:ok, XmtpElixirSdk.Conversation.t()} | {:error, XmtpElixirSdk.Error.t()}

update_description(conversation, description)

@spec update_description(XmtpElixirSdk.Conversation.t(), String.t()) ::
  {:ok, XmtpElixirSdk.Conversation.t()} | {:error, XmtpElixirSdk.Error.t()}

update_image_url(conversation, image_url)

@spec update_image_url(XmtpElixirSdk.Conversation.t(), String.t()) ::
  {:ok, XmtpElixirSdk.Conversation.t()} | {:error, XmtpElixirSdk.Error.t()}

update_message_disappearing_settings(conversation, from_ns, in_ns)

@spec update_message_disappearing_settings(
  XmtpElixirSdk.Conversation.t(),
  non_neg_integer(),
  non_neg_integer()
) :: {:ok, XmtpElixirSdk.Conversation.t()} | {:error, XmtpElixirSdk.Error.t()}

update_name(conversation, name)

update_permission(conversation, update_type, policy, metadata_field \\ nil)