Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .fern/metadata.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
{
"cliVersion": "5.75.0",
"cliVersion": "5.75.8",
"generatorName": "fernapi/fern-java-sdk",
"generatorVersion": "4.14.4",
"generatorVersion": "4.14.5",
"generatorConfig": {
"client-class-name": "Lattice",
"package-prefix": "com.anduril"
},
"originGitCommit": "4999fd7a01ac9b12158b89b220c932e4149a13ba",
"originGitCommit": "bb0f789e6d2092ceffddc0656ae1149107f4117e",
"originGitCommitIsDirty": false,
"invokedBy": "manual",
"requestedVersion": "5.19.0",
"sdkVersion": "5.19.0"
"requestedVersion": "AUTO",
"sdkVersion": "5.20.0"
}
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Add the dependency in your `build.gradle` file:

```groovy
dependencies {
implementation 'com.anduril:lattice-sdk:5.19.0'
implementation 'com.anduril:lattice-sdk:5.20.0'
}
```

Expand All @@ -53,7 +53,7 @@ Add the dependency in your `pom.xml` file:
<dependency>
<groupId>com.anduril</groupId>
<artifactId>lattice-sdk</artifactId>
<version>5.19.0</version>
<version>5.20.0</version>
</dependency>
```

Expand Down
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ java {

group = 'com.anduril'

version = '5.19.0'
version = '5.20.0'

jar {
dependsOn(":generatePomFileForMavenPublication")
Expand Down Expand Up @@ -88,7 +88,7 @@ publishing {
maven(MavenPublication) {
groupId = 'com.anduril'
artifactId = 'lattice-sdk'
version = '5.19.0'
version = '5.20.0'
from components.java
pom {
name = 'Anduril Industries, Inc.'
Expand Down
8 changes: 8 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
# Changelog

## [5.20.0] - 2026-07-21
### Added
- **`Entity.getKinematics()`** and **`Entity.Builder.kinematics()`** — supply higher-granularity kinematics data, preferred for Track Entities over `location`/`locationUncertainty`.
- **`Kinematics`**, **`KinematicsGeodetic`**, and **`KinematicsGeocentric`** — new types conveying location, velocity, acceleration, attitude, and measurement time in geodetic and geocentric (ECEF) reference frames.
- **`LocationGeodetic`** and **`LocationGeocentricEcef`** — new types for WGS84 geodetic and Earth-centered Earth-fixed coordinates.
- **`Altitude`** and datum-specific altitude types (above ground level, mean sea level EGM96/pressure, sea floor, standard datum plane, WGS84 ellipsoid, below sea surface) — represent altitude across multiple reference datums.
- **`AltitudeProvenance`**, **`AltitudeProvenanceSourceType`**, **`TMat3`**, and **`Vec3`** — describe altitude sourcing (barometer, GNSS, sonar, etc.) plus supporting 3D vector and 3x3 covariance matrix types.

## [5.19.0] - 2026-07-16

4 changes: 2 additions & 2 deletions src/main/java/com/anduril/core/ClientOptions.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,10 @@ private ClientOptions(
this.headers.putAll(headers);
this.headers.putAll(new HashMap<String, String>() {
{
put("User-Agent", "com.anduril.lattice-sdk/5.19.0");
put("User-Agent", "com.anduril.lattice-sdk/5.20.0");
put("X-Fern-Language", "JAVA");
put("X-Fern-SDK-Name", "com.anduril:lattice-sdk");
put("X-Fern-SDK-Version", "5.19.0");
put("X-Fern-SDK-Version", "5.20.0");
}
});
this.headerSuppliers = headerSuppliers;
Expand Down
252 changes: 252 additions & 0 deletions src/main/java/com/anduril/types/Altitude.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,252 @@
/**
* This file was auto-generated by Fern from our API Definition.
*/
package com.anduril.types;

import com.anduril.core.ObjectMappers;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonSetter;
import com.fasterxml.jackson.annotation.Nulls;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;

@JsonInclude(JsonInclude.Include.NON_ABSENT)
@JsonDeserialize(builder = Altitude.Builder.class)
public final class Altitude {
private final Optional<AltitudeAboveWgs84Ellipsoid> haeWgs84;

private final Optional<AltitudeAboveSeaFloor> asf;

private final Optional<AltitudeBelowSeaSurface> bss;

private final Optional<AltitudeAboveStandardDatumPlanePressure> pressureSdp;

private final Optional<AltitudeAboveMeanSeaLevelPressure> pressureAmsl;

private final Optional<AltitudeAboveMeanSeaLevelEgm96> egm96Amsl;

private final Optional<AltitudeAboveGroundLevel> agl;

private final Map<String, Object> additionalProperties;

private Altitude(
Optional<AltitudeAboveWgs84Ellipsoid> haeWgs84,
Optional<AltitudeAboveSeaFloor> asf,
Optional<AltitudeBelowSeaSurface> bss,
Optional<AltitudeAboveStandardDatumPlanePressure> pressureSdp,
Optional<AltitudeAboveMeanSeaLevelPressure> pressureAmsl,
Optional<AltitudeAboveMeanSeaLevelEgm96> egm96Amsl,
Optional<AltitudeAboveGroundLevel> agl,
Map<String, Object> additionalProperties) {
this.haeWgs84 = haeWgs84;
this.asf = asf;
this.bss = bss;
this.pressureSdp = pressureSdp;
this.pressureAmsl = pressureAmsl;
this.egm96Amsl = egm96Amsl;
this.agl = agl;
this.additionalProperties = additionalProperties;
}

@JsonProperty("haeWgs84")
public Optional<AltitudeAboveWgs84Ellipsoid> getHaeWgs84() {
return haeWgs84;
}

@JsonProperty("asf")
public Optional<AltitudeAboveSeaFloor> getAsf() {
return asf;
}

@JsonProperty("bss")
public Optional<AltitudeBelowSeaSurface> getBss() {
return bss;
}

@JsonProperty("pressureSdp")
public Optional<AltitudeAboveStandardDatumPlanePressure> getPressureSdp() {
return pressureSdp;
}

@JsonProperty("pressureAmsl")
public Optional<AltitudeAboveMeanSeaLevelPressure> getPressureAmsl() {
return pressureAmsl;
}

@JsonProperty("egm96Amsl")
public Optional<AltitudeAboveMeanSeaLevelEgm96> getEgm96Amsl() {
return egm96Amsl;
}

@JsonProperty("agl")
public Optional<AltitudeAboveGroundLevel> getAgl() {
return agl;
}

@java.lang.Override
public boolean equals(Object other) {
if (this == other) return true;
return other instanceof Altitude && equalTo((Altitude) other);
}

@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}

private boolean equalTo(Altitude other) {
return haeWgs84.equals(other.haeWgs84)
&& asf.equals(other.asf)
&& bss.equals(other.bss)
&& pressureSdp.equals(other.pressureSdp)
&& pressureAmsl.equals(other.pressureAmsl)
&& egm96Amsl.equals(other.egm96Amsl)
&& agl.equals(other.agl);
}

@java.lang.Override
public int hashCode() {
return Objects.hash(
this.haeWgs84, this.asf, this.bss, this.pressureSdp, this.pressureAmsl, this.egm96Amsl, this.agl);
}

@java.lang.Override
public String toString() {
return ObjectMappers.stringify(this);
}

public static Builder builder() {
return new Builder();
}

@JsonIgnoreProperties(ignoreUnknown = true)
public static final class Builder {
private Optional<AltitudeAboveWgs84Ellipsoid> haeWgs84 = Optional.empty();

private Optional<AltitudeAboveSeaFloor> asf = Optional.empty();

private Optional<AltitudeBelowSeaSurface> bss = Optional.empty();

private Optional<AltitudeAboveStandardDatumPlanePressure> pressureSdp = Optional.empty();

private Optional<AltitudeAboveMeanSeaLevelPressure> pressureAmsl = Optional.empty();

private Optional<AltitudeAboveMeanSeaLevelEgm96> egm96Amsl = Optional.empty();

private Optional<AltitudeAboveGroundLevel> agl = Optional.empty();

@JsonAnySetter
private Map<String, Object> additionalProperties = new HashMap<>();

private Builder() {}

public Builder from(Altitude other) {
haeWgs84(other.getHaeWgs84());
asf(other.getAsf());
bss(other.getBss());
pressureSdp(other.getPressureSdp());
pressureAmsl(other.getPressureAmsl());
egm96Amsl(other.getEgm96Amsl());
agl(other.getAgl());
return this;
}

@JsonSetter(value = "haeWgs84", nulls = Nulls.SKIP)
public Builder haeWgs84(Optional<AltitudeAboveWgs84Ellipsoid> haeWgs84) {
this.haeWgs84 = haeWgs84;
return this;
}

public Builder haeWgs84(AltitudeAboveWgs84Ellipsoid haeWgs84) {
this.haeWgs84 = Optional.ofNullable(haeWgs84);
return this;
}

@JsonSetter(value = "asf", nulls = Nulls.SKIP)
public Builder asf(Optional<AltitudeAboveSeaFloor> asf) {
this.asf = asf;
return this;
}

public Builder asf(AltitudeAboveSeaFloor asf) {
this.asf = Optional.ofNullable(asf);
return this;
}

@JsonSetter(value = "bss", nulls = Nulls.SKIP)
public Builder bss(Optional<AltitudeBelowSeaSurface> bss) {
this.bss = bss;
return this;
}

public Builder bss(AltitudeBelowSeaSurface bss) {
this.bss = Optional.ofNullable(bss);
return this;
}

@JsonSetter(value = "pressureSdp", nulls = Nulls.SKIP)
public Builder pressureSdp(Optional<AltitudeAboveStandardDatumPlanePressure> pressureSdp) {
this.pressureSdp = pressureSdp;
return this;
}

public Builder pressureSdp(AltitudeAboveStandardDatumPlanePressure pressureSdp) {
this.pressureSdp = Optional.ofNullable(pressureSdp);
return this;
}

@JsonSetter(value = "pressureAmsl", nulls = Nulls.SKIP)
public Builder pressureAmsl(Optional<AltitudeAboveMeanSeaLevelPressure> pressureAmsl) {
this.pressureAmsl = pressureAmsl;
return this;
}

public Builder pressureAmsl(AltitudeAboveMeanSeaLevelPressure pressureAmsl) {
this.pressureAmsl = Optional.ofNullable(pressureAmsl);
return this;
}

@JsonSetter(value = "egm96Amsl", nulls = Nulls.SKIP)
public Builder egm96Amsl(Optional<AltitudeAboveMeanSeaLevelEgm96> egm96Amsl) {
this.egm96Amsl = egm96Amsl;
return this;
}

public Builder egm96Amsl(AltitudeAboveMeanSeaLevelEgm96 egm96Amsl) {
this.egm96Amsl = Optional.ofNullable(egm96Amsl);
return this;
}

@JsonSetter(value = "agl", nulls = Nulls.SKIP)
public Builder agl(Optional<AltitudeAboveGroundLevel> agl) {
this.agl = agl;
return this;
}

public Builder agl(AltitudeAboveGroundLevel agl) {
this.agl = Optional.ofNullable(agl);
return this;
}

public Altitude build() {
return new Altitude(haeWgs84, asf, bss, pressureSdp, pressureAmsl, egm96Amsl, agl, additionalProperties);
}

public Builder additionalProperty(String key, Object value) {
this.additionalProperties.put(key, value);
return this;
}

public Builder additionalProperties(Map<String, Object> additionalProperties) {
this.additionalProperties.putAll(additionalProperties);
return this;
}
}
}
Loading
Loading