@@ -31,6 +31,8 @@ public final class Entity {
3131
3232 private final Optional <OffsetDateTime > expiryTime ;
3333
34+ private final Optional <Boolean > noExpiry ;
35+
3436 private final Optional <Status > status ;
3537
3638 private final Optional <Location > location ;
@@ -101,6 +103,7 @@ private Entity(
101103 Optional <Boolean > isLive ,
102104 Optional <OffsetDateTime > createdTime ,
103105 Optional <OffsetDateTime > expiryTime ,
106+ Optional <Boolean > noExpiry ,
104107 Optional <Status > status ,
105108 Optional <Location > location ,
106109 Optional <LocationUncertainty > locationUncertainty ,
@@ -138,6 +141,7 @@ private Entity(
138141 this .isLive = isLive ;
139142 this .createdTime = createdTime ;
140143 this .expiryTime = expiryTime ;
144+ this .noExpiry = noExpiry ;
141145 this .status = status ;
142146 this .location = location ;
143147 this .locationUncertainty = locationUncertainty ;
@@ -224,6 +228,17 @@ public Optional<OffsetDateTime> getExpiryTime() {
224228 return expiryTime ;
225229 }
226230
231+ /**
232+ * @return Use noExpiry only when the entity contains information that should be available to other
233+ * tasks or integrations beyond its immediate operational context. For example, use noExpiry
234+ * for long-living geographical entities that maintain persistent relevance across multiple
235+ * operations or tasks.
236+ */
237+ @ JsonProperty ("noExpiry" )
238+ public Optional <Boolean > getNoExpiry () {
239+ return noExpiry ;
240+ }
241+
227242 /**
228243 * @return Human-readable descriptions of what the entity is currently doing.
229244 */
@@ -492,6 +507,7 @@ private boolean equalTo(Entity other) {
492507 && isLive .equals (other .isLive )
493508 && createdTime .equals (other .createdTime )
494509 && expiryTime .equals (other .expiryTime )
510+ && noExpiry .equals (other .noExpiry )
495511 && status .equals (other .status )
496512 && location .equals (other .location )
497513 && locationUncertainty .equals (other .locationUncertainty )
@@ -533,6 +549,7 @@ public int hashCode() {
533549 this .isLive ,
534550 this .createdTime ,
535551 this .expiryTime ,
552+ this .noExpiry ,
536553 this .status ,
537554 this .location ,
538555 this .locationUncertainty ,
@@ -587,6 +604,8 @@ public static final class Builder {
587604
588605 private Optional <OffsetDateTime > expiryTime = Optional .empty ();
589606
607+ private Optional <Boolean > noExpiry = Optional .empty ();
608+
590609 private Optional <Status > status = Optional .empty ();
591610
592611 private Optional <Location > location = Optional .empty ();
@@ -660,6 +679,7 @@ public Builder from(Entity other) {
660679 isLive (other .getIsLive ());
661680 createdTime (other .getCreatedTime ());
662681 expiryTime (other .getExpiryTime ());
682+ noExpiry (other .getNoExpiry ());
663683 status (other .getStatus ());
664684 location (other .getLocation ());
665685 locationUncertainty (other .getLocationUncertainty ());
@@ -776,6 +796,23 @@ public Builder expiryTime(OffsetDateTime expiryTime) {
776796 return this ;
777797 }
778798
799+ /**
800+ * <p>Use noExpiry only when the entity contains information that should be available to other
801+ * tasks or integrations beyond its immediate operational context. For example, use noExpiry
802+ * for long-living geographical entities that maintain persistent relevance across multiple
803+ * operations or tasks.</p>
804+ */
805+ @ JsonSetter (value = "noExpiry" , nulls = Nulls .SKIP )
806+ public Builder noExpiry (Optional <Boolean > noExpiry ) {
807+ this .noExpiry = noExpiry ;
808+ return this ;
809+ }
810+
811+ public Builder noExpiry (Boolean noExpiry ) {
812+ this .noExpiry = Optional .ofNullable (noExpiry );
813+ return this ;
814+ }
815+
779816 /**
780817 * <p>Human-readable descriptions of what the entity is currently doing.</p>
781818 */
@@ -1220,6 +1257,7 @@ public Entity build() {
12201257 isLive ,
12211258 createdTime ,
12221259 expiryTime ,
1260+ noExpiry ,
12231261 status ,
12241262 location ,
12251263 locationUncertainty ,
0 commit comments