001
002package com.commercetools.history.models.change_history;
003
004import java.time.*;
005import java.util.*;
006import java.util.function.Function;
007import java.util.stream.Collectors;
008
009import javax.annotation.Nullable;
010import javax.validation.Valid;
011import javax.validation.constraints.NotNull;
012
013import com.fasterxml.jackson.annotation.*;
014import com.fasterxml.jackson.databind.annotation.*;
015
016import io.vrap.rmf.base.client.utils.Generated;
017
018/**
019 * ErrorResponse
020 *
021 * <hr>
022 * Example to create an instance using the builder pattern
023 * <div class=code-example>
024 * <pre><code class='java'>
025 *     ErrorResponse errorResponse = ErrorResponse.builder()
026 *             .statusCode(1)
027 *             .message("{message}")
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 = ErrorResponseImpl.class)
034public interface ErrorResponse {
035
036    /**
037     *
038     * @return statusCode
039     */
040    @NotNull
041    @JsonProperty("statusCode")
042    public Integer getStatusCode();
043
044    /**
045     *
046     * @return message
047     */
048    @NotNull
049    @JsonProperty("message")
050    public String getMessage();
051
052    /**
053     *
054     * @return error
055     */
056
057    @JsonProperty("error")
058    public String getError();
059
060    /**
061     *
062     * @return error_description
063     */
064
065    @JsonProperty("error_description")
066    public String getErrorDescription();
067
068    /**
069     *
070     * @return errors
071     */
072    @Valid
073    @JsonProperty("errors")
074    public List<ErrorObject> getErrors();
075
076    /**
077     * set statusCode
078     * @param statusCode value to be set
079     */
080
081    public void setStatusCode(final Integer statusCode);
082
083    /**
084     * set message
085     * @param message value to be set
086     */
087
088    public void setMessage(final String message);
089
090    /**
091     * set error
092     * @param error value to be set
093     */
094
095    public void setError(final String error);
096
097    /**
098     * set error_description
099     * @param errorDescription value to be set
100     */
101
102    public void setErrorDescription(final String errorDescription);
103
104    /**
105     * set errors
106     * @param errors values to be set
107     */
108
109    @JsonIgnore
110    public void setErrors(final ErrorObject... errors);
111
112    /**
113     * set errors
114     * @param errors values to be set
115     */
116
117    public void setErrors(final List<ErrorObject> errors);
118
119    /**
120     * factory method
121     * @return instance of ErrorResponse
122     */
123    public static ErrorResponse of() {
124        return new ErrorResponseImpl();
125    }
126
127    /**
128     * factory method to create a shallow copy ErrorResponse
129     * @param template instance to be copied
130     * @return copy instance
131     */
132    public static ErrorResponse of(final ErrorResponse template) {
133        ErrorResponseImpl instance = new ErrorResponseImpl();
134        instance.setStatusCode(template.getStatusCode());
135        instance.setMessage(template.getMessage());
136        instance.setError(template.getError());
137        instance.setErrorDescription(template.getErrorDescription());
138        instance.setErrors(template.getErrors());
139        return instance;
140    }
141
142    /**
143     * factory method to create a deep copy of ErrorResponse
144     * @param template instance to be copied
145     * @return copy instance
146     */
147    @Nullable
148    public static ErrorResponse deepCopy(@Nullable final ErrorResponse template) {
149        if (template == null) {
150            return null;
151        }
152        ErrorResponseImpl instance = new ErrorResponseImpl();
153        instance.setStatusCode(template.getStatusCode());
154        instance.setMessage(template.getMessage());
155        instance.setError(template.getError());
156        instance.setErrorDescription(template.getErrorDescription());
157        instance.setErrors(Optional.ofNullable(template.getErrors())
158                .map(t -> t.stream()
159                        .map(com.commercetools.history.models.change_history.ErrorObject::deepCopy)
160                        .collect(Collectors.toList()))
161                .orElse(null));
162        return instance;
163    }
164
165    /**
166     * builder factory method for ErrorResponse
167     * @return builder
168     */
169    public static ErrorResponseBuilder builder() {
170        return ErrorResponseBuilder.of();
171    }
172
173    /**
174     * create builder for ErrorResponse instance
175     * @param template instance with prefilled values for the builder
176     * @return builder
177     */
178    public static ErrorResponseBuilder builder(final ErrorResponse template) {
179        return ErrorResponseBuilder.of(template);
180    }
181
182    /**
183     * accessor map function
184     * @param <T> mapped type
185     * @param helper function to map the object
186     * @return mapped value
187     */
188    default <T> T withErrorResponse(Function<ErrorResponse, T> helper) {
189        return helper.apply(this);
190    }
191
192    /**
193     * gives a TypeReference for usage with Jackson DataBind
194     * @return TypeReference
195     */
196    public static com.fasterxml.jackson.core.type.TypeReference<ErrorResponse> typeReference() {
197        return new com.fasterxml.jackson.core.type.TypeReference<ErrorResponse>() {
198            @Override
199            public String toString() {
200                return "TypeReference<ErrorResponse>";
201            }
202        };
203    }
204}