001
002package com.commercetools.api.models.error;
003
004import java.time.*;
005import java.util.*;
006import java.util.function.Function;
007
008import javax.annotation.Nullable;
009import javax.validation.constraints.NotNull;
010
011import com.fasterxml.jackson.annotation.*;
012import com.fasterxml.jackson.databind.annotation.*;
013
014import io.vrap.rmf.base.client.utils.Generated;
015
016/**
017 *  <p>Returned when the API Extension does not respond within the time limit, or could not be reached.</p>
018 *
019 * <hr>
020 * Example to create an instance using the builder pattern
021 * <div class=code-example>
022 * <pre><code class='java'>
023 *     ExtensionNoResponseError extensionNoResponseError = ExtensionNoResponseError.builder()
024 *             .message("{message}")
025 *             .extensionId("{extensionId}")
026 *             .build()
027 * </code></pre>
028 * </div>
029 */
030@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
031@JsonDeserialize(as = ExtensionNoResponseErrorImpl.class)
032public interface ExtensionNoResponseError extends ErrorObject {
033
034    /**
035     * discriminator value for ExtensionNoResponseError
036     */
037    String EXTENSION_NO_RESPONSE = "ExtensionNoResponse";
038
039    /**
040     *
041     * @return code
042     */
043    @NotNull
044    @JsonProperty("code")
045    public String getCode();
046
047    /**
048     *  <p><code>"Extension did not respond in time."</code></p>
049     * @return message
050     */
051    @NotNull
052    @JsonProperty("message")
053    public String getMessage();
054
055    /**
056     *  <p>Unique identifier of the API Extension.</p>
057     * @return extensionId
058     */
059    @NotNull
060    @JsonProperty("extensionId")
061    public String getExtensionId();
062
063    /**
064     *  <p>User-defined unique identifier of the API Extension, if available.</p>
065     * @return extensionKey
066     */
067
068    @JsonProperty("extensionKey")
069    public String getExtensionKey();
070
071    /**
072     *  <p><code>"Extension did not respond in time."</code></p>
073     * @param message value to be set
074     */
075
076    public void setMessage(final String message);
077
078    /**
079     *  <p>Unique identifier of the API Extension.</p>
080     * @param extensionId value to be set
081     */
082
083    public void setExtensionId(final String extensionId);
084
085    /**
086     *  <p>User-defined unique identifier of the API Extension, if available.</p>
087     * @param extensionKey value to be set
088     */
089
090    public void setExtensionKey(final String extensionKey);
091
092    /**
093     * factory method
094     * @return instance of ExtensionNoResponseError
095     */
096    public static ExtensionNoResponseError of() {
097        return new ExtensionNoResponseErrorImpl();
098    }
099
100    /**
101     * factory method to create a shallow copy ExtensionNoResponseError
102     * @param template instance to be copied
103     * @return copy instance
104     */
105    public static ExtensionNoResponseError of(final ExtensionNoResponseError template) {
106        ExtensionNoResponseErrorImpl instance = new ExtensionNoResponseErrorImpl();
107        instance.setMessage(template.getMessage());
108        Optional.ofNullable(template.values()).ifPresent(t -> t.forEach(instance::setValue));
109        instance.setExtensionId(template.getExtensionId());
110        instance.setExtensionKey(template.getExtensionKey());
111        return instance;
112    }
113
114    /**
115     * factory method to create a deep copy of ExtensionNoResponseError
116     * @param template instance to be copied
117     * @return copy instance
118     */
119    @Nullable
120    public static ExtensionNoResponseError deepCopy(@Nullable final ExtensionNoResponseError template) {
121        if (template == null) {
122            return null;
123        }
124        ExtensionNoResponseErrorImpl instance = new ExtensionNoResponseErrorImpl();
125        instance.setMessage(template.getMessage());
126        Optional.ofNullable(template.values()).ifPresent(t -> t.forEach(instance::setValue));
127        instance.setExtensionId(template.getExtensionId());
128        instance.setExtensionKey(template.getExtensionKey());
129        return instance;
130    }
131
132    /**
133     * builder factory method for ExtensionNoResponseError
134     * @return builder
135     */
136    public static ExtensionNoResponseErrorBuilder builder() {
137        return ExtensionNoResponseErrorBuilder.of();
138    }
139
140    /**
141     * create builder for ExtensionNoResponseError instance
142     * @param template instance with prefilled values for the builder
143     * @return builder
144     */
145    public static ExtensionNoResponseErrorBuilder builder(final ExtensionNoResponseError template) {
146        return ExtensionNoResponseErrorBuilder.of(template);
147    }
148
149    /**
150     * accessor map function
151     * @param <T> mapped type
152     * @param helper function to map the object
153     * @return mapped value
154     */
155    default <T> T withExtensionNoResponseError(Function<ExtensionNoResponseError, T> helper) {
156        return helper.apply(this);
157    }
158
159    /**
160     * gives a TypeReference for usage with Jackson DataBind
161     * @return TypeReference
162     */
163    public static com.fasterxml.jackson.core.type.TypeReference<ExtensionNoResponseError> typeReference() {
164        return new com.fasterxml.jackson.core.type.TypeReference<ExtensionNoResponseError>() {
165            @Override
166            public String toString() {
167                return "TypeReference<ExtensionNoResponseError>";
168            }
169        };
170    }
171}