001
002package com.commercetools.history.models.change_history;
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 *  <p>This data type represents the supported resource types. The value must be one of the following:</p>
015 */
016@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
017public interface ChangeHistoryResourceType extends JsonEnum {
018
019    ChangeHistoryResourceType ASSOCIATE_ROLE = ChangeHistoryResourceTypeEnum.ASSOCIATE_ROLE;
020
021    ChangeHistoryResourceType BUSINESS_UNIT = ChangeHistoryResourceTypeEnum.BUSINESS_UNIT;
022
023    ChangeHistoryResourceType CART_DISCOUNT = ChangeHistoryResourceTypeEnum.CART_DISCOUNT;
024
025    ChangeHistoryResourceType CATEGORY = ChangeHistoryResourceTypeEnum.CATEGORY;
026
027    ChangeHistoryResourceType CHANNEL = ChangeHistoryResourceTypeEnum.CHANNEL;
028
029    ChangeHistoryResourceType CUSTOMER = ChangeHistoryResourceTypeEnum.CUSTOMER;
030
031    ChangeHistoryResourceType CUSTOMER_GROUP = ChangeHistoryResourceTypeEnum.CUSTOMER_GROUP;
032
033    ChangeHistoryResourceType DISCOUNT_CODE = ChangeHistoryResourceTypeEnum.DISCOUNT_CODE;
034
035    ChangeHistoryResourceType INVENTORY_ENTRY = ChangeHistoryResourceTypeEnum.INVENTORY_ENTRY;
036
037    ChangeHistoryResourceType KEY_VALUE_DOCUMENT = ChangeHistoryResourceTypeEnum.KEY_VALUE_DOCUMENT;
038
039    ChangeHistoryResourceType ORDER = ChangeHistoryResourceTypeEnum.ORDER;
040
041    ChangeHistoryResourceType PAYMENT = ChangeHistoryResourceTypeEnum.PAYMENT;
042
043    ChangeHistoryResourceType PRODUCT = ChangeHistoryResourceTypeEnum.PRODUCT;
044
045    ChangeHistoryResourceType PRODUCT_DISCOUNT = ChangeHistoryResourceTypeEnum.PRODUCT_DISCOUNT;
046
047    ChangeHistoryResourceType PRODUCT_SELECTION = ChangeHistoryResourceTypeEnum.PRODUCT_SELECTION;
048
049    ChangeHistoryResourceType PRODUCT_TYPE = ChangeHistoryResourceTypeEnum.PRODUCT_TYPE;
050
051    ChangeHistoryResourceType QUOTE_REQUEST = ChangeHistoryResourceTypeEnum.QUOTE_REQUEST;
052
053    ChangeHistoryResourceType QUOTE = ChangeHistoryResourceTypeEnum.QUOTE;
054
055    ChangeHistoryResourceType REVIEW = ChangeHistoryResourceTypeEnum.REVIEW;
056
057    ChangeHistoryResourceType SHOPPING_LIST = ChangeHistoryResourceTypeEnum.SHOPPING_LIST;
058
059    ChangeHistoryResourceType STAGED_QUOTE = ChangeHistoryResourceTypeEnum.STAGED_QUOTE;
060
061    ChangeHistoryResourceType STATE = ChangeHistoryResourceTypeEnum.STATE;
062
063    ChangeHistoryResourceType STORE = ChangeHistoryResourceTypeEnum.STORE;
064
065    ChangeHistoryResourceType TAX_CATEGORY = ChangeHistoryResourceTypeEnum.TAX_CATEGORY;
066
067    ChangeHistoryResourceType TYPE = ChangeHistoryResourceTypeEnum.TYPE;
068
069    ChangeHistoryResourceType ZONE = ChangeHistoryResourceTypeEnum.ZONE;
070
071    /**
072     * possible values of ChangeHistoryResourceType
073     */
074    enum ChangeHistoryResourceTypeEnum implements ChangeHistoryResourceType {
075        /**
076         * associate-role
077         */
078        ASSOCIATE_ROLE("associate-role"),
079
080        /**
081         * business-unit
082         */
083        BUSINESS_UNIT("business-unit"),
084
085        /**
086         * cart-discount
087         */
088        CART_DISCOUNT("cart-discount"),
089
090        /**
091         * category
092         */
093        CATEGORY("category"),
094
095        /**
096         * channel
097         */
098        CHANNEL("channel"),
099
100        /**
101         * customer
102         */
103        CUSTOMER("customer"),
104
105        /**
106         * customer-group
107         */
108        CUSTOMER_GROUP("customer-group"),
109
110        /**
111         * discount-code
112         */
113        DISCOUNT_CODE("discount-code"),
114
115        /**
116         * inventory-entry
117         */
118        INVENTORY_ENTRY("inventory-entry"),
119
120        /**
121         * key-value-document
122         */
123        KEY_VALUE_DOCUMENT("key-value-document"),
124
125        /**
126         * order
127         */
128        ORDER("order"),
129
130        /**
131         * payment
132         */
133        PAYMENT("payment"),
134
135        /**
136         * product
137         */
138        PRODUCT("product"),
139
140        /**
141         * product-discount
142         */
143        PRODUCT_DISCOUNT("product-discount"),
144
145        /**
146         * product-selection
147         */
148        PRODUCT_SELECTION("product-selection"),
149
150        /**
151         * product-type
152         */
153        PRODUCT_TYPE("product-type"),
154
155        /**
156         * quote-request
157         */
158        QUOTE_REQUEST("quote-request"),
159
160        /**
161         * quote
162         */
163        QUOTE("quote"),
164
165        /**
166         * review
167         */
168        REVIEW("review"),
169
170        /**
171         * shopping-list
172         */
173        SHOPPING_LIST("shopping-list"),
174
175        /**
176         * staged-quote
177         */
178        STAGED_QUOTE("staged-quote"),
179
180        /**
181         * state
182         */
183        STATE("state"),
184
185        /**
186         * store
187         */
188        STORE("store"),
189
190        /**
191         * tax-category
192         */
193        TAX_CATEGORY("tax-category"),
194
195        /**
196         * type
197         */
198        TYPE("type"),
199
200        /**
201         * zone
202         */
203        ZONE("zone");
204        private final String jsonName;
205
206        private ChangeHistoryResourceTypeEnum(final String jsonName) {
207            this.jsonName = jsonName;
208        }
209
210        public String getJsonName() {
211            return jsonName;
212        }
213
214        public String toString() {
215            return jsonName;
216        }
217    }
218
219    /**
220     * the JSON value
221     * @return json value
222     */
223    @JsonValue
224    String getJsonName();
225
226    /**
227     * the enum value
228     * @return name
229     */
230    String name();
231
232    /**
233     * convert value to string
234     * @return string representation
235     */
236    String toString();
237
238    /**
239     * factory method for a enum value of ChangeHistoryResourceType
240     * if no enum has been found an anonymous instance will be created
241     * @param value the enum value to be wrapped
242     * @return enum instance
243     */
244    @JsonCreator
245    public static ChangeHistoryResourceType findEnum(String value) {
246        return findEnumViaJsonName(value).orElse(new ChangeHistoryResourceType() {
247            @Override
248            public String getJsonName() {
249                return value;
250            }
251
252            @Override
253            public String name() {
254                return value.toUpperCase();
255            }
256
257            public String toString() {
258                return value;
259            }
260        });
261    }
262
263    /**
264     * method to find enum using the JSON value
265     * @param jsonName the json value to be wrapped
266     * @return optional of enum instance
267     */
268    public static Optional<ChangeHistoryResourceType> findEnumViaJsonName(String jsonName) {
269        return Arrays.stream(values()).filter(t -> t.getJsonName().equals(jsonName)).findFirst();
270    }
271
272    /**
273     * possible enum values
274     * @return array of possible enum values
275     */
276    public static ChangeHistoryResourceType[] values() {
277        return ChangeHistoryResourceTypeEnum.values();
278    }
279
280}