Group resource operations.
Examples
iex> client = ExScimClient.Client.new("https://example.com/scim/v2", "token")
iex> {:ok, _response} = ExScimClient.Resources.Groups.create(client, %{displayName: "Administrators"})
Summary
Functions
Creates a new group.
Deletes a group.
Retrieves a group by ID.
Lists groups with optional filtering, sorting, and pagination.
Partially updates a group using patch operations.
Updates a group by replacing all attributes.
Functions
@spec create(ExScimClient.Client.t(), map()) :: {:ok, map()} | {:error, term()}
Creates a new group.
Parameters
client-ExScimClient.Clientstructgroup_data- Map containing group attributes
Examples
iex> client = ExScimClient.Client.new("https://example.com/scim/v2", "token")
iex> group_data = %{displayName: "Developers", members: []}
iex> {:ok, _response} = ExScimClient.Resources.Groups.create(client, group_data)
@spec delete(ExScimClient.Client.t(), String.t()) :: {:ok, map()} | {:error, term()}
Deletes a group.
Parameters
client-ExScimClient.Clientstructid- Group ID string
Examples
iex> client = ExScimClient.Client.new("https://example.com/scim/v2", "token")
iex> {:ok, _response} = ExScimClient.Resources.Groups.delete(client, "group-123")
@spec get(ExScimClient.Client.t(), String.t(), keyword()) :: {:ok, map()} | {:error, term()}
Retrieves a group by ID.
Parameters
client-ExScimClient.Clientstructid- Group ID stringopts- Options keyword list:attributes- List of attributes to include:excluded_attributes- List of attributes to exclude
Examples
iex> client = ExScimClient.Client.new("https://example.com/scim/v2", "token")
iex> {:ok, _group} = ExScimClient.Resources.Groups.get(client, "group-123")
iex> {:ok, _group} = ExScimClient.Resources.Groups.get(client, "group-123", attributes: ["displayName", "members"])
@spec list( ExScimClient.Client.t(), keyword() ) :: {:ok, map()} | {:error, term()}
Lists groups with optional filtering, sorting, and pagination.
Parameters
client-ExScimClient.Clientstructopts- Options keyword list:filter- Filter string orExScimClient.Filterstruct:sorting-ExScimClient.Sortingstruct:pagination-ExScimClient.Paginationstruct:attributes- List of attributes to include:excluded_attributes- List of attributes to exclude
Examples
iex> client = ExScimClient.Client.new("https://example.com/scim/v2", "token")
iex> {:ok, _response} = ExScimClient.Resources.Groups.list(client)
iex> {:ok, _response} = ExScimClient.Resources.Groups.list(client, filter: "displayName eq "Administrators"")
@spec patch(ExScimClient.Client.t(), String.t(), list()) :: {:ok, map()} | {:error, term()}
Partially updates a group using patch operations.
Parameters
client-ExScimClient.Clientstructid- Group ID stringoperations- List of patch operations
Examples
iex> client = ExScimClient.Client.new("https://example.com/scim/v2", "token")
iex> operations = [%{"op" => "replace", "path" => "displayName", "value" => "New Group Name"}]
iex> {:ok, _response} = ExScimClient.Resources.Groups.patch(client, "group-123", operations)
@spec update(ExScimClient.Client.t(), String.t(), map()) :: {:ok, map()} | {:error, term()}
Updates a group by replacing all attributes.
Parameters
client-ExScimClient.Clientstructid- Group ID stringgroup_data- Map containing updated group attributes
Examples
iex> client = ExScimClient.Client.new("https://example.com/scim/v2", "token")
iex> group_data = %{displayName: "Updated Group Name"}
iex> {:ok, _response} = ExScimClient.Resources.Groups.update(client, "group-123", group_data)