ExScim.Operations.Bulk (ex_scim v0.2.2)

Copy Markdown View Source

SCIM 2.0 Bulk Operations (RFC 7644 Section 3.7).

Summary

Types

A parsed bulk operation with its method, bulk ID, resource path, data, and optional version.

A bulk response operation containing the result status, optional location, version, and response body for each processed operation.

Functions

Process a bulk request with multiple operations.

Types

bulk_operation()

@type bulk_operation() :: %{
  method: binary(),
  bulkId: binary(),
  path: binary(),
  data: map() | nil,
  version: binary() | nil
}

A parsed bulk operation with its method, bulk ID, resource path, data, and optional version.

bulk_response_operation()

@type bulk_response_operation() :: %{
  method: binary(),
  bulkId: binary(),
  version: binary() | nil,
  location: binary() | nil,
  response: map() | nil,
  status: binary()
}

A bulk response operation containing the result status, optional location, version, and response body for each processed operation.

Functions

process_bulk_request(bulk_request, caller, opts \\ [])

Process a bulk request with multiple operations.

Parameters

  • bulk_request - Map containing SCIM bulk request
  • caller - The authenticated principal making the request
  • opts - Options including:
    • :fail_on_errors - Number of errors before stopping (default: 0 = continue)
    • :max_operations - Maximum operations allowed (default: 1000)
    • :max_payload_size - Maximum payload size in bytes (default: 1MB)
    • :base_url - Base URL for location headers

Returns

  • {:ok, bulk_response} - Bulk response with operation results
  • {:error, reason} - Error if bulk request is invalid