001 002package com.commercetools.ml.models.similar_products; 003 004import java.time.*; 005import java.time.ZonedDateTime; 006import java.util.*; 007import java.util.function.Function; 008 009import javax.validation.Valid; 010import javax.validation.constraints.NotNull; 011 012import com.commercetools.ml.models.common.TaskStatusEnum; 013import com.fasterxml.jackson.annotation.*; 014import com.fasterxml.jackson.databind.annotation.*; 015 016import io.vrap.rmf.base.client.utils.Generated; 017 018/** 019 * <p>Represents a URL path to poll to get the results of an Asynchronous Request.</p> 020 * 021 * <hr> 022 * Example to create an instance using the builder pattern 023 * <div class=code-example> 024 * <pre><code class='java'> 025 * SimilarProductsTaskStatus similarProductsTaskStatus = SimilarProductsTaskStatus.builder() 026 * .state(TaskStatusEnum.PENDING) 027 * .result(resultBuilder -> resultBuilder) 028 * .build() 029 * </code></pre> 030 * </div> 031 */ 032@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen") 033@JsonDeserialize(as = SimilarProductsTaskStatusImpl.class) 034public interface SimilarProductsTaskStatus { 035 036 /** 037 * 038 */ 039 @NotNull 040 @JsonProperty("state") 041 public TaskStatusEnum getState(); 042 043 /** 044 * <p>The expiry date of the result. You cannot access the result after the expiry date. Default: 1 day after the result first becomes available. This is only available when the TaskStatus state is SUCCESS.</p> 045 */ 046 047 @JsonProperty("expires") 048 public ZonedDateTime getExpires(); 049 050 /** 051 * <p>The response to an asynchronous request. The type depends on the request initiated. Only populated when the status is <code>SUCCESS</code>.</p> 052 */ 053 @NotNull 054 @Valid 055 @JsonProperty("result") 056 public SimilarProductsPagedQueryResult getResult(); 057 058 public void setState(final TaskStatusEnum state); 059 060 public void setExpires(final ZonedDateTime expires); 061 062 public void setResult(final SimilarProductsPagedQueryResult result); 063 064 public static SimilarProductsTaskStatus of() { 065 return new SimilarProductsTaskStatusImpl(); 066 } 067 068 public static SimilarProductsTaskStatus of(final SimilarProductsTaskStatus template) { 069 SimilarProductsTaskStatusImpl instance = new SimilarProductsTaskStatusImpl(); 070 instance.setState(template.getState()); 071 instance.setExpires(template.getExpires()); 072 instance.setResult(template.getResult()); 073 return instance; 074 } 075 076 public static SimilarProductsTaskStatusBuilder builder() { 077 return SimilarProductsTaskStatusBuilder.of(); 078 } 079 080 public static SimilarProductsTaskStatusBuilder builder(final SimilarProductsTaskStatus template) { 081 return SimilarProductsTaskStatusBuilder.of(template); 082 } 083 084 default <T> T withSimilarProductsTaskStatus(Function<SimilarProductsTaskStatus, T> helper) { 085 return helper.apply(this); 086 } 087 088 public static com.fasterxml.jackson.core.type.TypeReference<SimilarProductsTaskStatus> typeReference() { 089 return new com.fasterxml.jackson.core.type.TypeReference<SimilarProductsTaskStatus>() { 090 @Override 091 public String toString() { 092 return "TypeReference<SimilarProductsTaskStatus>"; 093 } 094 }; 095 } 096}