Program Note¶
Manager for interacting with program note resources.
- class gpp_client.managers.program_note.ProgramNoteManager(client: GPPClient)[source]¶
Bases:
BaseManagerManager for interacting with program note resources.
- async create(*, properties: ProgramNotePropertiesInput | None = None, from_json: str | Path | dict[str, Any] | None = None, program_id: str | None = None, proposal_reference: str | None = None, program_reference: str | None = None) dict[str, Any][source]¶
Create a new program note.
- Parameters:
properties (ProgramNotePropertiesInput, optional) – Full program note definition to apply. This or
from_jsonmust be supplied.from_json (str | Path | dict[str, Any], optional) – JSON representation of the properties. May be a path-like object (
strorPath) to a JSON file, or adictalready containing the JSON data.program_id (str, optional) – ID of the program to associate with.
proposal_reference (str, optional) – Proposal reference, used if program_id is not provided.
program_reference (str, optional) – Program label reference, used if program_id is not provided.
- Returns:
The created program note and its data.
- Return type:
- Raises:
GPPValidationError – If a validation error occurs.
GPPClientError – If an unexpected error occurs unpacking the response.
Notes
Exactly one of
propertiesorfrom_jsonmust be supplied. Supplying both or neither raisesGPPValidationError.
- async delete_by_id(program_note_id: str) dict[str, Any][source]¶
Soft-delete a program note by ID.
- Parameters:
program_note_id (str) – The ID of the note to delete.
- Returns:
The deleted note.
- Return type:
- Raises:
GPPValidationError – If a validation error occurs.
GPPClientError – If an unexpected error occurs unpacking the response.
- async get_all(*, include_deleted: bool = False, where: WhereProgramNote | None = None, offset: int | None = None, limit: int | None = None) dict[str, Any][source]¶
Fetch all program notes with optional filters.
- Parameters:
include_deleted (bool, default=False) – Whether to include soft-deleted entries.
where (WhereProgramNote, optional) – Filters to apply to the query.
offset (int, optional) – Cursor-based pagination offset.
limit (int, optional) – Max number of entries to return.
- Returns:
A dictionary with matches and hasMore keys.
- Return type:
- Raises:
GPPClientError – If an unexpected error occurs unpacking the response.
- async get_by_id(program_note_id: str, *, include_deleted: bool = False) dict[str, Any][source]¶
Fetch a program note by its ID.
- Parameters:
- Returns:
The program note data.
- Return type:
- Raises:
GPPClientError – If an unexpected error occurs unpacking the response.
- get_result(result: dict[str, Any] | None, operation_name: str | None = None) dict[str, Any]¶
Extract the payload for a given GraphQL operation.
- Parameters:
- Returns:
The extracted payload for the specified operation.
- Return type:
- Raises:
GPPClientError – If the result is empty or invalid, or if the specified operation name is not found in the result.
- get_single_result(payload: dict[str, Any], key: str) dict[str, Any]¶
Extract exactly one item from a list-valued field in a GraphQL payload.
- Parameters:
- Returns:
The single item extracted from the field.
- Return type:
- Raises:
GPPClientError – If the specified field is missing from the payload, is not a list, or does not contain exactly one item.
- load_properties(*, properties: Any | None, from_json: str | Path | dict[str, Any] | None, cls: type[T]) T¶
Return a validated properties object from exactly one data source.
- Parameters:
- Returns:
Instance of
clsrepresenting the validated properties.- Return type:
T
- Raises:
GPPValidationError – If validation fails or an error occurs loading the properties.
- raise_error(exc_class: type[GPPError], exc: Exception, *, include_traceback: bool = False) NoReturn¶
Raise a structured exception with contextual information.
- async raise_for_status(response, *, ok_statuses: set[int], default_message: str = 'Request failed') None¶
Raise an exception if the HTTP response status is not OK.
- Parameters:
- Raises:
GPPResponseError – If the response status is not in
ok_statuses.
- resolve_content(*, file_path: str | Path | None, content: bytes | None) bytes¶
Resolve upload content bytes from exactly one source.
- Parameters:
- Returns:
The resolved content bytes.
- Return type:
- Raises:
GPPValidationError – If both or neither of
file_pathandcontentare provided, or iffile_pathis invalid.GPPClientError – If reading the file fails due to an unexpected I/O error.
- async restore_by_id(program_note_id: str) dict[str, Any][source]¶
Restore a soft-deleted program note by ID.
- Parameters:
program_note_id (str) – The ID of the note to restore.
- Returns:
The restored note.
- Return type:
- Raises:
GPPValidationError – If a validation error occurs.
GPPClientError – If an unexpected error occurs unpacking the response.
- async update_all(*, properties: ProgramNotePropertiesInput | None = None, from_json: str | Path | dict[str, Any] | None = None, where: WhereProgramNote | None = None, limit: int | None = None, include_deleted: bool = False) dict[str, Any][source]¶
Update one or more program notes.
- Parameters:
properties (ProgramNotePropertiesInput, optional) – Properties to apply to the matched program notes. This or
from_jsonmust be supplied.from_json (str | Path | dict[str, Any], optional) – JSON representation of the properties. May be a path-like object (
strorPath) to a JSON file, or adictalready containing the JSON data.where (WhereProgramNote, optional) – Filtering criteria to match program notes to update.
limit (int, optional) – Maximum number of results to update.
include_deleted (bool, default=False) – Whether to include soft-deleted entries in the match.
- Returns:
A dictionary of updated results and data.
- Return type:
- Raises:
GPPValidationError – If a validation error occurs.
GPPClientError – If an unexpected error occurs unpacking the response.
Notes
Exactly one of
propertiesorfrom_jsonmust be supplied. Supplying both or neither raisesGPPValidationError.
- async update_by_id(program_note_id: str, *, properties: ProgramNotePropertiesInput | None = None, from_json: str | Path | dict[str, Any] | None = None, include_deleted: bool = False) dict[str, Any][source]¶
Update a single program note by its ID.
- Parameters:
program_note_id (str) – Unique identifier of the program note.
properties (ProgramNotePropertiesInput, optional) – Properties to update. This or
from_jsonmust be supplied.from_json (str | Path | dict[str, Any], optional) – JSON representation of the properties. May be a path-like object (
strorPath) to a JSON file, or adictalready containing the JSON data.include_deleted (bool, default=False) – Whether to include soft-deleted entries.
- Returns:
The updated program note.
- Return type:
- Raises:
GPPValidationError – If a validation error occurs.
GPPClientError – If an unexpected error occurs unpacking the response.
Notes
Exactly one of
propertiesorfrom_jsonmust be supplied. Supplying both or neither raisesGPPValidationError.
- validate_single_identifier(**kwargs) None¶
Validate that exactly one identifier is provided.
This helper checks that exactly one of the provided keyword arguments is non-None. It raises a ValueError otherwise.
- Parameters:
**kwargs (dict[str, Optional[str]]) – A dictionary of identifier keyword arguments to validate.
- Raises:
GPPValidationError – If none or more than one identifiers are provided.