syntax = "proto3";

package worldmonitor.maritime.v1;

import "sebuf/http/annotations.proto";
import "worldmonitor/maritime/v1/vessel_snapshot.proto";

// GetVesselSnapshotRequest specifies filters for the vessel snapshot.
message GetVesselSnapshotRequest {
  // North-east corner latitude of bounding box.
  double ne_lat = 1 [(sebuf.http.query) = { name: "ne_lat" }];
  // North-east corner longitude of bounding box.
  double ne_lon = 2 [(sebuf.http.query) = { name: "ne_lon" }];
  // South-west corner latitude of bounding box.
  double sw_lat = 3 [(sebuf.http.query) = { name: "sw_lat" }];
  // South-west corner longitude of bounding box.
  double sw_lon = 4 [(sebuf.http.query) = { name: "sw_lon" }];
  // When true, populate VesselSnapshot.candidate_reports with per-vessel
  // position reports. Clients with no position callbacks should leave this
  // false to keep responses small.
  bool include_candidates = 5 [(sebuf.http.query) = { name: "include_candidates" }];
}

// GetVesselSnapshotResponse contains the vessel traffic snapshot.
message GetVesselSnapshotResponse {
  // The vessel traffic snapshot.
  VesselSnapshot snapshot = 1;
}
