// ###############################################################
// Copyright(c) Carl Zeiss AG, Germany. All Rights Reserved.
//
// Permission is granted to use and distribute this code,
// as long as this copyright notice remains part of the code.
// ###############################################################

syntax = "proto3";
package zen_api.lm.slide_scan.v1;
import "zen_api/lm/slide_scan/v1/tray_information.proto";

// Base class for all information types.
message InformationBase {
   oneof subtype {
      SimpleInformation simple_information = 1;
      SlideScanSystemInformation slide_scan_system_information = 2;
      MagazineInformation magazine_information = 3;
   }
}
// Data container for inforamtion about the magazine state.
message MagazineInformation {
   // A value indicating whether the Axioscan tray door is closed.
   bool is_door_closed = 1;
   // The magazine state by providing the list of available trays.
   repeated TrayInformation trays = 2;
}
// Data container for a simple message inforamtion.
message SimpleInformation {
   // The simple string message.
   string message = 1;
}
// Data container for information about the hardware state.
message SlideScanSystemInformation {
   // A value indicating whether an Axioscan system is idle.
   bool is_idle = 1;
   // A value indicating whether a scan is running.
   bool is_scan_running = 2;
   // A value indicating whether a preview scan is running.
   // This property is deprecated. Use IsScanRunning instead.
   bool is_preview_scan_running = 3;
   // A value indicating whether a tray is being initialized.
   bool is_tray_initializing = 4;
}
