Domains

Domains provide the primary resource-oriented interface for interacting with GPP.

Each domain groups operations for a specific area of the API, such as programs, observations, targets, attachments, or workflow state.

Domains are accessed from GPPClient:

from gpp_client import GPPClient

async with GPPClient() as client:
   program = await client.program.get_by_id("p-123")
   observation = await client.observation.get_by_id("o-456")

In most cases, domains should be preferred over direct use of the underlying GraphQL or REST clients.

Design

Domains provide a stable, resource-oriented interface over generated GraphQL operations and supporting REST endpoints.

Depending on the resource, a domain may use:

  • GraphQL only

  • REST only

  • Both GraphQL and REST

Tip

Use domains for routine operations. Access the underlying clients only for advanced workflows.

Available Domains

The following domains are available from GPPClient:

Domain Guides