gpp-client 26.5.0.dev1__tar.gz → 26.5.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 (110) hide show
  1. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/PKG-INFO +2 -2
  2. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/pyproject.toml +9 -12
  3. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/__init__.py +12 -4
  4. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/custom_fields.py +22 -2
  5. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/enums.py +18 -1
  6. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/input_types.py +31 -11
  7. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/.gitignore +0 -0
  8. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/LICENSE +0 -0
  9. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/README.md +0 -0
  10. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/graphql/README.md +0 -0
  11. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/__init__.py +0 -0
  12. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/cli/__init__.py +0 -0
  13. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/cli/cli.py +0 -0
  14. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/cli/commands/__init__.py +0 -0
  15. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/cli/commands/attachment.py +0 -0
  16. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/cli/commands/goats.py +0 -0
  17. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/cli/commands/observation.py +0 -0
  18. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/cli/commands/program.py +0 -0
  19. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/cli/commands/scheduler.py +0 -0
  20. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/cli/commands/site_status.py +0 -0
  21. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/cli/commands/target.py +0 -0
  22. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/cli/commands/workflow_state.py +0 -0
  23. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/cli/console.py +0 -0
  24. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/cli/output.py +0 -0
  25. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/cli/utils.py +0 -0
  26. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/client.py +0 -0
  27. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/constants.py +0 -0
  28. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/domains/__init__.py +0 -0
  29. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/domains/atom.py +0 -0
  30. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/domains/attachment.py +0 -0
  31. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/domains/base.py +0 -0
  32. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/domains/goats.py +0 -0
  33. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/domains/observation.py +0 -0
  34. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/domains/program.py +0 -0
  35. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/domains/scheduler.py +0 -0
  36. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/domains/site_status.py +0 -0
  37. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/domains/target.py +0 -0
  38. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/domains/workflow_state.py +0 -0
  39. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/environment.py +0 -0
  40. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/exceptions.py +0 -0
  41. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/async_base_client.py +0 -0
  42. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/base_model.py +0 -0
  43. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/base_operation.py +0 -0
  44. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/client.py +0 -0
  45. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/clone_observation.py +0 -0
  46. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/clone_target.py +0 -0
  47. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/create_call_for_proposals.py +0 -0
  48. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/create_observation.py +0 -0
  49. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/create_program.py +0 -0
  50. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/create_target_by_program_id.py +0 -0
  51. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/create_target_by_program_reference.py +0 -0
  52. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/create_target_by_proposal_reference.py +0 -0
  53. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/custom_mutations.py +0 -0
  54. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/custom_queries.py +0 -0
  55. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/custom_typing_fields.py +0 -0
  56. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/delete_call_for_proposals_by_id.py +0 -0
  57. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/delete_observation_by_id.py +0 -0
  58. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/delete_observation_by_reference.py +0 -0
  59. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/delete_program_by_id.py +0 -0
  60. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/delete_target_by_id.py +0 -0
  61. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/exceptions.py +0 -0
  62. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/fragments.py +0 -0
  63. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_call_for_proposals.py +0 -0
  64. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_calls_for_proposals.py +0 -0
  65. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_goats_observations.py +0 -0
  66. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_goats_programs.py +0 -0
  67. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_observation.py +0 -0
  68. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_observation_attachments_by_id.py +0 -0
  69. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_observation_attachments_by_reference.py +0 -0
  70. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_observation_workflow_state_by_id.py +0 -0
  71. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_observation_workflow_state_by_reference.py +0 -0
  72. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_observations.py +0 -0
  73. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_program_attachments_by_id.py +0 -0
  74. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_program_attachments_by_proposal_reference.py +0 -0
  75. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_program_attachments_by_reference.py +0 -0
  76. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_program_by_id.py +0 -0
  77. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_program_by_proposal_reference.py +0 -0
  78. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_program_by_reference.py +0 -0
  79. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_programs.py +0 -0
  80. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_scheduler_all_programs_id.py +0 -0
  81. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_scheduler_programs.py +0 -0
  82. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_target_by_id.py +0 -0
  83. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/get_targets.py +0 -0
  84. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/obs_calculation_update.py +0 -0
  85. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/observation_edit.py +0 -0
  86. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/package_environment.py +0 -0
  87. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/ping.py +0 -0
  88. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/program_edit.py +0 -0
  89. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/restore_call_for_proposals_by_id.py +0 -0
  90. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/restore_observation_by_id.py +0 -0
  91. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/restore_observation_by_reference.py +0 -0
  92. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/restore_program_by_id.py +0 -0
  93. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/restore_target_by_id.py +0 -0
  94. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/set_observation_workflow_state.py +0 -0
  95. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/target_edit.py +0 -0
  96. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/update_call_for_proposals_by_id.py +0 -0
  97. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/update_calls_for_proposals.py +0 -0
  98. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/update_observation_by_id.py +0 -0
  99. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/update_observation_by_reference.py +0 -0
  100. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/update_observations.py +0 -0
  101. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/update_program_by_id.py +0 -0
  102. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/update_programs.py +0 -0
  103. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/update_target_by_id.py +0 -0
  104. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/generated/update_targets.py +0 -0
  105. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/logging_utils.py +0 -0
  106. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/rest/__init__.py +0 -0
  107. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/rest/client.py +0 -0
  108. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/rest/utils.py +0 -0
  109. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/src/gpp_client/settings.py +0 -0
  110. {gpp_client-26.5.0.dev1 → gpp_client-26.5.0.dev2}/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.dev1
3
+ Version: 26.5.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
@@ -44,7 +44,7 @@ Classifier: Programming Language :: Python :: 3.13
44
44
  Classifier: Programming Language :: Python :: 3.14
45
45
  Classifier: Topic :: Scientific/Engineering :: Astronomy
46
46
  Requires-Python: >=3.11.0
47
- Requires-Dist: aiohttp>=3.13.3
47
+ Requires-Dist: aiohttp>=3.13.4
48
48
  Requires-Dist: beautifulsoup4>=4.11.0
49
49
  Requires-Dist: graphql-core>=3.2.0
50
50
  Requires-Dist: httpx>=0.23
@@ -21,7 +21,7 @@ classifiers = [
21
21
  "Topic :: Scientific/Engineering :: Astronomy",
22
22
  ]
23
23
  dependencies = [
24
- "aiohttp>=3.13.3",
24
+ "aiohttp>=3.13.4",
25
25
  "beautifulsoup4>=4.11.0",
26
26
  "graphql-core>=3.2.0",
27
27
  "httpx>=0.23",
@@ -41,6 +41,10 @@ style = "pep440"
41
41
  pattern = '^v(?P<base>\d{2}\.\d{1,2}\.\d+)(?:\.(?P<stage>dev)(?P<revision>\d+))?$'
42
42
  strict = true
43
43
  metadata = false
44
+ fallback-version = "0.0.0"
45
+
46
+ [tool.uv]
47
+ cache-keys = [{ file = "pyproject.toml" }, { git = { commit = true, tags = true }}]
44
48
 
45
49
  [tool.hatch.build.targets.wheel]
46
50
  packages = ["src/gpp_client"]
@@ -95,13 +99,13 @@ codegen = [
95
99
  dev = [
96
100
  { include-group = "codegen" },
97
101
  "polyfactory>=3.2.0",
98
- "pytest>=9.0.1",
102
+ "pytest>=9.0.3",
99
103
  "pytest-asyncio>=1.3.0",
100
- "pytest-cov>=7.0.0",
104
+ "pytest-cov>=7.1.0",
101
105
  "pytest-mock>=3.15.1",
102
106
  "pytest-remotedata>=0.4.1",
103
107
  "pytest-xdist>=3.8.0",
104
- "ruff>=0.15.0",
108
+ "ruff>=0.15.12",
105
109
  ]
106
110
  docs = [
107
111
  "furo==2025.12.19",
@@ -110,14 +114,7 @@ docs = [
110
114
  "sphinx-copybutton>=0.5.2",
111
115
  "sphinxcontrib-typer>=0.7.2",
112
116
  ]
113
- notebook = [
114
- "ipykernel>=7.2.0",
115
- "jupyter>=1.1.1",
116
- ]
117
- schema = [
118
- "aiohttp>=3.13.3",
119
- "gql>=3.5.0,<4.0.0",
120
- ]
117
+ schema = [{ include-group = "codegen" }]
121
118
 
122
119
  [project.urls]
123
120
  Homepage = "https://github.com/gemini-hlsw/gpp-client"
@@ -154,12 +154,15 @@ from .enums import (
154
154
  GnirsFpuSlit,
155
155
  GnirsGrating,
156
156
  GnirsPrism,
157
+ GnirsReadMode,
158
+ GnirsWellDepth,
157
159
  GuideProbe,
158
160
  GuideState,
159
161
  HiiRegionSpectrum,
160
162
  Ignore,
161
163
  Igrins2OffsetMode,
162
164
  ImageQualityPreset,
165
+ ImagingCapability,
163
166
  Instrument,
164
167
  ItcType,
165
168
  LineFluxIntegratedUnits,
@@ -192,7 +195,7 @@ from .enums import (
192
195
  SkyBackground,
193
196
  SlewStage,
194
197
  SmartGcalType,
195
- SpectroscopyCapabilities,
198
+ SpectroscopyCapability,
196
199
  StellarLibrarySpectrum,
197
200
  StepExecutionState,
198
201
  StepStage,
@@ -988,11 +991,12 @@ from .input_types import (
988
991
  WhereOptionEqCalibrationRole,
989
992
  WhereOptionEqEducationalStatus,
990
993
  WhereOptionEqGender,
994
+ WhereOptionEqImagingCapability,
991
995
  WhereOptionEqInstrument,
992
996
  WhereOptionEqPartner,
993
997
  WhereOptionEqQaState,
994
998
  WhereOptionEqSite,
995
- WhereOptionEqSpectroscopyCapabilities,
999
+ WhereOptionEqSpectroscopyCapability,
996
1000
  WhereOptionEqTacCategory,
997
1001
  WhereOptionOrderScienceBand,
998
1002
  WhereOptionString,
@@ -1830,6 +1834,8 @@ __all__ = [
1830
1834
  "GnirsFpuSlit",
1831
1835
  "GnirsGrating",
1832
1836
  "GnirsPrism",
1837
+ "GnirsReadMode",
1838
+ "GnirsWellDepth",
1833
1839
  "GoaPropertiesInput",
1834
1840
  "GraphQLClient",
1835
1841
  "GraphQLClientError",
@@ -1852,6 +1858,7 @@ __all__ = [
1852
1858
  "Igrins2StaticInput",
1853
1859
  "Igrins2StepInput",
1854
1860
  "ImageQualityPreset",
1861
+ "ImagingCapability",
1855
1862
  "ImagingScienceRequirementsInput",
1856
1863
  "Instrument",
1857
1864
  "ItcType",
@@ -2066,7 +2073,7 @@ __all__ = [
2066
2073
  "SourceProfileInput",
2067
2074
  "SpectralDefinitionIntegratedInput",
2068
2075
  "SpectralDefinitionSurfaceInput",
2069
- "SpectroscopyCapabilities",
2076
+ "SpectroscopyCapability",
2070
2077
  "SpectroscopyScienceRequirementsInput",
2071
2078
  "SpiralTelescopeConfigGeneratorInput",
2072
2079
  "StellarLibrarySpectrum",
@@ -2216,11 +2223,12 @@ __all__ = [
2216
2223
  "WhereOptionEqCalibrationRole",
2217
2224
  "WhereOptionEqEducationalStatus",
2218
2225
  "WhereOptionEqGender",
2226
+ "WhereOptionEqImagingCapability",
2219
2227
  "WhereOptionEqInstrument",
2220
2228
  "WhereOptionEqPartner",
2221
2229
  "WhereOptionEqQaState",
2222
2230
  "WhereOptionEqSite",
2223
- "WhereOptionEqSpectroscopyCapabilities",
2231
+ "WhereOptionEqSpectroscopyCapability",
2224
2232
  "WhereOptionEqTacCategory",
2225
2233
  "WhereOptionOrderScienceBand",
2226
2234
  "WhereOptionString",
@@ -4302,6 +4302,11 @@ class GhostIfuFields(GraphQLField):
4302
4302
  """Blue detector config."""
4303
4303
  return GhostDetectorConfigFields("blue")
4304
4304
 
4305
+ @classmethod
4306
+ def sky_position(cls) -> "CoordinatesFields":
4307
+ """Sky position, if any."""
4308
+ return CoordinatesFields("skyPosition")
4309
+
4305
4310
  @classmethod
4306
4311
  def slit_viewing_camera_exposure_time(cls) -> "TimeSpanFields":
4307
4312
  """Slit viewing camera exposure time (if specified)."""
@@ -4331,7 +4336,10 @@ class GhostIfuFields(GraphQLField):
4331
4336
  def fields(
4332
4337
  self,
4333
4338
  *subfields: Union[
4334
- GhostIfuGraphQLField, "GhostDetectorConfigFields", "TimeSpanFields"
4339
+ GhostIfuGraphQLField,
4340
+ "CoordinatesFields",
4341
+ "GhostDetectorConfigFields",
4342
+ "TimeSpanFields",
4335
4343
  ],
4336
4344
  ) -> "GhostIfuFields":
4337
4345
  """Subfields should come from the GhostIfuFields class"""
@@ -6212,8 +6220,16 @@ class Igrins2DynamicFields(GraphQLField):
6212
6220
  """IGRINS-2 exposure time"""
6213
6221
  return TimeSpanFields("exposure")
6214
6222
 
6223
+ @classmethod
6224
+ def central_wavelength(cls) -> "WavelengthFields":
6225
+ """Central wavelength, which is fixed at 2.1 microns."""
6226
+ return WavelengthFields("centralWavelength")
6227
+
6215
6228
  def fields(
6216
- self, *subfields: Union[Igrins2DynamicGraphQLField, "TimeSpanFields"]
6229
+ self,
6230
+ *subfields: Union[
6231
+ Igrins2DynamicGraphQLField, "TimeSpanFields", "WavelengthFields"
6232
+ ],
6217
6233
  ) -> "Igrins2DynamicFields":
6218
6234
  """Subfields should come from the Igrins2DynamicFields class"""
6219
6235
  self._subfields.extend(subfields)
@@ -6441,6 +6457,10 @@ class ImagingConfigOptionFields(GraphQLField):
6441
6457
  adaptive_optics: "ImagingConfigOptionGraphQLField" = (
6442
6458
  ImagingConfigOptionGraphQLField("adaptiveOptics")
6443
6459
  )
6460
+ capability: "ImagingConfigOptionGraphQLField" = ImagingConfigOptionGraphQLField(
6461
+ "capability"
6462
+ )
6463
+ "A special capability (if any) that the configuration may have."
6444
6464
  site: "ImagingConfigOptionGraphQLField" = ImagingConfigOptionGraphQLField("site")
6445
6465
 
6446
6466
  @classmethod
@@ -876,6 +876,18 @@ class GnirsFpuSlit(str, Enum):
876
876
  LONG_SLIT_1_00 = "LONG_SLIT_1_00"
877
877
 
878
878
 
879
+ class GnirsReadMode(str, Enum):
880
+ VERY_BRIGHT = "VERY_BRIGHT"
881
+ BRIGHT = "BRIGHT"
882
+ FAINT = "FAINT"
883
+ VERY_FAINT = "VERY_FAINT"
884
+
885
+
886
+ class GnirsWellDepth(str, Enum):
887
+ SHALLOW = "SHALLOW"
888
+ DEEP = "DEEP"
889
+
890
+
879
891
  class ItcType(str, Enum):
880
892
  GHOST_IFU = "GHOST_IFU"
881
893
  GMOS_NORTH_IMAGING = "GMOS_NORTH_IMAGING"
@@ -1037,7 +1049,12 @@ class SlewStage(str, Enum):
1037
1049
  END_SLEW = "END_SLEW"
1038
1050
 
1039
1051
 
1040
- class SpectroscopyCapabilities(str, Enum):
1052
+ class ImagingCapability(str, Enum):
1053
+ SPECKLE = "SPECKLE"
1054
+ WIDE_FIELD = "WIDE_FIELD"
1055
+
1056
+
1057
+ class SpectroscopyCapability(str, Enum):
1041
1058
  NOD_AND_SHUFFLE = "NOD_AND_SHUFFLE"
1042
1059
  POLARIMETRY = "POLARIMETRY"
1043
1060
  CORONAGRAPHY = "CORONAGRAPHY"
@@ -78,6 +78,7 @@ from .enums import (
78
78
  Ignore,
79
79
  Igrins2OffsetMode,
80
80
  ImageQualityPreset,
81
+ ImagingCapability,
81
82
  Instrument,
82
83
  LineFluxIntegratedUnits,
83
84
  LineFluxSurfaceUnits,
@@ -102,7 +103,7 @@ from .enums import (
102
103
  SkyBackground,
103
104
  SlewStage,
104
105
  SmartGcalType,
105
- SpectroscopyCapabilities,
106
+ SpectroscopyCapability,
106
107
  StellarLibrarySpectrum,
107
108
  StepStage,
108
109
  TacCategory,
@@ -1801,7 +1802,7 @@ class SpectroscopyScienceRequirementsInput(BaseModel):
1801
1802
  alias=str("focalPlaneAngle"), default=None
1802
1803
  )
1803
1804
  "The focalPlaneAngle field may be unset by assigning a null value, or ignored by skipping it altogether"
1804
- capability: Optional[SpectroscopyCapabilities] = None
1805
+ capability: Optional[SpectroscopyCapability] = None
1805
1806
  "The capabilities field may be unset by assigning a null value, or ignored by skipping it altogether"
1806
1807
 
1807
1808
 
@@ -2462,6 +2463,10 @@ class GhostIfuInput(BaseModel):
2462
2463
  "Red config. If not specified, defaults will be applied. Cannot be unset with\na null value."
2463
2464
  blue: Optional["GhostDetectorConfigInput"] = None
2464
2465
  "Blue config. If not specified, defaults will be applied. Cannot be unset with\na null value."
2466
+ sky_position: Optional["CoordinatesInput"] = Field(
2467
+ alias=str("skyPosition"), default=None
2468
+ )
2469
+ "Coordinates for taking sky images. When specified, the observation is\nconsidered to be a Target + Sky and is validated to ensure that only a single\ntarget exists in its asterism. If not specified, this will remain null. May\nbe unset with a null value."
2465
2470
  slit_viewing_camera_exposure_time: Optional["TimeSpanInput"] = Field(
2466
2471
  alias=str("slitViewingCameraExposureTime"), default=None
2467
2472
  )
@@ -3358,21 +3363,35 @@ class WhereEqScienceSubtype(BaseModel):
3358
3363
  "Matches if the subtype is none of the supplied values."
3359
3364
 
3360
3365
 
3361
- class WhereOptionEqSpectroscopyCapabilities(BaseModel):
3362
- """Filters on equality (or not) of the SpectroscopyCapabilities property. All
3366
+ class WhereOptionEqImagingCapability(BaseModel):
3367
+ """Filters on equality (or not) of the ImagingCapability property. All
3368
+ supplied criteria must match, but usually only one is selected."""
3369
+
3370
+ is_null: Optional[bool] = Field(alias=str("IS_NULL"), default=None)
3371
+ "When `true`, matches if the imaging capability value is not defined."
3372
+ eq: Optional[ImagingCapability] = Field(alias=str("EQ"), default=None)
3373
+ "Matches if the imaging capability is the supplied value."
3374
+ neq: Optional[ImagingCapability] = Field(alias=str("NEQ"), default=None)
3375
+ "Matches if the imaging capability is anything other than the supplied\nvalue."
3376
+ in_: Optional[list[ImagingCapability]] = Field(alias=str("IN"), default=None)
3377
+ "Matches if the imaging capability is any one of the supplied values."
3378
+ nin: Optional[list[ImagingCapability]] = Field(alias=str("NIN"), default=None)
3379
+ "Matches if the imaging capability is not any one of the supplied values."
3380
+
3381
+
3382
+ class WhereOptionEqSpectroscopyCapability(BaseModel):
3383
+ """Filters on equality (or not) of the SpectroscopyCapability property. All
3363
3384
  supplied criteria must match, but usually only one is selected."""
3364
3385
 
3365
3386
  is_null: Optional[bool] = Field(alias=str("IS_NULL"), default=None)
3366
3387
  "When `true`, matches if the spectroscopy capability value is not defined."
3367
- eq: Optional[SpectroscopyCapabilities] = Field(alias=str("EQ"), default=None)
3388
+ eq: Optional[SpectroscopyCapability] = Field(alias=str("EQ"), default=None)
3368
3389
  "Matches if the spectroscopy capability is the supplied value."
3369
- neq: Optional[SpectroscopyCapabilities] = Field(alias=str("NEQ"), default=None)
3390
+ neq: Optional[SpectroscopyCapability] = Field(alias=str("NEQ"), default=None)
3370
3391
  "Matches if the spectroscopy capability is anything other than the supplied\nvalue."
3371
- in_: Optional[list[SpectroscopyCapabilities]] = Field(alias=str("IN"), default=None)
3392
+ in_: Optional[list[SpectroscopyCapability]] = Field(alias=str("IN"), default=None)
3372
3393
  "Matches if the spectroscopy capability is any one of the supplied values."
3373
- nin: Optional[list[SpectroscopyCapabilities]] = Field(
3374
- alias=str("NIN"), default=None
3375
- )
3394
+ nin: Optional[list[SpectroscopyCapability]] = Field(alias=str("NIN"), default=None)
3376
3395
  "Matches if the spectroscopy capability is not any one of the supplied values."
3377
3396
 
3378
3397
 
@@ -4210,7 +4229,7 @@ class WhereSpectroscopyConfigOption(BaseModel):
4210
4229
  adaptive_optics: Optional["WhereBoolean"] = Field(
4211
4230
  alias=str("adaptiveOptics"), default=None
4212
4231
  )
4213
- capability: Optional["WhereOptionEqSpectroscopyCapabilities"] = None
4232
+ capability: Optional["WhereOptionEqSpectroscopyCapability"] = None
4214
4233
  focal_plane: Optional["WhereEqFocalPlane"] = Field(
4215
4234
  alias=str("focalPlane"), default=None
4216
4235
  )
@@ -4249,6 +4268,7 @@ class WhereImagingConfigOption(BaseModel):
4249
4268
  instrument: Optional["WhereEqInstrument"] = None
4250
4269
  fov: Optional["WhereAngle"] = None
4251
4270
  site: Optional["WhereEqSite"] = None
4271
+ capability: Optional["WhereOptionEqImagingCapability"] = None
4252
4272
 
4253
4273
 
4254
4274
  class WhereString(BaseModel):