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