Source code for gpp_client.generated.fragments
from typing import Annotated, Any, Literal, Optional, Union
from pydantic import Field
from .base_model import BaseModel
from .enums import (
AttachmentType,
CalculationState,
CalibrationRole,
CallForProposalsType,
CloudExtinctionPreset,
EphemerisKeyType,
Existence,
Flamingos2Decker,
Flamingos2Disperser,
Flamingos2Filter,
Flamingos2Fpu,
Flamingos2ReadMode,
Flamingos2ReadoutMode,
Flamingos2Reads,
GmosBinning,
GmosNorthBuiltinFpu,
GmosNorthFilter,
GmosNorthGrating,
GmosSouthBuiltinFpu,
GmosSouthFilter,
GmosSouthGrating,
ImageQualityPreset,
Instrument,
ObservationValidationCode,
ObservationWorkflowState,
ObservingModeType,
ProgramType,
ProposalStatus,
ScienceBand,
ScienceMode,
SkyBackground,
TelluricTag,
TimingWindowInclusion,
WaterVapor,
)
[docs]
class AttachmentDetails(BaseModel):
id: Any
file_name: Any = Field(alias="fileName")
attachment_type: AttachmentType = Field(alias="attachmentType")
file_size: Any = Field(alias="fileSize")
checked: bool
description: Optional[Any]
updated_at: Any = Field(alias="updatedAt")
[docs]
class CallForProposalsCore(BaseModel):
id: Any
title: Any
[docs]
class CallForProposalsDetails(CallForProposalsCore):
type_: CallForProposalsType = Field(alias="type")
semester: Any
active: "CallForProposalsDetailsActive"
submission_deadline_default: Optional[Any] = Field(
alias="submissionDeadlineDefault"
)
instruments: list[Instrument]
existence: Existence
[docs]
class CallForProposalsDetailsActive(BaseModel):
start: Any
end: Any
[docs]
class ConstraintSetDetails(BaseModel):
image_quality: ImageQualityPreset = Field(alias="imageQuality")
cloud_extinction: CloudExtinctionPreset = Field(alias="cloudExtinction")
sky_background: SkyBackground = Field(alias="skyBackground")
water_vapor: WaterVapor = Field(alias="waterVapor")
elevation_range: "ConstraintSetDetailsElevationRange" = Field(
alias="elevationRange"
)
[docs]
class ConstraintSetDetailsElevationRange(BaseModel):
air_mass: Optional["ConstraintSetDetailsElevationRangeAirMass"] = Field(
alias="airMass"
)
hour_angle: Optional["ConstraintSetDetailsElevationRangeHourAngle"] = Field(
alias="hourAngle"
)
[docs]
class ConstraintSetDetailsElevationRangeAirMass(BaseModel):
min: Any
max: Any
[docs]
class ConstraintSetDetailsElevationRangeHourAngle(BaseModel):
min_hours: Any = Field(alias="minHours")
max_hours: Any = Field(alias="maxHours")
[docs]
class ExposureTimeModeDetails(BaseModel):
signal_to_noise: Optional["ExposureTimeModeDetailsSignalToNoise"] = Field(
alias="signalToNoise"
)
time_and_count: Optional["ExposureTimeModeDetailsTimeAndCount"] = Field(
alias="timeAndCount"
)
[docs]
class ExposureTimeModeDetailsSignalToNoise(BaseModel):
value: Any
at: "ExposureTimeModeDetailsSignalToNoiseAt"
[docs]
class ExposureTimeModeDetailsSignalToNoiseAt(BaseModel):
nanometers: Any
[docs]
class ExposureTimeModeDetailsTimeAndCount(BaseModel):
time: "ExposureTimeModeDetailsTimeAndCountTime"
count: Any
at: "ExposureTimeModeDetailsTimeAndCountAt"
[docs]
class ExposureTimeModeDetailsTimeAndCountTime(BaseModel):
seconds: Any
[docs]
class ExposureTimeModeDetailsTimeAndCountAt(BaseModel):
nanometers: Any
[docs]
class Flamingos2LongSlitDetails(BaseModel):
decker: Flamingos2Decker
default_decker: Flamingos2Decker = Field(alias="defaultDecker")
default_offsets: list["Flamingos2LongSlitDetailsDefaultOffsets"] = Field(
alias="defaultOffsets"
)
disperser: Flamingos2Disperser
filter_: Flamingos2Filter = Field(alias="filter")
fpu: Flamingos2Fpu
telluric_type: "Flamingos2LongSlitDetailsTelluricType" = Field(alias="telluricType")
exposure_time_mode: "Flamingos2LongSlitDetailsExposureTimeMode" = Field(
alias="exposureTimeMode"
)
explicit_read_mode: Optional[Flamingos2ReadMode] = Field(alias="explicitReadMode")
explicit_reads: Optional[Flamingos2Reads] = Field(alias="explicitReads")
explicit_decker: Optional[Flamingos2Decker] = Field(alias="explicitDecker")
readout_mode: Flamingos2ReadoutMode = Field(alias="readoutMode")
default_readout_mode: Flamingos2ReadoutMode = Field(alias="defaultReadoutMode")
offsets: list["Flamingos2LongSlitDetailsOffsets"]
acquisition: "Flamingos2LongSlitDetailsAcquisition"
initial_disperser: Flamingos2Disperser = Field(alias="initialDisperser")
initial_filter: Flamingos2Filter = Field(alias="initialFilter")
initial_fpu: Flamingos2Fpu = Field(alias="initialFpu")
[docs]
class Flamingos2LongSlitDetailsDefaultOffsets(BaseModel):
q: "Flamingos2LongSlitDetailsDefaultOffsetsQ"
p: "Flamingos2LongSlitDetailsDefaultOffsetsP"
[docs]
class Flamingos2LongSlitDetailsDefaultOffsetsQ(BaseModel):
arcseconds: Any
[docs]
class Flamingos2LongSlitDetailsDefaultOffsetsP(BaseModel):
arcseconds: Any
[docs]
class Flamingos2LongSlitDetailsTelluricType(BaseModel):
tag: TelluricTag
star_types: Optional[list[str]] = Field(alias="starTypes")
[docs]
class Flamingos2LongSlitDetailsExposureTimeMode(ExposureTimeModeDetails):
pass
[docs]
class Flamingos2LongSlitDetailsOffsets(BaseModel):
q: "Flamingos2LongSlitDetailsOffsetsQ"
p: "Flamingos2LongSlitDetailsOffsetsP"
[docs]
class Flamingos2LongSlitDetailsOffsetsQ(BaseModel):
arcseconds: Any
[docs]
class Flamingos2LongSlitDetailsOffsetsP(BaseModel):
arcseconds: Any
[docs]
class Flamingos2LongSlitDetailsAcquisition(BaseModel):
exposure_time_mode: "Flamingos2LongSlitDetailsAcquisitionExposureTimeMode" = Field(
alias="exposureTimeMode"
)
[docs]
class Flamingos2LongSlitDetailsAcquisitionExposureTimeMode(ExposureTimeModeDetails):
pass
[docs]
class GmosNorthImagingDetails(BaseModel):
filters: list["GmosNorthImagingDetailsFilters"]
bin: GmosBinning
[docs]
class GmosNorthImagingDetailsFilters(BaseModel):
filter_: GmosNorthFilter = Field(alias="filter")
[docs]
class GmosNorthLongSlitDetails(BaseModel):
grating: GmosNorthGrating
filter_: Optional[GmosNorthFilter] = Field(alias="filter")
fpu: GmosNorthBuiltinFpu
central_wavelength: "GmosNorthLongSlitDetailsCentralWavelength" = Field(
alias="centralWavelength"
)
offsets: list["GmosNorthLongSlitDetailsOffsets"]
x_bin: GmosBinning = Field(alias="xBin")
y_bin: GmosBinning = Field(alias="yBin")
[docs]
class GmosNorthLongSlitDetailsCentralWavelength(BaseModel):
nanometers: Any
[docs]
class GmosNorthLongSlitDetailsOffsets(BaseModel):
arcseconds: Any
[docs]
class GmosSouthImagingDetails(BaseModel):
filters: list["GmosSouthImagingDetailsFilters"]
bin: GmosBinning
[docs]
class GmosSouthImagingDetailsFilters(BaseModel):
filter_: GmosSouthFilter = Field(alias="filter")
[docs]
class GmosSouthLongSlitDetails(BaseModel):
grating: GmosSouthGrating
filter_: Optional[GmosSouthFilter] = Field(alias="filter")
fpu: GmosSouthBuiltinFpu
central_wavelength: "GmosSouthLongSlitDetailsCentralWavelength" = Field(
alias="centralWavelength"
)
offsets: list["GmosSouthLongSlitDetailsOffsets"]
x_bin: GmosBinning = Field(alias="xBin")
y_bin: GmosBinning = Field(alias="yBin")
[docs]
class GmosSouthLongSlitDetailsCentralWavelength(BaseModel):
nanometers: Any
[docs]
class GmosSouthLongSlitDetailsOffsets(BaseModel):
arcseconds: Any
[docs]
class NonsiderealTargetDetails(BaseModel):
des: str
key_type: EphemerisKeyType = Field(alias="keyType")
key: str
[docs]
class ObservationCore(BaseModel):
id: Any
existence: Existence
reference: Optional["ObservationCoreReference"]
title: Any
instrument: Optional[Instrument]
calibration_role: Optional[CalibrationRole] = Field(alias="calibrationRole")
[docs]
class ObservationCoreReference(BaseModel):
label: Any
[docs]
class ObservingModeDetails(BaseModel):
instrument: Instrument
mode: ObservingModeType
gmos_north_long_slit: Optional["ObservingModeDetailsGmosNorthLongSlit"] = Field(
alias="gmosNorthLongSlit"
)
gmos_south_long_slit: Optional["ObservingModeDetailsGmosSouthLongSlit"] = Field(
alias="gmosSouthLongSlit"
)
gmos_north_imaging: Optional["ObservingModeDetailsGmosNorthImaging"] = Field(
alias="gmosNorthImaging"
)
gmos_south_imaging: Optional["ObservingModeDetailsGmosSouthImaging"] = Field(
alias="gmosSouthImaging"
)
flamingos_2_long_slit: Optional["ObservingModeDetailsFlamingos2LongSlit"] = Field(
alias="flamingos2LongSlit"
)
[docs]
class ObservingModeDetailsGmosNorthLongSlit(GmosNorthLongSlitDetails):
pass
[docs]
class ObservingModeDetailsGmosSouthLongSlit(GmosSouthLongSlitDetails):
pass
[docs]
class ObservingModeDetailsGmosNorthImaging(GmosNorthImagingDetails):
pass
[docs]
class ObservingModeDetailsGmosSouthImaging(GmosSouthImagingDetails):
pass
[docs]
class ObservingModeDetailsFlamingos2LongSlit(Flamingos2LongSlitDetails):
pass
[docs]
class ProgramCore(BaseModel):
id: Any
name: Optional[Any]
existence: Existence
description: Optional[Any]
[docs]
class ScienceRequirementsDetails(BaseModel):
mode: Optional[ScienceMode]
[docs]
class SiderealTargetDetails(BaseModel):
ra: "SiderealTargetDetailsRa"
dec: "SiderealTargetDetailsDec"
epoch: Any
[docs]
class SiderealTargetDetailsRa(BaseModel):
hours: Any
hms: Any
degrees: Any
[docs]
class SiderealTargetDetailsDec(BaseModel):
degrees: Any
dms: Any
[docs]
class TargetEnvironmentDetails(BaseModel):
asterism: list["TargetEnvironmentDetailsAsterism"]
explicit_base: Optional["TargetEnvironmentDetailsExplicitBase"] = Field(
alias="explicitBase"
)
[docs]
class TargetEnvironmentDetailsAsterism(BaseModel):
name: Any
sidereal: Optional["TargetEnvironmentDetailsAsterismSidereal"]
nonsidereal: Optional["TargetEnvironmentDetailsAsterismNonsidereal"]
[docs]
class TargetEnvironmentDetailsAsterismSidereal(SiderealTargetDetails):
pass
[docs]
class TargetEnvironmentDetailsAsterismNonsidereal(NonsiderealTargetDetails):
pass
[docs]
class TargetEnvironmentDetailsExplicitBase(BaseModel):
ra: "TargetEnvironmentDetailsExplicitBaseRa"
dec: "TargetEnvironmentDetailsExplicitBaseDec"
[docs]
class TargetEnvironmentDetailsExplicitBaseRa(BaseModel):
hms: Any
[docs]
class TargetEnvironmentDetailsExplicitBaseDec(BaseModel):
dms: Any
[docs]
class TimingWindowDetails(BaseModel):
inclusion: TimingWindowInclusion
start_utc: Any = Field(alias="startUtc")
end: Optional[
Annotated[
Union[
"TimingWindowDetailsEndTimingWindowEndAt",
"TimingWindowDetailsEndTimingWindowEndAfter",
],
Field(discriminator="typename__"),
]
]
[docs]
class TimingWindowDetailsEndTimingWindowEndAt(BaseModel):
typename__: Literal["TimingWindowEndAt"] = Field(alias="__typename")
at_utc: Any = Field(alias="atUtc")
[docs]
class TimingWindowDetailsEndTimingWindowEndAfter(BaseModel):
typename__: Literal["TimingWindowEndAfter"] = Field(alias="__typename")
after: "TimingWindowDetailsEndTimingWindowEndAfterAfter"
repeat: Optional["TimingWindowDetailsEndTimingWindowEndAfterRepeat"]
[docs]
class TimingWindowDetailsEndTimingWindowEndAfterAfter(BaseModel):
seconds: Any
[docs]
class TimingWindowDetailsEndTimingWindowEndAfterRepeat(BaseModel):
period: "TimingWindowDetailsEndTimingWindowEndAfterRepeatPeriod"
times: Optional[Any]
[docs]
class TimingWindowDetailsEndTimingWindowEndAfterRepeatPeriod(BaseModel):
seconds: Any
[docs]
class WorkflowCore(BaseModel):
state: CalculationState
[docs]
class WorkflowDetails(WorkflowCore):
value: "WorkflowDetailsValue"
[docs]
class WorkflowDetailsValue(BaseModel):
state: ObservationWorkflowState
valid_transitions: list[ObservationWorkflowState] = Field(alias="validTransitions")
validation_errors: list["WorkflowDetailsValueValidationErrors"] = Field(
alias="validationErrors"
)
[docs]
class WorkflowDetailsValueValidationErrors(BaseModel):
code: ObservationValidationCode
messages: list[str]
[docs]
class ObservationDetails(ObservationCore):
observer_notes: Optional[Any] = Field(alias="observerNotes")
subtitle: Optional[Any]
program: "ObservationDetailsProgram"
science_requirements: "ObservationDetailsScienceRequirements" = Field(
alias="scienceRequirements"
)
science_band: Optional[ScienceBand] = Field(alias="scienceBand")
workflow: Optional["ObservationDetailsWorkflow"]
observing_mode: Optional["ObservationDetailsObservingMode"] = Field(
alias="observingMode"
)
constraint_set: "ObservationDetailsConstraintSet" = Field(alias="constraintSet")
timing_windows: list["ObservationDetailsTimingWindows"] = Field(
alias="timingWindows"
)
target_environment: "ObservationDetailsTargetEnvironment" = Field(
alias="targetEnvironment"
)
[docs]
class ObservationDetailsProgram(ProgramCore):
pass
[docs]
class ObservationDetailsScienceRequirements(ScienceRequirementsDetails):
pass
[docs]
class ObservationDetailsWorkflow(WorkflowDetails):
pass
[docs]
class ObservationDetailsObservingMode(ObservingModeDetails):
pass
[docs]
class ObservationDetailsConstraintSet(ConstraintSetDetails):
pass
[docs]
class ObservationDetailsTimingWindows(TimingWindowDetails):
pass
[docs]
class ObservationDetailsTargetEnvironment(TargetEnvironmentDetails):
pass
[docs]
class ObservationWorkflowCore(BaseModel):
state: ObservationWorkflowState
[docs]
class ObservationWorkflowDetails(ObservationWorkflowCore):
valid_transitions: list[ObservationWorkflowState] = Field(alias="validTransitions")
validation_errors: list["ObservationWorkflowDetailsValidationErrors"] = Field(
alias="validationErrors"
)
[docs]
class ObservationWorkflowDetailsValidationErrors(BaseModel):
code: ObservationValidationCode
messages: list[str]
[docs]
class OpportunityTargetDetails(BaseModel):
region: "OpportunityTargetDetailsRegion"
[docs]
class OpportunityTargetDetailsRegion(BaseModel):
right_ascension_arc: "OpportunityTargetDetailsRegionRightAscensionArc" = Field(
alias="rightAscensionArc"
)
declination_arc: "OpportunityTargetDetailsRegionDeclinationArc" = Field(
alias="declinationArc"
)
[docs]
class OpportunityTargetDetailsRegionRightAscensionArc(BaseModel):
start: Optional["OpportunityTargetDetailsRegionRightAscensionArcStart"]
end: Optional["OpportunityTargetDetailsRegionRightAscensionArcEnd"]
[docs]
class OpportunityTargetDetailsRegionRightAscensionArcStart(BaseModel):
degrees: Any
[docs]
class OpportunityTargetDetailsRegionRightAscensionArcEnd(BaseModel):
degrees: Any
[docs]
class OpportunityTargetDetailsRegionDeclinationArc(BaseModel):
start: Optional["OpportunityTargetDetailsRegionDeclinationArcStart"]
end: Optional["OpportunityTargetDetailsRegionDeclinationArcEnd"]
[docs]
class OpportunityTargetDetailsRegionDeclinationArcStart(BaseModel):
degrees: Any
[docs]
class OpportunityTargetDetailsRegionDeclinationArcEnd(BaseModel):
degrees: Any
[docs]
class ProgramDetail(ProgramCore):
type_: ProgramType = Field(alias="type")
active: "ProgramDetailActive"
proposal_status: ProposalStatus = Field(alias="proposalStatus")
proposal: Optional["ProgramDetailProposal"]
pi: Optional["ProgramDetailPi"]
[docs]
class ProgramDetailActive(BaseModel):
start: Any
end: Any
[docs]
class ProgramDetailProposal(BaseModel):
call: Optional["ProgramDetailProposalCall"]
[docs]
class ProgramDetailProposalCall(BaseModel):
semester: Any
active: "ProgramDetailProposalCallActive"
[docs]
class ProgramDetailProposalCallActive(BaseModel):
start: Any
end: Any
[docs]
class ProgramDetailPi(BaseModel):
id: Any
[docs]
class ProgramGroupElements(BaseModel):
all_group_elements: list["ProgramGroupElementsAllGroupElements"] = Field(
alias="allGroupElements"
)
[docs]
class ProgramGroupElementsAllGroupElements(BaseModel):
parent_group_id: Optional[Any] = Field(alias="parentGroupId")
observation: Optional["ProgramGroupElementsAllGroupElementsObservation"]
group: Optional["ProgramGroupElementsAllGroupElementsGroup"]
[docs]
class ProgramGroupElementsAllGroupElementsObservation(BaseModel):
id: Any
group_id: Optional[Any] = Field(alias="groupId")
[docs]
class ProgramGroupElementsAllGroupElementsGroup(BaseModel):
id: Any
name: Optional[Any]
minimum_required: Optional[Any] = Field(alias="minimumRequired")
ordered: bool
parent_id: Optional[Any] = Field(alias="parentId")
parent_index: Any = Field(alias="parentIndex")
minimum_interval: Optional[
"ProgramGroupElementsAllGroupElementsGroupMinimumInterval"
] = Field(alias="minimumInterval")
maximum_interval: Optional[
"ProgramGroupElementsAllGroupElementsGroupMaximumInterval"
] = Field(alias="maximumInterval")
system: bool
[docs]
class ProgramGroupElementsAllGroupElementsGroupMinimumInterval(BaseModel):
seconds: Any
[docs]
class ProgramGroupElementsAllGroupElementsGroupMaximumInterval(BaseModel):
seconds: Any
[docs]
class TargetCore(BaseModel):
id: Any
existence: Existence
name: Any
calibration_role: Optional[CalibrationRole] = Field(alias="calibrationRole")
[docs]
class TargetDetails(TargetCore):
opportunity: Optional["TargetDetailsOpportunity"]
sidereal: Optional["TargetDetailsSidereal"]
nonsidereal: Optional["TargetDetailsNonsidereal"]
[docs]
class TargetDetailsOpportunity(OpportunityTargetDetails):
pass
[docs]
class TargetDetailsSidereal(SiderealTargetDetails):
pass
[docs]
class TargetDetailsNonsidereal(NonsiderealTargetDetails):
pass
[docs]
class TargetProgramSummary(BaseModel):
program: "TargetProgramSummaryProgram"
[docs]
class TargetProgramSummaryProgram(ProgramCore):
pass
AttachmentDetails.model_rebuild()
CallForProposalsCore.model_rebuild()
CallForProposalsDetails.model_rebuild()
ConstraintSetDetails.model_rebuild()
ExposureTimeModeDetails.model_rebuild()
Flamingos2LongSlitDetails.model_rebuild()
GmosNorthImagingDetails.model_rebuild()
GmosNorthLongSlitDetails.model_rebuild()
GmosSouthImagingDetails.model_rebuild()
GmosSouthLongSlitDetails.model_rebuild()
NonsiderealTargetDetails.model_rebuild()
ObservationCore.model_rebuild()
ObservingModeDetails.model_rebuild()
ProgramCore.model_rebuild()
ScienceRequirementsDetails.model_rebuild()
SiderealTargetDetails.model_rebuild()
TargetEnvironmentDetails.model_rebuild()
TimingWindowDetails.model_rebuild()
WorkflowCore.model_rebuild()
WorkflowDetails.model_rebuild()
ObservationDetails.model_rebuild()
ObservationWorkflowCore.model_rebuild()
ObservationWorkflowDetails.model_rebuild()
OpportunityTargetDetails.model_rebuild()
ProgramDetail.model_rebuild()
ProgramGroupElements.model_rebuild()
TargetCore.model_rebuild()
TargetDetails.model_rebuild()
TargetProgramSummary.model_rebuild()