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 *  <p>Permissions grant granular access to Business Units, Carts, Orders, Quotes, and Quote Requests.</p>
015 */
016@Generated(value = "io.vrap.rmf.codegen.rendering.CoreCodeGenerator", comments = "https://github.com/commercetools/rmf-codegen")
017public interface Permission extends JsonEnum {
018
019    Permission ADD_CHILD_UNITS = PermissionEnum.ADD_CHILD_UNITS;
020
021    Permission UPDATE_ASSOCIATES = PermissionEnum.UPDATE_ASSOCIATES;
022
023    Permission UPDATE_BUSINESS_UNIT_DETAILS = PermissionEnum.UPDATE_BUSINESS_UNIT_DETAILS;
024
025    Permission UPDATE_PARENT_UNIT = PermissionEnum.UPDATE_PARENT_UNIT;
026
027    Permission VIEW_MY_CARTS = PermissionEnum.VIEW_MY_CARTS;
028
029    Permission VIEW_OTHERS_CARTS = PermissionEnum.VIEW_OTHERS_CARTS;
030
031    Permission UPDATE_MY_CARTS = PermissionEnum.UPDATE_MY_CARTS;
032
033    Permission UPDATE_OTHERS_CARTS = PermissionEnum.UPDATE_OTHERS_CARTS;
034
035    Permission CREATE_MY_CARTS = PermissionEnum.CREATE_MY_CARTS;
036
037    Permission CREATE_OTHERS_CARTS = PermissionEnum.CREATE_OTHERS_CARTS;
038
039    Permission DELETE_MY_CARTS = PermissionEnum.DELETE_MY_CARTS;
040
041    Permission DELETE_OTHERS_CARTS = PermissionEnum.DELETE_OTHERS_CARTS;
042
043    Permission VIEW_MY_ORDERS = PermissionEnum.VIEW_MY_ORDERS;
044
045    Permission VIEW_OTHERS_ORDERS = PermissionEnum.VIEW_OTHERS_ORDERS;
046
047    Permission UPDATE_MY_ORDERS = PermissionEnum.UPDATE_MY_ORDERS;
048
049    Permission UPDATE_OTHERS_ORDERS = PermissionEnum.UPDATE_OTHERS_ORDERS;
050
051    Permission CREATE_MY_ORDERS_FROM_MY_CARTS = PermissionEnum.CREATE_MY_ORDERS_FROM_MY_CARTS;
052
053    Permission CREATE_MY_ORDERS_FROM_MY_QUOTES = PermissionEnum.CREATE_MY_ORDERS_FROM_MY_QUOTES;
054
055    Permission CREATE_ORDERS_FROM_OTHERS_CARTS = PermissionEnum.CREATE_ORDERS_FROM_OTHERS_CARTS;
056
057    Permission CREATE_ORDERS_FROM_OTHERS_QUOTES = PermissionEnum.CREATE_ORDERS_FROM_OTHERS_QUOTES;
058
059    Permission VIEW_MY_QUOTES = PermissionEnum.VIEW_MY_QUOTES;
060
061    Permission VIEW_OTHERS_QUOTES = PermissionEnum.VIEW_OTHERS_QUOTES;
062
063    Permission ACCEPT_MY_QUOTES = PermissionEnum.ACCEPT_MY_QUOTES;
064
065    Permission ACCEPT_OTHERS_QUOTES = PermissionEnum.ACCEPT_OTHERS_QUOTES;
066
067    Permission DECLINE_MY_QUOTES = PermissionEnum.DECLINE_MY_QUOTES;
068
069    Permission DECLINE_OTHERS_QUOTES = PermissionEnum.DECLINE_OTHERS_QUOTES;
070
071    Permission RENEGOTIATE_MY_QUOTES = PermissionEnum.RENEGOTIATE_MY_QUOTES;
072
073    Permission RENEGOTIATE_OTHERS_QUOTES = PermissionEnum.RENEGOTIATE_OTHERS_QUOTES;
074
075    Permission REASSIGN_MY_QUOTES = PermissionEnum.REASSIGN_MY_QUOTES;
076
077    Permission REASSIGN_OTHERS_QUOTES = PermissionEnum.REASSIGN_OTHERS_QUOTES;
078
079    Permission VIEW_MY_QUOTE_REQUESTS = PermissionEnum.VIEW_MY_QUOTE_REQUESTS;
080
081    Permission VIEW_OTHERS_QUOTE_REQUESTS = PermissionEnum.VIEW_OTHERS_QUOTE_REQUESTS;
082
083    Permission UPDATE_MY_QUOTE_REQUESTS = PermissionEnum.UPDATE_MY_QUOTE_REQUESTS;
084
085    Permission UPDATE_OTHERS_QUOTE_REQUESTS = PermissionEnum.UPDATE_OTHERS_QUOTE_REQUESTS;
086
087    Permission CREATE_MY_QUOTE_REQUESTS_FROM_MY_CARTS = PermissionEnum.CREATE_MY_QUOTE_REQUESTS_FROM_MY_CARTS;
088
089    Permission CREATE_QUOTE_REQUESTS_FROM_OTHERS_CARTS = PermissionEnum.CREATE_QUOTE_REQUESTS_FROM_OTHERS_CARTS;
090
091    /**
092     * possible values of Permission
093     */
094    enum PermissionEnum implements Permission {
095        /**
096         * AddChildUnits
097         */
098        ADD_CHILD_UNITS("AddChildUnits"),
099
100        /**
101         * UpdateAssociates
102         */
103        UPDATE_ASSOCIATES("UpdateAssociates"),
104
105        /**
106         * UpdateBusinessUnitDetails
107         */
108        UPDATE_BUSINESS_UNIT_DETAILS("UpdateBusinessUnitDetails"),
109
110        /**
111         * UpdateParentUnit
112         */
113        UPDATE_PARENT_UNIT("UpdateParentUnit"),
114
115        /**
116         * ViewMyCarts
117         */
118        VIEW_MY_CARTS("ViewMyCarts"),
119
120        /**
121         * ViewOthersCarts
122         */
123        VIEW_OTHERS_CARTS("ViewOthersCarts"),
124
125        /**
126         * UpdateMyCarts
127         */
128        UPDATE_MY_CARTS("UpdateMyCarts"),
129
130        /**
131         * UpdateOthersCarts
132         */
133        UPDATE_OTHERS_CARTS("UpdateOthersCarts"),
134
135        /**
136         * CreateMyCarts
137         */
138        CREATE_MY_CARTS("CreateMyCarts"),
139
140        /**
141         * CreateOthersCarts
142         */
143        CREATE_OTHERS_CARTS("CreateOthersCarts"),
144
145        /**
146         * DeleteMyCarts
147         */
148        DELETE_MY_CARTS("DeleteMyCarts"),
149
150        /**
151         * DeleteOthersCarts
152         */
153        DELETE_OTHERS_CARTS("DeleteOthersCarts"),
154
155        /**
156         * ViewMyOrders
157         */
158        VIEW_MY_ORDERS("ViewMyOrders"),
159
160        /**
161         * ViewOthersOrders
162         */
163        VIEW_OTHERS_ORDERS("ViewOthersOrders"),
164
165        /**
166         * UpdateMyOrders
167         */
168        UPDATE_MY_ORDERS("UpdateMyOrders"),
169
170        /**
171         * UpdateOthersOrders
172         */
173        UPDATE_OTHERS_ORDERS("UpdateOthersOrders"),
174
175        /**
176         * CreateMyOrdersFromMyCarts
177         */
178        CREATE_MY_ORDERS_FROM_MY_CARTS("CreateMyOrdersFromMyCarts"),
179
180        /**
181         * CreateMyOrdersFromMyQuotes
182         */
183        CREATE_MY_ORDERS_FROM_MY_QUOTES("CreateMyOrdersFromMyQuotes"),
184
185        /**
186         * CreateOrdersFromOthersCarts
187         */
188        CREATE_ORDERS_FROM_OTHERS_CARTS("CreateOrdersFromOthersCarts"),
189
190        /**
191         * CreateOrdersFromOthersQuotes
192         */
193        CREATE_ORDERS_FROM_OTHERS_QUOTES("CreateOrdersFromOthersQuotes"),
194
195        /**
196         * ViewMyQuotes
197         */
198        VIEW_MY_QUOTES("ViewMyQuotes"),
199
200        /**
201         * ViewOthersQuotes
202         */
203        VIEW_OTHERS_QUOTES("ViewOthersQuotes"),
204
205        /**
206         * AcceptMyQuotes
207         */
208        ACCEPT_MY_QUOTES("AcceptMyQuotes"),
209
210        /**
211         * AcceptOthersQuotes
212         */
213        ACCEPT_OTHERS_QUOTES("AcceptOthersQuotes"),
214
215        /**
216         * DeclineMyQuotes
217         */
218        DECLINE_MY_QUOTES("DeclineMyQuotes"),
219
220        /**
221         * DeclineOthersQuotes
222         */
223        DECLINE_OTHERS_QUOTES("DeclineOthersQuotes"),
224
225        /**
226         * RenegotiateMyQuotes
227         */
228        RENEGOTIATE_MY_QUOTES("RenegotiateMyQuotes"),
229
230        /**
231         * RenegotiateOthersQuotes
232         */
233        RENEGOTIATE_OTHERS_QUOTES("RenegotiateOthersQuotes"),
234
235        /**
236         * ReassignMyQuotes
237         */
238        REASSIGN_MY_QUOTES("ReassignMyQuotes"),
239
240        /**
241         * ReassignOthersQuotes
242         */
243        REASSIGN_OTHERS_QUOTES("ReassignOthersQuotes"),
244
245        /**
246         * ViewMyQuoteRequests
247         */
248        VIEW_MY_QUOTE_REQUESTS("ViewMyQuoteRequests"),
249
250        /**
251         * ViewOthersQuoteRequests
252         */
253        VIEW_OTHERS_QUOTE_REQUESTS("ViewOthersQuoteRequests"),
254
255        /**
256         * UpdateMyQuoteRequests
257         */
258        UPDATE_MY_QUOTE_REQUESTS("UpdateMyQuoteRequests"),
259
260        /**
261         * UpdateOthersQuoteRequests
262         */
263        UPDATE_OTHERS_QUOTE_REQUESTS("UpdateOthersQuoteRequests"),
264
265        /**
266         * CreateMyQuoteRequestsFromMyCarts
267         */
268        CREATE_MY_QUOTE_REQUESTS_FROM_MY_CARTS("CreateMyQuoteRequestsFromMyCarts"),
269
270        /**
271         * CreateQuoteRequestsFromOthersCarts
272         */
273        CREATE_QUOTE_REQUESTS_FROM_OTHERS_CARTS("CreateQuoteRequestsFromOthersCarts");
274        private final String jsonName;
275
276        private PermissionEnum(final String jsonName) {
277            this.jsonName = jsonName;
278        }
279
280        public String getJsonName() {
281            return jsonName;
282        }
283
284        public String toString() {
285            return jsonName;
286        }
287    }
288
289    /**
290     * the JSON value
291     * @return json value
292     */
293    @JsonValue
294    String getJsonName();
295
296    /**
297     * the enum value
298     * @return name
299     */
300    String name();
301
302    /**
303     * convert value to string
304     * @return string representation
305     */
306    String toString();
307
308    /**
309     * factory method for a enum value of Permission
310     * if no enum has been found an anonymous instance will be created
311     * @param value the enum value to be wrapped
312     * @return enum instance
313     */
314    @JsonCreator
315    public static Permission findEnum(String value) {
316        return findEnumViaJsonName(value).orElse(new Permission() {
317            @Override
318            public String getJsonName() {
319                return value;
320            }
321
322            @Override
323            public String name() {
324                return value.toUpperCase();
325            }
326
327            public String toString() {
328                return value;
329            }
330        });
331    }
332
333    /**
334     * method to find enum using the JSON value
335     * @param jsonName the json value to be wrapped
336     * @return optional of enum instance
337     */
338    public static Optional<Permission> findEnumViaJsonName(String jsonName) {
339        return Arrays.stream(values()).filter(t -> t.getJsonName().equals(jsonName)).findFirst();
340    }
341
342    /**
343     * possible enum values
344     * @return array of possible enum values
345     */
346    public static Permission[] values() {
347        return PermissionEnum.values();
348    }
349
350}