001
002package com.commercetools.history.models.common;
003
004import java.util.Arrays;
005import java.util.Optional;
006
007import com.fasterxml.jackson.annotation.JsonCreator;
008import com.fasterxml.jackson.annotation.JsonValue;
009
010import io.vrap.rmf.base.client.JsonEnum;
011import io.vrap.rmf.base.client.utils.Generated;
012
013/**
014 * ReferenceTypeId
015 */
016@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
017public interface ReferenceTypeId extends JsonEnum {
018
019    ReferenceTypeId ASSOCIATE_ROLE = ReferenceTypeIdEnum.ASSOCIATE_ROLE;
020
021    ReferenceTypeId BUSINESS_UNIT = ReferenceTypeIdEnum.BUSINESS_UNIT;
022
023    ReferenceTypeId CART = ReferenceTypeIdEnum.CART;
024
025    ReferenceTypeId CART_DISCOUNT = ReferenceTypeIdEnum.CART_DISCOUNT;
026
027    ReferenceTypeId CATEGORY = ReferenceTypeIdEnum.CATEGORY;
028
029    ReferenceTypeId CHANNEL = ReferenceTypeIdEnum.CHANNEL;
030
031    ReferenceTypeId CUSTOMER = ReferenceTypeIdEnum.CUSTOMER;
032
033    ReferenceTypeId CUSTOMER_EMAIL_TOKEN = ReferenceTypeIdEnum.CUSTOMER_EMAIL_TOKEN;
034
035    ReferenceTypeId CUSTOMER_GROUP = ReferenceTypeIdEnum.CUSTOMER_GROUP;
036
037    ReferenceTypeId CUSTOMER_PASSWORD_TOKEN = ReferenceTypeIdEnum.CUSTOMER_PASSWORD_TOKEN;
038
039    ReferenceTypeId DISCOUNT_CODE = ReferenceTypeIdEnum.DISCOUNT_CODE;
040
041    ReferenceTypeId EXTENSION = ReferenceTypeIdEnum.EXTENSION;
042
043    ReferenceTypeId INVENTORY_ENTRY = ReferenceTypeIdEnum.INVENTORY_ENTRY;
044
045    ReferenceTypeId KEY_VALUE_DOCUMENT = ReferenceTypeIdEnum.KEY_VALUE_DOCUMENT;
046
047    ReferenceTypeId ORDER = ReferenceTypeIdEnum.ORDER;
048
049    ReferenceTypeId ORDER_EDIT = ReferenceTypeIdEnum.ORDER_EDIT;
050
051    ReferenceTypeId PAYMENT = ReferenceTypeIdEnum.PAYMENT;
052
053    ReferenceTypeId PRODUCT = ReferenceTypeIdEnum.PRODUCT;
054
055    ReferenceTypeId PRODUCT_DISCOUNT = ReferenceTypeIdEnum.PRODUCT_DISCOUNT;
056
057    ReferenceTypeId PRODUCT_SELECTION = ReferenceTypeIdEnum.PRODUCT_SELECTION;
058
059    ReferenceTypeId PRODUCT_TYPE = ReferenceTypeIdEnum.PRODUCT_TYPE;
060
061    ReferenceTypeId QUOTE = ReferenceTypeIdEnum.QUOTE;
062
063    ReferenceTypeId QUOTE_REQUEST = ReferenceTypeIdEnum.QUOTE_REQUEST;
064
065    ReferenceTypeId REVIEW = ReferenceTypeIdEnum.REVIEW;
066
067    ReferenceTypeId SHIPPING_METHOD = ReferenceTypeIdEnum.SHIPPING_METHOD;
068
069    ReferenceTypeId SHOPPING_LIST = ReferenceTypeIdEnum.SHOPPING_LIST;
070
071    ReferenceTypeId STAGED_QUOTE = ReferenceTypeIdEnum.STAGED_QUOTE;
072
073    ReferenceTypeId STATE = ReferenceTypeIdEnum.STATE;
074
075    ReferenceTypeId STORE = ReferenceTypeIdEnum.STORE;
076
077    ReferenceTypeId SUBSCRIPTION = ReferenceTypeIdEnum.SUBSCRIPTION;
078
079    ReferenceTypeId TAX_CATEGORY = ReferenceTypeIdEnum.TAX_CATEGORY;
080
081    ReferenceTypeId TYPE = ReferenceTypeIdEnum.TYPE;
082
083    ReferenceTypeId ZONE = ReferenceTypeIdEnum.ZONE;
084
085    /**
086     * possible values of ReferenceTypeId
087     */
088    enum ReferenceTypeIdEnum implements ReferenceTypeId {
089        /**
090         * associate-role
091         */
092        ASSOCIATE_ROLE("associate-role"),
093
094        /**
095         * business-unit
096         */
097        BUSINESS_UNIT("business-unit"),
098
099        /**
100         * cart
101         */
102        CART("cart"),
103
104        /**
105         * cart-discount
106         */
107        CART_DISCOUNT("cart-discount"),
108
109        /**
110         * category
111         */
112        CATEGORY("category"),
113
114        /**
115         * channel
116         */
117        CHANNEL("channel"),
118
119        /**
120         * customer
121         */
122        CUSTOMER("customer"),
123
124        /**
125         * customer-email-token
126         */
127        CUSTOMER_EMAIL_TOKEN("customer-email-token"),
128
129        /**
130         * customer-group
131         */
132        CUSTOMER_GROUP("customer-group"),
133
134        /**
135         * customer-password-token
136         */
137        CUSTOMER_PASSWORD_TOKEN("customer-password-token"),
138
139        /**
140         * discount-code
141         */
142        DISCOUNT_CODE("discount-code"),
143
144        /**
145         * extension
146         */
147        EXTENSION("extension"),
148
149        /**
150         * inventory-entry
151         */
152        INVENTORY_ENTRY("inventory-entry"),
153
154        /**
155         * key-value-document
156         */
157        KEY_VALUE_DOCUMENT("key-value-document"),
158
159        /**
160         * order
161         */
162        ORDER("order"),
163
164        /**
165         * order-edit
166         */
167        ORDER_EDIT("order-edit"),
168
169        /**
170         * payment
171         */
172        PAYMENT("payment"),
173
174        /**
175         * product
176         */
177        PRODUCT("product"),
178
179        /**
180         * product-discount
181         */
182        PRODUCT_DISCOUNT("product-discount"),
183
184        /**
185         * product-selection
186         */
187        PRODUCT_SELECTION("product-selection"),
188
189        /**
190         * product-type
191         */
192        PRODUCT_TYPE("product-type"),
193
194        /**
195         * quote
196         */
197        QUOTE("quote"),
198
199        /**
200         * quote-request
201         */
202        QUOTE_REQUEST("quote-request"),
203
204        /**
205         * review
206         */
207        REVIEW("review"),
208
209        /**
210         * shipping-method
211         */
212        SHIPPING_METHOD("shipping-method"),
213
214        /**
215         * shopping-list
216         */
217        SHOPPING_LIST("shopping-list"),
218
219        /**
220         * staged-quote
221         */
222        STAGED_QUOTE("staged-quote"),
223
224        /**
225         * state
226         */
227        STATE("state"),
228
229        /**
230         * store
231         */
232        STORE("store"),
233
234        /**
235         * subscription
236         */
237        SUBSCRIPTION("subscription"),
238
239        /**
240         * tax-category
241         */
242        TAX_CATEGORY("tax-category"),
243
244        /**
245         * type
246         */
247        TYPE("type"),
248
249        /**
250         * zone
251         */
252        ZONE("zone");
253        private final String jsonName;
254
255        private ReferenceTypeIdEnum(final String jsonName) {
256            this.jsonName = jsonName;
257        }
258
259        public String getJsonName() {
260            return jsonName;
261        }
262
263        public String toString() {
264            return jsonName;
265        }
266    }
267
268    /**
269     * the JSON value
270     * @return json value
271     */
272    @JsonValue
273    String getJsonName();
274
275    /**
276     * the enum value
277     * @return name
278     */
279    String name();
280
281    /**
282     * convert value to string
283     * @return string representation
284     */
285    String toString();
286
287    /**
288     * factory method for a enum value of ReferenceTypeId
289     * if no enum has been found an anonymous instance will be created
290     * @param value the enum value to be wrapped
291     * @return enum instance
292     */
293    @JsonCreator
294    public static ReferenceTypeId findEnum(String value) {
295        return findEnumViaJsonName(value).orElse(new ReferenceTypeId() {
296            @Override
297            public String getJsonName() {
298                return value;
299            }
300
301            @Override
302            public String name() {
303                return value.toUpperCase();
304            }
305
306            public String toString() {
307                return value;
308            }
309        });
310    }
311
312    /**
313     * method to find enum using the JSON value
314     * @param jsonName the json value to be wrapped
315     * @return optional of enum instance
316     */
317    public static Optional<ReferenceTypeId> findEnumViaJsonName(String jsonName) {
318        return Arrays.stream(values()).filter(t -> t.getJsonName().equals(jsonName)).findFirst();
319    }
320
321    /**
322     * possible enum values
323     * @return array of possible enum values
324     */
325    public static ReferenceTypeId[] values() {
326        return ReferenceTypeIdEnum.values();
327    }
328
329}