3030 builder = AchievementCompletionResponseAchievement .Builder .class
3131)
3232public final class AchievementCompletionResponseAchievement implements ICompletedAchievementResponse , IAchievementResponse {
33- private final OffsetDateTime achievedAt ;
33+ private final Optional < OffsetDateTime > achievedAt ;
3434
3535 private final String id ;
3636
@@ -56,7 +56,7 @@ public final class AchievementCompletionResponseAchievement implements IComplete
5656
5757 private final Map <String , Object > additionalProperties ;
5858
59- private AchievementCompletionResponseAchievement (OffsetDateTime achievedAt , String id ,
59+ private AchievementCompletionResponseAchievement (Optional < OffsetDateTime > achievedAt , String id ,
6060 String name , AchievementResponseTrigger trigger , Optional <String > description ,
6161 Optional <String > badgeUrl , String key , Optional <Integer > streakLength ,
6262 Optional <String > metricId , Optional <Double > metricValue , Optional <String > metricName ,
@@ -77,11 +77,11 @@ private AchievementCompletionResponseAchievement(OffsetDateTime achievedAt, Stri
7777 }
7878
7979 /**
80- * @return The date and time the achievement was completed, in ISO 8601 format.
80+ * @return The date and time the achievement was completed, in ISO 8601 format. Null if the achievement has not been completed.
8181 */
8282 @ JsonProperty ("achievedAt" )
8383 @ java .lang .Override
84- public OffsetDateTime getAchievedAt () {
84+ public Optional < OffsetDateTime > getAchievedAt () {
8585 return achievedAt ;
8686 }
8787
@@ -207,24 +207,17 @@ public String toString() {
207207 return ObjectMappers .stringify (this );
208208 }
209209
210- public static AchievedAtStage builder () {
210+ public static IdStage builder () {
211211 return new Builder ();
212212 }
213213
214- public interface AchievedAtStage {
215- /**
216- * <p>The date and time the achievement was completed, in ISO 8601 format.</p>
217- */
218- IdStage achievedAt (@ NotNull OffsetDateTime achievedAt );
219-
220- Builder from (AchievementCompletionResponseAchievement other );
221- }
222-
223214 public interface IdStage {
224215 /**
225216 * <p>The unique ID of the achievement.</p>
226217 */
227218 NameStage id (@ NotNull String id );
219+
220+ Builder from (AchievementCompletionResponseAchievement other );
228221 }
229222
230223 public interface NameStage {
@@ -251,6 +244,13 @@ public interface KeyStage {
251244 public interface _FinalStage {
252245 AchievementCompletionResponseAchievement build ();
253246
247+ /**
248+ * <p>The date and time the achievement was completed, in ISO 8601 format. Null if the achievement has not been completed.</p>
249+ */
250+ _FinalStage achievedAt (Optional <OffsetDateTime > achievedAt );
251+
252+ _FinalStage achievedAt (OffsetDateTime achievedAt );
253+
254254 /**
255255 * <p>The description of this achievement.</p>
256256 */
@@ -304,9 +304,7 @@ public interface _FinalStage {
304304 @ JsonIgnoreProperties (
305305 ignoreUnknown = true
306306 )
307- public static final class Builder implements AchievedAtStage , IdStage , NameStage , TriggerStage , KeyStage , _FinalStage {
308- private OffsetDateTime achievedAt ;
309-
307+ public static final class Builder implements IdStage , NameStage , TriggerStage , KeyStage , _FinalStage {
310308 private String id ;
311309
312310 private String name ;
@@ -329,6 +327,8 @@ public static final class Builder implements AchievedAtStage, IdStage, NameStage
329327
330328 private Optional <String > description = Optional .empty ();
331329
330+ private Optional <OffsetDateTime > achievedAt = Optional .empty ();
331+
332332 @ JsonAnySetter
333333 private Map <String , Object > additionalProperties = new HashMap <>();
334334
@@ -352,18 +352,6 @@ public Builder from(AchievementCompletionResponseAchievement other) {
352352 return this ;
353353 }
354354
355- /**
356- * <p>The date and time the achievement was completed, in ISO 8601 format.</p>
357- * <p>The date and time the achievement was completed, in ISO 8601 format.</p>
358- * @return Reference to {@code this} so that method calls can be chained together.
359- */
360- @ java .lang .Override
361- @ JsonSetter ("achievedAt" )
362- public IdStage achievedAt (@ NotNull OffsetDateTime achievedAt ) {
363- this .achievedAt = Objects .requireNonNull (achievedAt , "achievedAt must not be null" );
364- return this ;
365- }
366-
367355 /**
368356 * <p>The unique ID of the achievement.</p>
369357 * <p>The unique ID of the achievement.</p>
@@ -573,6 +561,29 @@ public _FinalStage description(Optional<String> description) {
573561 return this ;
574562 }
575563
564+ /**
565+ * <p>The date and time the achievement was completed, in ISO 8601 format. Null if the achievement has not been completed.</p>
566+ * @return Reference to {@code this} so that method calls can be chained together.
567+ */
568+ @ java .lang .Override
569+ public _FinalStage achievedAt (OffsetDateTime achievedAt ) {
570+ this .achievedAt = Optional .ofNullable (achievedAt );
571+ return this ;
572+ }
573+
574+ /**
575+ * <p>The date and time the achievement was completed, in ISO 8601 format. Null if the achievement has not been completed.</p>
576+ */
577+ @ java .lang .Override
578+ @ JsonSetter (
579+ value = "achievedAt" ,
580+ nulls = Nulls .SKIP
581+ )
582+ public _FinalStage achievedAt (Optional <OffsetDateTime > achievedAt ) {
583+ this .achievedAt = achievedAt ;
584+ return this ;
585+ }
586+
576587 @ java .lang .Override
577588 public AchievementCompletionResponseAchievement build () {
578589 return new AchievementCompletionResponseAchievement (achievedAt , id , name , trigger , description , badgeUrl , key , streakLength , metricId , metricValue , metricName , currentStreak , additionalProperties );
0 commit comments