@ourskyai/node_platform-api 1.4.158 → 1.4.188

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 (48) hide show
  1. package/.openapi-generator/FILES +12 -1
  2. package/README.md +24 -4
  3. package/api.ts +1057 -50
  4. package/base.ts +1 -1
  5. package/common.ts +1 -1
  6. package/configuration.ts +1 -1
  7. package/dist/api.d.ts +593 -39
  8. package/dist/api.js +691 -31
  9. package/dist/base.d.ts +1 -1
  10. package/dist/base.js +1 -1
  11. package/dist/common.d.ts +1 -1
  12. package/dist/common.js +1 -1
  13. package/dist/configuration.d.ts +1 -1
  14. package/dist/configuration.js +1 -1
  15. package/dist/esm/api.d.ts +593 -39
  16. package/dist/esm/api.js +690 -30
  17. package/dist/esm/base.d.ts +1 -1
  18. package/dist/esm/base.js +1 -1
  19. package/dist/esm/common.d.ts +1 -1
  20. package/dist/esm/common.js +1 -1
  21. package/dist/esm/configuration.d.ts +1 -1
  22. package/dist/esm/configuration.js +1 -1
  23. package/dist/esm/index.d.ts +1 -1
  24. package/dist/esm/index.js +1 -1
  25. package/dist/index.d.ts +1 -1
  26. package/dist/index.js +1 -1
  27. package/docs/DefaultApi.md +506 -9
  28. package/docs/OpticalTrainComponentType.md +17 -0
  29. package/docs/SystemEventData.md +4 -0
  30. package/docs/V1CreateOpticalTrainRequest.md +31 -0
  31. package/docs/V1MotorStatus.md +2 -0
  32. package/docs/V1OpticalTrain.md +31 -0
  33. package/docs/V1OpticalTrainStatus.md +31 -0
  34. package/docs/V1OpticalTrainStatuses.md +21 -0
  35. package/docs/V1OpticalTrains.md +21 -0
  36. package/docs/V1OpticalTubeCoverSelectorRequest.md +3 -3
  37. package/docs/V1OpticalTubeStatus.md +1 -1
  38. package/docs/{V1OpticalTubeTemperatureSensorStatuses.md → V1OpticalTubeTemperatureSensorGroupStatus.md} +6 -4
  39. package/docs/V1OpticalTubeTemperatureSensorGroupStatuses.md +21 -0
  40. package/docs/V1SystemMetricsCollection.md +1 -1
  41. package/docs/V1TaskType.md +3 -1
  42. package/docs/V1UnassociatedOpticalTrainComponent.md +23 -0
  43. package/docs/V1UnassociatedOpticalTrainComponents.md +21 -0
  44. package/docs/V1UpdateOpticalTrainRequest.md +31 -0
  45. package/docs/V2SystemEventType.md +4 -0
  46. package/docs/V2SystemStatus.md +37 -0
  47. package/index.ts +1 -1
  48. package/package.json +1 -1
package/api.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * OurSky
5
5
  * Node Platform API The Node Platform API enables a customer to directly command their ground station either directly via IP address, via the self hosted C2 platform, or routed transparently via the Observable Space cloud platform. Node Platform APIs offer every endpoint a customer might need in order to slew their scope, perform diagnostics, capture images, and much more. Are we missing a feature you need? Drop us a line at support@observable.space.
6
6
  *
7
- * The version of the OpenAPI document: 1.4.158
7
+ * The version of the OpenAPI document: 1.4.188
8
8
  *
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -1045,6 +1045,21 @@ export interface OpenEnclosureShuttersEventData {
1045
1045
  export interface OperationStatusUpdated {
1046
1046
  'operationStatus': V1SystemOperationStatus;
1047
1047
  }
1048
+ /**
1049
+ * Type of optical train component.
1050
+ */
1051
+
1052
+ export const OpticalTrainComponentType = {
1053
+ CAMERA: 'CAMERA',
1054
+ FOCUSER: 'FOCUSER',
1055
+ ROTATOR: 'ROTATOR',
1056
+ FILTER_WHEEL: 'FILTER_WHEEL',
1057
+ OPTICAL_TUBE: 'OPTICAL_TUBE'
1058
+ } as const;
1059
+
1060
+ export type OpticalTrainComponentType = typeof OpticalTrainComponentType[keyof typeof OpticalTrainComponentType];
1061
+
1062
+
1048
1063
  /**
1049
1064
  * Connection status of the optical tube assembly sensors.
1050
1065
  */
@@ -1425,10 +1440,12 @@ export interface SystemEventData {
1425
1440
  'autofocusPointMeasured'?: AutofocusPointMeasuredEventData;
1426
1441
  'calibrateEnclosureRotator'?: PlaceholderEventData;
1427
1442
  'calibrateEnclosureWindow'?: PlaceholderEventData;
1443
+ 'calibrateMountMotorAUnwinder'?: PlaceholderEventData;
1428
1444
  'cancelAllTasks'?: CancelAllTasksEventData;
1429
1445
  'cancelTask'?: CancelTaskEventData;
1430
1446
  'captureImage'?: CaptureImageEventData;
1431
1447
  'captureImagesContinuously'?: CaptureImagesContinuouslyEventData;
1448
+ 'clearEnclosureRotatorMotorLockout'?: PlaceholderEventData;
1432
1449
  'closeEnclosureShutters'?: PlaceholderEventData;
1433
1450
  'closeOpticalTubeCover'?: PlaceholderEventData;
1434
1451
  'createElevationMask'?: PlaceholderEventData;
@@ -2130,6 +2147,35 @@ export interface V1CreateMountModelRequest {
2130
2147
  */
2131
2148
  'offset': number;
2132
2149
  }
2150
+ /**
2151
+ * Request to create an optical train configuration.
2152
+ */
2153
+ export interface V1CreateOpticalTrainRequest {
2154
+ /**
2155
+ * Unique identifier of the filter wheel to assign to this optical train.
2156
+ */
2157
+ 'filterWheelId'?: string | null;
2158
+ /**
2159
+ * Unique identifier of the focuser to assign to this optical train.
2160
+ */
2161
+ 'focuserId'?: string | null;
2162
+ /**
2163
+ * Human-readable label for the optical train.
2164
+ */
2165
+ 'label': string;
2166
+ /**
2167
+ * M3 port to assign to this optical train, when the optical tube has an M3 port selector.
2168
+ */
2169
+ 'm3Port'?: number | null;
2170
+ /**
2171
+ * Unique identifier of the optical tube to assign to this optical train.
2172
+ */
2173
+ 'opticalTubeId': string;
2174
+ /**
2175
+ * Unique identifier of the rotator to assign to this optical train.
2176
+ */
2177
+ 'rotatorId'?: string | null;
2178
+ }
2133
2179
  /**
2134
2180
  * Request parameters for power cycling one or more relay channels (deprecated). Specify which channels to cycle and the off-duration for the reset.
2135
2181
  */
@@ -3110,6 +3156,10 @@ export interface V1MotorStatus {
3110
3156
  * Current measured angular velocity of the motor in degrees per second.
3111
3157
  */
3112
3158
  'measuredVelocityDegreesPerSecond': number;
3159
+ /**
3160
+ * Indicates whether the motor controller is in a latched lockout state that prevents motion until the lockout is explicitly cleared.
3161
+ */
3162
+ 'motorLockoutActive'?: boolean;
3113
3163
  /**
3114
3164
  * Current angular position of the motor axis in degrees. This is the raw motor position before any corrections are applied.
3115
3165
  */
@@ -3468,13 +3518,68 @@ export interface V1OpticalPowerMeterStatus {
3468
3518
  'connected': boolean;
3469
3519
  }
3470
3520
  /**
3471
- * Optional optical tube selector. If omitted, the default optical tube is used.
3521
+ * Optical train configuration and assigned component identifiers.
3522
+ */
3523
+ export interface V1OpticalTrain {
3524
+ /**
3525
+ * Unique identifier of the filter wheel assigned to this optical train.
3526
+ */
3527
+ 'filterWheelId'?: string | null;
3528
+ /**
3529
+ * Unique identifier of the focuser assigned to this optical train.
3530
+ */
3531
+ 'focuserId'?: string | null;
3532
+ /**
3533
+ * Human-readable label for this optical train.
3534
+ */
3535
+ 'label': string;
3536
+ /**
3537
+ * M3 port used by this optical train, when the optical tube has an M3 port selector.
3538
+ */
3539
+ 'm3Port'?: number | null;
3540
+ /**
3541
+ * Unique identifier of the optical tube assigned to this optical train.
3542
+ */
3543
+ 'opticalTubeId': string;
3544
+ /**
3545
+ * Unique identifier of the rotator assigned to this optical train.
3546
+ */
3547
+ 'rotatorId'?: string | null;
3548
+ }
3549
+ /**
3550
+ * Status of one optical train and the components currently associated with it.
3551
+ */
3552
+ export interface V1OpticalTrainStatus {
3553
+ 'camera'?: V1CameraStatus;
3554
+ 'filterWheel'?: V1FilterWheelStatus;
3555
+ 'focuser'?: V1FocuserStatus;
3556
+ /**
3557
+ * Human-readable label for this optical train.
3558
+ */
3559
+ 'label'?: string;
3560
+ 'opticalTube'?: V1OpticalTubeStatus;
3561
+ 'rotator'?: V1RotatorStatus;
3562
+ }
3563
+ /**
3564
+ * Container object holding the status of all configured optical trains.
3565
+ */
3566
+ export interface V1OpticalTrainStatuses {
3567
+ 'statuses': Array<V1OpticalTrainStatus>;
3568
+ }
3569
+ /**
3570
+ * Container object holding all configured optical trains.
3571
+ */
3572
+ export interface V1OpticalTrains {
3573
+ 'opticalTrains': Array<V1OpticalTrain>;
3574
+ }
3575
+ /**
3576
+ * Optional optical tube cover selector. If omitted, the default optical tube cover is used.
3472
3577
  */
3473
3578
  export interface V1OpticalTubeCoverSelectorRequest {
3474
3579
  /**
3475
- * Unique identifier of the optical tube to command. Obtain valid optical tube IDs from the optical tube statuses endpoint.
3580
+ * Unique identifier of the optical tube cover to command. Obtain valid optical tube cover IDs from the optical tube cover statuses endpoint.
3476
3581
  */
3477
- 'opticalTubeId'?: string;
3582
+ 'opticalTubeCoverId'?: string;
3478
3583
  }
3479
3584
  /**
3480
3585
  * Current status of the optical tube dust cover including connection state and open/closed position.
@@ -3642,7 +3747,7 @@ export interface V1OpticalTubeStatus {
3642
3747
  */
3643
3748
  'id'?: string | null;
3644
3749
  'm3'?: V1OpticalTubeM3Status;
3645
- 'temperatureSensors'?: V1OpticalTubeTemperatureSensorStatuses;
3750
+ 'temperatureSensors'?: V1OpticalTubeTemperatureSensorGroupStatus;
3646
3751
  }
3647
3752
  /**
3648
3753
  * Collection of comprehensive optical tube statuses, one per optical tube.
@@ -3650,6 +3755,25 @@ export interface V1OpticalTubeStatus {
3650
3755
  export interface V1OpticalTubeStatuses {
3651
3756
  'statuses': Array<V1OpticalTubeStatus>;
3652
3757
  }
3758
+ /**
3759
+ * Temperature sensor statuses for a specific optical tube.
3760
+ */
3761
+ export interface V1OpticalTubeTemperatureSensorGroupStatus {
3762
+ /**
3763
+ * Unique identifier of the optical tube within the system. Null when the status source does not provide component IDs.
3764
+ */
3765
+ 'id'?: string | null;
3766
+ /**
3767
+ * Array of temperature readings, one for each sensor in the optical tube assembly.
3768
+ */
3769
+ 'statuses': Array<V1OpticalTubeTemperatureSensorStatus>;
3770
+ }
3771
+ /**
3772
+ * Collection of temperature sensor statuses grouped by optical tube.
3773
+ */
3774
+ export interface V1OpticalTubeTemperatureSensorGroupStatuses {
3775
+ 'statuses': Array<V1OpticalTubeTemperatureSensorGroupStatus>;
3776
+ }
3653
3777
  /**
3654
3778
  * Identifies the temperature sensor location within the optical tube assembly.
3655
3779
  */
@@ -3676,15 +3800,6 @@ export interface V1OpticalTubeTemperatureSensorStatus {
3676
3800
  }
3677
3801
 
3678
3802
 
3679
- /**
3680
- * Collection of temperature readings from sensors in the optical tube assembly.
3681
- */
3682
- export interface V1OpticalTubeTemperatureSensorStatuses {
3683
- /**
3684
- * Array of temperature readings, one for each sensor in the optical tube assembly.
3685
- */
3686
- 'statuses': Array<V1OpticalTubeTemperatureSensorStatus>;
3687
- }
3688
3803
  /**
3689
3804
  * Notify that a peer has changed status
3690
3805
  */
@@ -4507,9 +4622,9 @@ export interface V1SystemMetrics {
4507
4622
  */
4508
4623
  export interface V1SystemMetricsCollection {
4509
4624
  /**
4510
- * Measurements encoded as fixed two-item arrays. Index 0 is measuredAt as an ISO 8601 date-time string; index 1 is value as a number.
4625
+ * Measurements encoded as fixed two-item numeric arrays. Index 0 is measuredAt as a Unix epoch millisecond timestamp; index 1 is the measurement value as a double.
4511
4626
  */
4512
- 'metrics': Array<Array<any>>;
4627
+ 'metrics': Array<Array<number>>;
4513
4628
  /**
4514
4629
  * The metric identifier that describes what is being measured, such as cpu_temperature or mount_position_altitude.
4515
4630
  */
@@ -4691,7 +4806,7 @@ export interface V1Task {
4691
4806
 
4692
4807
 
4693
4808
  /**
4694
- * Type classification for system tasks. CREATE_MOUNT_MODEL builds a pointing model by measuring and correcting for mount alignment errors. CREATE_ELEVATION_MASK generates a horizon obstruction map for the observatory location. CALIBRATE_ENCLOSURE_ROTATOR measures the enclosure rotator to mount azimuth relationship and persists the resulting mount offset. CALIBRATE_ENCLOSURE_WINDOW sweeps the enclosure window through its full motion range to derive and persist motor counts per revolution. RUN_AUTOFOCUS executes an automated focus optimization routine. RUN_PERPETUAL_INSTRUCTION_LOOP continuously executes observation sequences. STARTUP_WIZARD guides initial telescope setup and configuration. SET_CAMERA_TEMPERATURE manages camera cooling to target temperature. ENGAGE_ADHOC_DEPLOYMENT activates portable operation mode. RUN_SLEW_DEMO performs a demonstration slew sequence. TAKE_CALIBRATION_FRAMES captures bias, dark, or flat calibration images. RUN_LIVE_STACKING_SESSION runs a live stacking session. RUN_STARY_PARTY runs a star party
4809
+ * Type classification for system tasks. CREATE_MOUNT_MODEL builds a pointing model by measuring and correcting for mount alignment errors. CREATE_ELEVATION_MASK generates a horizon obstruction map for the observatory location. CALIBRATE_ENCLOSURE_ROTATOR measures the enclosure rotator to mount azimuth relationship and persists the resulting mount offset. CALIBRATE_ENCLOSURE_WINDOW sweeps the enclosure window through its full motion range to derive and persist motor counts per revolution. CALIBRATE_MOUNT_MOTOR_A_UNWINDER sweeps mount motor A to infer and persist the absolute encoder unwinder configuration. RUN_AUTOFOCUS executes an automated focus optimization routine. RUN_PERPETUAL_INSTRUCTION_LOOP continuously executes observation sequences. STARTUP_WIZARD guides initial telescope setup and configuration. SET_CAMERA_TEMPERATURE manages camera cooling to target temperature. ENGAGE_ADHOC_DEPLOYMENT activates portable operation mode. RUN_SLEW_DEMO performs a demonstration slew sequence. TAKE_CALIBRATION_FRAMES captures bias, dark, or flat calibration images. RUN_LIVE_STACKING_SESSION runs a live stacking session. RUN_STARY_PARTY runs a star party
4695
4810
  */
4696
4811
 
4697
4812
  export const V1TaskType = {
@@ -4699,6 +4814,7 @@ export const V1TaskType = {
4699
4814
  CREATE_ELEVATION_MASK: 'CREATE_ELEVATION_MASK',
4700
4815
  CALIBRATE_ENCLOSURE_ROTATOR: 'CALIBRATE_ENCLOSURE_ROTATOR',
4701
4816
  CALIBRATE_ENCLOSURE_WINDOW: 'CALIBRATE_ENCLOSURE_WINDOW',
4817
+ CALIBRATE_MOUNT_MOTOR_A_UNWINDER: 'CALIBRATE_MOUNT_MOTOR_A_UNWINDER',
4702
4818
  RUN_AUTOFOCUS: 'RUN_AUTOFOCUS',
4703
4819
  RUN_PERPETUAL_INSTRUCTION_LOOP: 'RUN_PERPETUAL_INSTRUCTION_LOOP',
4704
4820
  STARTUP_WIZARD: 'STARTUP_WIZARD',
@@ -4876,6 +4992,24 @@ export const V1UIOperationMode = {
4876
4992
  export type V1UIOperationMode = typeof V1UIOperationMode[keyof typeof V1UIOperationMode];
4877
4993
 
4878
4994
 
4995
+ /**
4996
+ * Optical train component that is not currently attached to an optical train.
4997
+ */
4998
+ export interface V1UnassociatedOpticalTrainComponent {
4999
+ /**
5000
+ * Unique identifier of the unassociated component.
5001
+ */
5002
+ 'id': string;
5003
+ 'type': OpticalTrainComponentType;
5004
+ }
5005
+
5006
+
5007
+ /**
5008
+ * Container object holding optical train components that are not currently attached to an optical train.
5009
+ */
5010
+ export interface V1UnassociatedOpticalTrainComponents {
5011
+ 'statuses': Array<V1UnassociatedOpticalTrainComponent>;
5012
+ }
4879
5013
  /**
4880
5014
  * Request payload for replacing the current elevation mask points stored for a node.
4881
5015
  */
@@ -4912,6 +5046,35 @@ export interface V1UpdateImageProcessingPluginRequest {
4912
5046
  'name'?: string;
4913
5047
  'pluginId': string;
4914
5048
  }
5049
+ /**
5050
+ * Request to update an optical train configuration.
5051
+ */
5052
+ export interface V1UpdateOpticalTrainRequest {
5053
+ /**
5054
+ * Unique identifier of the filter wheel to assign to this optical train.
5055
+ */
5056
+ 'filterWheelId'?: string | null;
5057
+ /**
5058
+ * Unique identifier of the focuser to assign to this optical train.
5059
+ */
5060
+ 'focuserId'?: string | null;
5061
+ /**
5062
+ * Human-readable label of the optical train to update.
5063
+ */
5064
+ 'label': string;
5065
+ /**
5066
+ * M3 port to assign to this optical train, when the optical tube has an M3 port selector.
5067
+ */
5068
+ 'm3Port'?: number | null;
5069
+ /**
5070
+ * Unique identifier of the optical tube to assign to this optical train.
5071
+ */
5072
+ 'opticalTubeId': string;
5073
+ /**
5074
+ * Unique identifier of the rotator to assign to this optical train.
5075
+ */
5076
+ 'rotatorId'?: string | null;
5077
+ }
4915
5078
  /**
4916
5079
  * Complete metadata for a recorded video including capture settings, file information, codec details, and timing data. Use this object to understand the recording parameters and locate the video file.
4917
5080
  */
@@ -5152,6 +5315,8 @@ export const V2SystemEventType = {
5152
5315
  CAPTURE_IMAGES_CONTINUOUSLY: 'CAPTURE_IMAGES_CONTINUOUSLY',
5153
5316
  CALIBRATE_ENCLOSURE_ROTATOR: 'CALIBRATE_ENCLOSURE_ROTATOR',
5154
5317
  CALIBRATE_ENCLOSURE_WINDOW: 'CALIBRATE_ENCLOSURE_WINDOW',
5318
+ CALIBRATE_MOUNT_MOTOR_A_UNWINDER: 'CALIBRATE_MOUNT_MOTOR_A_UNWINDER',
5319
+ CLEAR_ENCLOSURE_ROTATOR_MOTOR_LOCKOUT: 'CLEAR_ENCLOSURE_ROTATOR_MOTOR_LOCKOUT',
5155
5320
  CLOSE_ENCLOSURE_SHUTTERS: 'CLOSE_ENCLOSURE_SHUTTERS',
5156
5321
  CLOSE_OPTICAL_TUBE_COVER: 'CLOSE_OPTICAL_TUBE_COVER',
5157
5322
  CREATE_ELEVATION_MASK: 'CREATE_ELEVATION_MASK',
@@ -5258,6 +5423,20 @@ export interface V2SystemEvents {
5258
5423
  */
5259
5424
  'systemEvents': Array<V2SystemEvent>;
5260
5425
  }
5426
+ /**
5427
+ * Comprehensive status snapshot of all hardware components in the telescope system. Provides a unified view for monitoring and diagnostics.
5428
+ */
5429
+ export interface V2SystemStatus {
5430
+ 'edfa'?: V1EdfaStatus;
5431
+ 'enclosure'?: V2EnclosureStatus;
5432
+ 'mount'?: V2MountStatus;
5433
+ 'opticalPowerMeter'?: V1OpticalPowerMeterStatus;
5434
+ 'opticalTrains'?: V1OpticalTrainStatuses;
5435
+ 'relays'?: V2RelayStatuses;
5436
+ 'safety'?: V1SafetyStatus;
5437
+ 'unassociatedOpticalTrainComponents'?: V1UnassociatedOpticalTrainComponents;
5438
+ 'weatherStation'?: V1WeatherStationStatus;
5439
+ }
5261
5440
  /**
5262
5441
  * Request parameters for turning off a specific power relay. Specify which equipment function to power off.
5263
5442
  */
@@ -5519,15 +5698,18 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
5519
5698
  };
5520
5699
  },
5521
5700
  /**
5522
- * Adds a single manual calibration point to the pointing model. The node will attempt to plate-solve the supplied image to determine J2000 right ascension and declination and pair it with the mount current mechanical position to record a new correction point. Use this to refine the model with a known sky position without running a full automated survey. Returns an empty success response when the point is added.
5701
+ * Adds a single manual calibration point to the pointing model. The node will attempt to plate-solve the supplied image to determine J2000 right ascension and declination and pair it with the mount mechanical position to record a new correction point. Use this to refine the model with a known sky position without running a full automated survey. Returns an empty success response when the point is added.
5523
5702
  * @param {File} body
5524
5703
  * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
5704
+ * @param {number} [motorAEncoderPositionDegrees] Motor A encoder position in degrees at the time the supplied image was captured.
5705
+ * @param {number} [motorBEncoderPositionDegrees] Motor B encoder position in degrees at the time the supplied image was captured.
5706
+ * @param {string} [timestamp] ISO 8601 timestamp when the supplied encoder positions were measured.
5525
5707
  * @param {*} [options] Override http request option.
5526
5708
  * @throws {RequiredError}
5527
5709
  */
5528
- v1AddMountModelPointHereUsingImage: async (body: File, lineageId?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
5710
+ v1AddMountModelPointUsingImage: async (body: File, lineageId?: string, motorAEncoderPositionDegrees?: number, motorBEncoderPositionDegrees?: number, timestamp?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
5529
5711
  // verify required parameter 'body' is not null or undefined
5530
- assertParamExists('v1AddMountModelPointHereUsingImage', 'body', body)
5712
+ assertParamExists('v1AddMountModelPointUsingImage', 'body', body)
5531
5713
  const localVarPath = `/node-platform/v1/mount/model/add-point-using-image`;
5532
5714
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
5533
5715
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -5550,6 +5732,20 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
5550
5732
  localVarQueryParameter['lineageId'] = lineageId;
5551
5733
  }
5552
5734
 
5735
+ if (motorAEncoderPositionDegrees !== undefined) {
5736
+ localVarQueryParameter['motorAEncoderPositionDegrees'] = motorAEncoderPositionDegrees;
5737
+ }
5738
+
5739
+ if (motorBEncoderPositionDegrees !== undefined) {
5740
+ localVarQueryParameter['motorBEncoderPositionDegrees'] = motorBEncoderPositionDegrees;
5741
+ }
5742
+
5743
+ if (timestamp !== undefined) {
5744
+ localVarQueryParameter['timestamp'] = (timestamp as any instanceof Date) ?
5745
+ (timestamp as any).toISOString() :
5746
+ timestamp;
5747
+ }
5748
+
5553
5749
  localVarHeaderParameter['Content-Type'] = 'application/octet-stream';
5554
5750
  localVarHeaderParameter['Accept'] = 'application/json';
5555
5751
 
@@ -5921,6 +6117,46 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
5921
6117
  options: localVarRequestOptions,
5922
6118
  };
5923
6119
  },
6120
+ /**
6121
+ * Clears a latched dome rotator motor lockout condition after the underlying cause has been investigated and it is safe to permit rotator motion again. To recover from the lockout zone, the edge controller temporarily disables the limiter, moves the enclosure rotator back into the valid range, and then re-enables the limiter. This operation is a no-op when no motor lockout is active.
6122
+ * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
6123
+ * @param {*} [options] Override http request option.
6124
+ * @throws {RequiredError}
6125
+ */
6126
+ v1ClearEnclosureRotatorMotorLockout: async (lineageId?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
6127
+ const localVarPath = `/node-platform/v1/enclosure/rotator/clear-motor-lockout`;
6128
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
6129
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
6130
+ let baseOptions;
6131
+ if (configuration) {
6132
+ baseOptions = configuration.baseOptions;
6133
+ }
6134
+
6135
+ const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
6136
+ const localVarHeaderParameter = {} as any;
6137
+ const localVarQueryParameter = {} as any;
6138
+
6139
+ // authentication Roles required
6140
+
6141
+ // authentication BearerToken required
6142
+ // http bearer authentication required
6143
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
6144
+
6145
+ if (lineageId !== undefined) {
6146
+ localVarQueryParameter['lineageId'] = lineageId;
6147
+ }
6148
+
6149
+ localVarHeaderParameter['Accept'] = 'application/json';
6150
+
6151
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
6152
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
6153
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
6154
+
6155
+ return {
6156
+ url: toPathString(localVarUrlObj),
6157
+ options: localVarRequestOptions,
6158
+ };
6159
+ },
5924
6160
  /**
5925
6161
  * Clears all calibration points from the current pointing model, removing every correction the mount applies to its raw mechanical positioning. Use this to discard an inaccurate model before building a new one, or to reset to uncorrected pointing. Returns an empty success response when the model is cleared.
5926
6162
  * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
@@ -6211,6 +6447,51 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
6211
6447
  options: localVarRequestOptions,
6212
6448
  };
6213
6449
  },
6450
+ /**
6451
+ * Creates an optical train configuration by assigning optical train components to a human-readable label.
6452
+ * @param {V1CreateOpticalTrainRequest} v1CreateOpticalTrainRequest
6453
+ * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
6454
+ * @param {*} [options] Override http request option.
6455
+ * @throws {RequiredError}
6456
+ */
6457
+ v1CreateOpticalTrain: async (v1CreateOpticalTrainRequest: V1CreateOpticalTrainRequest, lineageId?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
6458
+ // verify required parameter 'v1CreateOpticalTrainRequest' is not null or undefined
6459
+ assertParamExists('v1CreateOpticalTrain', 'v1CreateOpticalTrainRequest', v1CreateOpticalTrainRequest)
6460
+ const localVarPath = `/node-platform/v1/optical-trains`;
6461
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
6462
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
6463
+ let baseOptions;
6464
+ if (configuration) {
6465
+ baseOptions = configuration.baseOptions;
6466
+ }
6467
+
6468
+ const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
6469
+ const localVarHeaderParameter = {} as any;
6470
+ const localVarQueryParameter = {} as any;
6471
+
6472
+ // authentication Roles required
6473
+
6474
+ // authentication BearerToken required
6475
+ // http bearer authentication required
6476
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
6477
+
6478
+ if (lineageId !== undefined) {
6479
+ localVarQueryParameter['lineageId'] = lineageId;
6480
+ }
6481
+
6482
+ localVarHeaderParameter['Content-Type'] = 'application/json';
6483
+ localVarHeaderParameter['Accept'] = 'application/json';
6484
+
6485
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
6486
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
6487
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
6488
+ localVarRequestOptions.data = serializeDataIfNeeded(v1CreateOpticalTrainRequest, localVarRequestOptions, configuration)
6489
+
6490
+ return {
6491
+ url: toPathString(localVarUrlObj),
6492
+ options: localVarRequestOptions,
6493
+ };
6494
+ },
6214
6495
  /**
6215
6496
  * DEPRECATED: Use [/node-platform/v2/relays/cycle](#tag/cycles/post/node-platform/v2/relays/cycle) instead. Power cycles the specified relay channels by turning them off and then back on after a specified duration. This legacy endpoint uses channel identifiers for relay selection. The newer endpoint provides the same functionality with improved relay function identification.
6216
6497
  * @param {V1CycleRelaysRequest} v1CycleRelaysRequest
@@ -6347,6 +6628,53 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
6347
6628
  options: localVarRequestOptions,
6348
6629
  };
6349
6630
  },
6631
+ /**
6632
+ * Deletes one optical train configuration by label.
6633
+ * @param {string} label Human-readable label of the optical train to delete.
6634
+ * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
6635
+ * @param {*} [options] Override http request option.
6636
+ * @throws {RequiredError}
6637
+ */
6638
+ v1DeleteOpticalTrain: async (label: string, lineageId?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
6639
+ // verify required parameter 'label' is not null or undefined
6640
+ assertParamExists('v1DeleteOpticalTrain', 'label', label)
6641
+ const localVarPath = `/node-platform/v1/optical-train`;
6642
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
6643
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
6644
+ let baseOptions;
6645
+ if (configuration) {
6646
+ baseOptions = configuration.baseOptions;
6647
+ }
6648
+
6649
+ const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
6650
+ const localVarHeaderParameter = {} as any;
6651
+ const localVarQueryParameter = {} as any;
6652
+
6653
+ // authentication Roles required
6654
+
6655
+ // authentication BearerToken required
6656
+ // http bearer authentication required
6657
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
6658
+
6659
+ if (lineageId !== undefined) {
6660
+ localVarQueryParameter['lineageId'] = lineageId;
6661
+ }
6662
+
6663
+ if (label !== undefined) {
6664
+ localVarQueryParameter['label'] = label;
6665
+ }
6666
+
6667
+ localVarHeaderParameter['Accept'] = 'application/json';
6668
+
6669
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
6670
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
6671
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
6672
+
6673
+ return {
6674
+ url: toPathString(localVarUrlObj),
6675
+ options: localVarRequestOptions,
6676
+ };
6677
+ },
6350
6678
  /**
6351
6679
  * Permanently deletes a video and its associated files from the system. Use this endpoint to manually remove unwanted videos and free up storage space. This action cannot be undone, so ensure you have downloaded or backed up any important files before deletion.
6352
6680
  * @param {V1DeleteVideoRequest} v1DeleteVideoRequest
@@ -7056,10 +7384,11 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
7056
7384
  /**
7057
7385
  * Discovers the physical travel limits of the focuser by moving it to both ends of its range. This calibration routine is essential after initial setup or if the focuser limits are unknown. The focuser will move to find the minimum and maximum positions, which are then used to prevent out-of-range movements. Returns the discovered limit values in focuser steps.
7058
7386
  * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
7387
+ * @param {string} [id] Optional focuser ID. If provided, finds limits for that focuser instead of the default focuser.
7059
7388
  * @param {*} [options] Override http request option.
7060
7389
  * @throws {RequiredError}
7061
7390
  */
7062
- v1FindFocuserLimits: async (lineageId?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
7391
+ v1FindFocuserLimits: async (lineageId?: string, id?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
7063
7392
  const localVarPath = `/node-platform/v1/focuser/find-limit`;
7064
7393
  // use dummy base URL string because the URL constructor only accepts absolute URLs.
7065
7394
  const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
@@ -7082,6 +7411,10 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
7082
7411
  localVarQueryParameter['lineageId'] = lineageId;
7083
7412
  }
7084
7413
 
7414
+ if (id !== undefined) {
7415
+ localVarQueryParameter['id'] = id;
7416
+ }
7417
+
7085
7418
  localVarHeaderParameter['Accept'] = 'application/json';
7086
7419
 
7087
7420
  setSearchParams(localVarUrlObj, localVarQueryParameter);
@@ -8680,6 +9013,93 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
8680
9013
  options: localVarRequestOptions,
8681
9014
  };
8682
9015
  },
9016
+ /**
9017
+ * Retrieves one optical train configuration by label.
9018
+ * @param {string} label Human-readable label of the optical train to retrieve.
9019
+ * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
9020
+ * @param {*} [options] Override http request option.
9021
+ * @throws {RequiredError}
9022
+ */
9023
+ v1GetOpticalTrain: async (label: string, lineageId?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
9024
+ // verify required parameter 'label' is not null or undefined
9025
+ assertParamExists('v1GetOpticalTrain', 'label', label)
9026
+ const localVarPath = `/node-platform/v1/optical-train`;
9027
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
9028
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
9029
+ let baseOptions;
9030
+ if (configuration) {
9031
+ baseOptions = configuration.baseOptions;
9032
+ }
9033
+
9034
+ const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
9035
+ const localVarHeaderParameter = {} as any;
9036
+ const localVarQueryParameter = {} as any;
9037
+
9038
+ // authentication Roles required
9039
+
9040
+ // authentication BearerToken required
9041
+ // http bearer authentication required
9042
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
9043
+
9044
+ if (lineageId !== undefined) {
9045
+ localVarQueryParameter['lineageId'] = lineageId;
9046
+ }
9047
+
9048
+ if (label !== undefined) {
9049
+ localVarQueryParameter['label'] = label;
9050
+ }
9051
+
9052
+ localVarHeaderParameter['Accept'] = 'application/json';
9053
+
9054
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
9055
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
9056
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
9057
+
9058
+ return {
9059
+ url: toPathString(localVarUrlObj),
9060
+ options: localVarRequestOptions,
9061
+ };
9062
+ },
9063
+ /**
9064
+ * Retrieves all configured optical trains and the optical train components assigned to each train.
9065
+ * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
9066
+ * @param {*} [options] Override http request option.
9067
+ * @throws {RequiredError}
9068
+ */
9069
+ v1GetOpticalTrains: async (lineageId?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
9070
+ const localVarPath = `/node-platform/v1/optical-trains`;
9071
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
9072
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
9073
+ let baseOptions;
9074
+ if (configuration) {
9075
+ baseOptions = configuration.baseOptions;
9076
+ }
9077
+
9078
+ const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
9079
+ const localVarHeaderParameter = {} as any;
9080
+ const localVarQueryParameter = {} as any;
9081
+
9082
+ // authentication Roles required
9083
+
9084
+ // authentication BearerToken required
9085
+ // http bearer authentication required
9086
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
9087
+
9088
+ if (lineageId !== undefined) {
9089
+ localVarQueryParameter['lineageId'] = lineageId;
9090
+ }
9091
+
9092
+ localVarHeaderParameter['Accept'] = 'application/json';
9093
+
9094
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
9095
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
9096
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
9097
+
9098
+ return {
9099
+ url: toPathString(localVarUrlObj),
9100
+ options: localVarRequestOptions,
9101
+ };
9102
+ },
8683
9103
  /**
8684
9104
  * Retrieves the current status of the optical tube dust cover that protects the primary mirror. The cover should be closed when the telescope is not in use to prevent dust accumulation on optical surfaces. Use this to verify cover state before imaging or to confirm the cover is closed during daytime. Returns V1OpticalTubeCoverStatus with connection and position information.
8685
9105
  * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
@@ -9105,6 +9525,91 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
9105
9525
  options: localVarRequestOptions,
9106
9526
  };
9107
9527
  },
9528
+ /**
9529
+ * Retrieves the current temperature sensor status for an optical tube assembly. Returns V1OpticalTubeTemperatureSensorGroupStatus containing the temperature reading from each sensor.
9530
+ * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
9531
+ * @param {string} [id] Optional optical tube ID. If provided, returns temperature sensor statuses for that optical tube instead of the default optical tube.
9532
+ * @param {*} [options] Override http request option.
9533
+ * @throws {RequiredError}
9534
+ */
9535
+ v1GetOpticalTubeTemperatureSensorGroupStatus: async (lineageId?: string, id?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
9536
+ const localVarPath = `/node-platform/v1/optical-tube/temperature-sensors/status`;
9537
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
9538
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
9539
+ let baseOptions;
9540
+ if (configuration) {
9541
+ baseOptions = configuration.baseOptions;
9542
+ }
9543
+
9544
+ const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
9545
+ const localVarHeaderParameter = {} as any;
9546
+ const localVarQueryParameter = {} as any;
9547
+
9548
+ // authentication Roles required
9549
+
9550
+ // authentication BearerToken required
9551
+ // http bearer authentication required
9552
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
9553
+
9554
+ if (lineageId !== undefined) {
9555
+ localVarQueryParameter['lineageId'] = lineageId;
9556
+ }
9557
+
9558
+ if (id !== undefined) {
9559
+ localVarQueryParameter['id'] = id;
9560
+ }
9561
+
9562
+ localVarHeaderParameter['Accept'] = 'application/json';
9563
+
9564
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
9565
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
9566
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
9567
+
9568
+ return {
9569
+ url: toPathString(localVarUrlObj),
9570
+ options: localVarRequestOptions,
9571
+ };
9572
+ },
9573
+ /**
9574
+ * Retrieves the current temperature sensor statuses grouped by optical tube. Use this endpoint to discover optical tube IDs and temperature readings before addressing a specific optical tube.
9575
+ * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
9576
+ * @param {*} [options] Override http request option.
9577
+ * @throws {RequiredError}
9578
+ */
9579
+ v1GetOpticalTubeTemperatureSensorGroupStatuses: async (lineageId?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
9580
+ const localVarPath = `/node-platform/v1/optical-tubes/temperature-sensors/status`;
9581
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
9582
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
9583
+ let baseOptions;
9584
+ if (configuration) {
9585
+ baseOptions = configuration.baseOptions;
9586
+ }
9587
+
9588
+ const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
9589
+ const localVarHeaderParameter = {} as any;
9590
+ const localVarQueryParameter = {} as any;
9591
+
9592
+ // authentication Roles required
9593
+
9594
+ // authentication BearerToken required
9595
+ // http bearer authentication required
9596
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
9597
+
9598
+ if (lineageId !== undefined) {
9599
+ localVarQueryParameter['lineageId'] = lineageId;
9600
+ }
9601
+
9602
+ localVarHeaderParameter['Accept'] = 'application/json';
9603
+
9604
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
9605
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
9606
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
9607
+
9608
+ return {
9609
+ url: toPathString(localVarUrlObj),
9610
+ options: localVarRequestOptions,
9611
+ };
9612
+ },
9108
9613
  /**
9109
9614
  * DEPRECATED: Use [/node-platform/v2/relays/status](#tag/status/get/node-platform/v2/relays/status) instead. Retrieves the current state of all power relays in the observatory. This legacy endpoint returns relay states by channel identifier. The newer endpoint provides the same information with improved relay function identification and additional connectivity details.
9110
9615
  * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
@@ -9630,7 +10135,7 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
9630
10135
  };
9631
10136
  },
9632
10137
  /**
9633
- * Retrieves time-series metrics data from the telescope system for performance monitoring and analysis. This endpoint returns telemetry data such as temperatures, positions, and operational statistics over a specified time range. **Metric selection:** - If `metricName` is omitted, all available metrics in the time window are returned. - If `metricName` is provided, only the specified metric is returned. **Automatic metric roll-ups:** To ensure efficient queries and bounded response sizes, metric data is automatically aggregated (\"rolled up\") based on the **requested time window length** (`before - after`). Roll-ups are applied uniformly across the entire response. Measurements are grouped into fixed UTC time buckets and aggregated using the **mean (average)** value per bucket. Returned timestamps represent the **start of each roll-up interval**, truncated to the bucket boundary in UTC. The roll-up interval is selected as follows: - Time window **1 hour**: full resolution (no roll-up) - Time window **6 hours**: **1-minute** roll-up - Time window **24 hours**: **5-minute** roll-up - Time window **72 hours**: **15-minute** roll-up - Time window ≤ **7 days**: **30-minute** roll-up - Time window > **7 days**: request is rejected **Default time window behavior:** - If neither `after` nor `before` is specified, the time window defaults to the last **24 hours**. - If only one bound is provided, the other bound is inferred to create a 24-hour window.
10138
+ * Retrieves time-series metrics data from the telescope system for performance monitoring and analysis. This endpoint returns telemetry data such as temperatures, positions, and operational statistics over a specified time range. **Metric selection:** - If `metricName` is omitted, all available metrics in the time window are returned. - If `metricName` is provided, only the specified metric is returned. **Automatic metric roll-ups:** To ensure efficient queries and bounded response sizes, metric data is automatically aggregated (\"rolled up\") based on the **requested time window length** (`before - after`). Roll-ups are applied uniformly across the entire response. Measurements are grouped into fixed UTC time buckets and aggregated using the **mean (average)** value per bucket. Returned timestamps represent the **start of each roll-up interval**, truncated to the bucket boundary in UTC. The roll-up interval is dynamically calculated based on the requested time window and the number of metrics queried to ensure system stability and optimal network performance. Wider time windows or queries with many metrics will automatically apply a coarser roll-up resolution. **Default time window behavior:** - If neither `after` nor `before` is specified, the time window defaults to the last **24 hours**. - If only one bound is provided, the other bound is inferred to create a 24-hour window.
9634
10139
  * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
9635
10140
  * @param {string} [metricName] Metric name to query. If omitted, all metrics in the time window are returned.
9636
10141
  * @param {string} [after] Filter metrics to only include measurements taken after this timestamp. Use ISO 8601 date-time format. When combined with before, defines a time window for querying historical metrics.
@@ -9689,7 +10194,7 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
9689
10194
  };
9690
10195
  },
9691
10196
  /**
9692
- * Retrieves time-series metrics data from the telescope system for performance monitoring and analysis, grouped into compact metric collections to reduce response size over the wire. This endpoint returns the same metric data as `/node-platform/v1/system/metrics`, but each collection contains shared metric identity fields once (`name`, `type`, and `tags`) and stores measurements as compact `[measuredAt, value]` arrays. **Metric selection:** - If `metricName` is omitted, all available metrics in the time window are returned. - If `metricName` is provided, only the specified metric is returned. **Automatic metric roll-ups:** To ensure efficient queries and bounded response sizes, metric data is automatically aggregated (\"rolled up\") based on the **requested time window length** (`before - after`). Roll-ups are applied uniformly across the entire response. Measurements are grouped into fixed UTC time buckets and aggregated using the **mean (average)** value per bucket. Returned timestamps represent the **start of each roll-up interval**, truncated to the bucket boundary in UTC. The roll-up interval is selected as follows: - Time window **10 minutes**: full resolution (no roll-up) - Time window **1 hour**: **10-second** roll-up - Time window **6 hours**: **1-minute** roll-up - Time window **24 hours**: **5-minute** roll-up - Time window **72 hours**: **15-minute** roll-up - Time window ≤ **7 days**: **30-minute** roll-up - Time window > **7 days**: request is rejected **Default time window behavior:** - If neither `after` nor `before` is specified, the time window defaults to the last **24 hours**. - If only one bound is provided, the other bound is inferred to create a 24-hour window.
10197
+ * Retrieves time-series metrics data from the telescope system for performance monitoring and analysis, grouped into compact metric collections to reduce response size over the wire. This endpoint returns the same metric data as `/node-platform/v1/system/metrics`, but each collection contains shared metric identity fields once (`name`, `type`, and `tags`) and stores measurements as compact `[measuredAt, value]` arrays. **Metric selection:** - If `metricName` is omitted, all available metrics in the time window are returned. - If `metricName` is provided, only the specified metric is returned. **Automatic metric roll-ups:** To ensure efficient queries and bounded response sizes, metric data is automatically aggregated (\"rolled up\") based on the **requested time window length** (`before - after`). Roll-ups are applied uniformly across the entire response. Measurements are grouped into fixed UTC time buckets and aggregated using the **mean (average)** value per bucket. Returned timestamps represent the **start of each roll-up interval**, truncated to the bucket boundary in UTC. The roll-up interval is dynamically calculated based on the requested time window and the number of metrics queried to ensure system stability and optimal network performance. Wider time windows or queries with many metrics will automatically apply a coarser roll-up resolution. **Default time window behavior:** - If neither `after` nor `before` is specified, the time window defaults to the last **24 hours**. - If only one bound is provided, the other bound is inferred to create a 24-hour window.
9693
10198
  * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
9694
10199
  * @param {string} [metricName] Metric name to query. If omitted, all metrics in the time window are returned.
9695
10200
  * @param {string} [after] Filter metrics to only include measurements taken after this timestamp. Use ISO 8601 date-time format. When combined with before, defines a time window for querying historical metrics.
@@ -13253,6 +13758,51 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
13253
13758
  options: localVarRequestOptions,
13254
13759
  };
13255
13760
  },
13761
+ /**
13762
+ * Updates an optical train configuration by replacing the component assignments for the provided label.
13763
+ * @param {V1UpdateOpticalTrainRequest} v1UpdateOpticalTrainRequest
13764
+ * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
13765
+ * @param {*} [options] Override http request option.
13766
+ * @throws {RequiredError}
13767
+ */
13768
+ v1UpdateOpticalTrain: async (v1UpdateOpticalTrainRequest: V1UpdateOpticalTrainRequest, lineageId?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
13769
+ // verify required parameter 'v1UpdateOpticalTrainRequest' is not null or undefined
13770
+ assertParamExists('v1UpdateOpticalTrain', 'v1UpdateOpticalTrainRequest', v1UpdateOpticalTrainRequest)
13771
+ const localVarPath = `/node-platform/v1/optical-train`;
13772
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
13773
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
13774
+ let baseOptions;
13775
+ if (configuration) {
13776
+ baseOptions = configuration.baseOptions;
13777
+ }
13778
+
13779
+ const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
13780
+ const localVarHeaderParameter = {} as any;
13781
+ const localVarQueryParameter = {} as any;
13782
+
13783
+ // authentication Roles required
13784
+
13785
+ // authentication BearerToken required
13786
+ // http bearer authentication required
13787
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
13788
+
13789
+ if (lineageId !== undefined) {
13790
+ localVarQueryParameter['lineageId'] = lineageId;
13791
+ }
13792
+
13793
+ localVarHeaderParameter['Content-Type'] = 'application/json';
13794
+ localVarHeaderParameter['Accept'] = 'application/json';
13795
+
13796
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
13797
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
13798
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
13799
+ localVarRequestOptions.data = serializeDataIfNeeded(v1UpdateOpticalTrainRequest, localVarRequestOptions, configuration)
13800
+
13801
+ return {
13802
+ url: toPathString(localVarUrlObj),
13803
+ options: localVarRequestOptions,
13804
+ };
13805
+ },
13256
13806
  /**
13257
13807
  * Updates system settings with new configuration values. Use this endpoint to modify telescope behavior including mount motion parameters. Only include the settings you want to change in the request body. Changes take effect immediately and persist across system restarts.
13258
13808
  * @param {V1SystemSettings} v1SystemSettings
@@ -13676,6 +14226,46 @@ export const DefaultApiAxiosParamCreator = function (configuration?: Configurati
13676
14226
  options: localVarRequestOptions,
13677
14227
  };
13678
14228
  },
14229
+ /**
14230
+ * Retrieves the comprehensive status of all connected hardware components in the telescope system, grouped by optical train and including optical train components that are not currently associated with an optical train.
14231
+ * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
14232
+ * @param {*} [options] Override http request option.
14233
+ * @throws {RequiredError}
14234
+ */
14235
+ v2GetSystemStatus: async (lineageId?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
14236
+ const localVarPath = `/node-platform/v2/system/status`;
14237
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
14238
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
14239
+ let baseOptions;
14240
+ if (configuration) {
14241
+ baseOptions = configuration.baseOptions;
14242
+ }
14243
+
14244
+ const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
14245
+ const localVarHeaderParameter = {} as any;
14246
+ const localVarQueryParameter = {} as any;
14247
+
14248
+ // authentication Roles required
14249
+
14250
+ // authentication BearerToken required
14251
+ // http bearer authentication required
14252
+ await setBearerAuthToObject(localVarHeaderParameter, configuration)
14253
+
14254
+ if (lineageId !== undefined) {
14255
+ localVarQueryParameter['lineageId'] = lineageId;
14256
+ }
14257
+
14258
+ localVarHeaderParameter['Accept'] = 'application/json';
14259
+
14260
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
14261
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
14262
+ localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
14263
+
14264
+ return {
14265
+ url: toPathString(localVarUrlObj),
14266
+ options: localVarRequestOptions,
14267
+ };
14268
+ },
13679
14269
  /**
13680
14270
  * Powers off a specific relay to disable the connected equipment. Use this endpoint to shut down observatory devices when observations are complete or during maintenance. Ensure proper shutdown procedures are followed for the equipment before removing power, such as parking the mount or stopping camera operations.
13681
14271
  * @param {V2TurnOffRelayRequest} v2TurnOffRelayRequest
@@ -13789,16 +14379,19 @@ export const DefaultApiFp = function(configuration?: Configuration) {
13789
14379
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
13790
14380
  },
13791
14381
  /**
13792
- * Adds a single manual calibration point to the pointing model. The node will attempt to plate-solve the supplied image to determine J2000 right ascension and declination and pair it with the mount current mechanical position to record a new correction point. Use this to refine the model with a known sky position without running a full automated survey. Returns an empty success response when the point is added.
14382
+ * Adds a single manual calibration point to the pointing model. The node will attempt to plate-solve the supplied image to determine J2000 right ascension and declination and pair it with the mount mechanical position to record a new correction point. Use this to refine the model with a known sky position without running a full automated survey. Returns an empty success response when the point is added.
13793
14383
  * @param {File} body
13794
14384
  * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
14385
+ * @param {number} [motorAEncoderPositionDegrees] Motor A encoder position in degrees at the time the supplied image was captured.
14386
+ * @param {number} [motorBEncoderPositionDegrees] Motor B encoder position in degrees at the time the supplied image was captured.
14387
+ * @param {string} [timestamp] ISO 8601 timestamp when the supplied encoder positions were measured.
13795
14388
  * @param {*} [options] Override http request option.
13796
14389
  * @throws {RequiredError}
13797
14390
  */
13798
- async v1AddMountModelPointHereUsingImage(body: File, lineageId?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<EmptySuccess>> {
13799
- const localVarAxiosArgs = await localVarAxiosParamCreator.v1AddMountModelPointHereUsingImage(body, lineageId, options);
14391
+ async v1AddMountModelPointUsingImage(body: File, lineageId?: string, motorAEncoderPositionDegrees?: number, motorBEncoderPositionDegrees?: number, timestamp?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<EmptySuccess>> {
14392
+ const localVarAxiosArgs = await localVarAxiosParamCreator.v1AddMountModelPointUsingImage(body, lineageId, motorAEncoderPositionDegrees, motorBEncoderPositionDegrees, timestamp, options);
13800
14393
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
13801
- const localVarOperationServerBasePath = operationServerMap['DefaultApi.v1AddMountModelPointHereUsingImage']?.[localVarOperationServerIndex]?.url;
14394
+ const localVarOperationServerBasePath = operationServerMap['DefaultApi.v1AddMountModelPointUsingImage']?.[localVarOperationServerIndex]?.url;
13802
14395
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
13803
14396
  },
13804
14397
  /**
@@ -13907,6 +14500,18 @@ export const DefaultApiFp = function(configuration?: Configuration) {
13907
14500
  const localVarOperationServerBasePath = operationServerMap['DefaultApi.v1CaptureImagesContinuously']?.[localVarOperationServerIndex]?.url;
13908
14501
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
13909
14502
  },
14503
+ /**
14504
+ * Clears a latched dome rotator motor lockout condition after the underlying cause has been investigated and it is safe to permit rotator motion again. To recover from the lockout zone, the edge controller temporarily disables the limiter, moves the enclosure rotator back into the valid range, and then re-enables the limiter. This operation is a no-op when no motor lockout is active.
14505
+ * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
14506
+ * @param {*} [options] Override http request option.
14507
+ * @throws {RequiredError}
14508
+ */
14509
+ async v1ClearEnclosureRotatorMotorLockout(lineageId?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<EmptySuccess>> {
14510
+ const localVarAxiosArgs = await localVarAxiosParamCreator.v1ClearEnclosureRotatorMotorLockout(lineageId, options);
14511
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
14512
+ const localVarOperationServerBasePath = operationServerMap['DefaultApi.v1ClearEnclosureRotatorMotorLockout']?.[localVarOperationServerIndex]?.url;
14513
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
14514
+ },
13910
14515
  /**
13911
14516
  * Clears all calibration points from the current pointing model, removing every correction the mount applies to its raw mechanical positioning. Use this to discard an inaccurate model before building a new one, or to reset to uncorrected pointing. Returns an empty success response when the model is cleared.
13912
14517
  * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
@@ -13989,10 +14594,23 @@ export const DefaultApiFp = function(configuration?: Configuration) {
13989
14594
  * @param {*} [options] Override http request option.
13990
14595
  * @throws {RequiredError}
13991
14596
  */
13992
- async v1CreateMountModel(v1CreateMountModelRequest: V1CreateMountModelRequest, lineageId?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<V1Task>> {
13993
- const localVarAxiosArgs = await localVarAxiosParamCreator.v1CreateMountModel(v1CreateMountModelRequest, lineageId, options);
14597
+ async v1CreateMountModel(v1CreateMountModelRequest: V1CreateMountModelRequest, lineageId?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<V1Task>> {
14598
+ const localVarAxiosArgs = await localVarAxiosParamCreator.v1CreateMountModel(v1CreateMountModelRequest, lineageId, options);
14599
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
14600
+ const localVarOperationServerBasePath = operationServerMap['DefaultApi.v1CreateMountModel']?.[localVarOperationServerIndex]?.url;
14601
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
14602
+ },
14603
+ /**
14604
+ * Creates an optical train configuration by assigning optical train components to a human-readable label.
14605
+ * @param {V1CreateOpticalTrainRequest} v1CreateOpticalTrainRequest
14606
+ * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
14607
+ * @param {*} [options] Override http request option.
14608
+ * @throws {RequiredError}
14609
+ */
14610
+ async v1CreateOpticalTrain(v1CreateOpticalTrainRequest: V1CreateOpticalTrainRequest, lineageId?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<V1OpticalTrain>> {
14611
+ const localVarAxiosArgs = await localVarAxiosParamCreator.v1CreateOpticalTrain(v1CreateOpticalTrainRequest, lineageId, options);
13994
14612
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
13995
- const localVarOperationServerBasePath = operationServerMap['DefaultApi.v1CreateMountModel']?.[localVarOperationServerIndex]?.url;
14613
+ const localVarOperationServerBasePath = operationServerMap['DefaultApi.v1CreateOpticalTrain']?.[localVarOperationServerIndex]?.url;
13996
14614
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
13997
14615
  },
13998
14616
  /**
@@ -14035,6 +14653,19 @@ export const DefaultApiFp = function(configuration?: Configuration) {
14035
14653
  const localVarOperationServerBasePath = operationServerMap['DefaultApi.v1DeleteImageProcessingPlugin']?.[localVarOperationServerIndex]?.url;
14036
14654
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
14037
14655
  },
14656
+ /**
14657
+ * Deletes one optical train configuration by label.
14658
+ * @param {string} label Human-readable label of the optical train to delete.
14659
+ * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
14660
+ * @param {*} [options] Override http request option.
14661
+ * @throws {RequiredError}
14662
+ */
14663
+ async v1DeleteOpticalTrain(label: string, lineageId?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<EmptySuccess>> {
14664
+ const localVarAxiosArgs = await localVarAxiosParamCreator.v1DeleteOpticalTrain(label, lineageId, options);
14665
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
14666
+ const localVarOperationServerBasePath = operationServerMap['DefaultApi.v1DeleteOpticalTrain']?.[localVarOperationServerIndex]?.url;
14667
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
14668
+ },
14038
14669
  /**
14039
14670
  * Permanently deletes a video and its associated files from the system. Use this endpoint to manually remove unwanted videos and free up storage space. This action cannot be undone, so ensure you have downloaded or backed up any important files before deletion.
14040
14671
  * @param {V1DeleteVideoRequest} v1DeleteVideoRequest
@@ -14248,11 +14879,12 @@ export const DefaultApiFp = function(configuration?: Configuration) {
14248
14879
  /**
14249
14880
  * Discovers the physical travel limits of the focuser by moving it to both ends of its range. This calibration routine is essential after initial setup or if the focuser limits are unknown. The focuser will move to find the minimum and maximum positions, which are then used to prevent out-of-range movements. Returns the discovered limit values in focuser steps.
14250
14881
  * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
14882
+ * @param {string} [id] Optional focuser ID. If provided, finds limits for that focuser instead of the default focuser.
14251
14883
  * @param {*} [options] Override http request option.
14252
14884
  * @throws {RequiredError}
14253
14885
  */
14254
- async v1FindFocuserLimits(lineageId?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<V1FocuserLimit>> {
14255
- const localVarAxiosArgs = await localVarAxiosParamCreator.v1FindFocuserLimits(lineageId, options);
14886
+ async v1FindFocuserLimits(lineageId?: string, id?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<V1FocuserLimit>> {
14887
+ const localVarAxiosArgs = await localVarAxiosParamCreator.v1FindFocuserLimits(lineageId, id, options);
14256
14888
  const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
14257
14889
  const localVarOperationServerBasePath = operationServerMap['DefaultApi.v1FindFocuserLimits']?.[localVarOperationServerIndex]?.url;
14258
14890
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
@@ -14718,6 +15350,31 @@ export const DefaultApiFp = function(configuration?: Configuration) {
14718
15350
  const localVarOperationServerBasePath = operationServerMap['DefaultApi.v1GetNetworkInterfaces']?.[localVarOperationServerIndex]?.url;
14719
15351
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
14720
15352
  },
15353
+ /**
15354
+ * Retrieves one optical train configuration by label.
15355
+ * @param {string} label Human-readable label of the optical train to retrieve.
15356
+ * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
15357
+ * @param {*} [options] Override http request option.
15358
+ * @throws {RequiredError}
15359
+ */
15360
+ async v1GetOpticalTrain(label: string, lineageId?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<V1OpticalTrain>> {
15361
+ const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetOpticalTrain(label, lineageId, options);
15362
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
15363
+ const localVarOperationServerBasePath = operationServerMap['DefaultApi.v1GetOpticalTrain']?.[localVarOperationServerIndex]?.url;
15364
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
15365
+ },
15366
+ /**
15367
+ * Retrieves all configured optical trains and the optical train components assigned to each train.
15368
+ * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
15369
+ * @param {*} [options] Override http request option.
15370
+ * @throws {RequiredError}
15371
+ */
15372
+ async v1GetOpticalTrains(lineageId?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<V1OpticalTrains>> {
15373
+ const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetOpticalTrains(lineageId, options);
15374
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
15375
+ const localVarOperationServerBasePath = operationServerMap['DefaultApi.v1GetOpticalTrains']?.[localVarOperationServerIndex]?.url;
15376
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
15377
+ },
14721
15378
  /**
14722
15379
  * Retrieves the current status of the optical tube dust cover that protects the primary mirror. The cover should be closed when the telescope is not in use to prevent dust accumulation on optical surfaces. Use this to verify cover state before imaging or to confirm the cover is closed during daytime. Returns V1OpticalTubeCoverStatus with connection and position information.
14723
15380
  * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
@@ -14843,6 +15500,31 @@ export const DefaultApiFp = function(configuration?: Configuration) {
14843
15500
  const localVarOperationServerBasePath = operationServerMap['DefaultApi.v1GetOpticalTubeStatuses']?.[localVarOperationServerIndex]?.url;
14844
15501
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
14845
15502
  },
15503
+ /**
15504
+ * Retrieves the current temperature sensor status for an optical tube assembly. Returns V1OpticalTubeTemperatureSensorGroupStatus containing the temperature reading from each sensor.
15505
+ * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
15506
+ * @param {string} [id] Optional optical tube ID. If provided, returns temperature sensor statuses for that optical tube instead of the default optical tube.
15507
+ * @param {*} [options] Override http request option.
15508
+ * @throws {RequiredError}
15509
+ */
15510
+ async v1GetOpticalTubeTemperatureSensorGroupStatus(lineageId?: string, id?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<V1OpticalTubeTemperatureSensorGroupStatus>> {
15511
+ const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetOpticalTubeTemperatureSensorGroupStatus(lineageId, id, options);
15512
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
15513
+ const localVarOperationServerBasePath = operationServerMap['DefaultApi.v1GetOpticalTubeTemperatureSensorGroupStatus']?.[localVarOperationServerIndex]?.url;
15514
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
15515
+ },
15516
+ /**
15517
+ * Retrieves the current temperature sensor statuses grouped by optical tube. Use this endpoint to discover optical tube IDs and temperature readings before addressing a specific optical tube.
15518
+ * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
15519
+ * @param {*} [options] Override http request option.
15520
+ * @throws {RequiredError}
15521
+ */
15522
+ async v1GetOpticalTubeTemperatureSensorGroupStatuses(lineageId?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<V1OpticalTubeTemperatureSensorGroupStatuses>> {
15523
+ const localVarAxiosArgs = await localVarAxiosParamCreator.v1GetOpticalTubeTemperatureSensorGroupStatuses(lineageId, options);
15524
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
15525
+ const localVarOperationServerBasePath = operationServerMap['DefaultApi.v1GetOpticalTubeTemperatureSensorGroupStatuses']?.[localVarOperationServerIndex]?.url;
15526
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
15527
+ },
14846
15528
  /**
14847
15529
  * DEPRECATED: Use [/node-platform/v2/relays/status](#tag/status/get/node-platform/v2/relays/status) instead. Retrieves the current state of all power relays in the observatory. This legacy endpoint returns relay states by channel identifier. The newer endpoint provides the same information with improved relay function identification and additional connectivity details.
14848
15530
  * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
@@ -14998,7 +15680,7 @@ export const DefaultApiFp = function(configuration?: Configuration) {
14998
15680
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
14999
15681
  },
15000
15682
  /**
15001
- * Retrieves time-series metrics data from the telescope system for performance monitoring and analysis. This endpoint returns telemetry data such as temperatures, positions, and operational statistics over a specified time range. **Metric selection:** - If `metricName` is omitted, all available metrics in the time window are returned. - If `metricName` is provided, only the specified metric is returned. **Automatic metric roll-ups:** To ensure efficient queries and bounded response sizes, metric data is automatically aggregated (\"rolled up\") based on the **requested time window length** (`before - after`). Roll-ups are applied uniformly across the entire response. Measurements are grouped into fixed UTC time buckets and aggregated using the **mean (average)** value per bucket. Returned timestamps represent the **start of each roll-up interval**, truncated to the bucket boundary in UTC. The roll-up interval is selected as follows: - Time window **1 hour**: full resolution (no roll-up) - Time window **6 hours**: **1-minute** roll-up - Time window **24 hours**: **5-minute** roll-up - Time window **72 hours**: **15-minute** roll-up - Time window ≤ **7 days**: **30-minute** roll-up - Time window > **7 days**: request is rejected **Default time window behavior:** - If neither `after` nor `before` is specified, the time window defaults to the last **24 hours**. - If only one bound is provided, the other bound is inferred to create a 24-hour window.
15683
+ * Retrieves time-series metrics data from the telescope system for performance monitoring and analysis. This endpoint returns telemetry data such as temperatures, positions, and operational statistics over a specified time range. **Metric selection:** - If `metricName` is omitted, all available metrics in the time window are returned. - If `metricName` is provided, only the specified metric is returned. **Automatic metric roll-ups:** To ensure efficient queries and bounded response sizes, metric data is automatically aggregated (\"rolled up\") based on the **requested time window length** (`before - after`). Roll-ups are applied uniformly across the entire response. Measurements are grouped into fixed UTC time buckets and aggregated using the **mean (average)** value per bucket. Returned timestamps represent the **start of each roll-up interval**, truncated to the bucket boundary in UTC. The roll-up interval is dynamically calculated based on the requested time window and the number of metrics queried to ensure system stability and optimal network performance. Wider time windows or queries with many metrics will automatically apply a coarser roll-up resolution. **Default time window behavior:** - If neither `after` nor `before` is specified, the time window defaults to the last **24 hours**. - If only one bound is provided, the other bound is inferred to create a 24-hour window.
15002
15684
  * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
15003
15685
  * @param {string} [metricName] Metric name to query. If omitted, all metrics in the time window are returned.
15004
15686
  * @param {string} [after] Filter metrics to only include measurements taken after this timestamp. Use ISO 8601 date-time format. When combined with before, defines a time window for querying historical metrics.
@@ -15013,7 +15695,7 @@ export const DefaultApiFp = function(configuration?: Configuration) {
15013
15695
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
15014
15696
  },
15015
15697
  /**
15016
- * Retrieves time-series metrics data from the telescope system for performance monitoring and analysis, grouped into compact metric collections to reduce response size over the wire. This endpoint returns the same metric data as `/node-platform/v1/system/metrics`, but each collection contains shared metric identity fields once (`name`, `type`, and `tags`) and stores measurements as compact `[measuredAt, value]` arrays. **Metric selection:** - If `metricName` is omitted, all available metrics in the time window are returned. - If `metricName` is provided, only the specified metric is returned. **Automatic metric roll-ups:** To ensure efficient queries and bounded response sizes, metric data is automatically aggregated (\"rolled up\") based on the **requested time window length** (`before - after`). Roll-ups are applied uniformly across the entire response. Measurements are grouped into fixed UTC time buckets and aggregated using the **mean (average)** value per bucket. Returned timestamps represent the **start of each roll-up interval**, truncated to the bucket boundary in UTC. The roll-up interval is selected as follows: - Time window **10 minutes**: full resolution (no roll-up) - Time window **1 hour**: **10-second** roll-up - Time window **6 hours**: **1-minute** roll-up - Time window **24 hours**: **5-minute** roll-up - Time window **72 hours**: **15-minute** roll-up - Time window ≤ **7 days**: **30-minute** roll-up - Time window > **7 days**: request is rejected **Default time window behavior:** - If neither `after` nor `before` is specified, the time window defaults to the last **24 hours**. - If only one bound is provided, the other bound is inferred to create a 24-hour window.
15698
+ * Retrieves time-series metrics data from the telescope system for performance monitoring and analysis, grouped into compact metric collections to reduce response size over the wire. This endpoint returns the same metric data as `/node-platform/v1/system/metrics`, but each collection contains shared metric identity fields once (`name`, `type`, and `tags`) and stores measurements as compact `[measuredAt, value]` arrays. **Metric selection:** - If `metricName` is omitted, all available metrics in the time window are returned. - If `metricName` is provided, only the specified metric is returned. **Automatic metric roll-ups:** To ensure efficient queries and bounded response sizes, metric data is automatically aggregated (\"rolled up\") based on the **requested time window length** (`before - after`). Roll-ups are applied uniformly across the entire response. Measurements are grouped into fixed UTC time buckets and aggregated using the **mean (average)** value per bucket. Returned timestamps represent the **start of each roll-up interval**, truncated to the bucket boundary in UTC. The roll-up interval is dynamically calculated based on the requested time window and the number of metrics queried to ensure system stability and optimal network performance. Wider time windows or queries with many metrics will automatically apply a coarser roll-up resolution. **Default time window behavior:** - If neither `after` nor `before` is specified, the time window defaults to the last **24 hours**. - If only one bound is provided, the other bound is inferred to create a 24-hour window.
15017
15699
  * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
15018
15700
  * @param {string} [metricName] Metric name to query. If omitted, all metrics in the time window are returned.
15019
15701
  * @param {string} [after] Filter metrics to only include measurements taken after this timestamp. Use ISO 8601 date-time format. When combined with before, defines a time window for querying historical metrics.
@@ -16061,6 +16743,19 @@ export const DefaultApiFp = function(configuration?: Configuration) {
16061
16743
  const localVarOperationServerBasePath = operationServerMap['DefaultApi.v1UpdateImageProcessingPlugin']?.[localVarOperationServerIndex]?.url;
16062
16744
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
16063
16745
  },
16746
+ /**
16747
+ * Updates an optical train configuration by replacing the component assignments for the provided label.
16748
+ * @param {V1UpdateOpticalTrainRequest} v1UpdateOpticalTrainRequest
16749
+ * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
16750
+ * @param {*} [options] Override http request option.
16751
+ * @throws {RequiredError}
16752
+ */
16753
+ async v1UpdateOpticalTrain(v1UpdateOpticalTrainRequest: V1UpdateOpticalTrainRequest, lineageId?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<V1OpticalTrain>> {
16754
+ const localVarAxiosArgs = await localVarAxiosParamCreator.v1UpdateOpticalTrain(v1UpdateOpticalTrainRequest, lineageId, options);
16755
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
16756
+ const localVarOperationServerBasePath = operationServerMap['DefaultApi.v1UpdateOpticalTrain']?.[localVarOperationServerIndex]?.url;
16757
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
16758
+ },
16064
16759
  /**
16065
16760
  * Updates system settings with new configuration values. Use this endpoint to modify telescope behavior including mount motion parameters. Only include the settings you want to change in the request body. Changes take effect immediately and persist across system restarts.
16066
16761
  * @param {V1SystemSettings} v1SystemSettings
@@ -16180,6 +16875,18 @@ export const DefaultApiFp = function(configuration?: Configuration) {
16180
16875
  const localVarOperationServerBasePath = operationServerMap['DefaultApi.v2GetSystemEvents']?.[localVarOperationServerIndex]?.url;
16181
16876
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
16182
16877
  },
16878
+ /**
16879
+ * Retrieves the comprehensive status of all connected hardware components in the telescope system, grouped by optical train and including optical train components that are not currently associated with an optical train.
16880
+ * @param {string} [lineageId] Lineage ID required when requesting data from the cloud platform
16881
+ * @param {*} [options] Override http request option.
16882
+ * @throws {RequiredError}
16883
+ */
16884
+ async v2GetSystemStatus(lineageId?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<V2SystemStatus>> {
16885
+ const localVarAxiosArgs = await localVarAxiosParamCreator.v2GetSystemStatus(lineageId, options);
16886
+ const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
16887
+ const localVarOperationServerBasePath = operationServerMap['DefaultApi.v2GetSystemStatus']?.[localVarOperationServerIndex]?.url;
16888
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
16889
+ },
16183
16890
  /**
16184
16891
  * Powers off a specific relay to disable the connected equipment. Use this endpoint to shut down observatory devices when observations are complete or during maintenance. Ensure proper shutdown procedures are followed for the equipment before removing power, such as parking the mount or stopping camera operations.
16185
16892
  * @param {V2TurnOffRelayRequest} v2TurnOffRelayRequest
@@ -16225,13 +16932,13 @@ export const DefaultApiFactory = function (configuration?: Configuration, basePa
16225
16932
  return localVarFp.v1AddMountModelPointHere(requestParameters.v1AddMountModelPointHereRequest, requestParameters.lineageId, options).then((request) => request(axios, basePath));
16226
16933
  },
16227
16934
  /**
16228
- * Adds a single manual calibration point to the pointing model. The node will attempt to plate-solve the supplied image to determine J2000 right ascension and declination and pair it with the mount current mechanical position to record a new correction point. Use this to refine the model with a known sky position without running a full automated survey. Returns an empty success response when the point is added.
16229
- * @param {DefaultApiV1AddMountModelPointHereUsingImageRequest} requestParameters Request parameters.
16935
+ * Adds a single manual calibration point to the pointing model. The node will attempt to plate-solve the supplied image to determine J2000 right ascension and declination and pair it with the mount mechanical position to record a new correction point. Use this to refine the model with a known sky position without running a full automated survey. Returns an empty success response when the point is added.
16936
+ * @param {DefaultApiV1AddMountModelPointUsingImageRequest} requestParameters Request parameters.
16230
16937
  * @param {*} [options] Override http request option.
16231
16938
  * @throws {RequiredError}
16232
16939
  */
16233
- v1AddMountModelPointHereUsingImage(requestParameters: DefaultApiV1AddMountModelPointHereUsingImageRequest, options?: RawAxiosRequestConfig): AxiosPromise<EmptySuccess> {
16234
- return localVarFp.v1AddMountModelPointHereUsingImage(requestParameters.body, requestParameters.lineageId, options).then((request) => request(axios, basePath));
16940
+ v1AddMountModelPointUsingImage(requestParameters: DefaultApiV1AddMountModelPointUsingImageRequest, options?: RawAxiosRequestConfig): AxiosPromise<EmptySuccess> {
16941
+ return localVarFp.v1AddMountModelPointUsingImage(requestParameters.body, requestParameters.lineageId, requestParameters.motorAEncoderPositionDegrees, requestParameters.motorBEncoderPositionDegrees, requestParameters.timestamp, options).then((request) => request(axios, basePath));
16235
16942
  },
16236
16943
  /**
16237
16944
  * Updates the current custom path tracking session by appending control points. The trackingSessionId and frame must match the current session.
@@ -16307,6 +17014,15 @@ export const DefaultApiFactory = function (configuration?: Configuration, basePa
16307
17014
  v1CaptureImagesContinuously(requestParameters: DefaultApiV1CaptureImagesContinuouslyRequest, options?: RawAxiosRequestConfig): AxiosPromise<EmptySuccess> {
16308
17015
  return localVarFp.v1CaptureImagesContinuously(requestParameters.v1CaptureImagesContinuouslyRequest, requestParameters.lineageId, options).then((request) => request(axios, basePath));
16309
17016
  },
17017
+ /**
17018
+ * Clears a latched dome rotator motor lockout condition after the underlying cause has been investigated and it is safe to permit rotator motion again. To recover from the lockout zone, the edge controller temporarily disables the limiter, moves the enclosure rotator back into the valid range, and then re-enables the limiter. This operation is a no-op when no motor lockout is active.
17019
+ * @param {DefaultApiV1ClearEnclosureRotatorMotorLockoutRequest} requestParameters Request parameters.
17020
+ * @param {*} [options] Override http request option.
17021
+ * @throws {RequiredError}
17022
+ */
17023
+ v1ClearEnclosureRotatorMotorLockout(requestParameters: DefaultApiV1ClearEnclosureRotatorMotorLockoutRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise<EmptySuccess> {
17024
+ return localVarFp.v1ClearEnclosureRotatorMotorLockout(requestParameters.lineageId, options).then((request) => request(axios, basePath));
17025
+ },
16310
17026
  /**
16311
17027
  * Clears all calibration points from the current pointing model, removing every correction the mount applies to its raw mechanical positioning. Use this to discard an inaccurate model before building a new one, or to reset to uncorrected pointing. Returns an empty success response when the model is cleared.
16312
17028
  * @param {DefaultApiV1ClearMountModelRequest} requestParameters Request parameters.
@@ -16372,6 +17088,15 @@ export const DefaultApiFactory = function (configuration?: Configuration, basePa
16372
17088
  v1CreateMountModel(requestParameters: DefaultApiV1CreateMountModelRequest, options?: RawAxiosRequestConfig): AxiosPromise<V1Task> {
16373
17089
  return localVarFp.v1CreateMountModel(requestParameters.v1CreateMountModelRequest, requestParameters.lineageId, options).then((request) => request(axios, basePath));
16374
17090
  },
17091
+ /**
17092
+ * Creates an optical train configuration by assigning optical train components to a human-readable label.
17093
+ * @param {DefaultApiV1CreateOpticalTrainRequest} requestParameters Request parameters.
17094
+ * @param {*} [options] Override http request option.
17095
+ * @throws {RequiredError}
17096
+ */
17097
+ v1CreateOpticalTrain(requestParameters: DefaultApiV1CreateOpticalTrainRequest, options?: RawAxiosRequestConfig): AxiosPromise<V1OpticalTrain> {
17098
+ return localVarFp.v1CreateOpticalTrain(requestParameters.v1CreateOpticalTrainRequest, requestParameters.lineageId, options).then((request) => request(axios, basePath));
17099
+ },
16375
17100
  /**
16376
17101
  * DEPRECATED: Use [/node-platform/v2/relays/cycle](#tag/cycles/post/node-platform/v2/relays/cycle) instead. Power cycles the specified relay channels by turning them off and then back on after a specified duration. This legacy endpoint uses channel identifiers for relay selection. The newer endpoint provides the same functionality with improved relay function identification.
16377
17102
  * @param {DefaultApiV1CycleRelaysRequest} requestParameters Request parameters.
@@ -16400,6 +17125,15 @@ export const DefaultApiFactory = function (configuration?: Configuration, basePa
16400
17125
  v1DeleteImageProcessingPlugin(requestParameters: DefaultApiV1DeleteImageProcessingPluginRequest, options?: RawAxiosRequestConfig): AxiosPromise<EmptySuccess> {
16401
17126
  return localVarFp.v1DeleteImageProcessingPlugin(requestParameters.v1GetImageProcessingPluginRequest, requestParameters.lineageId, options).then((request) => request(axios, basePath));
16402
17127
  },
17128
+ /**
17129
+ * Deletes one optical train configuration by label.
17130
+ * @param {DefaultApiV1DeleteOpticalTrainRequest} requestParameters Request parameters.
17131
+ * @param {*} [options] Override http request option.
17132
+ * @throws {RequiredError}
17133
+ */
17134
+ v1DeleteOpticalTrain(requestParameters: DefaultApiV1DeleteOpticalTrainRequest, options?: RawAxiosRequestConfig): AxiosPromise<EmptySuccess> {
17135
+ return localVarFp.v1DeleteOpticalTrain(requestParameters.label, requestParameters.lineageId, options).then((request) => request(axios, basePath));
17136
+ },
16403
17137
  /**
16404
17138
  * Permanently deletes a video and its associated files from the system. Use this endpoint to manually remove unwanted videos and free up storage space. This action cannot be undone, so ensure you have downloaded or backed up any important files before deletion.
16405
17139
  * @param {DefaultApiV1DeleteVideoRequest} requestParameters Request parameters.
@@ -16560,7 +17294,7 @@ export const DefaultApiFactory = function (configuration?: Configuration, basePa
16560
17294
  * @throws {RequiredError}
16561
17295
  */
16562
17296
  v1FindFocuserLimits(requestParameters: DefaultApiV1FindFocuserLimitsRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise<V1FocuserLimit> {
16563
- return localVarFp.v1FindFocuserLimits(requestParameters.lineageId, options).then((request) => request(axios, basePath));
17297
+ return localVarFp.v1FindFocuserLimits(requestParameters.lineageId, requestParameters.id, options).then((request) => request(axios, basePath));
16564
17298
  },
16565
17299
  /**
16566
17300
  * Retrieves all currently active and scheduled tasks running on the telescope system. Use this endpoint to monitor long-running operations such as autofocus routines, mount model creation, calibration frame acquisition, and automated observation sequences. Each task includes its type, scheduling time, and execution status to help track progress and identify potential conflicts.
@@ -16891,6 +17625,24 @@ export const DefaultApiFactory = function (configuration?: Configuration, basePa
16891
17625
  v1GetNetworkInterfaces(requestParameters: DefaultApiV1GetNetworkInterfacesRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise<Array<V1SystemNetworkInterface>> {
16892
17626
  return localVarFp.v1GetNetworkInterfaces(requestParameters.lineageId, options).then((request) => request(axios, basePath));
16893
17627
  },
17628
+ /**
17629
+ * Retrieves one optical train configuration by label.
17630
+ * @param {DefaultApiV1GetOpticalTrainRequest} requestParameters Request parameters.
17631
+ * @param {*} [options] Override http request option.
17632
+ * @throws {RequiredError}
17633
+ */
17634
+ v1GetOpticalTrain(requestParameters: DefaultApiV1GetOpticalTrainRequest, options?: RawAxiosRequestConfig): AxiosPromise<V1OpticalTrain> {
17635
+ return localVarFp.v1GetOpticalTrain(requestParameters.label, requestParameters.lineageId, options).then((request) => request(axios, basePath));
17636
+ },
17637
+ /**
17638
+ * Retrieves all configured optical trains and the optical train components assigned to each train.
17639
+ * @param {DefaultApiV1GetOpticalTrainsRequest} requestParameters Request parameters.
17640
+ * @param {*} [options] Override http request option.
17641
+ * @throws {RequiredError}
17642
+ */
17643
+ v1GetOpticalTrains(requestParameters: DefaultApiV1GetOpticalTrainsRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise<V1OpticalTrains> {
17644
+ return localVarFp.v1GetOpticalTrains(requestParameters.lineageId, options).then((request) => request(axios, basePath));
17645
+ },
16894
17646
  /**
16895
17647
  * Retrieves the current status of the optical tube dust cover that protects the primary mirror. The cover should be closed when the telescope is not in use to prevent dust accumulation on optical surfaces. Use this to verify cover state before imaging or to confirm the cover is closed during daytime. Returns V1OpticalTubeCoverStatus with connection and position information.
16896
17648
  * @param {DefaultApiV1GetOpticalTubeCoverStatusRequest} requestParameters Request parameters.
@@ -16981,6 +17733,24 @@ export const DefaultApiFactory = function (configuration?: Configuration, basePa
16981
17733
  v1GetOpticalTubeStatuses(requestParameters: DefaultApiV1GetOpticalTubeStatusesRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise<V1OpticalTubeStatuses> {
16982
17734
  return localVarFp.v1GetOpticalTubeStatuses(requestParameters.lineageId, options).then((request) => request(axios, basePath));
16983
17735
  },
17736
+ /**
17737
+ * Retrieves the current temperature sensor status for an optical tube assembly. Returns V1OpticalTubeTemperatureSensorGroupStatus containing the temperature reading from each sensor.
17738
+ * @param {DefaultApiV1GetOpticalTubeTemperatureSensorGroupStatusRequest} requestParameters Request parameters.
17739
+ * @param {*} [options] Override http request option.
17740
+ * @throws {RequiredError}
17741
+ */
17742
+ v1GetOpticalTubeTemperatureSensorGroupStatus(requestParameters: DefaultApiV1GetOpticalTubeTemperatureSensorGroupStatusRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise<V1OpticalTubeTemperatureSensorGroupStatus> {
17743
+ return localVarFp.v1GetOpticalTubeTemperatureSensorGroupStatus(requestParameters.lineageId, requestParameters.id, options).then((request) => request(axios, basePath));
17744
+ },
17745
+ /**
17746
+ * Retrieves the current temperature sensor statuses grouped by optical tube. Use this endpoint to discover optical tube IDs and temperature readings before addressing a specific optical tube.
17747
+ * @param {DefaultApiV1GetOpticalTubeTemperatureSensorGroupStatusesRequest} requestParameters Request parameters.
17748
+ * @param {*} [options] Override http request option.
17749
+ * @throws {RequiredError}
17750
+ */
17751
+ v1GetOpticalTubeTemperatureSensorGroupStatuses(requestParameters: DefaultApiV1GetOpticalTubeTemperatureSensorGroupStatusesRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise<V1OpticalTubeTemperatureSensorGroupStatuses> {
17752
+ return localVarFp.v1GetOpticalTubeTemperatureSensorGroupStatuses(requestParameters.lineageId, options).then((request) => request(axios, basePath));
17753
+ },
16984
17754
  /**
16985
17755
  * DEPRECATED: Use [/node-platform/v2/relays/status](#tag/status/get/node-platform/v2/relays/status) instead. Retrieves the current state of all power relays in the observatory. This legacy endpoint returns relay states by channel identifier. The newer endpoint provides the same information with improved relay function identification and additional connectivity details.
16986
17756
  * @param {DefaultApiV1GetRelaysRequest} requestParameters Request parameters.
@@ -17093,7 +17863,7 @@ export const DefaultApiFactory = function (configuration?: Configuration, basePa
17093
17863
  return localVarFp.v1GetSystemMetricNames(requestParameters.lineageId, options).then((request) => request(axios, basePath));
17094
17864
  },
17095
17865
  /**
17096
- * Retrieves time-series metrics data from the telescope system for performance monitoring and analysis. This endpoint returns telemetry data such as temperatures, positions, and operational statistics over a specified time range. **Metric selection:** - If `metricName` is omitted, all available metrics in the time window are returned. - If `metricName` is provided, only the specified metric is returned. **Automatic metric roll-ups:** To ensure efficient queries and bounded response sizes, metric data is automatically aggregated (\"rolled up\") based on the **requested time window length** (`before - after`). Roll-ups are applied uniformly across the entire response. Measurements are grouped into fixed UTC time buckets and aggregated using the **mean (average)** value per bucket. Returned timestamps represent the **start of each roll-up interval**, truncated to the bucket boundary in UTC. The roll-up interval is selected as follows: - Time window **1 hour**: full resolution (no roll-up) - Time window **6 hours**: **1-minute** roll-up - Time window **24 hours**: **5-minute** roll-up - Time window **72 hours**: **15-minute** roll-up - Time window ≤ **7 days**: **30-minute** roll-up - Time window > **7 days**: request is rejected **Default time window behavior:** - If neither `after` nor `before` is specified, the time window defaults to the last **24 hours**. - If only one bound is provided, the other bound is inferred to create a 24-hour window.
17866
+ * Retrieves time-series metrics data from the telescope system for performance monitoring and analysis. This endpoint returns telemetry data such as temperatures, positions, and operational statistics over a specified time range. **Metric selection:** - If `metricName` is omitted, all available metrics in the time window are returned. - If `metricName` is provided, only the specified metric is returned. **Automatic metric roll-ups:** To ensure efficient queries and bounded response sizes, metric data is automatically aggregated (\"rolled up\") based on the **requested time window length** (`before - after`). Roll-ups are applied uniformly across the entire response. Measurements are grouped into fixed UTC time buckets and aggregated using the **mean (average)** value per bucket. Returned timestamps represent the **start of each roll-up interval**, truncated to the bucket boundary in UTC. The roll-up interval is dynamically calculated based on the requested time window and the number of metrics queried to ensure system stability and optimal network performance. Wider time windows or queries with many metrics will automatically apply a coarser roll-up resolution. **Default time window behavior:** - If neither `after` nor `before` is specified, the time window defaults to the last **24 hours**. - If only one bound is provided, the other bound is inferred to create a 24-hour window.
17097
17867
  * @param {DefaultApiV1GetSystemMetricsRequest} requestParameters Request parameters.
17098
17868
  * @param {*} [options] Override http request option.
17099
17869
  * @throws {RequiredError}
@@ -17102,7 +17872,7 @@ export const DefaultApiFactory = function (configuration?: Configuration, basePa
17102
17872
  return localVarFp.v1GetSystemMetrics(requestParameters.lineageId, requestParameters.metricName, requestParameters.after, requestParameters.before, options).then((request) => request(axios, basePath));
17103
17873
  },
17104
17874
  /**
17105
- * Retrieves time-series metrics data from the telescope system for performance monitoring and analysis, grouped into compact metric collections to reduce response size over the wire. This endpoint returns the same metric data as `/node-platform/v1/system/metrics`, but each collection contains shared metric identity fields once (`name`, `type`, and `tags`) and stores measurements as compact `[measuredAt, value]` arrays. **Metric selection:** - If `metricName` is omitted, all available metrics in the time window are returned. - If `metricName` is provided, only the specified metric is returned. **Automatic metric roll-ups:** To ensure efficient queries and bounded response sizes, metric data is automatically aggregated (\"rolled up\") based on the **requested time window length** (`before - after`). Roll-ups are applied uniformly across the entire response. Measurements are grouped into fixed UTC time buckets and aggregated using the **mean (average)** value per bucket. Returned timestamps represent the **start of each roll-up interval**, truncated to the bucket boundary in UTC. The roll-up interval is selected as follows: - Time window **10 minutes**: full resolution (no roll-up) - Time window **1 hour**: **10-second** roll-up - Time window **6 hours**: **1-minute** roll-up - Time window **24 hours**: **5-minute** roll-up - Time window **72 hours**: **15-minute** roll-up - Time window ≤ **7 days**: **30-minute** roll-up - Time window > **7 days**: request is rejected **Default time window behavior:** - If neither `after` nor `before` is specified, the time window defaults to the last **24 hours**. - If only one bound is provided, the other bound is inferred to create a 24-hour window.
17875
+ * Retrieves time-series metrics data from the telescope system for performance monitoring and analysis, grouped into compact metric collections to reduce response size over the wire. This endpoint returns the same metric data as `/node-platform/v1/system/metrics`, but each collection contains shared metric identity fields once (`name`, `type`, and `tags`) and stores measurements as compact `[measuredAt, value]` arrays. **Metric selection:** - If `metricName` is omitted, all available metrics in the time window are returned. - If `metricName` is provided, only the specified metric is returned. **Automatic metric roll-ups:** To ensure efficient queries and bounded response sizes, metric data is automatically aggregated (\"rolled up\") based on the **requested time window length** (`before - after`). Roll-ups are applied uniformly across the entire response. Measurements are grouped into fixed UTC time buckets and aggregated using the **mean (average)** value per bucket. Returned timestamps represent the **start of each roll-up interval**, truncated to the bucket boundary in UTC. The roll-up interval is dynamically calculated based on the requested time window and the number of metrics queried to ensure system stability and optimal network performance. Wider time windows or queries with many metrics will automatically apply a coarser roll-up resolution. **Default time window behavior:** - If neither `after` nor `before` is specified, the time window defaults to the last **24 hours**. - If only one bound is provided, the other bound is inferred to create a 24-hour window.
17106
17876
  * @param {DefaultApiV1GetSystemMetricsCollectionsRequest} requestParameters Request parameters.
17107
17877
  * @param {*} [options] Override http request option.
17108
17878
  * @throws {RequiredError}
@@ -17847,6 +18617,15 @@ export const DefaultApiFactory = function (configuration?: Configuration, basePa
17847
18617
  v1UpdateImageProcessingPlugin(requestParameters: DefaultApiV1UpdateImageProcessingPluginRequest, options?: RawAxiosRequestConfig): AxiosPromise<V1ImageProcessingPlugin> {
17848
18618
  return localVarFp.v1UpdateImageProcessingPlugin(requestParameters.v1UpdateImageProcessingPluginRequest, requestParameters.lineageId, options).then((request) => request(axios, basePath));
17849
18619
  },
18620
+ /**
18621
+ * Updates an optical train configuration by replacing the component assignments for the provided label.
18622
+ * @param {DefaultApiV1UpdateOpticalTrainRequest} requestParameters Request parameters.
18623
+ * @param {*} [options] Override http request option.
18624
+ * @throws {RequiredError}
18625
+ */
18626
+ v1UpdateOpticalTrain(requestParameters: DefaultApiV1UpdateOpticalTrainRequest, options?: RawAxiosRequestConfig): AxiosPromise<V1OpticalTrain> {
18627
+ return localVarFp.v1UpdateOpticalTrain(requestParameters.v1UpdateOpticalTrainRequest, requestParameters.lineageId, options).then((request) => request(axios, basePath));
18628
+ },
17850
18629
  /**
17851
18630
  * Updates system settings with new configuration values. Use this endpoint to modify telescope behavior including mount motion parameters. Only include the settings you want to change in the request body. Changes take effect immediately and persist across system restarts.
17852
18631
  * @param {DefaultApiV1UpdateSystemSettingsRequest} requestParameters Request parameters.
@@ -17928,6 +18707,15 @@ export const DefaultApiFactory = function (configuration?: Configuration, basePa
17928
18707
  v2GetSystemEvents(requestParameters: DefaultApiV2GetSystemEventsRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise<V2SystemEvents> {
17929
18708
  return localVarFp.v2GetSystemEvents(requestParameters.lineageId, requestParameters.type, requestParameters.before, requestParameters.limit, options).then((request) => request(axios, basePath));
17930
18709
  },
18710
+ /**
18711
+ * Retrieves the comprehensive status of all connected hardware components in the telescope system, grouped by optical train and including optical train components that are not currently associated with an optical train.
18712
+ * @param {DefaultApiV2GetSystemStatusRequest} requestParameters Request parameters.
18713
+ * @param {*} [options] Override http request option.
18714
+ * @throws {RequiredError}
18715
+ */
18716
+ v2GetSystemStatus(requestParameters: DefaultApiV2GetSystemStatusRequest = {}, options?: RawAxiosRequestConfig): AxiosPromise<V2SystemStatus> {
18717
+ return localVarFp.v2GetSystemStatus(requestParameters.lineageId, options).then((request) => request(axios, basePath));
18718
+ },
17931
18719
  /**
17932
18720
  * Powers off a specific relay to disable the connected equipment. Use this endpoint to shut down observatory devices when observations are complete or during maintenance. Ensure proper shutdown procedures are followed for the equipment before removing power, such as parking the mount or stopping camera operations.
17933
18721
  * @param {DefaultApiV2TurnOffRelayRequest} requestParameters Request parameters.
@@ -17962,15 +18750,30 @@ export interface DefaultApiV1AddMountModelPointHereRequest {
17962
18750
  }
17963
18751
 
17964
18752
  /**
17965
- * Request parameters for v1AddMountModelPointHereUsingImage operation in DefaultApi.
18753
+ * Request parameters for v1AddMountModelPointUsingImage operation in DefaultApi.
17966
18754
  */
17967
- export interface DefaultApiV1AddMountModelPointHereUsingImageRequest {
18755
+ export interface DefaultApiV1AddMountModelPointUsingImageRequest {
17968
18756
  readonly body: File
17969
18757
 
17970
18758
  /**
17971
18759
  * Lineage ID required when requesting data from the cloud platform
17972
18760
  */
17973
18761
  readonly lineageId?: string
18762
+
18763
+ /**
18764
+ * Motor A encoder position in degrees at the time the supplied image was captured.
18765
+ */
18766
+ readonly motorAEncoderPositionDegrees?: number
18767
+
18768
+ /**
18769
+ * Motor B encoder position in degrees at the time the supplied image was captured.
18770
+ */
18771
+ readonly motorBEncoderPositionDegrees?: number
18772
+
18773
+ /**
18774
+ * ISO 8601 timestamp when the supplied encoder positions were measured.
18775
+ */
18776
+ readonly timestamp?: string
17974
18777
  }
17975
18778
 
17976
18779
  /**
@@ -18069,6 +18872,16 @@ export interface DefaultApiV1CaptureImagesContinuouslyRequest {
18069
18872
  readonly lineageId?: string
18070
18873
  }
18071
18874
 
18875
+ /**
18876
+ * Request parameters for v1ClearEnclosureRotatorMotorLockout operation in DefaultApi.
18877
+ */
18878
+ export interface DefaultApiV1ClearEnclosureRotatorMotorLockoutRequest {
18879
+ /**
18880
+ * Lineage ID required when requesting data from the cloud platform
18881
+ */
18882
+ readonly lineageId?: string
18883
+ }
18884
+
18072
18885
  /**
18073
18886
  * Request parameters for v1ClearMountModel operation in DefaultApi.
18074
18887
  */
@@ -18143,6 +18956,18 @@ export interface DefaultApiV1CreateMountModelRequest {
18143
18956
  readonly lineageId?: string
18144
18957
  }
18145
18958
 
18959
+ /**
18960
+ * Request parameters for v1CreateOpticalTrain operation in DefaultApi.
18961
+ */
18962
+ export interface DefaultApiV1CreateOpticalTrainRequest {
18963
+ readonly v1CreateOpticalTrainRequest: V1CreateOpticalTrainRequest
18964
+
18965
+ /**
18966
+ * Lineage ID required when requesting data from the cloud platform
18967
+ */
18968
+ readonly lineageId?: string
18969
+ }
18970
+
18146
18971
  /**
18147
18972
  * Request parameters for v1CycleRelays operation in DefaultApi.
18148
18973
  */
@@ -18179,6 +19004,21 @@ export interface DefaultApiV1DeleteImageProcessingPluginRequest {
18179
19004
  readonly lineageId?: string
18180
19005
  }
18181
19006
 
19007
+ /**
19008
+ * Request parameters for v1DeleteOpticalTrain operation in DefaultApi.
19009
+ */
19010
+ export interface DefaultApiV1DeleteOpticalTrainRequest {
19011
+ /**
19012
+ * Human-readable label of the optical train to delete.
19013
+ */
19014
+ readonly label: string
19015
+
19016
+ /**
19017
+ * Lineage ID required when requesting data from the cloud platform
19018
+ */
19019
+ readonly lineageId?: string
19020
+ }
19021
+
18182
19022
  /**
18183
19023
  * Request parameters for v1DeleteVideo operation in DefaultApi.
18184
19024
  */
@@ -18369,6 +19209,11 @@ export interface DefaultApiV1FindFocuserLimitsRequest {
18369
19209
  * Lineage ID required when requesting data from the cloud platform
18370
19210
  */
18371
19211
  readonly lineageId?: string
19212
+
19213
+ /**
19214
+ * Optional focuser ID. If provided, finds limits for that focuser instead of the default focuser.
19215
+ */
19216
+ readonly id?: string
18372
19217
  }
18373
19218
 
18374
19219
  /**
@@ -18842,6 +19687,31 @@ export interface DefaultApiV1GetNetworkInterfacesRequest {
18842
19687
  readonly lineageId?: string
18843
19688
  }
18844
19689
 
19690
+ /**
19691
+ * Request parameters for v1GetOpticalTrain operation in DefaultApi.
19692
+ */
19693
+ export interface DefaultApiV1GetOpticalTrainRequest {
19694
+ /**
19695
+ * Human-readable label of the optical train to retrieve.
19696
+ */
19697
+ readonly label: string
19698
+
19699
+ /**
19700
+ * Lineage ID required when requesting data from the cloud platform
19701
+ */
19702
+ readonly lineageId?: string
19703
+ }
19704
+
19705
+ /**
19706
+ * Request parameters for v1GetOpticalTrains operation in DefaultApi.
19707
+ */
19708
+ export interface DefaultApiV1GetOpticalTrainsRequest {
19709
+ /**
19710
+ * Lineage ID required when requesting data from the cloud platform
19711
+ */
19712
+ readonly lineageId?: string
19713
+ }
19714
+
18845
19715
  /**
18846
19716
  * Request parameters for v1GetOpticalTubeCoverStatus operation in DefaultApi.
18847
19717
  */
@@ -18967,6 +19837,31 @@ export interface DefaultApiV1GetOpticalTubeStatusesRequest {
18967
19837
  readonly lineageId?: string
18968
19838
  }
18969
19839
 
19840
+ /**
19841
+ * Request parameters for v1GetOpticalTubeTemperatureSensorGroupStatus operation in DefaultApi.
19842
+ */
19843
+ export interface DefaultApiV1GetOpticalTubeTemperatureSensorGroupStatusRequest {
19844
+ /**
19845
+ * Lineage ID required when requesting data from the cloud platform
19846
+ */
19847
+ readonly lineageId?: string
19848
+
19849
+ /**
19850
+ * Optional optical tube ID. If provided, returns temperature sensor statuses for that optical tube instead of the default optical tube.
19851
+ */
19852
+ readonly id?: string
19853
+ }
19854
+
19855
+ /**
19856
+ * Request parameters for v1GetOpticalTubeTemperatureSensorGroupStatuses operation in DefaultApi.
19857
+ */
19858
+ export interface DefaultApiV1GetOpticalTubeTemperatureSensorGroupStatusesRequest {
19859
+ /**
19860
+ * Lineage ID required when requesting data from the cloud platform
19861
+ */
19862
+ readonly lineageId?: string
19863
+ }
19864
+
18970
19865
  /**
18971
19866
  * Request parameters for v1GetRelays operation in DefaultApi.
18972
19867
  */
@@ -20105,6 +21000,18 @@ export interface DefaultApiV1UpdateImageProcessingPluginRequest {
20105
21000
  readonly lineageId?: string
20106
21001
  }
20107
21002
 
21003
+ /**
21004
+ * Request parameters for v1UpdateOpticalTrain operation in DefaultApi.
21005
+ */
21006
+ export interface DefaultApiV1UpdateOpticalTrainRequest {
21007
+ readonly v1UpdateOpticalTrainRequest: V1UpdateOpticalTrainRequest
21008
+
21009
+ /**
21010
+ * Lineage ID required when requesting data from the cloud platform
21011
+ */
21012
+ readonly lineageId?: string
21013
+ }
21014
+
20108
21015
  /**
20109
21016
  * Request parameters for v1UpdateSystemSettings operation in DefaultApi.
20110
21017
  */
@@ -20235,6 +21142,16 @@ export interface DefaultApiV2GetSystemEventsRequest {
20235
21142
  readonly limit?: number
20236
21143
  }
20237
21144
 
21145
+ /**
21146
+ * Request parameters for v2GetSystemStatus operation in DefaultApi.
21147
+ */
21148
+ export interface DefaultApiV2GetSystemStatusRequest {
21149
+ /**
21150
+ * Lineage ID required when requesting data from the cloud platform
21151
+ */
21152
+ readonly lineageId?: string
21153
+ }
21154
+
20238
21155
  /**
20239
21156
  * Request parameters for v2TurnOffRelay operation in DefaultApi.
20240
21157
  */
@@ -20274,13 +21191,13 @@ export class DefaultApi extends BaseAPI {
20274
21191
  }
20275
21192
 
20276
21193
  /**
20277
- * Adds a single manual calibration point to the pointing model. The node will attempt to plate-solve the supplied image to determine J2000 right ascension and declination and pair it with the mount current mechanical position to record a new correction point. Use this to refine the model with a known sky position without running a full automated survey. Returns an empty success response when the point is added.
20278
- * @param {DefaultApiV1AddMountModelPointHereUsingImageRequest} requestParameters Request parameters.
21194
+ * Adds a single manual calibration point to the pointing model. The node will attempt to plate-solve the supplied image to determine J2000 right ascension and declination and pair it with the mount mechanical position to record a new correction point. Use this to refine the model with a known sky position without running a full automated survey. Returns an empty success response when the point is added.
21195
+ * @param {DefaultApiV1AddMountModelPointUsingImageRequest} requestParameters Request parameters.
20279
21196
  * @param {*} [options] Override http request option.
20280
21197
  * @throws {RequiredError}
20281
21198
  */
20282
- public v1AddMountModelPointHereUsingImage(requestParameters: DefaultApiV1AddMountModelPointHereUsingImageRequest, options?: RawAxiosRequestConfig) {
20283
- return DefaultApiFp(this.configuration).v1AddMountModelPointHereUsingImage(requestParameters.body, requestParameters.lineageId, options).then((request) => request(this.axios, this.basePath));
21199
+ public v1AddMountModelPointUsingImage(requestParameters: DefaultApiV1AddMountModelPointUsingImageRequest, options?: RawAxiosRequestConfig) {
21200
+ return DefaultApiFp(this.configuration).v1AddMountModelPointUsingImage(requestParameters.body, requestParameters.lineageId, requestParameters.motorAEncoderPositionDegrees, requestParameters.motorBEncoderPositionDegrees, requestParameters.timestamp, options).then((request) => request(this.axios, this.basePath));
20284
21201
  }
20285
21202
 
20286
21203
  /**
@@ -20365,6 +21282,16 @@ export class DefaultApi extends BaseAPI {
20365
21282
  return DefaultApiFp(this.configuration).v1CaptureImagesContinuously(requestParameters.v1CaptureImagesContinuouslyRequest, requestParameters.lineageId, options).then((request) => request(this.axios, this.basePath));
20366
21283
  }
20367
21284
 
21285
+ /**
21286
+ * Clears a latched dome rotator motor lockout condition after the underlying cause has been investigated and it is safe to permit rotator motion again. To recover from the lockout zone, the edge controller temporarily disables the limiter, moves the enclosure rotator back into the valid range, and then re-enables the limiter. This operation is a no-op when no motor lockout is active.
21287
+ * @param {DefaultApiV1ClearEnclosureRotatorMotorLockoutRequest} requestParameters Request parameters.
21288
+ * @param {*} [options] Override http request option.
21289
+ * @throws {RequiredError}
21290
+ */
21291
+ public v1ClearEnclosureRotatorMotorLockout(requestParameters: DefaultApiV1ClearEnclosureRotatorMotorLockoutRequest = {}, options?: RawAxiosRequestConfig) {
21292
+ return DefaultApiFp(this.configuration).v1ClearEnclosureRotatorMotorLockout(requestParameters.lineageId, options).then((request) => request(this.axios, this.basePath));
21293
+ }
21294
+
20368
21295
  /**
20369
21296
  * Clears all calibration points from the current pointing model, removing every correction the mount applies to its raw mechanical positioning. Use this to discard an inaccurate model before building a new one, or to reset to uncorrected pointing. Returns an empty success response when the model is cleared.
20370
21297
  * @param {DefaultApiV1ClearMountModelRequest} requestParameters Request parameters.
@@ -20437,6 +21364,16 @@ export class DefaultApi extends BaseAPI {
20437
21364
  return DefaultApiFp(this.configuration).v1CreateMountModel(requestParameters.v1CreateMountModelRequest, requestParameters.lineageId, options).then((request) => request(this.axios, this.basePath));
20438
21365
  }
20439
21366
 
21367
+ /**
21368
+ * Creates an optical train configuration by assigning optical train components to a human-readable label.
21369
+ * @param {DefaultApiV1CreateOpticalTrainRequest} requestParameters Request parameters.
21370
+ * @param {*} [options] Override http request option.
21371
+ * @throws {RequiredError}
21372
+ */
21373
+ public v1CreateOpticalTrain(requestParameters: DefaultApiV1CreateOpticalTrainRequest, options?: RawAxiosRequestConfig) {
21374
+ return DefaultApiFp(this.configuration).v1CreateOpticalTrain(requestParameters.v1CreateOpticalTrainRequest, requestParameters.lineageId, options).then((request) => request(this.axios, this.basePath));
21375
+ }
21376
+
20440
21377
  /**
20441
21378
  * DEPRECATED: Use [/node-platform/v2/relays/cycle](#tag/cycles/post/node-platform/v2/relays/cycle) instead. Power cycles the specified relay channels by turning them off and then back on after a specified duration. This legacy endpoint uses channel identifiers for relay selection. The newer endpoint provides the same functionality with improved relay function identification.
20442
21379
  * @param {DefaultApiV1CycleRelaysRequest} requestParameters Request parameters.
@@ -20468,6 +21405,16 @@ export class DefaultApi extends BaseAPI {
20468
21405
  return DefaultApiFp(this.configuration).v1DeleteImageProcessingPlugin(requestParameters.v1GetImageProcessingPluginRequest, requestParameters.lineageId, options).then((request) => request(this.axios, this.basePath));
20469
21406
  }
20470
21407
 
21408
+ /**
21409
+ * Deletes one optical train configuration by label.
21410
+ * @param {DefaultApiV1DeleteOpticalTrainRequest} requestParameters Request parameters.
21411
+ * @param {*} [options] Override http request option.
21412
+ * @throws {RequiredError}
21413
+ */
21414
+ public v1DeleteOpticalTrain(requestParameters: DefaultApiV1DeleteOpticalTrainRequest, options?: RawAxiosRequestConfig) {
21415
+ return DefaultApiFp(this.configuration).v1DeleteOpticalTrain(requestParameters.label, requestParameters.lineageId, options).then((request) => request(this.axios, this.basePath));
21416
+ }
21417
+
20471
21418
  /**
20472
21419
  * Permanently deletes a video and its associated files from the system. Use this endpoint to manually remove unwanted videos and free up storage space. This action cannot be undone, so ensure you have downloaded or backed up any important files before deletion.
20473
21420
  * @param {DefaultApiV1DeleteVideoRequest} requestParameters Request parameters.
@@ -20645,7 +21592,7 @@ export class DefaultApi extends BaseAPI {
20645
21592
  * @throws {RequiredError}
20646
21593
  */
20647
21594
  public v1FindFocuserLimits(requestParameters: DefaultApiV1FindFocuserLimitsRequest = {}, options?: RawAxiosRequestConfig) {
20648
- return DefaultApiFp(this.configuration).v1FindFocuserLimits(requestParameters.lineageId, options).then((request) => request(this.axios, this.basePath));
21595
+ return DefaultApiFp(this.configuration).v1FindFocuserLimits(requestParameters.lineageId, requestParameters.id, options).then((request) => request(this.axios, this.basePath));
20649
21596
  }
20650
21597
 
20651
21598
  /**
@@ -21013,6 +21960,26 @@ export class DefaultApi extends BaseAPI {
21013
21960
  return DefaultApiFp(this.configuration).v1GetNetworkInterfaces(requestParameters.lineageId, options).then((request) => request(this.axios, this.basePath));
21014
21961
  }
21015
21962
 
21963
+ /**
21964
+ * Retrieves one optical train configuration by label.
21965
+ * @param {DefaultApiV1GetOpticalTrainRequest} requestParameters Request parameters.
21966
+ * @param {*} [options] Override http request option.
21967
+ * @throws {RequiredError}
21968
+ */
21969
+ public v1GetOpticalTrain(requestParameters: DefaultApiV1GetOpticalTrainRequest, options?: RawAxiosRequestConfig) {
21970
+ return DefaultApiFp(this.configuration).v1GetOpticalTrain(requestParameters.label, requestParameters.lineageId, options).then((request) => request(this.axios, this.basePath));
21971
+ }
21972
+
21973
+ /**
21974
+ * Retrieves all configured optical trains and the optical train components assigned to each train.
21975
+ * @param {DefaultApiV1GetOpticalTrainsRequest} requestParameters Request parameters.
21976
+ * @param {*} [options] Override http request option.
21977
+ * @throws {RequiredError}
21978
+ */
21979
+ public v1GetOpticalTrains(requestParameters: DefaultApiV1GetOpticalTrainsRequest = {}, options?: RawAxiosRequestConfig) {
21980
+ return DefaultApiFp(this.configuration).v1GetOpticalTrains(requestParameters.lineageId, options).then((request) => request(this.axios, this.basePath));
21981
+ }
21982
+
21016
21983
  /**
21017
21984
  * Retrieves the current status of the optical tube dust cover that protects the primary mirror. The cover should be closed when the telescope is not in use to prevent dust accumulation on optical surfaces. Use this to verify cover state before imaging or to confirm the cover is closed during daytime. Returns V1OpticalTubeCoverStatus with connection and position information.
21018
21985
  * @param {DefaultApiV1GetOpticalTubeCoverStatusRequest} requestParameters Request parameters.
@@ -21113,6 +22080,26 @@ export class DefaultApi extends BaseAPI {
21113
22080
  return DefaultApiFp(this.configuration).v1GetOpticalTubeStatuses(requestParameters.lineageId, options).then((request) => request(this.axios, this.basePath));
21114
22081
  }
21115
22082
 
22083
+ /**
22084
+ * Retrieves the current temperature sensor status for an optical tube assembly. Returns V1OpticalTubeTemperatureSensorGroupStatus containing the temperature reading from each sensor.
22085
+ * @param {DefaultApiV1GetOpticalTubeTemperatureSensorGroupStatusRequest} requestParameters Request parameters.
22086
+ * @param {*} [options] Override http request option.
22087
+ * @throws {RequiredError}
22088
+ */
22089
+ public v1GetOpticalTubeTemperatureSensorGroupStatus(requestParameters: DefaultApiV1GetOpticalTubeTemperatureSensorGroupStatusRequest = {}, options?: RawAxiosRequestConfig) {
22090
+ return DefaultApiFp(this.configuration).v1GetOpticalTubeTemperatureSensorGroupStatus(requestParameters.lineageId, requestParameters.id, options).then((request) => request(this.axios, this.basePath));
22091
+ }
22092
+
22093
+ /**
22094
+ * Retrieves the current temperature sensor statuses grouped by optical tube. Use this endpoint to discover optical tube IDs and temperature readings before addressing a specific optical tube.
22095
+ * @param {DefaultApiV1GetOpticalTubeTemperatureSensorGroupStatusesRequest} requestParameters Request parameters.
22096
+ * @param {*} [options] Override http request option.
22097
+ * @throws {RequiredError}
22098
+ */
22099
+ public v1GetOpticalTubeTemperatureSensorGroupStatuses(requestParameters: DefaultApiV1GetOpticalTubeTemperatureSensorGroupStatusesRequest = {}, options?: RawAxiosRequestConfig) {
22100
+ return DefaultApiFp(this.configuration).v1GetOpticalTubeTemperatureSensorGroupStatuses(requestParameters.lineageId, options).then((request) => request(this.axios, this.basePath));
22101
+ }
22102
+
21116
22103
  /**
21117
22104
  * DEPRECATED: Use [/node-platform/v2/relays/status](#tag/status/get/node-platform/v2/relays/status) instead. Retrieves the current state of all power relays in the observatory. This legacy endpoint returns relay states by channel identifier. The newer endpoint provides the same information with improved relay function identification and additional connectivity details.
21118
22105
  * @param {DefaultApiV1GetRelaysRequest} requestParameters Request parameters.
@@ -21237,7 +22224,7 @@ export class DefaultApi extends BaseAPI {
21237
22224
  }
21238
22225
 
21239
22226
  /**
21240
- * Retrieves time-series metrics data from the telescope system for performance monitoring and analysis. This endpoint returns telemetry data such as temperatures, positions, and operational statistics over a specified time range. **Metric selection:** - If `metricName` is omitted, all available metrics in the time window are returned. - If `metricName` is provided, only the specified metric is returned. **Automatic metric roll-ups:** To ensure efficient queries and bounded response sizes, metric data is automatically aggregated (\"rolled up\") based on the **requested time window length** (`before - after`). Roll-ups are applied uniformly across the entire response. Measurements are grouped into fixed UTC time buckets and aggregated using the **mean (average)** value per bucket. Returned timestamps represent the **start of each roll-up interval**, truncated to the bucket boundary in UTC. The roll-up interval is selected as follows: - Time window **1 hour**: full resolution (no roll-up) - Time window **6 hours**: **1-minute** roll-up - Time window **24 hours**: **5-minute** roll-up - Time window **72 hours**: **15-minute** roll-up - Time window ≤ **7 days**: **30-minute** roll-up - Time window > **7 days**: request is rejected **Default time window behavior:** - If neither `after` nor `before` is specified, the time window defaults to the last **24 hours**. - If only one bound is provided, the other bound is inferred to create a 24-hour window.
22227
+ * Retrieves time-series metrics data from the telescope system for performance monitoring and analysis. This endpoint returns telemetry data such as temperatures, positions, and operational statistics over a specified time range. **Metric selection:** - If `metricName` is omitted, all available metrics in the time window are returned. - If `metricName` is provided, only the specified metric is returned. **Automatic metric roll-ups:** To ensure efficient queries and bounded response sizes, metric data is automatically aggregated (\"rolled up\") based on the **requested time window length** (`before - after`). Roll-ups are applied uniformly across the entire response. Measurements are grouped into fixed UTC time buckets and aggregated using the **mean (average)** value per bucket. Returned timestamps represent the **start of each roll-up interval**, truncated to the bucket boundary in UTC. The roll-up interval is dynamically calculated based on the requested time window and the number of metrics queried to ensure system stability and optimal network performance. Wider time windows or queries with many metrics will automatically apply a coarser roll-up resolution. **Default time window behavior:** - If neither `after` nor `before` is specified, the time window defaults to the last **24 hours**. - If only one bound is provided, the other bound is inferred to create a 24-hour window.
21241
22228
  * @param {DefaultApiV1GetSystemMetricsRequest} requestParameters Request parameters.
21242
22229
  * @param {*} [options] Override http request option.
21243
22230
  * @throws {RequiredError}
@@ -21247,7 +22234,7 @@ export class DefaultApi extends BaseAPI {
21247
22234
  }
21248
22235
 
21249
22236
  /**
21250
- * Retrieves time-series metrics data from the telescope system for performance monitoring and analysis, grouped into compact metric collections to reduce response size over the wire. This endpoint returns the same metric data as `/node-platform/v1/system/metrics`, but each collection contains shared metric identity fields once (`name`, `type`, and `tags`) and stores measurements as compact `[measuredAt, value]` arrays. **Metric selection:** - If `metricName` is omitted, all available metrics in the time window are returned. - If `metricName` is provided, only the specified metric is returned. **Automatic metric roll-ups:** To ensure efficient queries and bounded response sizes, metric data is automatically aggregated (\"rolled up\") based on the **requested time window length** (`before - after`). Roll-ups are applied uniformly across the entire response. Measurements are grouped into fixed UTC time buckets and aggregated using the **mean (average)** value per bucket. Returned timestamps represent the **start of each roll-up interval**, truncated to the bucket boundary in UTC. The roll-up interval is selected as follows: - Time window **10 minutes**: full resolution (no roll-up) - Time window **1 hour**: **10-second** roll-up - Time window **6 hours**: **1-minute** roll-up - Time window **24 hours**: **5-minute** roll-up - Time window **72 hours**: **15-minute** roll-up - Time window ≤ **7 days**: **30-minute** roll-up - Time window > **7 days**: request is rejected **Default time window behavior:** - If neither `after` nor `before` is specified, the time window defaults to the last **24 hours**. - If only one bound is provided, the other bound is inferred to create a 24-hour window.
22237
+ * Retrieves time-series metrics data from the telescope system for performance monitoring and analysis, grouped into compact metric collections to reduce response size over the wire. This endpoint returns the same metric data as `/node-platform/v1/system/metrics`, but each collection contains shared metric identity fields once (`name`, `type`, and `tags`) and stores measurements as compact `[measuredAt, value]` arrays. **Metric selection:** - If `metricName` is omitted, all available metrics in the time window are returned. - If `metricName` is provided, only the specified metric is returned. **Automatic metric roll-ups:** To ensure efficient queries and bounded response sizes, metric data is automatically aggregated (\"rolled up\") based on the **requested time window length** (`before - after`). Roll-ups are applied uniformly across the entire response. Measurements are grouped into fixed UTC time buckets and aggregated using the **mean (average)** value per bucket. Returned timestamps represent the **start of each roll-up interval**, truncated to the bucket boundary in UTC. The roll-up interval is dynamically calculated based on the requested time window and the number of metrics queried to ensure system stability and optimal network performance. Wider time windows or queries with many metrics will automatically apply a coarser roll-up resolution. **Default time window behavior:** - If neither `after` nor `before` is specified, the time window defaults to the last **24 hours**. - If only one bound is provided, the other bound is inferred to create a 24-hour window.
21251
22238
  * @param {DefaultApiV1GetSystemMetricsCollectionsRequest} requestParameters Request parameters.
21252
22239
  * @param {*} [options] Override http request option.
21253
22240
  * @throws {RequiredError}
@@ -22074,6 +23061,16 @@ export class DefaultApi extends BaseAPI {
22074
23061
  return DefaultApiFp(this.configuration).v1UpdateImageProcessingPlugin(requestParameters.v1UpdateImageProcessingPluginRequest, requestParameters.lineageId, options).then((request) => request(this.axios, this.basePath));
22075
23062
  }
22076
23063
 
23064
+ /**
23065
+ * Updates an optical train configuration by replacing the component assignments for the provided label.
23066
+ * @param {DefaultApiV1UpdateOpticalTrainRequest} requestParameters Request parameters.
23067
+ * @param {*} [options] Override http request option.
23068
+ * @throws {RequiredError}
23069
+ */
23070
+ public v1UpdateOpticalTrain(requestParameters: DefaultApiV1UpdateOpticalTrainRequest, options?: RawAxiosRequestConfig) {
23071
+ return DefaultApiFp(this.configuration).v1UpdateOpticalTrain(requestParameters.v1UpdateOpticalTrainRequest, requestParameters.lineageId, options).then((request) => request(this.axios, this.basePath));
23072
+ }
23073
+
22077
23074
  /**
22078
23075
  * Updates system settings with new configuration values. Use this endpoint to modify telescope behavior including mount motion parameters. Only include the settings you want to change in the request body. Changes take effect immediately and persist across system restarts.
22079
23076
  * @param {DefaultApiV1UpdateSystemSettingsRequest} requestParameters Request parameters.
@@ -22164,6 +23161,16 @@ export class DefaultApi extends BaseAPI {
22164
23161
  return DefaultApiFp(this.configuration).v2GetSystemEvents(requestParameters.lineageId, requestParameters.type, requestParameters.before, requestParameters.limit, options).then((request) => request(this.axios, this.basePath));
22165
23162
  }
22166
23163
 
23164
+ /**
23165
+ * Retrieves the comprehensive status of all connected hardware components in the telescope system, grouped by optical train and including optical train components that are not currently associated with an optical train.
23166
+ * @param {DefaultApiV2GetSystemStatusRequest} requestParameters Request parameters.
23167
+ * @param {*} [options] Override http request option.
23168
+ * @throws {RequiredError}
23169
+ */
23170
+ public v2GetSystemStatus(requestParameters: DefaultApiV2GetSystemStatusRequest = {}, options?: RawAxiosRequestConfig) {
23171
+ return DefaultApiFp(this.configuration).v2GetSystemStatus(requestParameters.lineageId, options).then((request) => request(this.axios, this.basePath));
23172
+ }
23173
+
22167
23174
  /**
22168
23175
  * Powers off a specific relay to disable the connected equipment. Use this endpoint to shut down observatory devices when observations are complete or during maintenance. Ensure proper shutdown procedures are followed for the equipment before removing power, such as parking the mount or stopping camera operations.
22169
23176
  * @param {DefaultApiV2TurnOffRelayRequest} requestParameters Request parameters.