Program

The program domain provides access to program queries, mutations, and subscriptions.

Use program to create, retrieve, update, delete, restore, and subscribe to programs.

Quick Example

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

Creating Programs

Create a program:

result = await client.program.create(
   properties=properties,
   include_deleted=False,
)

This method returns a generated GraphQL response model.

Retrieving Programs

Get a program by ID:

result = await client.program.get_by_id("p-123")

Get a program by program reference:

result = await client.program.get_by_reference("GN-2026A-Q-1")

Get a program by proposal reference:

result = await client.program.get_by_proposal_reference("GN-2026A-Q-1")

Get multiple programs:

result = await client.program.get_all(
   include_deleted=False,
   where=where_input,
   limit=50,
)

Updating Programs

Update a single program by ID:

result = await client.program.update_by_id(
   "p-123",
   properties=properties,
   include_deleted=False,
)

Update multiple programs:

result = await client.program.update_all(
   properties=properties,
   where=where_input,
   include_deleted=False,
)

Delete and Restore

Delete a program by ID:

result = await client.program.delete_by_id("p-123")

Restore a program by ID:

result = await client.program.restore_by_id("p-123")

Subscriptions

Subscribe to program edit events:

async for event in client.program.subscribe_to_edits():
   print(event)

Restrict the subscription to a single program:

async for event in client.program.subscribe_to_edits(
   program_id="p-123"
):
   print(event)

Notes

All program operations use GraphQL and return generated response models.

Subscription methods return asynchronous iterators.

API Reference

class gpp_client.domains.program.ProgramDomain(*, graphql: GraphQLClient, rest: RESTClient, settings: GPPSettings)[source]

Bases: BaseDomain

Domain for retrieving and managing program information.

async create(*, include_deleted: bool = False, properties: ProgramPropertiesInput | None = None) CreateProgram[source]

Create a program.

Parameters:
  • include_deleted (bool, default=False) – Whether related deleted records should be included in the response.

  • properties (ProgramPropertiesInput | None, optional) – The program properties to create.

Returns:

The generated GraphQL response model.

Return type:

CreateProgram

async delete_by_id(program_id: str) DeleteProgramById[source]

Delete a program by ID.

Parameters:

program_id (str) – The program ID.

Returns:

The generated GraphQL response model.

Return type:

DeleteProgramById

async get_all(*, include_deleted: bool = False, where: WhereProgram | None = None, offset: str | None = None, limit: int | None = None) GetPrograms[source]

Get programs matching the provided filters.

Parameters:
  • include_deleted (bool, default=False) – Whether deleted programs should be included.

  • where (WhereProgram | None, optional) – Optional program filter.

  • offset (str | None, optional) – Optional pagination offset.

  • limit (int | None, optional) – Optional page size limit.

Returns:

The generated GraphQL response model.

Return type:

GetPrograms

async get_by_id(program_id: str, *, include_deleted: bool = False) GetProgramById[source]

Get a program by ID.

Parameters:
  • program_id (str) – The program ID.

  • include_deleted (bool, default=False) – Whether deleted related records should be included.

Returns:

The generated GraphQL response model.

Return type:

GetProgramById

async get_by_proposal_reference(proposal_reference: str, *, include_deleted: bool = False) GetProgramByProposalReference[source]

Get a program by proposal reference.

Parameters:
  • proposal_reference (str) – The proposal reference label.

  • include_deleted (bool, default=False) – Whether deleted related records should be included.

Returns:

The generated GraphQL response model.

Return type:

GetProgramByProposalReference

async get_by_reference(program_reference: str, *, include_deleted: bool = False) GetProgramByReference[source]

Get a program by program reference.

Parameters:
  • program_reference (str) – The program reference label.

  • include_deleted (bool, default=False) – Whether deleted related records should be included.

Returns:

The generated GraphQL response model.

Return type:

GetProgramByReference

async restore_by_id(program_id: str) RestoreProgramById[source]

Restore a program by ID.

Parameters:

program_id (str) – The program ID.

Returns:

The generated GraphQL response model.

Return type:

RestoreProgramById

async subscribe_to_edits(*, program_id: str | None = None) AsyncIterator[ProgramEdit][source]

Subscribe to program edit events.

Parameters:

program_id (str | None, optional) – Restrict the subscription to a single program ID.

Yields:

ProgramEdit – Program edit events.

async update_all(*, properties: ProgramPropertiesInput, include_deleted: bool = False, where: WhereProgram | None = None, limit: int | None = None) UpdatePrograms[source]

Update programs using a bulk update.

Parameters:
  • properties (ProgramPropertiesInput) – The properties to update.

  • include_deleted (bool, default=False) – Whether deleted programs should be included in matching/updating.

  • where (WhereProgram | None, optional) – Optional filter for matching programs.

  • limit (int | None, optional) – Optional maximum number of programs to update.

Returns:

The generated GraphQL response model.

Return type:

UpdatePrograms

async update_by_id(program_id: str, *, properties: ProgramPropertiesInput, include_deleted: bool = False) UpdateProgramById[source]

Update a program by ID.

Parameters:
  • program_id (str) – The program ID.

  • properties (ProgramPropertiesInput) – The properties to update.

  • include_deleted (bool, default=False) – Whether deleted programs should be included.

Returns:

The generated GraphQL response model.

Return type:

UpdateProgramById