gpp-client 26.9.0.dev1__tar.gz → 26.9.0.dev2__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 (114) hide show
  1. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/PKG-INFO +1 -1
  2. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/__init__.py +2 -2
  3. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/custom_fields.py +167 -130
  4. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/custom_typing_fields.py +18 -6
  5. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/enums.py +8 -2
  6. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/input_types.py +19 -45
  7. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/.gitignore +0 -0
  8. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/LICENSE +0 -0
  9. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/README.md +0 -0
  10. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/graphql/README.md +0 -0
  11. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/pyproject.toml +0 -0
  12. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/__init__.py +0 -0
  13. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/cli/__init__.py +0 -0
  14. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/cli/cli.py +0 -0
  15. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/cli/commands/__init__.py +0 -0
  16. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/cli/commands/attachment.py +0 -0
  17. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/cli/commands/goats.py +0 -0
  18. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/cli/commands/observation.py +0 -0
  19. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/cli/commands/program.py +0 -0
  20. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/cli/commands/scheduler.py +0 -0
  21. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/cli/commands/site_status.py +0 -0
  22. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/cli/commands/target.py +0 -0
  23. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/cli/commands/workflow_state.py +0 -0
  24. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/cli/console.py +0 -0
  25. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/cli/output.py +0 -0
  26. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/cli/utils.py +0 -0
  27. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/client.py +0 -0
  28. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/constants.py +0 -0
  29. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/domains/__init__.py +0 -0
  30. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/domains/atom.py +0 -0
  31. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/domains/attachment.py +0 -0
  32. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/domains/base.py +0 -0
  33. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/domains/goats.py +0 -0
  34. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/domains/observation.py +0 -0
  35. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/domains/program.py +0 -0
  36. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/domains/scheduler.py +0 -0
  37. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/domains/site_status.py +0 -0
  38. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/domains/target.py +0 -0
  39. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/domains/workflow_state.py +0 -0
  40. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/environment.py +0 -0
  41. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/exceptions.py +0 -0
  42. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/async_base_client.py +0 -0
  43. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/base_model.py +0 -0
  44. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/base_operation.py +0 -0
  45. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/client.py +0 -0
  46. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/clone_observation.py +0 -0
  47. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/clone_target.py +0 -0
  48. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/create_call_for_proposals.py +0 -0
  49. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/create_observation.py +0 -0
  50. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/create_program.py +0 -0
  51. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/create_target_by_program_id.py +0 -0
  52. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/create_target_by_program_reference.py +0 -0
  53. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/create_target_by_proposal_reference.py +0 -0
  54. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/custom_mutations.py +0 -0
  55. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/custom_queries.py +0 -0
  56. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/delete_call_for_proposals_by_id.py +0 -0
  57. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/delete_observation_by_id.py +0 -0
  58. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/delete_observation_by_reference.py +0 -0
  59. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/delete_program_by_id.py +0 -0
  60. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/delete_target_by_id.py +0 -0
  61. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/exceptions.py +0 -0
  62. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/fragments.py +0 -0
  63. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_call_for_proposals.py +0 -0
  64. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_calls_for_proposals.py +0 -0
  65. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_goats_config_options.py +0 -0
  66. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_goats_configuration_requests.py +0 -0
  67. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_goats_observations.py +0 -0
  68. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_goats_programs.py +0 -0
  69. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_observation.py +0 -0
  70. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_observation_attachments_by_id.py +0 -0
  71. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_observation_attachments_by_reference.py +0 -0
  72. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_observation_workflow_state_by_id.py +0 -0
  73. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_observation_workflow_state_by_reference.py +0 -0
  74. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_observations.py +0 -0
  75. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_program_attachments_by_id.py +0 -0
  76. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_program_attachments_by_proposal_reference.py +0 -0
  77. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_program_attachments_by_reference.py +0 -0
  78. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_program_by_id.py +0 -0
  79. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_program_by_proposal_reference.py +0 -0
  80. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_program_by_reference.py +0 -0
  81. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_programs.py +0 -0
  82. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_scheduler_all_programs_id.py +0 -0
  83. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_scheduler_programs.py +0 -0
  84. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_target_by_id.py +0 -0
  85. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/get_targets.py +0 -0
  86. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/obs_calculation_update.py +0 -0
  87. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/observation_edit.py +0 -0
  88. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/package_environment.py +0 -0
  89. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/ping.py +0 -0
  90. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/program_edit.py +0 -0
  91. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/restore_call_for_proposals_by_id.py +0 -0
  92. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/restore_observation_by_id.py +0 -0
  93. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/restore_observation_by_reference.py +0 -0
  94. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/restore_program_by_id.py +0 -0
  95. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/restore_target_by_id.py +0 -0
  96. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/scheduler_observations_updates.py +0 -0
  97. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/set_observation_workflow_state.py +0 -0
  98. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/target_edit.py +0 -0
  99. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/update_call_for_proposals_by_id.py +0 -0
  100. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/update_calls_for_proposals.py +0 -0
  101. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/update_observation_by_id.py +0 -0
  102. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/update_observation_by_reference.py +0 -0
  103. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/update_observations.py +0 -0
  104. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/update_program_by_id.py +0 -0
  105. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/update_programs.py +0 -0
  106. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/update_target_by_id.py +0 -0
  107. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/generated/update_targets.py +0 -0
  108. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/logging_utils.py +0 -0
  109. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/rest/__init__.py +0 -0
  110. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/rest/client.py +0 -0
  111. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/rest/models.py +0 -0
  112. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/rest/utils.py +0 -0
  113. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/settings.py +0 -0
  114. {gpp_client-26.9.0.dev1 → gpp_client-26.9.0.dev2}/src/gpp_client/urls.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: gpp-client
3
- Version: 26.9.0.dev1
3
+ Version: 26.9.0.dev2
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
@@ -91,6 +91,7 @@ from .enums import (
91
91
  CassRotator,
92
92
  CatalogName,
93
93
  ChargeClass,
94
+ CloneSequenceMode,
94
95
  CloudExtinctionPreset,
95
96
  ConditionsExpectationType,
96
97
  ConditionsMeasurementSource,
@@ -1275,7 +1276,6 @@ from .input_types import (
1275
1276
  TargetEditInput,
1276
1277
  TargetEnvironmentInput,
1277
1278
  TargetPropertiesInput,
1278
- TargetResolutionInput,
1279
1279
  TelescopeConfigAlongSlitInput,
1280
1280
  TelescopeConfigGeneratorInput,
1281
1281
  TelescopeConfigInput,
@@ -1647,6 +1647,7 @@ __all__ = [
1647
1647
  "CloneObservationCloneObservation",
1648
1648
  "CloneObservationCloneObservationNewObservation",
1649
1649
  "CloneObservationInput",
1650
+ "CloneSequenceMode",
1650
1651
  "CloneTarget",
1651
1652
  "CloneTargetCloneTarget",
1652
1653
  "CloneTargetCloneTargetNewTarget",
@@ -2889,7 +2890,6 @@ __all__ = [
2889
2890
  "TargetProgramSummary",
2890
2891
  "TargetProgramSummaryProgram",
2891
2892
  "TargetPropertiesInput",
2892
- "TargetResolutionInput",
2893
2893
  "TelescopeConfigAlongSlitInput",
2894
2894
  "TelescopeConfigGeneratorInput",
2895
2895
  "TelescopeConfigGeneratorType",
@@ -301,6 +301,7 @@ from .custom_typing_fields import (
301
301
  ProperMotionRAGraphQLField,
302
302
  ProposalGraphQLField,
303
303
  ProposalReferenceGraphQLField,
304
+ ProposalStatusChangeGraphQLField,
304
305
  ProposalSummaryFailureGraphQLField,
305
306
  ProposalSummaryGenerationGraphQLField,
306
307
  ProposalSummaryPropertiesGraphQLField,
@@ -358,6 +359,8 @@ from .custom_typing_fields import (
358
359
  SpectroscopyScienceRequirementsGraphQLField,
359
360
  SpiralTelescopeConfigGeneratorGraphQLField,
360
361
  StepConfigGraphQLField,
362
+ StepDigestGraphQLField,
363
+ StepDigestsGraphQLField,
361
364
  StepEstimateGraphQLField,
362
365
  StepEventGraphQLField,
363
366
  StepRecordGraphQLField,
@@ -371,7 +374,6 @@ from .custom_typing_fields import (
371
374
  TargetGraphQLField,
372
375
  TargetGroupGraphQLField,
373
376
  TargetGroupSelectResultGraphQLField,
374
- TargetResolutionGraphQLField,
375
377
  TargetSelectResultGraphQLField,
376
378
  TelescopeConfigAlongSlitGraphQLField,
377
379
  TelescopeConfigGeneratorGraphQLField,
@@ -743,6 +745,10 @@ class AltairFields(GraphQLField):
743
745
  "The Altair guiding mode."
744
746
  explicit_field_lens: "AltairGraphQLField" = AltairGraphQLField("explicitFieldLens")
745
747
  "The user's field lens override, or null for AUTO. When AUTO the field lens\nfollows the guide star separation. The LGS modes always use the field lens,\nso an explicit value of OUT is rejected for them."
748
+ default_field_lens: "AltairGraphQLField" = AltairGraphQLField("defaultFieldLens")
749
+ "The AUTO field lens resolution: IN for the LGS modes; for NGS, IN when the\nselected guide star is more than 1 arcsecond from the base, OUT otherwise.\nNull when no guide star is selected yet."
750
+ field_lens: "AltairGraphQLField" = AltairGraphQLField("fieldLens")
751
+ "The field lens that will be used: explicitFieldLens when set, otherwise\ndefaultFieldLens."
746
752
  cass_rotator: "AltairGraphQLField" = AltairGraphQLField("cassRotator")
747
753
  "The cassegrain rotator tracking mode used while observing behind Altair."
748
754
  nd_filter: "AltairGraphQLField" = AltairGraphQLField("ndFilter")
@@ -2185,6 +2191,12 @@ class ConfigurationFields(GraphQLField):
2185
2191
  def observing_mode(cls) -> "ConfigurationObservingModeFields":
2186
2192
  return ConfigurationObservingModeFields("observingMode")
2187
2193
 
2194
+ altair_mode: "ConfigurationGraphQLField" = ConfigurationGraphQLField("altairMode")
2195
+ scheduling_mode: "ConfigurationGraphQLField" = ConfigurationGraphQLField(
2196
+ "schedulingMode"
2197
+ )
2198
+ "What the Scheduler may do to the observation. Part of the configuration, and so\napproved with it: an approved mode covers itself and every looser one. The\nTarget of Opportunity activation is not part of the configuration; it is\napproved program-wide, as the program's `tooActivationCeiling`."
2199
+
2188
2200
  def fields(
2189
2201
  self,
2190
2202
  *subfields: Union[
@@ -3560,18 +3572,6 @@ class DemoScienceFields(GraphQLField):
3560
3572
  "scienceSubtype"
3561
3573
  )
3562
3574
  "The science type of this Call for Proposals."
3563
- too_activation_ceiling: "DemoScienceGraphQLField" = DemoScienceGraphQLField(
3564
- "tooActivationCeiling"
3565
- )
3566
- "The most disruptive Target of Opportunity activation any observation in this\nprogram may declare: `explicitTooActivationCeiling` if set, otherwise\n`defaultTooActivationCeiling`. An observation exceeding it is flagged and\ncannot become ready to execute."
3567
- default_too_activation_ceiling: "DemoScienceGraphQLField" = DemoScienceGraphQLField(
3568
- "defaultTooActivationCeiling"
3569
- )
3570
- "The ceiling that applies when none is explicitly set: the most disruptive\nactivation among the program's own observations, capped by what this proposal\ntype permits.\n\nNote this continues to track the observations after the proposal is accepted,\nat which point it no longer has any effect -- acceptance freezes the ceiling\ninto `explicitTooActivationCeiling`, so that adding a more disruptive\nobservation can no longer raise the ceiling it is checked against."
3571
- explicit_too_activation_ceiling: "DemoScienceGraphQLField" = (
3572
- DemoScienceGraphQLField("explicitTooActivationCeiling")
3573
- )
3574
- "The ceiling explicitly chosen for this proposal, if any: by the PI before\nsubmission, or by staff during review. Always set once the proposal has been\naccepted, since acceptance freezes the effective ceiling into this field."
3575
3575
  min_percent_time: "DemoScienceGraphQLField" = DemoScienceGraphQLField(
3576
3576
  "minPercentTime"
3577
3577
  )
@@ -3634,18 +3634,6 @@ class DirectorsTimeFields(GraphQLField):
3634
3634
  "scienceSubtype"
3635
3635
  )
3636
3636
  "The science type of this Call for Proposals."
3637
- too_activation_ceiling: "DirectorsTimeGraphQLField" = DirectorsTimeGraphQLField(
3638
- "tooActivationCeiling"
3639
- )
3640
- "The most disruptive Target of Opportunity activation any observation in this\nprogram may declare: `explicitTooActivationCeiling` if set, otherwise\n`defaultTooActivationCeiling`. An observation exceeding it is flagged and\ncannot become ready to execute."
3641
- default_too_activation_ceiling: "DirectorsTimeGraphQLField" = (
3642
- DirectorsTimeGraphQLField("defaultTooActivationCeiling")
3643
- )
3644
- "The ceiling that applies when none is explicitly set: the most disruptive\nactivation among the program's own observations, capped by what this proposal\ntype permits.\n\nNote this continues to track the observations after the proposal is accepted,\nat which point it no longer has any effect -- acceptance freezes the ceiling\ninto `explicitTooActivationCeiling`, so that adding a more disruptive\nobservation can no longer raise the ceiling it is checked against."
3645
- explicit_too_activation_ceiling: "DirectorsTimeGraphQLField" = (
3646
- DirectorsTimeGraphQLField("explicitTooActivationCeiling")
3647
- )
3648
- "The ceiling explicitly chosen for this proposal, if any: by the PI before\nsubmission, or by staff during review. Always set once the proposal has been\naccepted, since acceptance freezes the effective ceiling into this field."
3649
3637
  min_percent_time: "DirectorsTimeGraphQLField" = DirectorsTimeGraphQLField(
3650
3638
  "minPercentTime"
3651
3639
  )
@@ -4016,6 +4004,14 @@ class ExecutionFields(GraphQLField):
4016
4004
  ExecutionGraphQLField("acquisitionSequenceIsMaterialized")
4017
4005
  )
4018
4006
  "Whether the acquisition sequence has been materialized.\nThis will happen when the sequence is executed or if it is manually edited."
4007
+ science_sequence_is_customized: "ExecutionGraphQLField" = ExecutionGraphQLField(
4008
+ "scienceSequenceIsCustomized"
4009
+ )
4010
+ "Whether the science sequence has been customized via `replace*Sequence`\n(regardless of whether the replacement differs from what would have been\ngenerated). Cleared by `deleteSequence`."
4011
+ acquisition_sequence_is_customized: "ExecutionGraphQLField" = ExecutionGraphQLField(
4012
+ "acquisitionSequenceIsCustomized"
4013
+ )
4014
+ "Whether the acquisition sequence has been customized via `replace*Sequence`\n(regardless of whether the replacement differs from what would have been\ngenerated). Cleared by `deleteSequence` or by resetting the acquisition."
4019
4015
 
4020
4016
  def fields(
4021
4017
  self,
@@ -4133,7 +4129,7 @@ class ExecutionDigestFields(GraphQLField):
4133
4129
 
4134
4130
  @classmethod
4135
4131
  def full_time_estimate(cls) -> "CategorizedTimeFields":
4136
- """Full time estimate: science time plus full setup time for every setup."""
4132
+ """Full time estimate: science time plus setup time for every setup and reacquisition."""
4137
4133
  return CategorizedTimeFields("fullTimeEstimate")
4138
4134
 
4139
4135
  def fields(
@@ -4274,18 +4270,6 @@ class FastTurnaroundFields(GraphQLField):
4274
4270
  "scienceSubtype"
4275
4271
  )
4276
4272
  "The science type of this Call for Proposals."
4277
- too_activation_ceiling: "FastTurnaroundGraphQLField" = FastTurnaroundGraphQLField(
4278
- "tooActivationCeiling"
4279
- )
4280
- "The most disruptive Target of Opportunity activation any observation in this\nprogram may declare: `explicitTooActivationCeiling` if set, otherwise\n`defaultTooActivationCeiling`. An observation exceeding it is flagged and\ncannot become ready to execute."
4281
- default_too_activation_ceiling: "FastTurnaroundGraphQLField" = (
4282
- FastTurnaroundGraphQLField("defaultTooActivationCeiling")
4283
- )
4284
- "The ceiling that applies when none is explicitly set: the most disruptive\nactivation among the program's own observations, capped by what this proposal\ntype permits.\n\nNote this continues to track the observations after the proposal is accepted,\nat which point it no longer has any effect -- acceptance freezes the ceiling\ninto `explicitTooActivationCeiling`, so that adding a more disruptive\nobservation can no longer raise the ceiling it is checked against."
4285
- explicit_too_activation_ceiling: "FastTurnaroundGraphQLField" = (
4286
- FastTurnaroundGraphQLField("explicitTooActivationCeiling")
4287
- )
4288
- "The ceiling explicitly chosen for this proposal, if any: by the PI before\nsubmission, or by staff during review. Always set once the proposal has been\naccepted, since acceptance freezes the effective ceiling into this field."
4289
4273
  min_percent_time: "FastTurnaroundGraphQLField" = FastTurnaroundGraphQLField(
4290
4274
  "minPercentTime"
4291
4275
  )
@@ -7841,6 +7825,7 @@ class GnirsCentralWavelengthConfigFields(GraphQLField):
7841
7825
  coadds: "GnirsCentralWavelengthConfigGraphQLField" = (
7842
7826
  GnirsCentralWavelengthConfigGraphQLField("coadds")
7843
7827
  )
7828
+ "Coadds per frame in time-and-count mode. Always 1 in signal-to-noise mode,\nwhere the ITC chooses the coadds instead."
7844
7829
 
7845
7830
  def fields(
7846
7831
  self,
@@ -8198,7 +8183,7 @@ class GnirsImagingFilterFields(GraphQLField):
8198
8183
  return ExposureTimeModeFields("exposureTimeMode")
8199
8184
 
8200
8185
  coadds: "GnirsImagingFilterGraphQLField" = GnirsImagingFilterGraphQLField("coadds")
8201
- "Coadds per exposure for this filter. Always 1 when the exposure time mode is\nsignal-to-noise, which does not support coadds."
8186
+ "Coadds per frame for this filter in time-and-count mode. Always 1 in\nsignal-to-noise mode, where the ITC chooses the coadds instead."
8202
8187
 
8203
8188
  def fields(
8204
8189
  self,
@@ -9898,8 +9883,13 @@ class ItcResultFields(GraphQLField):
9898
9883
 
9899
9884
  @classmethod
9900
9885
  def exposure_time(cls) -> "TimeSpanFields":
9886
+ """Exposure time of a single exposure (per coadd, for instruments with coadds)."""
9901
9887
  return TimeSpanFields("exposureTime")
9902
9888
 
9889
+ frame_count: "ItcResultGraphQLField" = ItcResultGraphQLField("frameCount")
9890
+ "Number of frames to take. A frame is what the detector delivers: `coadds`\nexposures summed on chip. Without coadds a frame is one exposure."
9891
+ coadds: "ItcResultGraphQLField" = ItcResultGraphQLField("coadds")
9892
+ "Coadds per frame. Chosen by the ITC in signal-to-noise mode, the requested\nvalue in time-and-count mode, and 1 for instruments without coadds."
9903
9893
  exposure_count: "ItcResultGraphQLField" = ItcResultGraphQLField("exposureCount")
9904
9894
 
9905
9895
  @classmethod
@@ -10105,18 +10095,6 @@ class LargeProgramFields(GraphQLField):
10105
10095
  "scienceSubtype"
10106
10096
  )
10107
10097
  "The science type of this Call for Proposals."
10108
- too_activation_ceiling: "LargeProgramGraphQLField" = LargeProgramGraphQLField(
10109
- "tooActivationCeiling"
10110
- )
10111
- "The most disruptive Target of Opportunity activation any observation in this\nprogram may declare: `explicitTooActivationCeiling` if set, otherwise\n`defaultTooActivationCeiling`. An observation exceeding it is flagged and\ncannot become ready to execute."
10112
- default_too_activation_ceiling: "LargeProgramGraphQLField" = (
10113
- LargeProgramGraphQLField("defaultTooActivationCeiling")
10114
- )
10115
- "The ceiling that applies when none is explicitly set: the most disruptive\nactivation among the program's own observations, capped by what this proposal\ntype permits.\n\nNote this continues to track the observations after the proposal is accepted,\nat which point it no longer has any effect -- acceptance freezes the ceiling\ninto `explicitTooActivationCeiling`, so that adding a more disruptive\nobservation can no longer raise the ceiling it is checked against."
10116
- explicit_too_activation_ceiling: "LargeProgramGraphQLField" = (
10117
- LargeProgramGraphQLField("explicitTooActivationCeiling")
10118
- )
10119
- "The ceiling explicitly chosen for this proposal, if any: by the PI before\nsubmission, or by staff during review. Always set once the proposal has been\naccepted, since acceptance freezes the effective ceiling into this field."
10120
10098
  min_percent_time: "LargeProgramGraphQLField" = LargeProgramGraphQLField(
10121
10099
  "minPercentTime"
10122
10100
  )
@@ -10646,6 +10624,14 @@ class ObservationTimeEstimateFields(GraphQLField):
10646
10624
  ObservationTimeEstimateGraphQLField("setupCount")
10647
10625
  )
10648
10626
  "Expected number of setups."
10627
+ reacquisition_count: "ObservationTimeEstimateGraphQLField" = (
10628
+ ObservationTimeEstimateGraphQLField("reacquisitionCount")
10629
+ )
10630
+ "Expected number of reacquisitions: recentering on the target between full\nsetups. Only spectroscopy guided by a PWFS is expected to need them."
10631
+ calibration_count: "ObservationTimeEstimateGraphQLField" = (
10632
+ ObservationTimeEstimateGraphQLField("calibrationCount")
10633
+ )
10634
+ "Expected number of calibration over the remaining science time.\nZero for calibration observations and for modes that take no callibrations per observation."
10649
10635
 
10650
10636
  @classmethod
10651
10637
  def science(cls) -> "CategorizedTimeFields":
@@ -10654,7 +10640,8 @@ class ObservationTimeEstimateFields(GraphQLField):
10654
10640
 
10655
10641
  @classmethod
10656
10642
  def total(cls) -> "CategorizedTimeFields":
10657
- """Total time estimate: science time plus full setup time for every setup."""
10643
+ """Total time estimate: science time plus full setup time for every setup and
10644
+ reacquisition time for every reacquisition."""
10658
10645
  return CategorizedTimeFields("total")
10659
10646
 
10660
10647
  def fields(
@@ -10997,26 +10984,17 @@ class OffsetQFields(GraphQLField):
10997
10984
 
10998
10985
 
10999
10986
  class OpportunityFields(GraphQLField):
10987
+ """A Target of Opportunity: a placeholder standing in an asterism for an object not
10988
+ yet identified. It carries the patch of sky the object may appear in, and no
10989
+ coordinates -- when the alert arrives, an ordinary sidereal or nonsidereal
10990
+ target takes its place in the asterism."""
10991
+
11000
10992
  @classmethod
11001
10993
  def region(cls) -> "RegionFields":
11002
10994
  return RegionFields("region")
11003
10995
 
11004
- @classmethod
11005
- def resolution(cls) -> "TargetResolutionFields":
11006
- """How this Target of Opportunity is tracked, once the alert has arrived and
11007
- identified it -- or null while it is still unresolved.
11008
-
11009
- A Target of Opportunity does not stop being one when it is resolved. It keeps
11010
- its `region` (which is what the accepted proposal authorized) and continues to
11011
- appear here rather than moving to the top-level `sidereal` or `nonsidereal`
11012
- field, so exactly one of those three remains non-null for any target."""
11013
- return TargetResolutionFields("resolution")
11014
-
11015
10996
  def fields(
11016
- self,
11017
- *subfields: Union[
11018
- OpportunityGraphQLField, "RegionFields", "TargetResolutionFields"
11019
- ],
10997
+ self, *subfields: Union[OpportunityGraphQLField, "RegionFields"]
11020
10998
  ) -> "OpportunityFields":
11021
10999
  """Subfields should come from the OpportunityFields class"""
11022
11000
  self._subfields.extend(subfields)
@@ -11330,6 +11308,16 @@ class ProgramFields(GraphQLField):
11330
11308
  "Current number of resources (present, non-system observations, groups,\ntargets, attachments, and program notes) associated with this program, counted\nagainst `resourceLimit`."
11331
11309
  dismissed_warnings: "ProgramGraphQLField" = ProgramGraphQLField("dismissedWarnings")
11332
11310
  "List of validation codes that have been dismissed for this program."
11311
+ too_activation_ceiling: "ProgramGraphQLField" = ProgramGraphQLField(
11312
+ "tooActivationCeiling"
11313
+ )
11314
+ "The most disruptive Target of Opportunity activation the program's observations\nmay declare; one above it is flagged and cannot become ready. Null when the\nprogram has no ceiling, which means no restriction. Accepting a proposal sets\nit if it is not already set: to `NONE` for classical, poor weather and Keck\nproposals, and otherwise to `maxTooActivation`. Staff may set or clear it on\nany program through `ProgramPropertiesInput.tooActivationCeiling`."
11315
+ max_too_activation: "ProgramGraphQLField" = ProgramGraphQLField("maxTooActivation")
11316
+ "The most disruptive Target of Opportunity activation among the program's\nobservations, or `NONE` if it has none. A summary of what the observations\nask for; nothing is enforced against it."
11317
+ max_scheduling_mode: "ProgramGraphQLField" = ProgramGraphQLField(
11318
+ "maxSchedulingMode"
11319
+ )
11320
+ "The most restrictive scheduling mode among the program's observations, or\n`UNCONSTRAINED` if it has none. A summary of what the observations ask for."
11333
11321
 
11334
11322
  def fields(
11335
11323
  self,
@@ -11695,6 +11683,12 @@ class ProposalFields(GraphQLField):
11695
11683
  exchange proposals; null otherwise."""
11696
11684
  return SubaruProposalTypeFields("subaru")
11697
11685
 
11686
+ @classmethod
11687
+ def submission_history(cls) -> "ProposalStatusChangeFields":
11688
+ """Every submission (SUBMITTED) and retraction (NOT_SUBMITTED) of the proposal,
11689
+ oldest first. Empty if it was never submitted."""
11690
+ return ProposalStatusChangeFields("submissionHistory")
11691
+
11698
11692
  def fields(
11699
11693
  self,
11700
11694
  *subfields: Union[
@@ -11704,6 +11698,7 @@ class ProposalFields(GraphQLField):
11704
11698
  "GeminiProposalTypeInterface",
11705
11699
  "KeckProposalTypeFields",
11706
11700
  "ProposalReferenceFields",
11701
+ "ProposalStatusChangeFields",
11707
11702
  "SubaruProposalTypeFields",
11708
11703
  "TimeSpanFields",
11709
11704
  ],
@@ -11738,6 +11733,30 @@ class ProposalReferenceFields(GraphQLField):
11738
11733
  return self
11739
11734
 
11740
11735
 
11736
+ class ProposalStatusChangeFields(GraphQLField):
11737
+ """A single submission or retraction of a proposal."""
11738
+
11739
+ timestamp: "ProposalStatusChangeGraphQLField" = ProposalStatusChangeGraphQLField(
11740
+ "timestamp"
11741
+ )
11742
+ "When the status changed."
11743
+ status: "ProposalStatusChangeGraphQLField" = ProposalStatusChangeGraphQLField(
11744
+ "status"
11745
+ )
11746
+ "SUBMITTED for a submission, NOT_SUBMITTED for a retraction."
11747
+
11748
+ def fields(
11749
+ self, *subfields: ProposalStatusChangeGraphQLField
11750
+ ) -> "ProposalStatusChangeFields":
11751
+ """Subfields should come from the ProposalStatusChangeFields class"""
11752
+ self._subfields.extend(subfields)
11753
+ return self
11754
+
11755
+ def alias(self, alias: str) -> "ProposalStatusChangeFields":
11756
+ self._alias = alias
11757
+ return self
11758
+
11759
+
11741
11760
  class ProposalSummaryFailureFields(GraphQLField):
11742
11761
  """One failed render of a proposal summary regeneration."""
11743
11762
 
@@ -11826,18 +11845,6 @@ class QueueFields(GraphQLField):
11826
11845
 
11827
11846
  science_subtype: "QueueGraphQLField" = QueueGraphQLField("scienceSubtype")
11828
11847
  "The science type of this Call for Proposals."
11829
- too_activation_ceiling: "QueueGraphQLField" = QueueGraphQLField(
11830
- "tooActivationCeiling"
11831
- )
11832
- "The most disruptive Target of Opportunity activation any observation in this\nprogram may declare: `explicitTooActivationCeiling` if set, otherwise\n`defaultTooActivationCeiling`. An observation exceeding it is flagged and\ncannot become ready to execute."
11833
- default_too_activation_ceiling: "QueueGraphQLField" = QueueGraphQLField(
11834
- "defaultTooActivationCeiling"
11835
- )
11836
- "The ceiling that applies when none is explicitly set: the most disruptive\nactivation among the program's own observations, capped by what this proposal\ntype permits.\n\nNote this continues to track the observations after the proposal is accepted,\nat which point it no longer has any effect -- acceptance freezes the ceiling\ninto `explicitTooActivationCeiling`, so that adding a more disruptive\nobservation can no longer raise the ceiling it is checked against."
11837
- explicit_too_activation_ceiling: "QueueGraphQLField" = QueueGraphQLField(
11838
- "explicitTooActivationCeiling"
11839
- )
11840
- "The ceiling explicitly chosen for this proposal, if any: by the PI before\nsubmission, or by staff during review. Always set once the proposal has been\naccepted, since acceptance freezes the effective ceiling into this field."
11841
11848
  min_percent_time: "QueueGraphQLField" = QueueGraphQLField("minPercentTime")
11842
11849
  "Minimum percentage of observing time required to consider this proposal\nsuccessful."
11843
11850
 
@@ -12374,15 +12381,11 @@ class SchedulingConstraintsFields(GraphQLField):
12374
12381
  too_activation: "SchedulingConstraintsGraphQLField" = (
12375
12382
  SchedulingConstraintsGraphQLField("tooActivation")
12376
12383
  )
12377
- "Whether this observation is a Target of Opportunity, and how disruptive its\nexecution may be. Derived, not set: an observation is a Target of Opportunity\nexactly when its asterism holds an opportunity target, and how disruptive it\nmay be follows from its `schedulingMode`. May not exceed the ceiling\nestablished by the program's accepted proposal; an observation that exceeds it\nis flagged and cannot become ready to execute."
12384
+ "Whether this observation is a Target of Opportunity, and how disruptive its\nexecution may be. Declared, not derived: an observation is a Target of\nOpportunity exactly when this is above `NONE`, whatever its asterism holds.\nAn observation above its program's `tooActivationCeiling`, when the program\nhas one, is flagged and cannot become ready to execute."
12378
12385
  scheduling_mode: "SchedulingConstraintsGraphQLField" = (
12379
12386
  SchedulingConstraintsGraphQLField("schedulingMode")
12380
12387
  )
12381
- "What the Scheduler may do with this observation."
12382
- is_splittable: "SchedulingConstraintsGraphQLField" = (
12383
- SchedulingConstraintsGraphQLField("isSplittable")
12384
- )
12385
- 'Controls whether the observation may be split across multiple visits. When\ntrue, the scheduler may divide the science sequence into discrete segments\n(i.e. "atoms") scheduled in order across separate visits. When false, the\nentire science sequence must complete within a single uninterrupted visit.'
12388
+ "What the Scheduler may do to this observation."
12386
12389
 
12387
12390
  @classmethod
12388
12391
  def timing_windows(cls) -> "TimingWindowFields":
@@ -12502,6 +12505,14 @@ class SequenceDigestFields(GraphQLField):
12502
12505
 
12503
12506
  atom_count: "SequenceDigestGraphQLField" = SequenceDigestGraphQLField("atomCount")
12504
12507
  "Total count of anticipated atoms, including the 'nextAtom', 'possibleFuture'\nand any remaining atoms not included in 'possibleFuture'."
12508
+ gcal_sets: "SequenceDigestGraphQLField" = SequenceDigestGraphQLField("gcalSets")
12509
+ "Number of GCAL sets: atoms that contain at least one GCAL step. A set may\nhold only a flat or only an arc, so this cannot be derived from the step\ncounts in 'steps'."
12510
+
12511
+ @classmethod
12512
+ def steps(cls) -> "StepDigestsFields":
12513
+ """Steps in the sequence by kind, with their counts and times."""
12514
+ return StepDigestsFields("steps")
12515
+
12505
12516
  execution_state: "SequenceDigestGraphQLField" = SequenceDigestGraphQLField(
12506
12517
  "executionState"
12507
12518
  )
@@ -12510,7 +12521,10 @@ class SequenceDigestFields(GraphQLField):
12510
12521
  def fields(
12511
12522
  self,
12512
12523
  *subfields: Union[
12513
- SequenceDigestGraphQLField, "CategorizedTimeFields", "TelescopeConfigFields"
12524
+ SequenceDigestGraphQLField,
12525
+ "CategorizedTimeFields",
12526
+ "StepDigestsFields",
12527
+ "TelescopeConfigFields",
12514
12528
  ],
12515
12529
  ) -> "SequenceDigestFields":
12516
12530
  """Subfields should come from the SequenceDigestFields class"""
@@ -13367,6 +13381,71 @@ class StepConfigInterface(GraphQLField):
13367
13381
  return self
13368
13382
 
13369
13383
 
13384
+ class StepDigestFields(GraphQLField):
13385
+ """Summary of the steps of one kind (bias, dark, arc, flat or science) in a sequence."""
13386
+
13387
+ count: "StepDigestGraphQLField" = StepDigestGraphQLField("count")
13388
+ "Number of steps."
13389
+
13390
+ @classmethod
13391
+ def time(cls) -> "CategorizedTimeFields":
13392
+ """Time estimate for these steps, including any configuration change that precedes them."""
13393
+ return CategorizedTimeFields("time")
13394
+
13395
+ def fields(
13396
+ self, *subfields: Union[StepDigestGraphQLField, "CategorizedTimeFields"]
13397
+ ) -> "StepDigestFields":
13398
+ """Subfields should come from the StepDigestFields class"""
13399
+ self._subfields.extend(subfields)
13400
+ return self
13401
+
13402
+ def alias(self, alias: str) -> "StepDigestFields":
13403
+ self._alias = alias
13404
+ return self
13405
+
13406
+
13407
+ class StepDigestsFields(GraphQLField):
13408
+ """The steps of a sequence by step type, with GCAL steps split into arcs and
13409
+ flats. The five digests partition the sequence, so their times sum to the
13410
+ sequence timeEstimate."""
13411
+
13412
+ @classmethod
13413
+ def bias(cls) -> "StepDigestFields":
13414
+ """Steps of type BIAS."""
13415
+ return StepDigestFields("bias")
13416
+
13417
+ @classmethod
13418
+ def dark(cls) -> "StepDigestFields":
13419
+ """Steps of type DARK."""
13420
+ return StepDigestFields("dark")
13421
+
13422
+ @classmethod
13423
+ def arc(cls) -> "StepDigestFields":
13424
+ """GCAL and SmartGCAL arc steps."""
13425
+ return StepDigestFields("arc")
13426
+
13427
+ @classmethod
13428
+ def flat(cls) -> "StepDigestFields":
13429
+ """GCAL and SmartGCAL flat steps, including any whose lamp is not an arc."""
13430
+ return StepDigestFields("flat")
13431
+
13432
+ @classmethod
13433
+ def science(cls) -> "StepDigestFields":
13434
+ """Steps of type SCIENCE, which includes acquisition exposures."""
13435
+ return StepDigestFields("science")
13436
+
13437
+ def fields(
13438
+ self, *subfields: Union[StepDigestsGraphQLField, "StepDigestFields"]
13439
+ ) -> "StepDigestsFields":
13440
+ """Subfields should come from the StepDigestsFields class"""
13441
+ self._subfields.extend(subfields)
13442
+ return self
13443
+
13444
+ def alias(self, alias: str) -> "StepDigestsFields":
13445
+ self._alias = alias
13446
+ return self
13447
+
13448
+
13370
13449
  class StepEstimateFields(GraphQLField):
13371
13450
  """Time estimate for an individual step, including configuration changes and
13372
13451
  dataset production."""
@@ -13746,18 +13825,6 @@ class SystemVerificationFields(GraphQLField):
13746
13825
  "scienceSubtype"
13747
13826
  )
13748
13827
  "The science type of this Call for Proposals."
13749
- too_activation_ceiling: "SystemVerificationGraphQLField" = (
13750
- SystemVerificationGraphQLField("tooActivationCeiling")
13751
- )
13752
- "The most disruptive Target of Opportunity activation any observation in this\nprogram may declare: `explicitTooActivationCeiling` if set, otherwise\n`defaultTooActivationCeiling`. An observation exceeding it is flagged and\ncannot become ready to execute."
13753
- default_too_activation_ceiling: "SystemVerificationGraphQLField" = (
13754
- SystemVerificationGraphQLField("defaultTooActivationCeiling")
13755
- )
13756
- "The ceiling that applies when none is explicitly set: the most disruptive\nactivation among the program's own observations, capped by what this proposal\ntype permits.\n\nNote this continues to track the observations after the proposal is accepted,\nat which point it no longer has any effect -- acceptance freezes the ceiling\ninto `explicitTooActivationCeiling`, so that adding a more disruptive\nobservation can no longer raise the ceiling it is checked against."
13757
- explicit_too_activation_ceiling: "SystemVerificationGraphQLField" = (
13758
- SystemVerificationGraphQLField("explicitTooActivationCeiling")
13759
- )
13760
- "The ceiling explicitly chosen for this proposal, if any: by the PI before\nsubmission, or by staff during review. Always set once the proposal has been\naccepted, since acceptance freezes the effective ceiling into this field."
13761
13828
  min_percent_time: "SystemVerificationGraphQLField" = SystemVerificationGraphQLField(
13762
13829
  "minPercentTime"
13763
13830
  )
@@ -14053,36 +14120,6 @@ class TargetGroupSelectResultFields(GraphQLField):
14053
14120
  return self
14054
14121
 
14055
14122
 
14056
- class TargetResolutionFields(GraphQLField):
14057
- """What a Target of Opportunity turned out to be. Exactly one field is non-null.
14058
- The types are the same ones an ordinary target uses, since a resolution differs
14059
- from a plain target only in that its name and source profile live on the Target."""
14060
-
14061
- @classmethod
14062
- def sidereal(cls) -> "SiderealFields":
14063
- """Sidereal tracking information, if the target resolved to a sidereal target."""
14064
- return SiderealFields("sidereal")
14065
-
14066
- @classmethod
14067
- def nonsidereal(cls) -> "NonsiderealFields":
14068
- """Nonsidereal tracking information, if the target resolved to a nonsidereal target."""
14069
- return NonsiderealFields("nonsidereal")
14070
-
14071
- def fields(
14072
- self,
14073
- *subfields: Union[
14074
- TargetResolutionGraphQLField, "NonsiderealFields", "SiderealFields"
14075
- ],
14076
- ) -> "TargetResolutionFields":
14077
- """Subfields should come from the TargetResolutionFields class"""
14078
- self._subfields.extend(subfields)
14079
- return self
14080
-
14081
- def alias(self, alias: str) -> "TargetResolutionFields":
14082
- self._alias = alias
14083
- return self
14084
-
14085
-
14086
14123
  class TargetSelectResultFields(GraphQLField):
14087
14124
  """The matching target results, limited to a maximum of 1000 entries."""
14088
14125
 
@@ -14219,13 +14256,13 @@ class TimeAndCountExposureTimeModeFields(GraphQLField):
14219
14256
 
14220
14257
  @classmethod
14221
14258
  def time(cls) -> "TimeSpanFields":
14222
- """Exposure time."""
14259
+ """Exposure time of a single exposure (per coadd, for instruments with coadds)."""
14223
14260
  return TimeSpanFields("time")
14224
14261
 
14225
14262
  count: "TimeAndCountExposureTimeModeGraphQLField" = (
14226
14263
  TimeAndCountExposureTimeModeGraphQLField("count")
14227
14264
  )
14228
- "Exposure count."
14265
+ "Number of frames. A frame is what the detector delivers: `coadds` exposures summed on chip."
14229
14266
 
14230
14267
  @classmethod
14231
14268
  def at(cls) -> "WavelengthFields":
@@ -2189,6 +2189,12 @@ class ProposalGraphQLField(GraphQLField):
2189
2189
  return self
2190
2190
 
2191
2191
 
2192
+ class ProposalStatusChangeGraphQLField(GraphQLField):
2193
+ def alias(self, alias: str) -> "ProposalStatusChangeGraphQLField":
2194
+ self._alias = alias
2195
+ return self
2196
+
2197
+
2192
2198
  class ProposalReferenceGraphQLField(GraphQLField):
2193
2199
  def alias(self, alias: str) -> "ProposalReferenceGraphQLField":
2194
2200
  self._alias = alias
@@ -2243,6 +2249,18 @@ class ScienceRequirementsGroupSelectResultGraphQLField(GraphQLField):
2243
2249
  return self
2244
2250
 
2245
2251
 
2252
+ class StepDigestGraphQLField(GraphQLField):
2253
+ def alias(self, alias: str) -> "StepDigestGraphQLField":
2254
+ self._alias = alias
2255
+ return self
2256
+
2257
+
2258
+ class StepDigestsGraphQLField(GraphQLField):
2259
+ def alias(self, alias: str) -> "StepDigestsGraphQLField":
2260
+ self._alias = alias
2261
+ return self
2262
+
2263
+
2246
2264
  class SequenceDigestGraphQLField(GraphQLField):
2247
2265
  def alias(self, alias: str) -> "SequenceDigestGraphQLField":
2248
2266
  self._alias = alias
@@ -2369,12 +2387,6 @@ class OpportunityGraphQLField(GraphQLField):
2369
2387
  return self
2370
2388
 
2371
2389
 
2372
- class TargetResolutionGraphQLField(GraphQLField):
2373
- def alias(self, alias: str) -> "TargetResolutionGraphQLField":
2374
- self._alias = alias
2375
- return self
2376
-
2377
-
2378
2390
  class RightAscensionArcGraphQLField(GraphQLField):
2379
2391
  def alias(self, alias: str) -> "RightAscensionArcGraphQLField":
2380
2392
  self._alias = alias
@@ -64,6 +64,12 @@ class GeminiCallForProposalsType(str, Enum):
64
64
  SYSTEM_VERIFICATION = "SYSTEM_VERIFICATION"
65
65
 
66
66
 
67
+ class CloneSequenceMode(str, Enum):
68
+ NONE = "NONE"
69
+ ALL_STEPS = "ALL_STEPS"
70
+ PENDING_STEPS = "PENDING_STEPS"
71
+
72
+
67
73
  class ConditionsMeasurementSource(str, Enum):
68
74
  OBSERVER = "OBSERVER"
69
75
 
@@ -255,7 +261,6 @@ class SchedulingMode(str, Enum):
255
261
  UNCONSTRAINED = "UNCONSTRAINED"
256
262
  NO_SPLITTING = "NO_SPLITTING"
257
263
  UNINTERRUPTIBLE = "UNINTERRUPTIBLE"
258
- INTERRUPTING = "INTERRUPTING"
259
264
 
260
265
 
261
266
  class TelescopeConfigGeneratorType(str, Enum):
@@ -1141,6 +1146,8 @@ class ObservationValidationCode(str, Enum):
1141
1146
  LOW_TOTAL_SIGNAL_TO_NOISE = "LOW_TOTAL_SIGNAL_TO_NOISE"
1142
1147
  CONDITIONS_UNLIKELY = "CONDITIONS_UNLIKELY"
1143
1148
  CONFIGURATION_WARNING = "CONFIGURATION_WARNING"
1149
+ TOO_ACTIVATION_UNEXPECTED = "TOO_ACTIVATION_UNEXPECTED"
1150
+ CFP_WARNING = "CFP_WARNING"
1144
1151
 
1145
1152
 
1146
1153
  class ObserveClass(str, Enum):
@@ -1504,7 +1511,6 @@ class ConsiderForBand3(str, Enum):
1504
1511
 
1505
1512
  class TooActivation(str, Enum):
1506
1513
  NONE = "NONE"
1507
- STANDARD = "STANDARD"
1508
1514
  RAPID = "RAPID"
1509
1515
  INTERRUPTING = "INTERRUPTING"
1510
1516