Manages access-pass lifecycle operations against /v1/key-cards.
All functions accept an optional :client in opts. If not provided,
credentials are loaded from application config via Gestalt.
Examples
# Using explicit client
client = AccessGrid.Client.new(account_id: "...", api_secret: "...")
AccessGrid.AccessPasses.issue(%{card_template_id: "tmpl_123"}, client: client)
# Using config (client resolved automatically)
AccessGrid.AccessPasses.get("card_abc123")
Summary
Functions
Deletes a key card.
Retrieves a key card by ID.
Issues a new key card.
Lists key cards for a template.
Resumes a suspended key card.
Suspends a key card.
Unlinks a key card from its device.
Updates a key card.
Types
@type list_result() :: {:ok, [AccessGrid.AccessPass.t()]} | {:error, AccessGrid.Types.api_error_reason(), AccessGrid.HttpFailure.t() | [atom(), ...]}
@type result() :: {:ok, AccessGrid.AccessPass.t()} | {:error, AccessGrid.Types.api_error_reason(), AccessGrid.HttpFailure.t() | [atom(), ...]}
Functions
Deletes a key card.
Examples
AccessGrid.AccessPasses.delete("card_abc123")
Retrieves a key card by ID.
Examples
AccessGrid.AccessPasses.get("card_abc123")
Issues a new key card.
Parameters
params- Map with card parameters (card_template_id, full_name, etc.)opts- Options including:client
Examples
AccessGrid.AccessPasses.issue(%{
card_template_id: "tmpl_123",
full_name: "John Doe"
})
@spec list( String.t(), keyword() ) :: list_result()
Lists key cards for a template.
Options
:state- Filter by card state (e.g., "active", "suspended"):client- Client for authentication
Examples
AccessGrid.AccessPasses.list("tmpl_123")
AccessGrid.AccessPasses.list("tmpl_123", state: "active")
Resumes a suspended key card.
Examples
AccessGrid.AccessPasses.resume("card_abc123")
Suspends a key card.
Examples
AccessGrid.AccessPasses.suspend("card_abc123")
Unlinks a key card from its device.
Examples
AccessGrid.AccessPasses.unlink("card_abc123")
Updates a key card.
Examples
AccessGrid.AccessPasses.update("card_abc123", %{full_name: "New Name"})