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:
BaseDomainDomain 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:
- 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:
- 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:
- async get_by_id(program_id: str, *, include_deleted: bool = False) GetProgramById[source]¶
Get a program by ID.
- Parameters:
- Returns:
The generated GraphQL response model.
- Return type:
- async get_by_proposal_reference(proposal_reference: str, *, include_deleted: bool = False) GetProgramByProposalReference[source]¶
Get a program by proposal reference.
- Parameters:
- Returns:
The generated GraphQL response model.
- Return type:
- async get_by_reference(program_reference: str, *, include_deleted: bool = False) GetProgramByReference[source]¶
Get a program by program reference.
- Parameters:
- Returns:
The generated GraphQL response model.
- Return type:
- 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:
- 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:
- 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: