gpp-client 26.5.0.dev2__tar.gz → 26.5.1.dev1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/PKG-INFO +1 -1
  2. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/client.py +2 -0
  3. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/domains/scheduler.py +19 -1
  4. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/__init__.py +20 -0
  5. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/client.py +41 -0
  6. gpp_client-26.5.1.dev1/src/gpp_client/generated/scheduler_observations_updates.py +76 -0
  7. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/.gitignore +0 -0
  8. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/LICENSE +0 -0
  9. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/README.md +0 -0
  10. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/graphql/README.md +0 -0
  11. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/pyproject.toml +0 -0
  12. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/__init__.py +0 -0
  13. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/cli/__init__.py +0 -0
  14. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/cli/cli.py +0 -0
  15. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/cli/commands/__init__.py +0 -0
  16. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/cli/commands/attachment.py +0 -0
  17. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/cli/commands/goats.py +0 -0
  18. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/cli/commands/observation.py +0 -0
  19. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/cli/commands/program.py +0 -0
  20. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/cli/commands/scheduler.py +0 -0
  21. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/cli/commands/site_status.py +0 -0
  22. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/cli/commands/target.py +0 -0
  23. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/cli/commands/workflow_state.py +0 -0
  24. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/cli/console.py +0 -0
  25. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/cli/output.py +0 -0
  26. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/cli/utils.py +0 -0
  27. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/constants.py +0 -0
  28. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/domains/__init__.py +0 -0
  29. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/domains/atom.py +0 -0
  30. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/domains/attachment.py +0 -0
  31. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/domains/base.py +0 -0
  32. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/domains/goats.py +0 -0
  33. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/domains/observation.py +0 -0
  34. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/domains/program.py +0 -0
  35. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/domains/site_status.py +0 -0
  36. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/domains/target.py +0 -0
  37. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/domains/workflow_state.py +0 -0
  38. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/environment.py +0 -0
  39. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/exceptions.py +0 -0
  40. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/async_base_client.py +0 -0
  41. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/base_model.py +0 -0
  42. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/base_operation.py +0 -0
  43. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/clone_observation.py +0 -0
  44. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/clone_target.py +0 -0
  45. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/create_call_for_proposals.py +0 -0
  46. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/create_observation.py +0 -0
  47. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/create_program.py +0 -0
  48. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/create_target_by_program_id.py +0 -0
  49. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/create_target_by_program_reference.py +0 -0
  50. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/create_target_by_proposal_reference.py +0 -0
  51. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/custom_fields.py +0 -0
  52. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/custom_mutations.py +0 -0
  53. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/custom_queries.py +0 -0
  54. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/custom_typing_fields.py +0 -0
  55. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/delete_call_for_proposals_by_id.py +0 -0
  56. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/delete_observation_by_id.py +0 -0
  57. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/delete_observation_by_reference.py +0 -0
  58. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/delete_program_by_id.py +0 -0
  59. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/delete_target_by_id.py +0 -0
  60. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/enums.py +0 -0
  61. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/exceptions.py +0 -0
  62. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/fragments.py +0 -0
  63. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_call_for_proposals.py +0 -0
  64. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_calls_for_proposals.py +0 -0
  65. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_goats_observations.py +0 -0
  66. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_goats_programs.py +0 -0
  67. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_observation.py +0 -0
  68. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_observation_attachments_by_id.py +0 -0
  69. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_observation_attachments_by_reference.py +0 -0
  70. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_observation_workflow_state_by_id.py +0 -0
  71. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_observation_workflow_state_by_reference.py +0 -0
  72. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_observations.py +0 -0
  73. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_program_attachments_by_id.py +0 -0
  74. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_program_attachments_by_proposal_reference.py +0 -0
  75. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_program_attachments_by_reference.py +0 -0
  76. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_program_by_id.py +0 -0
  77. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_program_by_proposal_reference.py +0 -0
  78. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_program_by_reference.py +0 -0
  79. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_programs.py +0 -0
  80. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_scheduler_all_programs_id.py +0 -0
  81. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_scheduler_programs.py +0 -0
  82. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_target_by_id.py +0 -0
  83. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/get_targets.py +0 -0
  84. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/input_types.py +0 -0
  85. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/obs_calculation_update.py +0 -0
  86. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/observation_edit.py +0 -0
  87. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/package_environment.py +0 -0
  88. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/ping.py +0 -0
  89. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/program_edit.py +0 -0
  90. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/restore_call_for_proposals_by_id.py +0 -0
  91. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/restore_observation_by_id.py +0 -0
  92. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/restore_observation_by_reference.py +0 -0
  93. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/restore_program_by_id.py +0 -0
  94. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/restore_target_by_id.py +0 -0
  95. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/set_observation_workflow_state.py +0 -0
  96. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/target_edit.py +0 -0
  97. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/update_call_for_proposals_by_id.py +0 -0
  98. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/update_calls_for_proposals.py +0 -0
  99. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/update_observation_by_id.py +0 -0
  100. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/update_observation_by_reference.py +0 -0
  101. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/update_observations.py +0 -0
  102. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/update_program_by_id.py +0 -0
  103. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/update_programs.py +0 -0
  104. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/update_target_by_id.py +0 -0
  105. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/generated/update_targets.py +0 -0
  106. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/logging_utils.py +0 -0
  107. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/rest/__init__.py +0 -0
  108. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/rest/client.py +0 -0
  109. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/rest/utils.py +0 -0
  110. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/settings.py +0 -0
  111. {gpp_client-26.5.0.dev2 → gpp_client-26.5.1.dev1}/src/gpp_client/urls.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gpp-client
3
- Version: 26.5.0.dev2
3
+ Version: 26.5.1.dev1
4
4
  Summary: Gemini Program Platform client.
5
5
  Project-URL: Homepage, https://github.com/gemini-hlsw/gpp-client
6
6
  Project-URL: Source, https://github.com/gemini-hlsw/gpp-client
@@ -142,6 +142,8 @@ class GPPClient:
142
142
  url=graphql_url,
143
143
  headers=headers,
144
144
  ws_url=ws_url,
145
+ ws_headers=headers,
146
+ ws_connection_init_payload=headers,
145
147
  )
146
148
 
147
149
  def _build_rest_client(self) -> RESTClient:
@@ -5,9 +5,10 @@ Module for retrieving scheduler information.
5
5
  __all__ = ["SchedulerDomain"]
6
6
 
7
7
  from datetime import datetime
8
- from typing import Any
8
+ from typing import Any, AsyncIterator
9
9
 
10
10
  from gpp_client.domains.base import BaseDomain
11
+ from gpp_client.generated import SchedulerObservationsUpdates
11
12
  from gpp_client.generated.get_scheduler_all_programs_id import (
12
13
  GetSchedulerAllProgramsId,
13
14
  )
@@ -278,3 +279,20 @@ class SchedulerDomain(BaseDomain):
278
279
  today = datetime.today().date().isoformat() if date is None else date
279
280
  response = await self.get_program_ids(today=today)
280
281
  return [(p.reference.label, p.id) for p in response.programs.matches]
282
+
283
+ async def subscribe_to_calculation_updates(
284
+ self,
285
+ ) -> AsyncIterator[SchedulerObservationsUpdates]:
286
+ """
287
+ Subscribe to observation calculation update events with the
288
+ execution flag set to true so only executed events are sent.
289
+
290
+ Yields
291
+ ------
292
+ SchedulerObservationsUpdates
293
+ Observation calculation update events.
294
+ """
295
+ async for event in self._graphql.scheduler_observations_updates(
296
+ executable_only=True
297
+ ):
298
+ yield event
@@ -1127,6 +1127,17 @@ from .restore_target_by_id import (
1127
1127
  RestoreTargetByIdUpdateTargetsTargets,
1128
1128
  RestoreTargetByIdUpdateTargetsTargetsProgram,
1129
1129
  )
1130
+ from .scheduler_observations_updates import (
1131
+ SchedulerObservationsUpdates,
1132
+ SchedulerObservationsUpdatesObscalcUpdate,
1133
+ SchedulerObservationsUpdatesObscalcUpdateValue,
1134
+ SchedulerObservationsUpdatesObscalcUpdateValueExecution,
1135
+ SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisits,
1136
+ SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisitsMatches,
1137
+ SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisitsMatchesAtomRecords,
1138
+ SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisitsMatchesAtomRecordsMatches,
1139
+ SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisitsMatchesObservation,
1140
+ )
1130
1141
  from .set_observation_workflow_state import (
1131
1142
  SetObservationWorkflowState,
1132
1143
  SetObservationWorkflowStateSetObservationWorkflowState,
@@ -2045,6 +2056,15 @@ __all__ = [
2045
2056
  "RevokeUserInvitationInput",
2046
2057
  "RightAscensionArcInput",
2047
2058
  "RightAscensionInput",
2059
+ "SchedulerObservationsUpdates",
2060
+ "SchedulerObservationsUpdatesObscalcUpdate",
2061
+ "SchedulerObservationsUpdatesObscalcUpdateValue",
2062
+ "SchedulerObservationsUpdatesObscalcUpdateValueExecution",
2063
+ "SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisits",
2064
+ "SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisitsMatches",
2065
+ "SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisitsMatchesAtomRecords",
2066
+ "SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisitsMatchesAtomRecordsMatches",
2067
+ "SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisitsMatchesObservation",
2048
2068
  "ScienceBand",
2049
2069
  "ScienceMode",
2050
2070
  "ScienceRequirementsDetails",
@@ -80,6 +80,7 @@ from .restore_observation_by_id import RestoreObservationById
80
80
  from .restore_observation_by_reference import RestoreObservationByReference
81
81
  from .restore_program_by_id import RestoreProgramById
82
82
  from .restore_target_by_id import RestoreTargetById
83
+ from .scheduler_observations_updates import SchedulerObservationsUpdates
83
84
  from .set_observation_workflow_state import SetObservationWorkflowState
84
85
  from .target_edit import TargetEdit
85
86
  from .update_call_for_proposals_by_id import UpdateCallForProposalsById
@@ -98,6 +99,46 @@ def gql(q: str) -> str:
98
99
 
99
100
 
100
101
  class GraphQLClient(AsyncBaseClient):
102
+ async def scheduler_observations_updates(
103
+ self, executable_only: Union[Optional[bool], UnsetType] = UNSET, **kwargs: Any
104
+ ) -> AsyncIterator[SchedulerObservationsUpdates]:
105
+ query = gql("""
106
+ subscription SchedulerObservationsUpdates($executableOnly: Boolean) {
107
+ obscalcUpdate(input: {executableOnly: $executableOnly}) {
108
+ oldCalculationState
109
+ newCalculationState
110
+ editType
111
+ value {
112
+ id
113
+ observationTime
114
+ execution {
115
+ visits {
116
+ matches {
117
+ observation {
118
+ id
119
+ }
120
+ atomRecords {
121
+ matches {
122
+ executionState
123
+ id
124
+ }
125
+ }
126
+ }
127
+ }
128
+ }
129
+ }
130
+ }
131
+ }
132
+ """)
133
+ variables: dict[str, object] = {"executableOnly": executable_only}
134
+ async for data in self.execute_ws(
135
+ query=query,
136
+ operation_name="SchedulerObservationsUpdates",
137
+ variables=variables,
138
+ **kwargs,
139
+ ):
140
+ yield SchedulerObservationsUpdates.model_validate(data)
141
+
101
142
  async def get_observation_attachments_by_id(
102
143
  self, observation_id: Any, **kwargs: Any
103
144
  ) -> GetObservationAttachmentsById:
@@ -0,0 +1,76 @@
1
+ from typing import Any, Optional
2
+
3
+ from pydantic import Field
4
+
5
+ from .base_model import BaseModel
6
+ from .enums import AtomExecutionState, CalculationState, EditType
7
+
8
+
9
+ class SchedulerObservationsUpdates(BaseModel):
10
+ obscalc_update: "SchedulerObservationsUpdatesObscalcUpdate" = Field(
11
+ alias="obscalcUpdate"
12
+ )
13
+
14
+
15
+ class SchedulerObservationsUpdatesObscalcUpdate(BaseModel):
16
+ old_calculation_state: Optional[CalculationState] = Field(
17
+ alias="oldCalculationState"
18
+ )
19
+ new_calculation_state: Optional[CalculationState] = Field(
20
+ alias="newCalculationState"
21
+ )
22
+ edit_type: EditType = Field(alias="editType")
23
+ value: Optional["SchedulerObservationsUpdatesObscalcUpdateValue"]
24
+
25
+
26
+ class SchedulerObservationsUpdatesObscalcUpdateValue(BaseModel):
27
+ id: Any
28
+ observation_time: Optional[Any] = Field(alias="observationTime")
29
+ execution: "SchedulerObservationsUpdatesObscalcUpdateValueExecution"
30
+
31
+
32
+ class SchedulerObservationsUpdatesObscalcUpdateValueExecution(BaseModel):
33
+ visits: "SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisits"
34
+
35
+
36
+ class SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisits(BaseModel):
37
+ matches: list[
38
+ "SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisitsMatches"
39
+ ]
40
+
41
+
42
+ class SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisitsMatches(BaseModel):
43
+ observation: "SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisitsMatchesObservation"
44
+ atom_records: "SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisitsMatchesAtomRecords" = Field(
45
+ alias="atomRecords"
46
+ )
47
+
48
+
49
+ class SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisitsMatchesObservation(
50
+ BaseModel
51
+ ):
52
+ id: Any
53
+
54
+
55
+ class SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisitsMatchesAtomRecords(
56
+ BaseModel
57
+ ):
58
+ matches: list[
59
+ "SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisitsMatchesAtomRecordsMatches"
60
+ ]
61
+
62
+
63
+ class SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisitsMatchesAtomRecordsMatches(
64
+ BaseModel
65
+ ):
66
+ execution_state: AtomExecutionState = Field(alias="executionState")
67
+ id: Any
68
+
69
+
70
+ SchedulerObservationsUpdates.model_rebuild()
71
+ SchedulerObservationsUpdatesObscalcUpdate.model_rebuild()
72
+ SchedulerObservationsUpdatesObscalcUpdateValue.model_rebuild()
73
+ SchedulerObservationsUpdatesObscalcUpdateValueExecution.model_rebuild()
74
+ SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisits.model_rebuild()
75
+ SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisitsMatches.model_rebuild()
76
+ SchedulerObservationsUpdatesObscalcUpdateValueExecutionVisitsMatchesAtomRecords.model_rebuild()