lattice_sdk/api/types/
entity.rs

1pub use crate::prelude::*;
2
3/// The entity object represents a single known object within the Lattice operational environment. It contains
4/// all data associated with the entity, such as its name, ID, and other relevant components.
5#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
6pub struct Entity {
7    /// A Globally Unique Identifier (GUID) for your entity. If this field is empty, the Entity Manager API
8    /// automatically generates an ID when it creates the entity.
9    #[serde(rename = "entityId")]
10    #[serde(skip_serializing_if = "Option::is_none")]
11    pub entity_id: Option<String>,
12    /// A human-readable entity description that's helpful for debugging purposes and human
13    /// traceability. If this field is empty, the Entity Manager API generates one for you.
14    #[serde(skip_serializing_if = "Option::is_none")]
15    pub description: Option<String>,
16    /// Indicates the entity is active and should have a lifecycle state of CREATE or UPDATE.
17    /// Set this field to true when publishing an entity.
18    #[serde(rename = "isLive")]
19    #[serde(skip_serializing_if = "Option::is_none")]
20    pub is_live: Option<bool>,
21    /// The time when the entity was first known to the entity producer. If this field is empty, the Entity Manager API uses the
22    /// current timestamp of when the entity is first received.
23    /// For example, when a drone is first powered on, it might report its startup time as the created time.
24    /// The timestamp doesn't change for the lifetime of an entity.
25    #[serde(rename = "createdTime")]
26    #[serde(skip_serializing_if = "Option::is_none")]
27    pub created_time: Option<DateTime<Utc>>,
28    /// Future time that expires an entity and updates the is_live flag.
29    /// For entities that are constantly updating, the expiry time also updates.
30    /// In some cases, this may differ from is_live.
31    /// Example: Entities with tasks exported to an external system must remain
32    /// active even after they expire.
33    /// This field is required when publishing a prepopulated entity.
34    /// The expiry time must be in the future, but less than 30 days from the current time.
35    #[serde(rename = "expiryTime")]
36    #[serde(skip_serializing_if = "Option::is_none")]
37    pub expiry_time: Option<DateTime<Utc>>,
38    /// Use noExpiry only when the entity contains information that should be available to other
39    /// tasks or integrations beyond its immediate operational context. For example, use noExpiry
40    /// for long-living geographical entities that maintain persistent relevance across multiple
41    /// operations or tasks.
42    #[serde(rename = "noExpiry")]
43    #[serde(skip_serializing_if = "Option::is_none")]
44    pub no_expiry: Option<bool>,
45    /// Human-readable descriptions of what the entity is currently doing.
46    #[serde(skip_serializing_if = "Option::is_none")]
47    pub status: Option<Status>,
48    /// Geospatial data related to the entity, including its position, kinematics, and orientation.
49    #[serde(skip_serializing_if = "Option::is_none")]
50    pub location: Option<Location>,
51    /// Indicates uncertainty of the entity's position and kinematics.
52    #[serde(rename = "locationUncertainty")]
53    #[serde(skip_serializing_if = "Option::is_none")]
54    pub location_uncertainty: Option<LocationUncertainty>,
55    /// Geospatial representation of the entity, including entities that cover an area rather than a fixed point.
56    #[serde(rename = "geoShape")]
57    #[serde(skip_serializing_if = "Option::is_none")]
58    pub geo_shape: Option<GeoShape>,
59    /// Additional details on what the geospatial area or point represents, along with visual display details.
60    #[serde(rename = "geoDetails")]
61    #[serde(skip_serializing_if = "Option::is_none")]
62    pub geo_details: Option<GeoDetails>,
63    /// Entity name displayed in the Lattice UI side panel. Also includes identifiers that other systems can use to reference the same entity.
64    #[serde(skip_serializing_if = "Option::is_none")]
65    pub aliases: Option<Aliases>,
66    /// If this entity is tracked by another entity, this component contains data related to how it's being tracked.
67    #[serde(skip_serializing_if = "Option::is_none")]
68    pub tracked: Option<Tracked>,
69    /// If this entity has been correlated or decorrelated to another one, this component contains information on the correlation or decorrelation.
70    #[serde(skip_serializing_if = "Option::is_none")]
71    pub correlation: Option<Correlation>,
72    /// View of the entity.
73    #[serde(rename = "milView")]
74    #[serde(skip_serializing_if = "Option::is_none")]
75    pub mil_view: Option<MilView>,
76    /// Ontology defines an entity's categorization in Lattice, and improves data retrieval and integration. Builds a standardized representation of the entity.
77    #[serde(skip_serializing_if = "Option::is_none")]
78    pub ontology: Option<Ontology>,
79    /// Details an entity's available sensors.
80    #[serde(skip_serializing_if = "Option::is_none")]
81    pub sensors: Option<Sensors>,
82    /// Details an entity's available payloads.
83    #[serde(skip_serializing_if = "Option::is_none")]
84    pub payloads: Option<Payloads>,
85    /// Details the entity's power source.
86    #[serde(rename = "powerState")]
87    #[serde(skip_serializing_if = "Option::is_none")]
88    pub power_state: Option<PowerState>,
89    /// The primary data source provenance for this entity.
90    #[serde(skip_serializing_if = "Option::is_none")]
91    pub provenance: Option<Provenance>,
92    /// Provenance of override data.
93    #[serde(skip_serializing_if = "Option::is_none")]
94    pub overrides: Option<Box<Overrides>>,
95    /// Describes an entity's specific characteristics and the operations that can be performed on the entity.
96    /// For example, "simulated" informs the operator that the entity is from a simulation, and "deletable"
97    /// informs the operator (and system) that the delete operation is valid against the entity.
98    #[serde(skip_serializing_if = "Option::is_none")]
99    pub indicators: Option<Indicators>,
100    /// The prioritization associated with an entity, such as if it's a threat or a high-value target.
101    #[serde(rename = "targetPriority")]
102    #[serde(skip_serializing_if = "Option::is_none")]
103    pub target_priority: Option<TargetPriority>,
104    /// Describes an entity's signal characteristics, primarily used when an entity is a signal of interest.
105    #[serde(skip_serializing_if = "Option::is_none")]
106    pub signal: Option<Signal>,
107    /// A message describing any transponder codes associated with Mode 1, 2, 3, 4, 5, S interrogations. These are related to ADS-B modes.
108    #[serde(rename = "transponderCodes")]
109    #[serde(skip_serializing_if = "Option::is_none")]
110    pub transponder_codes: Option<TransponderCodes>,
111    /// Describes an entity's security classification levels at an overall classification level and on a per
112    /// field level.
113    #[serde(rename = "dataClassification")]
114    #[serde(skip_serializing_if = "Option::is_none")]
115    pub data_classification: Option<Classification>,
116    /// A catalog of tasks that can be performed by an entity.
117    #[serde(rename = "taskCatalog")]
118    #[serde(skip_serializing_if = "Option::is_none")]
119    pub task_catalog: Option<TaskCatalog>,
120    /// Media associated with an entity, such as videos, images, or thumbnails.
121    #[serde(skip_serializing_if = "Option::is_none")]
122    pub media: Option<Media>,
123    /// The relationships between this entity and other entities in the common operational picture (COP).
124    #[serde(skip_serializing_if = "Option::is_none")]
125    pub relationships: Option<Relationships>,
126    /// Visual details associated with the display of an entity in the client.
127    #[serde(rename = "visualDetails")]
128    #[serde(skip_serializing_if = "Option::is_none")]
129    pub visual_details: Option<VisualDetails>,
130    /// Physical dimensions of the entity.
131    #[serde(skip_serializing_if = "Option::is_none")]
132    pub dimensions: Option<Dimensions>,
133    /// Additional information about an entity's route.
134    #[serde(rename = "routeDetails")]
135    #[serde(skip_serializing_if = "Option::is_none")]
136    pub route_details: Option<RouteDetails>,
137    /// Schedules associated with this entity.
138    #[serde(skip_serializing_if = "Option::is_none")]
139    pub schedules: Option<Schedules>,
140    /// Health metrics or connection status reported by the entity.
141    #[serde(skip_serializing_if = "Option::is_none")]
142    pub health: Option<Health>,
143    /// Details for the group associated with this entity.
144    #[serde(rename = "groupDetails")]
145    #[serde(skip_serializing_if = "Option::is_none")]
146    pub group_details: Option<GroupDetails>,
147    /// Contains relevant supply information for the entity, such as fuel.
148    #[serde(skip_serializing_if = "Option::is_none")]
149    pub supplies: Option<Supplies>,
150    /// Orbit information for space objects.
151    #[serde(skip_serializing_if = "Option::is_none")]
152    pub orbit: Option<Orbit>,
153}