From f63c580ebe0c3ec635796c82eb737e668240ba59 Mon Sep 17 00:00:00 2001 From: fern-api <115122769+fern-api[bot]@users.noreply.github.com> Date: Tue, 21 Jul 2026 09:26:10 -0700 Subject: [PATCH] feat: add kinematics support and Altitude types to Entity Adds a new optional `kinematics` field to the `Entity` type along with a suite of new altitude-related types for representing altitude data across multiple reference datums. The `kinematics` field offers higher-granularity kinematics data preferred for Track Entities as an alternative to `location`/`locationUncertainty`. Key changes: - Add optional `kinematics` field with getter and builder methods to `Entity` - Add new `Altitude` type aggregating multiple altitude reference datums - Add `AltitudeAboveGroundLevel`, `AltitudeAboveMeanSeaLevelEgm96`, `AltitudeAboveMeanSeaLevelPressure`, `AltitudeAboveSeaFloor`, and `AltitudeAboveStandardDatumPlanePressure` types --- .fern/metadata.json | 10 +- README.md | 4 +- build.gradle | 4 +- changelog.md | 8 + .../java/com/anduril/core/ClientOptions.java | 4 +- src/main/java/com/anduril/types/Altitude.java | 252 ++++++++++++++ .../types/AltitudeAboveGroundLevel.java | 142 ++++++++ .../types/AltitudeAboveMeanSeaLevelEgm96.java | 142 ++++++++ .../AltitudeAboveMeanSeaLevelPressure.java | 142 ++++++++ .../anduril/types/AltitudeAboveSeaFloor.java | 142 ++++++++ ...titudeAboveStandardDatumPlanePressure.java | 143 ++++++++ .../types/AltitudeAboveWgs84Ellipsoid.java | 142 ++++++++ .../types/AltitudeBelowSeaSurface.java | 142 ++++++++ .../com/anduril/types/AltitudeProvenance.java | 106 ++++++ .../types/AltitudeProvenanceSourceType.java | 169 ++++++++++ src/main/java/com/anduril/types/Entity.java | 44 ++- .../java/com/anduril/types/Kinematics.java | 143 ++++++++ .../anduril/types/KinematicsGeocentric.java | 315 +++++++++++++++++ .../com/anduril/types/KinematicsGeodetic.java | 317 ++++++++++++++++++ .../anduril/types/LocationGeocentricEcef.java | 175 ++++++++++ .../com/anduril/types/LocationGeodetic.java | 218 ++++++++++++ src/main/java/com/anduril/types/TMat3.java | 227 +++++++++++++ src/main/java/com/anduril/types/Vec3.java | 149 ++++++++ 23 files changed, 3127 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/anduril/types/Altitude.java create mode 100644 src/main/java/com/anduril/types/AltitudeAboveGroundLevel.java create mode 100644 src/main/java/com/anduril/types/AltitudeAboveMeanSeaLevelEgm96.java create mode 100644 src/main/java/com/anduril/types/AltitudeAboveMeanSeaLevelPressure.java create mode 100644 src/main/java/com/anduril/types/AltitudeAboveSeaFloor.java create mode 100644 src/main/java/com/anduril/types/AltitudeAboveStandardDatumPlanePressure.java create mode 100644 src/main/java/com/anduril/types/AltitudeAboveWgs84Ellipsoid.java create mode 100644 src/main/java/com/anduril/types/AltitudeBelowSeaSurface.java create mode 100644 src/main/java/com/anduril/types/AltitudeProvenance.java create mode 100644 src/main/java/com/anduril/types/AltitudeProvenanceSourceType.java create mode 100644 src/main/java/com/anduril/types/Kinematics.java create mode 100644 src/main/java/com/anduril/types/KinematicsGeocentric.java create mode 100644 src/main/java/com/anduril/types/KinematicsGeodetic.java create mode 100644 src/main/java/com/anduril/types/LocationGeocentricEcef.java create mode 100644 src/main/java/com/anduril/types/LocationGeodetic.java create mode 100644 src/main/java/com/anduril/types/TMat3.java create mode 100644 src/main/java/com/anduril/types/Vec3.java diff --git a/.fern/metadata.json b/.fern/metadata.json index 836c12f..afd221f 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -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" } \ No newline at end of file diff --git a/README.md b/README.md index a873c77..c810924 100644 --- a/README.md +++ b/README.md @@ -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' } ``` @@ -53,7 +53,7 @@ Add the dependency in your `pom.xml` file: com.anduril lattice-sdk - 5.19.0 + 5.20.0 ``` diff --git a/build.gradle b/build.gradle index dca81d6..ac08663 100644 --- a/build.gradle +++ b/build.gradle @@ -57,7 +57,7 @@ java { group = 'com.anduril' -version = '5.19.0' +version = '5.20.0' jar { dependsOn(":generatePomFileForMavenPublication") @@ -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.' diff --git a/changelog.md b/changelog.md index bcda61b..06a0893 100644 --- a/changelog.md +++ b/changelog.md @@ -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 diff --git a/src/main/java/com/anduril/core/ClientOptions.java b/src/main/java/com/anduril/core/ClientOptions.java index fafa637..dee72fc 100644 --- a/src/main/java/com/anduril/core/ClientOptions.java +++ b/src/main/java/com/anduril/core/ClientOptions.java @@ -47,10 +47,10 @@ private ClientOptions( this.headers.putAll(headers); this.headers.putAll(new HashMap() { { - 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; diff --git a/src/main/java/com/anduril/types/Altitude.java b/src/main/java/com/anduril/types/Altitude.java new file mode 100644 index 0000000..476e193 --- /dev/null +++ b/src/main/java/com/anduril/types/Altitude.java @@ -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 haeWgs84; + + private final Optional asf; + + private final Optional bss; + + private final Optional pressureSdp; + + private final Optional pressureAmsl; + + private final Optional egm96Amsl; + + private final Optional agl; + + private final Map additionalProperties; + + private Altitude( + Optional haeWgs84, + Optional asf, + Optional bss, + Optional pressureSdp, + Optional pressureAmsl, + Optional egm96Amsl, + Optional agl, + Map 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 getHaeWgs84() { + return haeWgs84; + } + + @JsonProperty("asf") + public Optional getAsf() { + return asf; + } + + @JsonProperty("bss") + public Optional getBss() { + return bss; + } + + @JsonProperty("pressureSdp") + public Optional getPressureSdp() { + return pressureSdp; + } + + @JsonProperty("pressureAmsl") + public Optional getPressureAmsl() { + return pressureAmsl; + } + + @JsonProperty("egm96Amsl") + public Optional getEgm96Amsl() { + return egm96Amsl; + } + + @JsonProperty("agl") + public Optional 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 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 haeWgs84 = Optional.empty(); + + private Optional asf = Optional.empty(); + + private Optional bss = Optional.empty(); + + private Optional pressureSdp = Optional.empty(); + + private Optional pressureAmsl = Optional.empty(); + + private Optional egm96Amsl = Optional.empty(); + + private Optional agl = Optional.empty(); + + @JsonAnySetter + private Map 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 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 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 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 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 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 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 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 additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/com/anduril/types/AltitudeAboveGroundLevel.java b/src/main/java/com/anduril/types/AltitudeAboveGroundLevel.java new file mode 100644 index 0000000..c7684f8 --- /dev/null +++ b/src/main/java/com/anduril/types/AltitudeAboveGroundLevel.java @@ -0,0 +1,142 @@ +/** + * 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 = AltitudeAboveGroundLevel.Builder.class) +public final class AltitudeAboveGroundLevel { + private final Optional provenance; + + private final Optional valueMeters; + + private final Map additionalProperties; + + private AltitudeAboveGroundLevel( + Optional provenance, + Optional valueMeters, + Map additionalProperties) { + this.provenance = provenance; + this.valueMeters = valueMeters; + this.additionalProperties = additionalProperties; + } + + /** + * @return The provenance of the measurement. + */ + @JsonProperty("provenance") + public Optional getProvenance() { + return provenance; + } + + /** + * @return The altitude value in meters. + */ + @JsonProperty("valueMeters") + public Optional getValueMeters() { + return valueMeters; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof AltitudeAboveGroundLevel && equalTo((AltitudeAboveGroundLevel) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(AltitudeAboveGroundLevel other) { + return provenance.equals(other.provenance) && valueMeters.equals(other.valueMeters); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.provenance, this.valueMeters); + } + + @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 provenance = Optional.empty(); + + private Optional valueMeters = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(AltitudeAboveGroundLevel other) { + provenance(other.getProvenance()); + valueMeters(other.getValueMeters()); + return this; + } + + /** + *

The provenance of the measurement.

+ */ + @JsonSetter(value = "provenance", nulls = Nulls.SKIP) + public Builder provenance(Optional provenance) { + this.provenance = provenance; + return this; + } + + public Builder provenance(AltitudeProvenance provenance) { + this.provenance = Optional.ofNullable(provenance); + return this; + } + + /** + *

The altitude value in meters.

+ */ + @JsonSetter(value = "valueMeters", nulls = Nulls.SKIP) + public Builder valueMeters(Optional valueMeters) { + this.valueMeters = valueMeters; + return this; + } + + public Builder valueMeters(Double valueMeters) { + this.valueMeters = Optional.ofNullable(valueMeters); + return this; + } + + public AltitudeAboveGroundLevel build() { + return new AltitudeAboveGroundLevel(provenance, valueMeters, additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/com/anduril/types/AltitudeAboveMeanSeaLevelEgm96.java b/src/main/java/com/anduril/types/AltitudeAboveMeanSeaLevelEgm96.java new file mode 100644 index 0000000..7e00823 --- /dev/null +++ b/src/main/java/com/anduril/types/AltitudeAboveMeanSeaLevelEgm96.java @@ -0,0 +1,142 @@ +/** + * 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 = AltitudeAboveMeanSeaLevelEgm96.Builder.class) +public final class AltitudeAboveMeanSeaLevelEgm96 { + private final Optional provenance; + + private final Optional valueMeters; + + private final Map additionalProperties; + + private AltitudeAboveMeanSeaLevelEgm96( + Optional provenance, + Optional valueMeters, + Map additionalProperties) { + this.provenance = provenance; + this.valueMeters = valueMeters; + this.additionalProperties = additionalProperties; + } + + /** + * @return The provenance of the measurement. + */ + @JsonProperty("provenance") + public Optional getProvenance() { + return provenance; + } + + /** + * @return The altitude value in meters. + */ + @JsonProperty("valueMeters") + public Optional getValueMeters() { + return valueMeters; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof AltitudeAboveMeanSeaLevelEgm96 && equalTo((AltitudeAboveMeanSeaLevelEgm96) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(AltitudeAboveMeanSeaLevelEgm96 other) { + return provenance.equals(other.provenance) && valueMeters.equals(other.valueMeters); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.provenance, this.valueMeters); + } + + @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 provenance = Optional.empty(); + + private Optional valueMeters = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(AltitudeAboveMeanSeaLevelEgm96 other) { + provenance(other.getProvenance()); + valueMeters(other.getValueMeters()); + return this; + } + + /** + *

The provenance of the measurement.

+ */ + @JsonSetter(value = "provenance", nulls = Nulls.SKIP) + public Builder provenance(Optional provenance) { + this.provenance = provenance; + return this; + } + + public Builder provenance(AltitudeProvenance provenance) { + this.provenance = Optional.ofNullable(provenance); + return this; + } + + /** + *

The altitude value in meters.

+ */ + @JsonSetter(value = "valueMeters", nulls = Nulls.SKIP) + public Builder valueMeters(Optional valueMeters) { + this.valueMeters = valueMeters; + return this; + } + + public Builder valueMeters(Double valueMeters) { + this.valueMeters = Optional.ofNullable(valueMeters); + return this; + } + + public AltitudeAboveMeanSeaLevelEgm96 build() { + return new AltitudeAboveMeanSeaLevelEgm96(provenance, valueMeters, additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/com/anduril/types/AltitudeAboveMeanSeaLevelPressure.java b/src/main/java/com/anduril/types/AltitudeAboveMeanSeaLevelPressure.java new file mode 100644 index 0000000..0e21aca --- /dev/null +++ b/src/main/java/com/anduril/types/AltitudeAboveMeanSeaLevelPressure.java @@ -0,0 +1,142 @@ +/** + * 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 = AltitudeAboveMeanSeaLevelPressure.Builder.class) +public final class AltitudeAboveMeanSeaLevelPressure { + private final Optional provenance; + + private final Optional valueMeters; + + private final Map additionalProperties; + + private AltitudeAboveMeanSeaLevelPressure( + Optional provenance, + Optional valueMeters, + Map additionalProperties) { + this.provenance = provenance; + this.valueMeters = valueMeters; + this.additionalProperties = additionalProperties; + } + + /** + * @return The provenance of the measurement. + */ + @JsonProperty("provenance") + public Optional getProvenance() { + return provenance; + } + + /** + * @return The altitude value in meters. + */ + @JsonProperty("valueMeters") + public Optional getValueMeters() { + return valueMeters; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof AltitudeAboveMeanSeaLevelPressure && equalTo((AltitudeAboveMeanSeaLevelPressure) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(AltitudeAboveMeanSeaLevelPressure other) { + return provenance.equals(other.provenance) && valueMeters.equals(other.valueMeters); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.provenance, this.valueMeters); + } + + @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 provenance = Optional.empty(); + + private Optional valueMeters = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(AltitudeAboveMeanSeaLevelPressure other) { + provenance(other.getProvenance()); + valueMeters(other.getValueMeters()); + return this; + } + + /** + *

The provenance of the measurement.

+ */ + @JsonSetter(value = "provenance", nulls = Nulls.SKIP) + public Builder provenance(Optional provenance) { + this.provenance = provenance; + return this; + } + + public Builder provenance(AltitudeProvenance provenance) { + this.provenance = Optional.ofNullable(provenance); + return this; + } + + /** + *

The altitude value in meters.

+ */ + @JsonSetter(value = "valueMeters", nulls = Nulls.SKIP) + public Builder valueMeters(Optional valueMeters) { + this.valueMeters = valueMeters; + return this; + } + + public Builder valueMeters(Double valueMeters) { + this.valueMeters = Optional.ofNullable(valueMeters); + return this; + } + + public AltitudeAboveMeanSeaLevelPressure build() { + return new AltitudeAboveMeanSeaLevelPressure(provenance, valueMeters, additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/com/anduril/types/AltitudeAboveSeaFloor.java b/src/main/java/com/anduril/types/AltitudeAboveSeaFloor.java new file mode 100644 index 0000000..982546b --- /dev/null +++ b/src/main/java/com/anduril/types/AltitudeAboveSeaFloor.java @@ -0,0 +1,142 @@ +/** + * 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 = AltitudeAboveSeaFloor.Builder.class) +public final class AltitudeAboveSeaFloor { + private final Optional provenance; + + private final Optional valueMeters; + + private final Map additionalProperties; + + private AltitudeAboveSeaFloor( + Optional provenance, + Optional valueMeters, + Map additionalProperties) { + this.provenance = provenance; + this.valueMeters = valueMeters; + this.additionalProperties = additionalProperties; + } + + /** + * @return The provenance of the measurement. + */ + @JsonProperty("provenance") + public Optional getProvenance() { + return provenance; + } + + /** + * @return The altitude value in meters. + */ + @JsonProperty("valueMeters") + public Optional getValueMeters() { + return valueMeters; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof AltitudeAboveSeaFloor && equalTo((AltitudeAboveSeaFloor) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(AltitudeAboveSeaFloor other) { + return provenance.equals(other.provenance) && valueMeters.equals(other.valueMeters); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.provenance, this.valueMeters); + } + + @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 provenance = Optional.empty(); + + private Optional valueMeters = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(AltitudeAboveSeaFloor other) { + provenance(other.getProvenance()); + valueMeters(other.getValueMeters()); + return this; + } + + /** + *

The provenance of the measurement.

+ */ + @JsonSetter(value = "provenance", nulls = Nulls.SKIP) + public Builder provenance(Optional provenance) { + this.provenance = provenance; + return this; + } + + public Builder provenance(AltitudeProvenance provenance) { + this.provenance = Optional.ofNullable(provenance); + return this; + } + + /** + *

The altitude value in meters.

+ */ + @JsonSetter(value = "valueMeters", nulls = Nulls.SKIP) + public Builder valueMeters(Optional valueMeters) { + this.valueMeters = valueMeters; + return this; + } + + public Builder valueMeters(Double valueMeters) { + this.valueMeters = Optional.ofNullable(valueMeters); + return this; + } + + public AltitudeAboveSeaFloor build() { + return new AltitudeAboveSeaFloor(provenance, valueMeters, additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/com/anduril/types/AltitudeAboveStandardDatumPlanePressure.java b/src/main/java/com/anduril/types/AltitudeAboveStandardDatumPlanePressure.java new file mode 100644 index 0000000..4bebfeb --- /dev/null +++ b/src/main/java/com/anduril/types/AltitudeAboveStandardDatumPlanePressure.java @@ -0,0 +1,143 @@ +/** + * 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 = AltitudeAboveStandardDatumPlanePressure.Builder.class) +public final class AltitudeAboveStandardDatumPlanePressure { + private final Optional provenance; + + private final Optional valueMeters; + + private final Map additionalProperties; + + private AltitudeAboveStandardDatumPlanePressure( + Optional provenance, + Optional valueMeters, + Map additionalProperties) { + this.provenance = provenance; + this.valueMeters = valueMeters; + this.additionalProperties = additionalProperties; + } + + /** + * @return The provenance of the measurement. + */ + @JsonProperty("provenance") + public Optional getProvenance() { + return provenance; + } + + /** + * @return The altitude value in meters. + */ + @JsonProperty("valueMeters") + public Optional getValueMeters() { + return valueMeters; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof AltitudeAboveStandardDatumPlanePressure + && equalTo((AltitudeAboveStandardDatumPlanePressure) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(AltitudeAboveStandardDatumPlanePressure other) { + return provenance.equals(other.provenance) && valueMeters.equals(other.valueMeters); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.provenance, this.valueMeters); + } + + @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 provenance = Optional.empty(); + + private Optional valueMeters = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(AltitudeAboveStandardDatumPlanePressure other) { + provenance(other.getProvenance()); + valueMeters(other.getValueMeters()); + return this; + } + + /** + *

The provenance of the measurement.

+ */ + @JsonSetter(value = "provenance", nulls = Nulls.SKIP) + public Builder provenance(Optional provenance) { + this.provenance = provenance; + return this; + } + + public Builder provenance(AltitudeProvenance provenance) { + this.provenance = Optional.ofNullable(provenance); + return this; + } + + /** + *

The altitude value in meters.

+ */ + @JsonSetter(value = "valueMeters", nulls = Nulls.SKIP) + public Builder valueMeters(Optional valueMeters) { + this.valueMeters = valueMeters; + return this; + } + + public Builder valueMeters(Double valueMeters) { + this.valueMeters = Optional.ofNullable(valueMeters); + return this; + } + + public AltitudeAboveStandardDatumPlanePressure build() { + return new AltitudeAboveStandardDatumPlanePressure(provenance, valueMeters, additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/com/anduril/types/AltitudeAboveWgs84Ellipsoid.java b/src/main/java/com/anduril/types/AltitudeAboveWgs84Ellipsoid.java new file mode 100644 index 0000000..f3a5226 --- /dev/null +++ b/src/main/java/com/anduril/types/AltitudeAboveWgs84Ellipsoid.java @@ -0,0 +1,142 @@ +/** + * 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 = AltitudeAboveWgs84Ellipsoid.Builder.class) +public final class AltitudeAboveWgs84Ellipsoid { + private final Optional provenance; + + private final Optional valueMeters; + + private final Map additionalProperties; + + private AltitudeAboveWgs84Ellipsoid( + Optional provenance, + Optional valueMeters, + Map additionalProperties) { + this.provenance = provenance; + this.valueMeters = valueMeters; + this.additionalProperties = additionalProperties; + } + + /** + * @return The provenance of the measurement. + */ + @JsonProperty("provenance") + public Optional getProvenance() { + return provenance; + } + + /** + * @return The altitude value in meters. + */ + @JsonProperty("valueMeters") + public Optional getValueMeters() { + return valueMeters; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof AltitudeAboveWgs84Ellipsoid && equalTo((AltitudeAboveWgs84Ellipsoid) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(AltitudeAboveWgs84Ellipsoid other) { + return provenance.equals(other.provenance) && valueMeters.equals(other.valueMeters); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.provenance, this.valueMeters); + } + + @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 provenance = Optional.empty(); + + private Optional valueMeters = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(AltitudeAboveWgs84Ellipsoid other) { + provenance(other.getProvenance()); + valueMeters(other.getValueMeters()); + return this; + } + + /** + *

The provenance of the measurement.

+ */ + @JsonSetter(value = "provenance", nulls = Nulls.SKIP) + public Builder provenance(Optional provenance) { + this.provenance = provenance; + return this; + } + + public Builder provenance(AltitudeProvenance provenance) { + this.provenance = Optional.ofNullable(provenance); + return this; + } + + /** + *

The altitude value in meters.

+ */ + @JsonSetter(value = "valueMeters", nulls = Nulls.SKIP) + public Builder valueMeters(Optional valueMeters) { + this.valueMeters = valueMeters; + return this; + } + + public Builder valueMeters(Double valueMeters) { + this.valueMeters = Optional.ofNullable(valueMeters); + return this; + } + + public AltitudeAboveWgs84Ellipsoid build() { + return new AltitudeAboveWgs84Ellipsoid(provenance, valueMeters, additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/com/anduril/types/AltitudeBelowSeaSurface.java b/src/main/java/com/anduril/types/AltitudeBelowSeaSurface.java new file mode 100644 index 0000000..540dfc7 --- /dev/null +++ b/src/main/java/com/anduril/types/AltitudeBelowSeaSurface.java @@ -0,0 +1,142 @@ +/** + * 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 = AltitudeBelowSeaSurface.Builder.class) +public final class AltitudeBelowSeaSurface { + private final Optional provenance; + + private final Optional valueMeters; + + private final Map additionalProperties; + + private AltitudeBelowSeaSurface( + Optional provenance, + Optional valueMeters, + Map additionalProperties) { + this.provenance = provenance; + this.valueMeters = valueMeters; + this.additionalProperties = additionalProperties; + } + + /** + * @return The provenance of the measurement. + */ + @JsonProperty("provenance") + public Optional getProvenance() { + return provenance; + } + + /** + * @return The altitude value in meters. + */ + @JsonProperty("valueMeters") + public Optional getValueMeters() { + return valueMeters; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof AltitudeBelowSeaSurface && equalTo((AltitudeBelowSeaSurface) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(AltitudeBelowSeaSurface other) { + return provenance.equals(other.provenance) && valueMeters.equals(other.valueMeters); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.provenance, this.valueMeters); + } + + @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 provenance = Optional.empty(); + + private Optional valueMeters = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(AltitudeBelowSeaSurface other) { + provenance(other.getProvenance()); + valueMeters(other.getValueMeters()); + return this; + } + + /** + *

The provenance of the measurement.

+ */ + @JsonSetter(value = "provenance", nulls = Nulls.SKIP) + public Builder provenance(Optional provenance) { + this.provenance = provenance; + return this; + } + + public Builder provenance(AltitudeProvenance provenance) { + this.provenance = Optional.ofNullable(provenance); + return this; + } + + /** + *

The altitude value in meters.

+ */ + @JsonSetter(value = "valueMeters", nulls = Nulls.SKIP) + public Builder valueMeters(Optional valueMeters) { + this.valueMeters = valueMeters; + return this; + } + + public Builder valueMeters(Double valueMeters) { + this.valueMeters = Optional.ofNullable(valueMeters); + return this; + } + + public AltitudeBelowSeaSurface build() { + return new AltitudeBelowSeaSurface(provenance, valueMeters, additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/com/anduril/types/AltitudeProvenance.java b/src/main/java/com/anduril/types/AltitudeProvenance.java new file mode 100644 index 0000000..08579ad --- /dev/null +++ b/src/main/java/com/anduril/types/AltitudeProvenance.java @@ -0,0 +1,106 @@ +/** + * 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 = AltitudeProvenance.Builder.class) +public final class AltitudeProvenance { + private final Optional sourceType; + + private final Map additionalProperties; + + private AltitudeProvenance( + Optional sourceType, Map additionalProperties) { + this.sourceType = sourceType; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("sourceType") + public Optional getSourceType() { + return sourceType; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof AltitudeProvenance && equalTo((AltitudeProvenance) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(AltitudeProvenance other) { + return sourceType.equals(other.sourceType); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.sourceType); + } + + @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 sourceType = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(AltitudeProvenance other) { + sourceType(other.getSourceType()); + return this; + } + + @JsonSetter(value = "sourceType", nulls = Nulls.SKIP) + public Builder sourceType(Optional sourceType) { + this.sourceType = sourceType; + return this; + } + + public Builder sourceType(AltitudeProvenanceSourceType sourceType) { + this.sourceType = Optional.ofNullable(sourceType); + return this; + } + + public AltitudeProvenance build() { + return new AltitudeProvenance(sourceType, additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/com/anduril/types/AltitudeProvenanceSourceType.java b/src/main/java/com/anduril/types/AltitudeProvenanceSourceType.java new file mode 100644 index 0000000..bde5a6b --- /dev/null +++ b/src/main/java/com/anduril/types/AltitudeProvenanceSourceType.java @@ -0,0 +1,169 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.anduril.types; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public final class AltitudeProvenanceSourceType { + public static final AltitudeProvenanceSourceType ALTITUDE_PROVENANCE_TYPE_BAROMETER = + new AltitudeProvenanceSourceType( + Value.ALTITUDE_PROVENANCE_TYPE_BAROMETER, "ALTITUDE_PROVENANCE_TYPE_BAROMETER"); + + public static final AltitudeProvenanceSourceType ALTITUDE_PROVENANCE_TYPE_TERRAIN_CONVERSION = + new AltitudeProvenanceSourceType( + Value.ALTITUDE_PROVENANCE_TYPE_TERRAIN_CONVERSION, "ALTITUDE_PROVENANCE_TYPE_TERRAIN_CONVERSION"); + + public static final AltitudeProvenanceSourceType ALTITUDE_PROVENANCE_TYPE_GNSS = + new AltitudeProvenanceSourceType(Value.ALTITUDE_PROVENANCE_TYPE_GNSS, "ALTITUDE_PROVENANCE_TYPE_GNSS"); + + public static final AltitudeProvenanceSourceType ALTITUDE_PROVENANCE_TYPE_SONAR = + new AltitudeProvenanceSourceType(Value.ALTITUDE_PROVENANCE_TYPE_SONAR, "ALTITUDE_PROVENANCE_TYPE_SONAR"); + + public static final AltitudeProvenanceSourceType ALTITUDE_PROVENANCE_TYPE_INS = + new AltitudeProvenanceSourceType(Value.ALTITUDE_PROVENANCE_TYPE_INS, "ALTITUDE_PROVENANCE_TYPE_INS"); + + public static final AltitudeProvenanceSourceType ALTITUDE_PROVENANCE_TYPE_RADAR_ALTIMETER = + new AltitudeProvenanceSourceType( + Value.ALTITUDE_PROVENANCE_TYPE_RADAR_ALTIMETER, "ALTITUDE_PROVENANCE_TYPE_RADAR_ALTIMETER"); + + public static final AltitudeProvenanceSourceType ALTITUDE_PROVENANCE_TYPE_LASER_ALTIMETER = + new AltitudeProvenanceSourceType( + Value.ALTITUDE_PROVENANCE_TYPE_LASER_ALTIMETER, "ALTITUDE_PROVENANCE_TYPE_LASER_ALTIMETER"); + + public static final AltitudeProvenanceSourceType ALTITUDE_PROVENANCE_TYPE_USER_INPUT = + new AltitudeProvenanceSourceType( + Value.ALTITUDE_PROVENANCE_TYPE_USER_INPUT, "ALTITUDE_PROVENANCE_TYPE_USER_INPUT"); + + public static final AltitudeProvenanceSourceType ALTITUDE_PROVENANCE_TYPE_INVALID = + new AltitudeProvenanceSourceType( + Value.ALTITUDE_PROVENANCE_TYPE_INVALID, "ALTITUDE_PROVENANCE_TYPE_INVALID"); + + private final Value value; + + private final String string; + + AltitudeProvenanceSourceType(Value value, String string) { + this.value = value; + this.string = string; + } + + public Value getEnumValue() { + return value; + } + + @java.lang.Override + @JsonValue + public String toString() { + return this.string; + } + + @java.lang.Override + public boolean equals(Object other) { + return (this == other) + || (other instanceof AltitudeProvenanceSourceType + && this.string.equals(((AltitudeProvenanceSourceType) other).string)); + } + + @java.lang.Override + public int hashCode() { + return this.string.hashCode(); + } + + public T visit(Visitor visitor) { + switch (value) { + case ALTITUDE_PROVENANCE_TYPE_BAROMETER: + return visitor.visitAltitudeProvenanceTypeBarometer(); + case ALTITUDE_PROVENANCE_TYPE_TERRAIN_CONVERSION: + return visitor.visitAltitudeProvenanceTypeTerrainConversion(); + case ALTITUDE_PROVENANCE_TYPE_GNSS: + return visitor.visitAltitudeProvenanceTypeGnss(); + case ALTITUDE_PROVENANCE_TYPE_SONAR: + return visitor.visitAltitudeProvenanceTypeSonar(); + case ALTITUDE_PROVENANCE_TYPE_INS: + return visitor.visitAltitudeProvenanceTypeIns(); + case ALTITUDE_PROVENANCE_TYPE_RADAR_ALTIMETER: + return visitor.visitAltitudeProvenanceTypeRadarAltimeter(); + case ALTITUDE_PROVENANCE_TYPE_LASER_ALTIMETER: + return visitor.visitAltitudeProvenanceTypeLaserAltimeter(); + case ALTITUDE_PROVENANCE_TYPE_USER_INPUT: + return visitor.visitAltitudeProvenanceTypeUserInput(); + case ALTITUDE_PROVENANCE_TYPE_INVALID: + return visitor.visitAltitudeProvenanceTypeInvalid(); + case UNKNOWN: + default: + return visitor.visitUnknown(string); + } + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + public static AltitudeProvenanceSourceType valueOf(String value) { + switch (value) { + case "ALTITUDE_PROVENANCE_TYPE_BAROMETER": + return ALTITUDE_PROVENANCE_TYPE_BAROMETER; + case "ALTITUDE_PROVENANCE_TYPE_TERRAIN_CONVERSION": + return ALTITUDE_PROVENANCE_TYPE_TERRAIN_CONVERSION; + case "ALTITUDE_PROVENANCE_TYPE_GNSS": + return ALTITUDE_PROVENANCE_TYPE_GNSS; + case "ALTITUDE_PROVENANCE_TYPE_SONAR": + return ALTITUDE_PROVENANCE_TYPE_SONAR; + case "ALTITUDE_PROVENANCE_TYPE_INS": + return ALTITUDE_PROVENANCE_TYPE_INS; + case "ALTITUDE_PROVENANCE_TYPE_RADAR_ALTIMETER": + return ALTITUDE_PROVENANCE_TYPE_RADAR_ALTIMETER; + case "ALTITUDE_PROVENANCE_TYPE_LASER_ALTIMETER": + return ALTITUDE_PROVENANCE_TYPE_LASER_ALTIMETER; + case "ALTITUDE_PROVENANCE_TYPE_USER_INPUT": + return ALTITUDE_PROVENANCE_TYPE_USER_INPUT; + case "ALTITUDE_PROVENANCE_TYPE_INVALID": + return ALTITUDE_PROVENANCE_TYPE_INVALID; + default: + return new AltitudeProvenanceSourceType(Value.UNKNOWN, value); + } + } + + public enum Value { + ALTITUDE_PROVENANCE_TYPE_INVALID, + + ALTITUDE_PROVENANCE_TYPE_RADAR_ALTIMETER, + + ALTITUDE_PROVENANCE_TYPE_LASER_ALTIMETER, + + ALTITUDE_PROVENANCE_TYPE_BAROMETER, + + ALTITUDE_PROVENANCE_TYPE_TERRAIN_CONVERSION, + + ALTITUDE_PROVENANCE_TYPE_GNSS, + + ALTITUDE_PROVENANCE_TYPE_SONAR, + + ALTITUDE_PROVENANCE_TYPE_USER_INPUT, + + ALTITUDE_PROVENANCE_TYPE_INS, + + UNKNOWN + } + + public interface Visitor { + T visitAltitudeProvenanceTypeInvalid(); + + T visitAltitudeProvenanceTypeRadarAltimeter(); + + T visitAltitudeProvenanceTypeLaserAltimeter(); + + T visitAltitudeProvenanceTypeBarometer(); + + T visitAltitudeProvenanceTypeTerrainConversion(); + + T visitAltitudeProvenanceTypeGnss(); + + T visitAltitudeProvenanceTypeSonar(); + + T visitAltitudeProvenanceTypeUserInput(); + + T visitAltitudeProvenanceTypeIns(); + + T visitUnknown(String unknownType); + } +} diff --git a/src/main/java/com/anduril/types/Entity.java b/src/main/java/com/anduril/types/Entity.java index 9440a33..6ad50bf 100644 --- a/src/main/java/com/anduril/types/Entity.java +++ b/src/main/java/com/anduril/types/Entity.java @@ -39,6 +39,8 @@ public final class Entity { private final Optional locationUncertainty; + private final Optional kinematics; + private final Optional geoShape; private final Optional geoDetails; @@ -109,6 +111,7 @@ private Entity( Optional status, Optional location, Optional locationUncertainty, + Optional kinematics, Optional geoShape, Optional geoDetails, Optional aliases, @@ -148,6 +151,7 @@ private Entity( this.status = status; this.location = location; this.locationUncertainty = locationUncertainty; + this.kinematics = kinematics; this.geoShape = geoShape; this.geoDetails = geoDetails; this.aliases = aliases; @@ -252,7 +256,9 @@ public Optional getStatus() { } /** - * @return Geospatial data related to the entity, including its position, kinematics, and orientation. + * @return Geospatial data related to the entity, including its position, kinematics, and orientation. Populate either + * this field (and location_uncertainty) or kinematics, not both. Populating both can lead to conflicting or + * inconsistent kinematics data for the entity. */ @JsonProperty("location") public Optional getLocation() { @@ -267,6 +273,16 @@ public Optional getLocationUncertainty() { return locationUncertainty; } + /** + * @return Kinematics data related to the entity to a higher degree of granularity than Location. This is preferred for Track Entities. + * Populate either location/location_uncertainty or this field, not both. + * Populating both can lead to conflicting or inconsistent kinematics data for the entity. + */ + @JsonProperty("kinematics") + public Optional getKinematics() { + return kinematics; + } + /** * @return Geospatial representation of the entity, including entities that cover an area rather than a fixed point. */ @@ -523,6 +539,7 @@ private boolean equalTo(Entity other) { && status.equals(other.status) && location.equals(other.location) && locationUncertainty.equals(other.locationUncertainty) + && kinematics.equals(other.kinematics) && geoShape.equals(other.geoShape) && geoDetails.equals(other.geoDetails) && aliases.equals(other.aliases) @@ -566,6 +583,7 @@ public int hashCode() { this.status, this.location, this.locationUncertainty, + this.kinematics, this.geoShape, this.geoDetails, this.aliases, @@ -626,6 +644,8 @@ public static final class Builder { private Optional locationUncertainty = Optional.empty(); + private Optional kinematics = Optional.empty(); + private Optional geoShape = Optional.empty(); private Optional geoDetails = Optional.empty(); @@ -699,6 +719,7 @@ public Builder from(Entity other) { status(other.getStatus()); location(other.getLocation()); locationUncertainty(other.getLocationUncertainty()); + kinematics(other.getKinematics()); geoShape(other.getGeoShape()); geoDetails(other.getGeoDetails()); aliases(other.getAliases()); @@ -845,7 +866,9 @@ public Builder status(Status status) { } /** - *

Geospatial data related to the entity, including its position, kinematics, and orientation.

+ *

Geospatial data related to the entity, including its position, kinematics, and orientation. Populate either + * this field (and location_uncertainty) or kinematics, not both. Populating both can lead to conflicting or + * inconsistent kinematics data for the entity.

*/ @JsonSetter(value = "location", nulls = Nulls.SKIP) public Builder location(Optional location) { @@ -872,6 +895,22 @@ public Builder locationUncertainty(LocationUncertainty locationUncertainty) { return this; } + /** + *

Kinematics data related to the entity to a higher degree of granularity than Location. This is preferred for Track Entities. + * Populate either location/location_uncertainty or this field, not both. + * Populating both can lead to conflicting or inconsistent kinematics data for the entity.

+ */ + @JsonSetter(value = "kinematics", nulls = Nulls.SKIP) + public Builder kinematics(Optional kinematics) { + this.kinematics = kinematics; + return this; + } + + public Builder kinematics(Kinematics kinematics) { + this.kinematics = Optional.ofNullable(kinematics); + return this; + } + /** *

Geospatial representation of the entity, including entities that cover an area rather than a fixed point.

*/ @@ -1292,6 +1331,7 @@ public Entity build() { status, location, locationUncertainty, + kinematics, geoShape, geoDetails, aliases, diff --git a/src/main/java/com/anduril/types/Kinematics.java b/src/main/java/com/anduril/types/Kinematics.java new file mode 100644 index 0000000..b76a44c --- /dev/null +++ b/src/main/java/com/anduril/types/Kinematics.java @@ -0,0 +1,143 @@ +/** + * 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 = Kinematics.Builder.class) +public final class Kinematics { + private final Optional kinematicsGeodetic; + + private final Optional kinematicsGeocentric; + + private final Map additionalProperties; + + private Kinematics( + Optional kinematicsGeodetic, + Optional kinematicsGeocentric, + Map additionalProperties) { + this.kinematicsGeodetic = kinematicsGeodetic; + this.kinematicsGeocentric = kinematicsGeocentric; + this.additionalProperties = additionalProperties; + } + + /** + * @return Kinematics measured in a geodetic (WGS84 latitude/longitude/altitude and ENU) reference frame. + */ + @JsonProperty("kinematicsGeodetic") + public Optional getKinematicsGeodetic() { + return kinematicsGeodetic; + } + + /** + * @return Kinematics measured in a geocentric (ECEF) reference frame. + */ + @JsonProperty("kinematicsGeocentric") + public Optional getKinematicsGeocentric() { + return kinematicsGeocentric; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof Kinematics && equalTo((Kinematics) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(Kinematics other) { + return kinematicsGeodetic.equals(other.kinematicsGeodetic) + && kinematicsGeocentric.equals(other.kinematicsGeocentric); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.kinematicsGeodetic, this.kinematicsGeocentric); + } + + @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 kinematicsGeodetic = Optional.empty(); + + private Optional kinematicsGeocentric = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(Kinematics other) { + kinematicsGeodetic(other.getKinematicsGeodetic()); + kinematicsGeocentric(other.getKinematicsGeocentric()); + return this; + } + + /** + *

Kinematics measured in a geodetic (WGS84 latitude/longitude/altitude and ENU) reference frame.

+ */ + @JsonSetter(value = "kinematicsGeodetic", nulls = Nulls.SKIP) + public Builder kinematicsGeodetic(Optional kinematicsGeodetic) { + this.kinematicsGeodetic = kinematicsGeodetic; + return this; + } + + public Builder kinematicsGeodetic(KinematicsGeodetic kinematicsGeodetic) { + this.kinematicsGeodetic = Optional.ofNullable(kinematicsGeodetic); + return this; + } + + /** + *

Kinematics measured in a geocentric (ECEF) reference frame.

+ */ + @JsonSetter(value = "kinematicsGeocentric", nulls = Nulls.SKIP) + public Builder kinematicsGeocentric(Optional kinematicsGeocentric) { + this.kinematicsGeocentric = kinematicsGeocentric; + return this; + } + + public Builder kinematicsGeocentric(KinematicsGeocentric kinematicsGeocentric) { + this.kinematicsGeocentric = Optional.ofNullable(kinematicsGeocentric); + return this; + } + + public Kinematics build() { + return new Kinematics(kinematicsGeodetic, kinematicsGeocentric, additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/com/anduril/types/KinematicsGeocentric.java b/src/main/java/com/anduril/types/KinematicsGeocentric.java new file mode 100644 index 0000000..cfb1da8 --- /dev/null +++ b/src/main/java/com/anduril/types/KinematicsGeocentric.java @@ -0,0 +1,315 @@ +/** + * 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.time.OffsetDateTime; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = KinematicsGeocentric.Builder.class) +public final class KinematicsGeocentric { + private final Optional location; + + private final Optional locationUncertaintyEcef; + + private final Optional velocityEcefMPerS; + + private final Optional velocityUncertaintyEcef; + + private final Optional accelerationMPerS2; + + private final Optional attitudeEcef; + + private final Optional measurementTime; + + private final Map additionalProperties; + + private KinematicsGeocentric( + Optional location, + Optional locationUncertaintyEcef, + Optional velocityEcefMPerS, + Optional velocityUncertaintyEcef, + Optional accelerationMPerS2, + Optional attitudeEcef, + Optional measurementTime, + Map additionalProperties) { + this.location = location; + this.locationUncertaintyEcef = locationUncertaintyEcef; + this.velocityEcefMPerS = velocityEcefMPerS; + this.velocityUncertaintyEcef = velocityUncertaintyEcef; + this.accelerationMPerS2 = accelerationMPerS2; + this.attitudeEcef = attitudeEcef; + this.measurementTime = measurementTime; + this.additionalProperties = additionalProperties; + } + + /** + * @return The location of the entity, measured in the ECEF reference frame. + */ + @JsonProperty("location") + public Optional getLocation() { + return location; + } + + /** + * @return Location uncertainty of this measurement, measured in the ECEF frame. + */ + @JsonProperty("locationUncertaintyEcef") + public Optional getLocationUncertaintyEcef() { + return locationUncertaintyEcef; + } + + /** + * @return Velocity in the ECEF frame, measured in meters per second. + */ + @JsonProperty("velocityEcefMPerS") + public Optional getVelocityEcefMPerS() { + return velocityEcefMPerS; + } + + /** + * @return A 3x3 covariance matrix representing the uncertainty of the velocity measurement. + */ + @JsonProperty("velocityUncertaintyEcef") + public Optional getVelocityUncertaintyEcef() { + return velocityUncertaintyEcef; + } + + /** + * @return The entity's acceleration in meters per second squared. + */ + @JsonProperty("accelerationMPerS2") + public Optional getAccelerationMPerS2() { + return accelerationMPerS2; + } + + /** + * @return Quaternion that rotates the X unit vector in the entity's body frame (assumed to be front-left-up) [1,0,0] + * to the entity's orientation unit vector in the ECEF frame at the entity's location. + */ + @JsonProperty("attitudeEcef") + public Optional getAttitudeEcef() { + return attitudeEcef; + } + + /** + * @return The time when these kinematics were measured by the sensor. For tracks, this represents when the sensor made + * the observation that produced these kinematics. For asset pose data, this represents the system time when the + * pose was captured. + */ + @JsonProperty("measurementTime") + public Optional getMeasurementTime() { + return measurementTime; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof KinematicsGeocentric && equalTo((KinematicsGeocentric) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(KinematicsGeocentric other) { + return location.equals(other.location) + && locationUncertaintyEcef.equals(other.locationUncertaintyEcef) + && velocityEcefMPerS.equals(other.velocityEcefMPerS) + && velocityUncertaintyEcef.equals(other.velocityUncertaintyEcef) + && accelerationMPerS2.equals(other.accelerationMPerS2) + && attitudeEcef.equals(other.attitudeEcef) + && measurementTime.equals(other.measurementTime); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash( + this.location, + this.locationUncertaintyEcef, + this.velocityEcefMPerS, + this.velocityUncertaintyEcef, + this.accelerationMPerS2, + this.attitudeEcef, + this.measurementTime); + } + + @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 location = Optional.empty(); + + private Optional locationUncertaintyEcef = Optional.empty(); + + private Optional velocityEcefMPerS = Optional.empty(); + + private Optional velocityUncertaintyEcef = Optional.empty(); + + private Optional accelerationMPerS2 = Optional.empty(); + + private Optional attitudeEcef = Optional.empty(); + + private Optional measurementTime = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(KinematicsGeocentric other) { + location(other.getLocation()); + locationUncertaintyEcef(other.getLocationUncertaintyEcef()); + velocityEcefMPerS(other.getVelocityEcefMPerS()); + velocityUncertaintyEcef(other.getVelocityUncertaintyEcef()); + accelerationMPerS2(other.getAccelerationMPerS2()); + attitudeEcef(other.getAttitudeEcef()); + measurementTime(other.getMeasurementTime()); + return this; + } + + /** + *

The location of the entity, measured in the ECEF reference frame.

+ */ + @JsonSetter(value = "location", nulls = Nulls.SKIP) + public Builder location(Optional location) { + this.location = location; + return this; + } + + public Builder location(LocationGeocentricEcef location) { + this.location = Optional.ofNullable(location); + return this; + } + + /** + *

Location uncertainty of this measurement, measured in the ECEF frame.

+ */ + @JsonSetter(value = "locationUncertaintyEcef", nulls = Nulls.SKIP) + public Builder locationUncertaintyEcef(Optional locationUncertaintyEcef) { + this.locationUncertaintyEcef = locationUncertaintyEcef; + return this; + } + + public Builder locationUncertaintyEcef(TMat3 locationUncertaintyEcef) { + this.locationUncertaintyEcef = Optional.ofNullable(locationUncertaintyEcef); + return this; + } + + /** + *

Velocity in the ECEF frame, measured in meters per second.

+ */ + @JsonSetter(value = "velocityEcefMPerS", nulls = Nulls.SKIP) + public Builder velocityEcefMPerS(Optional velocityEcefMPerS) { + this.velocityEcefMPerS = velocityEcefMPerS; + return this; + } + + public Builder velocityEcefMPerS(Vec3 velocityEcefMPerS) { + this.velocityEcefMPerS = Optional.ofNullable(velocityEcefMPerS); + return this; + } + + /** + *

A 3x3 covariance matrix representing the uncertainty of the velocity measurement.

+ */ + @JsonSetter(value = "velocityUncertaintyEcef", nulls = Nulls.SKIP) + public Builder velocityUncertaintyEcef(Optional velocityUncertaintyEcef) { + this.velocityUncertaintyEcef = velocityUncertaintyEcef; + return this; + } + + public Builder velocityUncertaintyEcef(TMat3 velocityUncertaintyEcef) { + this.velocityUncertaintyEcef = Optional.ofNullable(velocityUncertaintyEcef); + return this; + } + + /** + *

The entity's acceleration in meters per second squared.

+ */ + @JsonSetter(value = "accelerationMPerS2", nulls = Nulls.SKIP) + public Builder accelerationMPerS2(Optional accelerationMPerS2) { + this.accelerationMPerS2 = accelerationMPerS2; + return this; + } + + public Builder accelerationMPerS2(Vec3 accelerationMPerS2) { + this.accelerationMPerS2 = Optional.ofNullable(accelerationMPerS2); + return this; + } + + /** + *

Quaternion that rotates the X unit vector in the entity's body frame (assumed to be front-left-up) [1,0,0] + * to the entity's orientation unit vector in the ECEF frame at the entity's location.

+ */ + @JsonSetter(value = "attitudeEcef", nulls = Nulls.SKIP) + public Builder attitudeEcef(Optional attitudeEcef) { + this.attitudeEcef = attitudeEcef; + return this; + } + + public Builder attitudeEcef(Quaternion attitudeEcef) { + this.attitudeEcef = Optional.ofNullable(attitudeEcef); + return this; + } + + /** + *

The time when these kinematics were measured by the sensor. For tracks, this represents when the sensor made + * the observation that produced these kinematics. For asset pose data, this represents the system time when the + * pose was captured.

+ */ + @JsonSetter(value = "measurementTime", nulls = Nulls.SKIP) + public Builder measurementTime(Optional measurementTime) { + this.measurementTime = measurementTime; + return this; + } + + public Builder measurementTime(OffsetDateTime measurementTime) { + this.measurementTime = Optional.ofNullable(measurementTime); + return this; + } + + public KinematicsGeocentric build() { + return new KinematicsGeocentric( + location, + locationUncertaintyEcef, + velocityEcefMPerS, + velocityUncertaintyEcef, + accelerationMPerS2, + attitudeEcef, + measurementTime, + additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/com/anduril/types/KinematicsGeodetic.java b/src/main/java/com/anduril/types/KinematicsGeodetic.java new file mode 100644 index 0000000..0e10fc1 --- /dev/null +++ b/src/main/java/com/anduril/types/KinematicsGeodetic.java @@ -0,0 +1,317 @@ +/** + * 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.time.OffsetDateTime; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = KinematicsGeodetic.Builder.class) +public final class KinematicsGeodetic { + private final Optional location; + + private final Optional locationUncertaintyEnu; + + private final Optional velocityEnuMPerS; + + private final Optional velocityUncertaintyEnu; + + private final Optional accelerationMPerS2; + + private final Optional attitudeEnu; + + private final Optional measurementTime; + + private final Map additionalProperties; + + private KinematicsGeodetic( + Optional location, + Optional locationUncertaintyEnu, + Optional velocityEnuMPerS, + Optional velocityUncertaintyEnu, + Optional accelerationMPerS2, + Optional attitudeEnu, + Optional measurementTime, + Map additionalProperties) { + this.location = location; + this.locationUncertaintyEnu = locationUncertaintyEnu; + this.velocityEnuMPerS = velocityEnuMPerS; + this.velocityUncertaintyEnu = velocityUncertaintyEnu; + this.accelerationMPerS2 = accelerationMPerS2; + this.attitudeEnu = attitudeEnu; + this.measurementTime = measurementTime; + this.additionalProperties = additionalProperties; + } + + /** + * @return The location of this entity. + */ + @JsonProperty("location") + public Optional getLocation() { + return location; + } + + /** + * @return Location uncertainty of this measurement, measured in the ENU frame. When there are multiple altitude + * measurements, this represents the most certain. + */ + @JsonProperty("locationUncertaintyEnu") + public Optional getLocationUncertaintyEnu() { + return locationUncertaintyEnu; + } + + /** + * @return Velocity in the ENU frame, measured in meters per second. + */ + @JsonProperty("velocityEnuMPerS") + public Optional getVelocityEnuMPerS() { + return velocityEnuMPerS; + } + + /** + * @return A 3x3 covariance matrix representing the uncertainty of the velocity measurement. + */ + @JsonProperty("velocityUncertaintyEnu") + public Optional getVelocityUncertaintyEnu() { + return velocityUncertaintyEnu; + } + + /** + * @return The entity's acceleration in meters per second squared. + */ + @JsonProperty("accelerationMPerS2") + public Optional getAccelerationMPerS2() { + return accelerationMPerS2; + } + + /** + * @return Quaternion that rotates the X unit vector in the entity's body frame (assumed to be front-left-up) [1,0,0] + * to the entity's orientation unit vector in the ENU frame at the entity's location. + */ + @JsonProperty("attitudeEnu") + public Optional getAttitudeEnu() { + return attitudeEnu; + } + + /** + * @return The time when these kinematics were measured by the sensor. For tracks, this represents when the sensor made + * the observation that produced these kinematics. For asset pose data, this represents the system time when the + * pose was captured. + */ + @JsonProperty("measurementTime") + public Optional getMeasurementTime() { + return measurementTime; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof KinematicsGeodetic && equalTo((KinematicsGeodetic) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(KinematicsGeodetic other) { + return location.equals(other.location) + && locationUncertaintyEnu.equals(other.locationUncertaintyEnu) + && velocityEnuMPerS.equals(other.velocityEnuMPerS) + && velocityUncertaintyEnu.equals(other.velocityUncertaintyEnu) + && accelerationMPerS2.equals(other.accelerationMPerS2) + && attitudeEnu.equals(other.attitudeEnu) + && measurementTime.equals(other.measurementTime); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash( + this.location, + this.locationUncertaintyEnu, + this.velocityEnuMPerS, + this.velocityUncertaintyEnu, + this.accelerationMPerS2, + this.attitudeEnu, + this.measurementTime); + } + + @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 location = Optional.empty(); + + private Optional locationUncertaintyEnu = Optional.empty(); + + private Optional velocityEnuMPerS = Optional.empty(); + + private Optional velocityUncertaintyEnu = Optional.empty(); + + private Optional accelerationMPerS2 = Optional.empty(); + + private Optional attitudeEnu = Optional.empty(); + + private Optional measurementTime = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(KinematicsGeodetic other) { + location(other.getLocation()); + locationUncertaintyEnu(other.getLocationUncertaintyEnu()); + velocityEnuMPerS(other.getVelocityEnuMPerS()); + velocityUncertaintyEnu(other.getVelocityUncertaintyEnu()); + accelerationMPerS2(other.getAccelerationMPerS2()); + attitudeEnu(other.getAttitudeEnu()); + measurementTime(other.getMeasurementTime()); + return this; + } + + /** + *

The location of this entity.

+ */ + @JsonSetter(value = "location", nulls = Nulls.SKIP) + public Builder location(Optional location) { + this.location = location; + return this; + } + + public Builder location(LocationGeodetic location) { + this.location = Optional.ofNullable(location); + return this; + } + + /** + *

Location uncertainty of this measurement, measured in the ENU frame. When there are multiple altitude + * measurements, this represents the most certain.

+ */ + @JsonSetter(value = "locationUncertaintyEnu", nulls = Nulls.SKIP) + public Builder locationUncertaintyEnu(Optional locationUncertaintyEnu) { + this.locationUncertaintyEnu = locationUncertaintyEnu; + return this; + } + + public Builder locationUncertaintyEnu(TMat3 locationUncertaintyEnu) { + this.locationUncertaintyEnu = Optional.ofNullable(locationUncertaintyEnu); + return this; + } + + /** + *

Velocity in the ENU frame, measured in meters per second.

+ */ + @JsonSetter(value = "velocityEnuMPerS", nulls = Nulls.SKIP) + public Builder velocityEnuMPerS(Optional velocityEnuMPerS) { + this.velocityEnuMPerS = velocityEnuMPerS; + return this; + } + + public Builder velocityEnuMPerS(Vec3 velocityEnuMPerS) { + this.velocityEnuMPerS = Optional.ofNullable(velocityEnuMPerS); + return this; + } + + /** + *

A 3x3 covariance matrix representing the uncertainty of the velocity measurement.

+ */ + @JsonSetter(value = "velocityUncertaintyEnu", nulls = Nulls.SKIP) + public Builder velocityUncertaintyEnu(Optional velocityUncertaintyEnu) { + this.velocityUncertaintyEnu = velocityUncertaintyEnu; + return this; + } + + public Builder velocityUncertaintyEnu(TMat3 velocityUncertaintyEnu) { + this.velocityUncertaintyEnu = Optional.ofNullable(velocityUncertaintyEnu); + return this; + } + + /** + *

The entity's acceleration in meters per second squared.

+ */ + @JsonSetter(value = "accelerationMPerS2", nulls = Nulls.SKIP) + public Builder accelerationMPerS2(Optional accelerationMPerS2) { + this.accelerationMPerS2 = accelerationMPerS2; + return this; + } + + public Builder accelerationMPerS2(Vec3 accelerationMPerS2) { + this.accelerationMPerS2 = Optional.ofNullable(accelerationMPerS2); + return this; + } + + /** + *

Quaternion that rotates the X unit vector in the entity's body frame (assumed to be front-left-up) [1,0,0] + * to the entity's orientation unit vector in the ENU frame at the entity's location.

+ */ + @JsonSetter(value = "attitudeEnu", nulls = Nulls.SKIP) + public Builder attitudeEnu(Optional attitudeEnu) { + this.attitudeEnu = attitudeEnu; + return this; + } + + public Builder attitudeEnu(Quaternion attitudeEnu) { + this.attitudeEnu = Optional.ofNullable(attitudeEnu); + return this; + } + + /** + *

The time when these kinematics were measured by the sensor. For tracks, this represents when the sensor made + * the observation that produced these kinematics. For asset pose data, this represents the system time when the + * pose was captured.

+ */ + @JsonSetter(value = "measurementTime", nulls = Nulls.SKIP) + public Builder measurementTime(Optional measurementTime) { + this.measurementTime = measurementTime; + return this; + } + + public Builder measurementTime(OffsetDateTime measurementTime) { + this.measurementTime = Optional.ofNullable(measurementTime); + return this; + } + + public KinematicsGeodetic build() { + return new KinematicsGeodetic( + location, + locationUncertaintyEnu, + velocityEnuMPerS, + velocityUncertaintyEnu, + accelerationMPerS2, + attitudeEnu, + measurementTime, + additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/com/anduril/types/LocationGeocentricEcef.java b/src/main/java/com/anduril/types/LocationGeocentricEcef.java new file mode 100644 index 0000000..2a2abca --- /dev/null +++ b/src/main/java/com/anduril/types/LocationGeocentricEcef.java @@ -0,0 +1,175 @@ +/** + * 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 = LocationGeocentricEcef.Builder.class) +public final class LocationGeocentricEcef { + private final Optional xMeters; + + private final Optional yMeters; + + private final Optional zMeters; + + private final Map additionalProperties; + + private LocationGeocentricEcef( + Optional xMeters, + Optional yMeters, + Optional zMeters, + Map additionalProperties) { + this.xMeters = xMeters; + this.yMeters = yMeters; + this.zMeters = zMeters; + this.additionalProperties = additionalProperties; + } + + /** + * @return The plane of the equator, passing through extending from 90°W longitude (negative) + * to 90°E longitude (positive). + */ + @JsonProperty("xMeters") + public Optional getXMeters() { + return xMeters; + } + + /** + * @return The plane of the equator, passing through the origin and extending from 180° longitude + * (negative) to the prime meridian. + */ + @JsonProperty("yMeters") + public Optional getYMeters() { + return yMeters; + } + + /** + * @return The line between the North and South Poles, with positive values increasing northward. + */ + @JsonProperty("zMeters") + public Optional getZMeters() { + return zMeters; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof LocationGeocentricEcef && equalTo((LocationGeocentricEcef) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(LocationGeocentricEcef other) { + return xMeters.equals(other.xMeters) && yMeters.equals(other.yMeters) && zMeters.equals(other.zMeters); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.xMeters, this.yMeters, this.zMeters); + } + + @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 xMeters = Optional.empty(); + + private Optional yMeters = Optional.empty(); + + private Optional zMeters = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(LocationGeocentricEcef other) { + xMeters(other.getXMeters()); + yMeters(other.getYMeters()); + zMeters(other.getZMeters()); + return this; + } + + /** + *

The plane of the equator, passing through extending from 90°W longitude (negative) + * to 90°E longitude (positive).

+ */ + @JsonSetter(value = "xMeters", nulls = Nulls.SKIP) + public Builder xMeters(Optional xMeters) { + this.xMeters = xMeters; + return this; + } + + public Builder xMeters(Double xMeters) { + this.xMeters = Optional.ofNullable(xMeters); + return this; + } + + /** + *

The plane of the equator, passing through the origin and extending from 180° longitude + * (negative) to the prime meridian.

+ */ + @JsonSetter(value = "yMeters", nulls = Nulls.SKIP) + public Builder yMeters(Optional yMeters) { + this.yMeters = yMeters; + return this; + } + + public Builder yMeters(Double yMeters) { + this.yMeters = Optional.ofNullable(yMeters); + return this; + } + + /** + *

The line between the North and South Poles, with positive values increasing northward.

+ */ + @JsonSetter(value = "zMeters", nulls = Nulls.SKIP) + public Builder zMeters(Optional zMeters) { + this.zMeters = zMeters; + return this; + } + + public Builder zMeters(Double zMeters) { + this.zMeters = Optional.ofNullable(zMeters); + return this; + } + + public LocationGeocentricEcef build() { + return new LocationGeocentricEcef(xMeters, yMeters, zMeters, additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/com/anduril/types/LocationGeodetic.java b/src/main/java/com/anduril/types/LocationGeodetic.java new file mode 100644 index 0000000..f7f72c7 --- /dev/null +++ b/src/main/java/com/anduril/types/LocationGeodetic.java @@ -0,0 +1,218 @@ +/** + * 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.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; + +@JsonInclude(JsonInclude.Include.NON_ABSENT) +@JsonDeserialize(builder = LocationGeodetic.Builder.class) +public final class LocationGeodetic { + private final Optional latitudeDegrees; + + private final Optional longitudeDegrees; + + private final Optional universalAltitudeHae; + + private final Optional> additionalAltitudes; + + private final Map additionalProperties; + + private LocationGeodetic( + Optional latitudeDegrees, + Optional longitudeDegrees, + Optional universalAltitudeHae, + Optional> additionalAltitudes, + Map additionalProperties) { + this.latitudeDegrees = latitudeDegrees; + this.longitudeDegrees = longitudeDegrees; + this.universalAltitudeHae = universalAltitudeHae; + this.additionalAltitudes = additionalAltitudes; + this.additionalProperties = additionalProperties; + } + + /** + * @return WGS84 latitude in decimal degrees. + */ + @JsonProperty("latitudeDegrees") + public Optional getLatitudeDegrees() { + return latitudeDegrees; + } + + /** + * @return WGS84 longitude in decimal degrees. + */ + @JsonProperty("longitudeDegrees") + public Optional getLongitudeDegrees() { + return longitudeDegrees; + } + + /** + * @return Altitude measurement in reference to the WGS84 defined ellipsoid. This is expected to + * always be set if an altitude measurement is available and should be derived from the + * most accurate altitude measurement available. If this is a 2D measurement, then this + * message should not be set. If you are unable to calculate this value, then this + * message should also not be set. + */ + @JsonProperty("universalAltitudeHae") + public Optional getUniversalAltitudeHae() { + return universalAltitudeHae; + } + + /** + * @return This allows for multiple additional altitudes to be conveyed. + * e.g. Barometric Pressure and Radar Altimeter readings + * for an aircraft + */ + @JsonProperty("additionalAltitudes") + public Optional> getAdditionalAltitudes() { + return additionalAltitudes; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof LocationGeodetic && equalTo((LocationGeodetic) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(LocationGeodetic other) { + return latitudeDegrees.equals(other.latitudeDegrees) + && longitudeDegrees.equals(other.longitudeDegrees) + && universalAltitudeHae.equals(other.universalAltitudeHae) + && additionalAltitudes.equals(other.additionalAltitudes); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash( + this.latitudeDegrees, this.longitudeDegrees, this.universalAltitudeHae, this.additionalAltitudes); + } + + @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 latitudeDegrees = Optional.empty(); + + private Optional longitudeDegrees = Optional.empty(); + + private Optional universalAltitudeHae = Optional.empty(); + + private Optional> additionalAltitudes = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(LocationGeodetic other) { + latitudeDegrees(other.getLatitudeDegrees()); + longitudeDegrees(other.getLongitudeDegrees()); + universalAltitudeHae(other.getUniversalAltitudeHae()); + additionalAltitudes(other.getAdditionalAltitudes()); + return this; + } + + /** + *

WGS84 latitude in decimal degrees.

+ */ + @JsonSetter(value = "latitudeDegrees", nulls = Nulls.SKIP) + public Builder latitudeDegrees(Optional latitudeDegrees) { + this.latitudeDegrees = latitudeDegrees; + return this; + } + + public Builder latitudeDegrees(Double latitudeDegrees) { + this.latitudeDegrees = Optional.ofNullable(latitudeDegrees); + return this; + } + + /** + *

WGS84 longitude in decimal degrees.

+ */ + @JsonSetter(value = "longitudeDegrees", nulls = Nulls.SKIP) + public Builder longitudeDegrees(Optional longitudeDegrees) { + this.longitudeDegrees = longitudeDegrees; + return this; + } + + public Builder longitudeDegrees(Double longitudeDegrees) { + this.longitudeDegrees = Optional.ofNullable(longitudeDegrees); + return this; + } + + /** + *

Altitude measurement in reference to the WGS84 defined ellipsoid. This is expected to + * always be set if an altitude measurement is available and should be derived from the + * most accurate altitude measurement available. If this is a 2D measurement, then this + * message should not be set. If you are unable to calculate this value, then this + * message should also not be set.

+ */ + @JsonSetter(value = "universalAltitudeHae", nulls = Nulls.SKIP) + public Builder universalAltitudeHae(Optional universalAltitudeHae) { + this.universalAltitudeHae = universalAltitudeHae; + return this; + } + + public Builder universalAltitudeHae(AltitudeAboveWgs84Ellipsoid universalAltitudeHae) { + this.universalAltitudeHae = Optional.ofNullable(universalAltitudeHae); + return this; + } + + /** + *

This allows for multiple additional altitudes to be conveyed. + * e.g. Barometric Pressure and Radar Altimeter readings + * for an aircraft

+ */ + @JsonSetter(value = "additionalAltitudes", nulls = Nulls.SKIP) + public Builder additionalAltitudes(Optional> additionalAltitudes) { + this.additionalAltitudes = additionalAltitudes; + return this; + } + + public Builder additionalAltitudes(List additionalAltitudes) { + this.additionalAltitudes = Optional.ofNullable(additionalAltitudes); + return this; + } + + public LocationGeodetic build() { + return new LocationGeodetic( + latitudeDegrees, longitudeDegrees, universalAltitudeHae, additionalAltitudes, additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/com/anduril/types/TMat3.java b/src/main/java/com/anduril/types/TMat3.java new file mode 100644 index 0000000..c629b09 --- /dev/null +++ b/src/main/java/com/anduril/types/TMat3.java @@ -0,0 +1,227 @@ +/** + * 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 = TMat3.Builder.class) +public final class TMat3 { + private final Optional mxx; + + private final Optional mxy; + + private final Optional mxz; + + private final Optional myy; + + private final Optional myz; + + private final Optional mzz; + + private final Map additionalProperties; + + private TMat3( + Optional mxx, + Optional mxy, + Optional mxz, + Optional myy, + Optional myz, + Optional mzz, + Map additionalProperties) { + this.mxx = mxx; + this.mxy = mxy; + this.mxz = mxz; + this.myy = myy; + this.myz = myz; + this.mzz = mzz; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("mxx") + public Optional getMxx() { + return mxx; + } + + @JsonProperty("mxy") + public Optional getMxy() { + return mxy; + } + + @JsonProperty("mxz") + public Optional getMxz() { + return mxz; + } + + @JsonProperty("myy") + public Optional getMyy() { + return myy; + } + + @JsonProperty("myz") + public Optional getMyz() { + return myz; + } + + @JsonProperty("mzz") + public Optional getMzz() { + return mzz; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof TMat3 && equalTo((TMat3) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(TMat3 other) { + return mxx.equals(other.mxx) + && mxy.equals(other.mxy) + && mxz.equals(other.mxz) + && myy.equals(other.myy) + && myz.equals(other.myz) + && mzz.equals(other.mzz); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.mxx, this.mxy, this.mxz, this.myy, this.myz, this.mzz); + } + + @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 mxx = Optional.empty(); + + private Optional mxy = Optional.empty(); + + private Optional mxz = Optional.empty(); + + private Optional myy = Optional.empty(); + + private Optional myz = Optional.empty(); + + private Optional mzz = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(TMat3 other) { + mxx(other.getMxx()); + mxy(other.getMxy()); + mxz(other.getMxz()); + myy(other.getMyy()); + myz(other.getMyz()); + mzz(other.getMzz()); + return this; + } + + @JsonSetter(value = "mxx", nulls = Nulls.SKIP) + public Builder mxx(Optional mxx) { + this.mxx = mxx; + return this; + } + + public Builder mxx(Double mxx) { + this.mxx = Optional.ofNullable(mxx); + return this; + } + + @JsonSetter(value = "mxy", nulls = Nulls.SKIP) + public Builder mxy(Optional mxy) { + this.mxy = mxy; + return this; + } + + public Builder mxy(Double mxy) { + this.mxy = Optional.ofNullable(mxy); + return this; + } + + @JsonSetter(value = "mxz", nulls = Nulls.SKIP) + public Builder mxz(Optional mxz) { + this.mxz = mxz; + return this; + } + + public Builder mxz(Double mxz) { + this.mxz = Optional.ofNullable(mxz); + return this; + } + + @JsonSetter(value = "myy", nulls = Nulls.SKIP) + public Builder myy(Optional myy) { + this.myy = myy; + return this; + } + + public Builder myy(Double myy) { + this.myy = Optional.ofNullable(myy); + return this; + } + + @JsonSetter(value = "myz", nulls = Nulls.SKIP) + public Builder myz(Optional myz) { + this.myz = myz; + return this; + } + + public Builder myz(Double myz) { + this.myz = Optional.ofNullable(myz); + return this; + } + + @JsonSetter(value = "mzz", nulls = Nulls.SKIP) + public Builder mzz(Optional mzz) { + this.mzz = mzz; + return this; + } + + public Builder mzz(Double mzz) { + this.mzz = Optional.ofNullable(mzz); + return this; + } + + public TMat3 build() { + return new TMat3(mxx, mxy, mxz, myy, myz, mzz, additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +} diff --git a/src/main/java/com/anduril/types/Vec3.java b/src/main/java/com/anduril/types/Vec3.java new file mode 100644 index 0000000..3049f7c --- /dev/null +++ b/src/main/java/com/anduril/types/Vec3.java @@ -0,0 +1,149 @@ +/** + * 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 = Vec3.Builder.class) +public final class Vec3 { + private final Optional x; + + private final Optional y; + + private final Optional z; + + private final Map additionalProperties; + + private Vec3(Optional x, Optional y, Optional z, Map additionalProperties) { + this.x = x; + this.y = y; + this.z = z; + this.additionalProperties = additionalProperties; + } + + @JsonProperty("x") + public Optional getX() { + return x; + } + + @JsonProperty("y") + public Optional getY() { + return y; + } + + @JsonProperty("z") + public Optional getZ() { + return z; + } + + @java.lang.Override + public boolean equals(Object other) { + if (this == other) return true; + return other instanceof Vec3 && equalTo((Vec3) other); + } + + @JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + private boolean equalTo(Vec3 other) { + return x.equals(other.x) && y.equals(other.y) && z.equals(other.z); + } + + @java.lang.Override + public int hashCode() { + return Objects.hash(this.x, this.y, this.z); + } + + @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 x = Optional.empty(); + + private Optional y = Optional.empty(); + + private Optional z = Optional.empty(); + + @JsonAnySetter + private Map additionalProperties = new HashMap<>(); + + private Builder() {} + + public Builder from(Vec3 other) { + x(other.getX()); + y(other.getY()); + z(other.getZ()); + return this; + } + + @JsonSetter(value = "x", nulls = Nulls.SKIP) + public Builder x(Optional x) { + this.x = x; + return this; + } + + public Builder x(Double x) { + this.x = Optional.ofNullable(x); + return this; + } + + @JsonSetter(value = "y", nulls = Nulls.SKIP) + public Builder y(Optional y) { + this.y = y; + return this; + } + + public Builder y(Double y) { + this.y = Optional.ofNullable(y); + return this; + } + + @JsonSetter(value = "z", nulls = Nulls.SKIP) + public Builder z(Optional z) { + this.z = z; + return this; + } + + public Builder z(Double z) { + this.z = Optional.ofNullable(z); + return this; + } + + public Vec3 build() { + return new Vec3(x, y, z, additionalProperties); + } + + public Builder additionalProperty(String key, Object value) { + this.additionalProperties.put(key, value); + return this; + } + + public Builder additionalProperties(Map additionalProperties) { + this.additionalProperties.putAll(additionalProperties); + return this; + } + } +}