zippendo 1.2.4 → 1.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/docs/CreateOrderChannelRequest.md +26 -0
  3. data/docs/CreateOrderChannelRequestSettings.md +42 -0
  4. data/docs/CreateOrderChannelRequestSettingsShippingMethodMappingsInner.md +22 -0
  5. data/docs/CreateOrderChannelWebhookSecret201Response.md +22 -0
  6. data/docs/CreateOrderRequest.md +4 -0
  7. data/docs/GetOrderChannelWebhookStatus200Response.md +22 -0
  8. data/docs/GetOrderChannelWebhookStatus200ResponseWebhooksInner.md +28 -0
  9. data/docs/ListOrderChannels200Response.md +26 -0
  10. data/docs/ListOrderChannels200ResponseDataInner.md +44 -0
  11. data/docs/ListOrderChannels200ResponseDataInnerSettings.md +50 -0
  12. data/docs/ListOrderChannels200ResponseDataInnerSettingsShippingMethodMappingsInner.md +22 -0
  13. data/docs/OrderChannelsApi.md +599 -0
  14. data/docs/RevokeOrderChannelWebhookSecret200Response.md +18 -0
  15. data/docs/UpdateOrderChannelRequest.md +28 -0
  16. data/docs/UpdateOrderChannelRequestSettings.md +42 -0
  17. data/docs/UpdateOrgRequest.md +0 -2
  18. data/lib/zippendo/api/order_channels_api.rb +629 -0
  19. data/lib/zippendo/models/batch_send_shipments200_response_results_inner.rb +2 -2
  20. data/lib/zippendo/models/create_order_channel_request.rb +266 -0
  21. data/lib/zippendo/models/create_order_channel_request_settings.rb +359 -0
  22. data/lib/zippendo/models/create_order_channel_request_settings_shipping_method_mappings_inner.rb +254 -0
  23. data/lib/zippendo/models/create_order_channel_webhook_secret201_response.rb +230 -0
  24. data/lib/zippendo/models/create_order_request.rb +23 -1
  25. data/lib/zippendo/models/get_order_channel_webhook_status200_response.rb +221 -0
  26. data/lib/zippendo/models/get_order_channel_webhook_status200_response_webhooks_inner.rb +266 -0
  27. data/lib/zippendo/models/list_api_tokens401_response.rb +2 -2
  28. data/lib/zippendo/models/list_order_channels200_response.rb +275 -0
  29. data/lib/zippendo/models/list_order_channels200_response_data_inner.rb +478 -0
  30. data/lib/zippendo/models/list_order_channels200_response_data_inner_settings.rb +509 -0
  31. data/lib/zippendo/models/list_order_channels200_response_data_inner_settings_shipping_method_mappings_inner.rb +254 -0
  32. data/lib/zippendo/models/list_orders200_response_data_inner_order_channel.rb +2 -2
  33. data/lib/zippendo/models/revoke_order_channel_webhook_secret200_response.rb +165 -0
  34. data/lib/zippendo/models/send_shipment422_response.rb +2 -2
  35. data/lib/zippendo/models/update_order_channel_request.rb +231 -0
  36. data/lib/zippendo/models/update_order_channel_request_settings.rb +360 -0
  37. data/lib/zippendo/models/update_org_request.rb +1 -11
  38. data/lib/zippendo/version.rb +1 -1
  39. data/lib/zippendo.rb +14 -0
  40. metadata +29 -1
@@ -0,0 +1,254 @@
1
+ =begin
2
+ #Zippendo Public API
3
+
4
+ #Public API documentation for Zippendo. Authenticate using your API token (Bearer token prefixed with zipp_). **Brands (sub-accounts).** An organization can be split into brands, each keeping its own orders, shipments and configuration separate. There are two ways to scope requests to one brand, and NEITHER changes any request body: 1. **Bind the token.** Create an API token with a `brandId` and every request it makes is confined to that brand — reads filtered, writes stamped. This is the recommended way to give a single brand's team its own credential. 2. **Send the `X-Zippendo-Brand` header.** An organization-wide token can scope an individual request by sending the brand's id or slug in this header. Most SDKs let you set it once on the client so every call inherits it. A brand-bound token that receives an `X-Zippendo-Brand` header naming a different brand is rejected with `403 BRAND_ACCESS_DENIED` — the binding is never widened. Omit both and requests cover the whole organization, which is the behaviour of every existing token. Records that belong to no brand carry `brandId: null`. Configuration (carriers, shipping rules, addresses) with a null brand is organization-wide and remains visible inside every brand; orders and shipments with a null brand are only visible organization-wide. List endpoints additionally take a `?brandScope=own|shared|both` parameter to narrow further within whichever brand context already applies. `own` returns only rows assigned to that brand, and requires a brand context — a brand-bound token, a resolved brand session, or the `X-Zippendo-Brand` header above — otherwise `400`. `shared` returns only the organization-wide rows (equivalent to filtering `brandId=none`). The default, `both`, keeps the existing behaviour: a brand context sees its own rows plus the organization-wide ones. Set `X-Zippendo-Brand-Scope` as a client default to apply the same choice to every request instead of repeating the query parameter on each call — an explicit `brandScope` query parameter always wins over the header, and a blank header value is ignored. Brands themselves are managed under the **Brands** tag. Retiring a brand is done with `POST /orgs/{orgId}/brands/{brandId}/archive` — permanent deletion is a dashboard-only action, since it is refused while any order, shipment, member or token still references the brand. Brands require a plan that includes them; creating one beyond your plan's limit returns `403`.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: support@zippendo.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.24.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Zippendo
17
+ class ListOrderChannels200ResponseDataInnerSettingsShippingMethodMappingsInner < ApiModelBase
18
+ # Shipping-method title to match against imported orders (trimmed, case-insensitive, exact).
19
+ attr_accessor :match
20
+
21
+ # Shipping rule applied to orders whose shipping-method title matches.
22
+ attr_accessor :shipping_rule_id
23
+
24
+ # For rules whose product delivers to a service point: 'nearest' auto-selects the closest point to the recipient address; 'manual' keeps the shipment in draft for manual selection.
25
+ attr_accessor :service_point_selection
26
+
27
+ class EnumAttributeValidator
28
+ attr_reader :datatype
29
+ attr_reader :allowable_values
30
+
31
+ def initialize(datatype, allowable_values)
32
+ @allowable_values = allowable_values.map do |value|
33
+ case datatype.to_s
34
+ when /Integer/i
35
+ value.to_i
36
+ when /Float/i
37
+ value.to_f
38
+ else
39
+ value
40
+ end
41
+ end
42
+ end
43
+
44
+ def valid?(value)
45
+ !value || allowable_values.include?(value)
46
+ end
47
+ end
48
+
49
+ # Attribute mapping from ruby-style variable name to JSON key.
50
+ def self.attribute_map
51
+ {
52
+ :'match' => :'match',
53
+ :'shipping_rule_id' => :'shippingRuleId',
54
+ :'service_point_selection' => :'servicePointSelection'
55
+ }
56
+ end
57
+
58
+ # Returns attribute mapping this model knows about
59
+ def self.acceptable_attribute_map
60
+ attribute_map
61
+ end
62
+
63
+ # Returns all the JSON keys this model knows about
64
+ def self.acceptable_attributes
65
+ acceptable_attribute_map.values
66
+ end
67
+
68
+ # Attribute type mapping.
69
+ def self.openapi_types
70
+ {
71
+ :'match' => :'String',
72
+ :'shipping_rule_id' => :'String',
73
+ :'service_point_selection' => :'String'
74
+ }
75
+ end
76
+
77
+ # List of attributes with nullable: true
78
+ def self.openapi_nullable
79
+ Set.new([
80
+ ])
81
+ end
82
+
83
+ # Initializes the object
84
+ # @param [Hash] attributes Model attributes in the form of hash
85
+ def initialize(attributes = {})
86
+ if (!attributes.is_a?(Hash))
87
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Zippendo::ListOrderChannels200ResponseDataInnerSettingsShippingMethodMappingsInner` initialize method"
88
+ end
89
+
90
+ # check to see if the attribute exists and convert string to symbol for hash key
91
+ acceptable_attribute_map = self.class.acceptable_attribute_map
92
+ attributes = attributes.each_with_object({}) { |(k, v), h|
93
+ if (!acceptable_attribute_map.key?(k.to_sym))
94
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Zippendo::ListOrderChannels200ResponseDataInnerSettingsShippingMethodMappingsInner`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
95
+ end
96
+ h[k.to_sym] = v
97
+ }
98
+
99
+ if attributes.key?(:'match')
100
+ self.match = attributes[:'match']
101
+ else
102
+ self.match = nil
103
+ end
104
+
105
+ if attributes.key?(:'shipping_rule_id')
106
+ self.shipping_rule_id = attributes[:'shipping_rule_id']
107
+ else
108
+ self.shipping_rule_id = nil
109
+ end
110
+
111
+ if attributes.key?(:'service_point_selection')
112
+ self.service_point_selection = attributes[:'service_point_selection']
113
+ end
114
+ end
115
+
116
+ # Show invalid properties with the reasons. Usually used together with valid?
117
+ # @return Array for valid properties with the reasons
118
+ def list_invalid_properties
119
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
120
+ invalid_properties = Array.new
121
+ if @match.nil?
122
+ invalid_properties.push('invalid value for "match", match cannot be nil.')
123
+ end
124
+
125
+ if @match.to_s.length < 1
126
+ invalid_properties.push('invalid value for "match", the character length must be greater than or equal to 1.')
127
+ end
128
+
129
+ if @shipping_rule_id.nil?
130
+ invalid_properties.push('invalid value for "shipping_rule_id", shipping_rule_id cannot be nil.')
131
+ end
132
+
133
+ if @shipping_rule_id.to_s.length < 1
134
+ invalid_properties.push('invalid value for "shipping_rule_id", the character length must be greater than or equal to 1.')
135
+ end
136
+
137
+ invalid_properties
138
+ end
139
+
140
+ # Check to see if the all the properties in the model are valid
141
+ # @return true if the model is valid
142
+ def valid?
143
+ warn '[DEPRECATED] the `valid?` method is obsolete'
144
+ return false if @match.nil?
145
+ return false if @match.to_s.length < 1
146
+ return false if @shipping_rule_id.nil?
147
+ return false if @shipping_rule_id.to_s.length < 1
148
+ service_point_selection_validator = EnumAttributeValidator.new('String', ["nearest", "manual"])
149
+ return false unless service_point_selection_validator.valid?(@service_point_selection)
150
+ true
151
+ end
152
+
153
+ # Custom attribute writer method with validation
154
+ # @param [Object] match Value to be assigned
155
+ def match=(match)
156
+ if match.nil?
157
+ fail ArgumentError, 'match cannot be nil'
158
+ end
159
+
160
+ if match.to_s.length < 1
161
+ fail ArgumentError, 'invalid value for "match", the character length must be greater than or equal to 1.'
162
+ end
163
+
164
+ @match = match
165
+ end
166
+
167
+ # Custom attribute writer method with validation
168
+ # @param [Object] shipping_rule_id Value to be assigned
169
+ def shipping_rule_id=(shipping_rule_id)
170
+ if shipping_rule_id.nil?
171
+ fail ArgumentError, 'shipping_rule_id cannot be nil'
172
+ end
173
+
174
+ if shipping_rule_id.to_s.length < 1
175
+ fail ArgumentError, 'invalid value for "shipping_rule_id", the character length must be greater than or equal to 1.'
176
+ end
177
+
178
+ @shipping_rule_id = shipping_rule_id
179
+ end
180
+
181
+ # Custom attribute writer method checking allowed values (enum).
182
+ # @param [Object] service_point_selection Object to be assigned
183
+ def service_point_selection=(service_point_selection)
184
+ validator = EnumAttributeValidator.new('String', ["nearest", "manual"])
185
+ unless validator.valid?(service_point_selection)
186
+ fail ArgumentError, "invalid value for \"service_point_selection\", must be one of #{validator.allowable_values}."
187
+ end
188
+ @service_point_selection = service_point_selection
189
+ end
190
+
191
+ # Checks equality by comparing each attribute.
192
+ # @param [Object] Object to be compared
193
+ def ==(o)
194
+ return true if self.equal?(o)
195
+ self.class == o.class &&
196
+ match == o.match &&
197
+ shipping_rule_id == o.shipping_rule_id &&
198
+ service_point_selection == o.service_point_selection
199
+ end
200
+
201
+ # @see the `==` method
202
+ # @param [Object] Object to be compared
203
+ def eql?(o)
204
+ self == o
205
+ end
206
+
207
+ # Calculates hash code according to all attributes.
208
+ # @return [Integer] Hash code
209
+ def hash
210
+ [match, shipping_rule_id, service_point_selection].hash
211
+ end
212
+
213
+ # Builds the object from hash
214
+ # @param [Hash] attributes Model attributes in the form of hash
215
+ # @return [Object] Returns the model itself
216
+ def self.build_from_hash(attributes)
217
+ return nil unless attributes.is_a?(Hash)
218
+ attributes = attributes.transform_keys(&:to_sym)
219
+ transformed_hash = {}
220
+ openapi_types.each_pair do |key, type|
221
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
222
+ transformed_hash["#{key}"] = nil
223
+ elsif type =~ /\AArray<(.*)>/i
224
+ # check to ensure the input is an array given that the attribute
225
+ # is documented as an array but the input is not
226
+ if attributes[attribute_map[key]].is_a?(Array)
227
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
228
+ end
229
+ elsif !attributes[attribute_map[key]].nil?
230
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
231
+ end
232
+ end
233
+ new(transformed_hash)
234
+ end
235
+
236
+ # Returns the object in the form of hash
237
+ # @return [Hash] Returns the object in the form of hash
238
+ def to_hash
239
+ hash = {}
240
+ self.class.attribute_map.each_pair do |attr, param|
241
+ value = self.send(attr)
242
+ if value.nil?
243
+ is_nullable = self.class.openapi_nullable.include?(attr)
244
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
245
+ end
246
+
247
+ hash[param] = _to_hash(value)
248
+ end
249
+ hash
250
+ end
251
+
252
+ end
253
+
254
+ end
@@ -143,7 +143,7 @@ module Zippendo
143
143
  return false if @id.nil?
144
144
  return false if @name.nil?
145
145
  return false if @type.nil?
146
- type_validator = EnumAttributeValidator.new('String', ["shopify", "woocommerce", "manual"])
146
+ type_validator = EnumAttributeValidator.new('String', ["shopify", "woocommerce", "manual", "custom"])
147
147
  return false unless type_validator.valid?(@type)
148
148
  true
149
149
  end
@@ -171,7 +171,7 @@ module Zippendo
171
171
  # Custom attribute writer method checking allowed values (enum).
172
172
  # @param [Object] type Object to be assigned
173
173
  def type=(type)
174
- validator = EnumAttributeValidator.new('String', ["shopify", "woocommerce", "manual"])
174
+ validator = EnumAttributeValidator.new('String', ["shopify", "woocommerce", "manual", "custom"])
175
175
  unless validator.valid?(type)
176
176
  fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
177
177
  end
@@ -0,0 +1,165 @@
1
+ =begin
2
+ #Zippendo Public API
3
+
4
+ #Public API documentation for Zippendo. Authenticate using your API token (Bearer token prefixed with zipp_). **Brands (sub-accounts).** An organization can be split into brands, each keeping its own orders, shipments and configuration separate. There are two ways to scope requests to one brand, and NEITHER changes any request body: 1. **Bind the token.** Create an API token with a `brandId` and every request it makes is confined to that brand — reads filtered, writes stamped. This is the recommended way to give a single brand's team its own credential. 2. **Send the `X-Zippendo-Brand` header.** An organization-wide token can scope an individual request by sending the brand's id or slug in this header. Most SDKs let you set it once on the client so every call inherits it. A brand-bound token that receives an `X-Zippendo-Brand` header naming a different brand is rejected with `403 BRAND_ACCESS_DENIED` — the binding is never widened. Omit both and requests cover the whole organization, which is the behaviour of every existing token. Records that belong to no brand carry `brandId: null`. Configuration (carriers, shipping rules, addresses) with a null brand is organization-wide and remains visible inside every brand; orders and shipments with a null brand are only visible organization-wide. List endpoints additionally take a `?brandScope=own|shared|both` parameter to narrow further within whichever brand context already applies. `own` returns only rows assigned to that brand, and requires a brand context — a brand-bound token, a resolved brand session, or the `X-Zippendo-Brand` header above — otherwise `400`. `shared` returns only the organization-wide rows (equivalent to filtering `brandId=none`). The default, `both`, keeps the existing behaviour: a brand context sees its own rows plus the organization-wide ones. Set `X-Zippendo-Brand-Scope` as a client default to apply the same choice to every request instead of repeating the query parameter on each call — an explicit `brandScope` query parameter always wins over the header, and a blank header value is ignored. Brands themselves are managed under the **Brands** tag. Retiring a brand is done with `POST /orgs/{orgId}/brands/{brandId}/archive` — permanent deletion is a dashboard-only action, since it is refused while any order, shipment, member or token still references the brand. Brands require a plan that includes them; creating one beyond your plan's limit returns `403`.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: support@zippendo.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.24.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Zippendo
17
+ class RevokeOrderChannelWebhookSecret200Response < ApiModelBase
18
+ # Whether the signing secret was revoked.
19
+ attr_accessor :revoked
20
+
21
+ # Attribute mapping from ruby-style variable name to JSON key.
22
+ def self.attribute_map
23
+ {
24
+ :'revoked' => :'revoked'
25
+ }
26
+ end
27
+
28
+ # Returns attribute mapping this model knows about
29
+ def self.acceptable_attribute_map
30
+ attribute_map
31
+ end
32
+
33
+ # Returns all the JSON keys this model knows about
34
+ def self.acceptable_attributes
35
+ acceptable_attribute_map.values
36
+ end
37
+
38
+ # Attribute type mapping.
39
+ def self.openapi_types
40
+ {
41
+ :'revoked' => :'Boolean'
42
+ }
43
+ end
44
+
45
+ # List of attributes with nullable: true
46
+ def self.openapi_nullable
47
+ Set.new([
48
+ ])
49
+ end
50
+
51
+ # Initializes the object
52
+ # @param [Hash] attributes Model attributes in the form of hash
53
+ def initialize(attributes = {})
54
+ if (!attributes.is_a?(Hash))
55
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Zippendo::RevokeOrderChannelWebhookSecret200Response` initialize method"
56
+ end
57
+
58
+ # check to see if the attribute exists and convert string to symbol for hash key
59
+ acceptable_attribute_map = self.class.acceptable_attribute_map
60
+ attributes = attributes.each_with_object({}) { |(k, v), h|
61
+ if (!acceptable_attribute_map.key?(k.to_sym))
62
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Zippendo::RevokeOrderChannelWebhookSecret200Response`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
63
+ end
64
+ h[k.to_sym] = v
65
+ }
66
+
67
+ if attributes.key?(:'revoked')
68
+ self.revoked = attributes[:'revoked']
69
+ else
70
+ self.revoked = nil
71
+ end
72
+ end
73
+
74
+ # Show invalid properties with the reasons. Usually used together with valid?
75
+ # @return Array for valid properties with the reasons
76
+ def list_invalid_properties
77
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
78
+ invalid_properties = Array.new
79
+ if @revoked.nil?
80
+ invalid_properties.push('invalid value for "revoked", revoked cannot be nil.')
81
+ end
82
+
83
+ invalid_properties
84
+ end
85
+
86
+ # Check to see if the all the properties in the model are valid
87
+ # @return true if the model is valid
88
+ def valid?
89
+ warn '[DEPRECATED] the `valid?` method is obsolete'
90
+ return false if @revoked.nil?
91
+ true
92
+ end
93
+
94
+ # Custom attribute writer method with validation
95
+ # @param [Object] revoked Value to be assigned
96
+ def revoked=(revoked)
97
+ if revoked.nil?
98
+ fail ArgumentError, 'revoked cannot be nil'
99
+ end
100
+
101
+ @revoked = revoked
102
+ end
103
+
104
+ # Checks equality by comparing each attribute.
105
+ # @param [Object] Object to be compared
106
+ def ==(o)
107
+ return true if self.equal?(o)
108
+ self.class == o.class &&
109
+ revoked == o.revoked
110
+ end
111
+
112
+ # @see the `==` method
113
+ # @param [Object] Object to be compared
114
+ def eql?(o)
115
+ self == o
116
+ end
117
+
118
+ # Calculates hash code according to all attributes.
119
+ # @return [Integer] Hash code
120
+ def hash
121
+ [revoked].hash
122
+ end
123
+
124
+ # Builds the object from hash
125
+ # @param [Hash] attributes Model attributes in the form of hash
126
+ # @return [Object] Returns the model itself
127
+ def self.build_from_hash(attributes)
128
+ return nil unless attributes.is_a?(Hash)
129
+ attributes = attributes.transform_keys(&:to_sym)
130
+ transformed_hash = {}
131
+ openapi_types.each_pair do |key, type|
132
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
133
+ transformed_hash["#{key}"] = nil
134
+ elsif type =~ /\AArray<(.*)>/i
135
+ # check to ensure the input is an array given that the attribute
136
+ # is documented as an array but the input is not
137
+ if attributes[attribute_map[key]].is_a?(Array)
138
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
139
+ end
140
+ elsif !attributes[attribute_map[key]].nil?
141
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
142
+ end
143
+ end
144
+ new(transformed_hash)
145
+ end
146
+
147
+ # Returns the object in the form of hash
148
+ # @return [Hash] Returns the object in the form of hash
149
+ def to_hash
150
+ hash = {}
151
+ self.class.attribute_map.each_pair do |attr, param|
152
+ value = self.send(attr)
153
+ if value.nil?
154
+ is_nullable = self.class.openapi_nullable.include?(attr)
155
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
156
+ end
157
+
158
+ hash[param] = _to_hash(value)
159
+ end
160
+ hash
161
+ end
162
+
163
+ end
164
+
165
+ end
@@ -150,7 +150,7 @@ module Zippendo
150
150
  # @return true if the model is valid
151
151
  def valid?
152
152
  warn '[DEPRECATED] the `valid?` method is obsolete'
153
- code_validator = EnumAttributeValidator.new('String', ["INTERNAL_ERROR", "BAD_REQUEST", "VALIDATION_FAILED", "UNAUTHORIZED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "RATE_LIMITED", "PAYLOAD_TOO_LARGE", "IMAGE_DIMENSIONS_EXCEEDED", "NOT_IMPLEMENTED", "AUTH_INVALID_CREDENTIALS", "AUTH_TOKEN_INVALID", "AUTH_TOKEN_EXPIRED", "AUTH_EMAIL_NOT_VERIFIED", "AUTH_EMAIL_EXISTS", "AUTH_OAUTH_FAILED", "AUTH_SIGNUP_NOT_ALLOWED", "AUTH_VERIFICATION_FAILED", "AUTH_RESET_TOKEN_INVALID", "AUTH_MFA_REQUIRED", "AUTH_MFA_INVALID_CODE", "AUTH_MFA_ALREADY_ENABLED", "AUTH_MFA_NOT_ENABLED", "SESSION_REQUIRED", "ORG_NOT_FOUND", "ORG_ACCESS_DENIED", "ORG_DISABLED", "ORG_SLUG_EXISTS", "BRAND_NOT_FOUND", "BRAND_ACCESS_DENIED", "BRAND_SLUG_EXISTS", "BRAND_HAS_RECORDS", "USER_NOT_FOUND", "USER_EXISTS", "TERMS_NOT_ACCEPTED", "MEMBER_NOT_FOUND", "MEMBER_SELF_BRAND_RESTRICTION", "ROLE_NOT_FOUND", "ROLE_NAME_EXISTS", "ROLE_IN_USE", "MEMBER_EXISTS", "INVITATION_NOT_FOUND", "INVITATION_EXPIRED", "INVITATION_ALREADY_SENT", "INVITATION_EMAIL_FAILED", "TOKEN_NOT_FOUND", "BILLING_PAYMENT_FAILED", "BILLING_NO_SUBSCRIPTION", "BILLING_TAX_ID_INVALID", "BILLING_PLAN_INVALID", "BILLING_OPERATION_FAILED", "FEATURE_NOT_AVAILABLE", "RESOURCE_LIMIT_REACHED", "PLAN_LIMITS_EXCEEDED", "NO_SUBSCRIPTION", "SUBSCRIPTION_INACTIVE", "BILLING_MANAGED_BY_SHOPIFY", "BILLING_CHECKOUT_REQUIRED", "ZIPPY_ADDON_REQUIRED", "ZIPPY_MESSAGE_LIMIT_REACHED", "SHIPMENT_NOT_FOUND", "SHIPMENT_DOCUMENT_NOT_FOUND", "SHIPMENT_ALREADY_SENT", "SHIPMENT_INVALID_STATE", "SHIPMENT_SERVICE_POINT_REQUIRED", "SHIPMENT_SEND_NOT_ATTEMPTED", "PARCEL_NOT_FOUND", "PARCEL_INVALID_SPLIT", "PICKUP_NOT_FOUND", "PICKUP_FAILED", "CARRIER_ERROR", "CARRIER_AUTH_FAILED", "CARRIER_NOT_FOUND", "CARRIER_PRODUCT_NOT_FOUND", "CARRIER_CONFIG_INVALID", "CARRIER_PARAMETER_INVALID", "CARRIER_SERVER_UNAVAILABLE", "CARRIER_GLS_WRONG_ADDRESS", "CARRIER_DAO_INVALID_POSTAL_CODE", "CARRIER_POSTNORD_BOOKING_FAILED", "CARRIER_FEDEX_BOOKING_FAILED", "CARRIER_DHL_EXPRESS_BOOKING_FAILED", "CARRIER_UPS_BOOKING_FAILED", "CARRIER_MATKAHUOLTO_BOOKING_FAILED", "CARRIER_TRACKING_WEBHOOK_REGISTRATION_FAILED", "CARRIER_CUSTOMS_UNSUPPORTED_PRODUCT", "CARRIER_CUSTOMS_INCOMPLETE", "CARRIER_REQUEST_NOT_FOUND", "CARRIER_REQUEST_LOCKED", "CARRIER_REQUEST_DISPATCH_FAILED", "SHIPPING_RULE_NOT_FOUND", "SHIPPING_RULE_INVALID", "ADDRESS_NOT_FOUND", "ORDER_NOT_FOUND", "ORDER_CHANNEL_NOT_FOUND", "ORDER_CHANNEL_CONFIG_INVALID", "INTEGRATION_NOT_CONFIGURED", "INSTALLATION_NOT_FOUND", "WEBHOOK_SIGNATURE_INVALID", "WEBHOOK_PAYLOAD_INVALID", "SHOPIFY_PENDING_INSTALL_NOT_FOUND", "SHOPIFY_PENDING_INSTALL_EXPIRED", "SHOP_ALREADY_CONNECTED", "SHOP_CLAIMED_BY_ANOTHER_ORG", "WOOCOMMERCE_CONNECT_FAILED", "WOOCOMMERCE_AUTH_STATE_INVALID", "CHECKOUT_TOKEN_INVALID", "ORDER_CHANNEL_TYPE_UNSUPPORTED", "PRINTER_NOT_FOUND", "PRINTER_OFFLINE", "PRINTER_AUTH_TIMEOUT", "PRINTER_JOB_NOT_FOUND", "ORG_INTEGRATION_NOT_FOUND", "ORG_WEBHOOK_NOT_FOUND", "AUTOMATION_NOT_FOUND", "AUTOMATION_INVALID", "ZIPPY_DISABLED", "CONVERSATION_NOT_FOUND", "ADMIN_FORBIDDEN", "JOB_HANDLER_NOT_REGISTERED", "JOB_QUEUE_NOT_CONFIGURED", "JOB_ENQUEUE_FAILED", "JOB_PAYLOAD_INVALID", "EMAIL_SEND_FAILED", "INTEGRATION_DELIVERY_FAILED", "WEBHOOK_DELIVERY_FAILED", "DOCUMENT_GENERATION_FAILED", "AI_UNAVAILABLE", "MIGRATION_PROVIDER_UNKNOWN", "MIGRATION_SOURCE_TOKEN_INVALID", "MIGRATION_SOURCE_UNREACHABLE", "MIGRATION_NOT_FOUND", "MIGRATION_IN_PROGRESS", "DATA_EXPORT_NOT_FOUND", "DATA_EXPORT_IN_PROGRESS", "DATA_EXPORT_NOT_READY", "DATA_EXPORT_EXPIRED", "DATA_EXPORT_FAILED"])
153
+ code_validator = EnumAttributeValidator.new('String', ["INTERNAL_ERROR", "BAD_REQUEST", "VALIDATION_FAILED", "UNAUTHORIZED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "RATE_LIMITED", "PAYLOAD_TOO_LARGE", "IMAGE_DIMENSIONS_EXCEEDED", "NOT_IMPLEMENTED", "AUTH_INVALID_CREDENTIALS", "AUTH_TOKEN_INVALID", "AUTH_TOKEN_EXPIRED", "AUTH_EMAIL_NOT_VERIFIED", "AUTH_EMAIL_EXISTS", "AUTH_OAUTH_FAILED", "AUTH_SIGNUP_NOT_ALLOWED", "AUTH_VERIFICATION_FAILED", "AUTH_RESET_TOKEN_INVALID", "AUTH_MFA_REQUIRED", "AUTH_MFA_INVALID_CODE", "AUTH_MFA_ALREADY_ENABLED", "CAPTCHA_FAILED", "EMAIL_DOMAIN_BLOCKED", "VAT_INVALID", "AUTH_MFA_NOT_ENABLED", "SESSION_REQUIRED", "ORG_NOT_FOUND", "ORG_ACCESS_DENIED", "ORG_DISABLED", "ORG_SLUG_EXISTS", "BRAND_NOT_FOUND", "BRAND_ACCESS_DENIED", "BRAND_SLUG_EXISTS", "BRAND_HAS_RECORDS", "USER_NOT_FOUND", "USER_EXISTS", "TERMS_NOT_ACCEPTED", "MEMBER_NOT_FOUND", "MEMBER_SELF_BRAND_RESTRICTION", "ROLE_NOT_FOUND", "ROLE_NAME_EXISTS", "ROLE_IN_USE", "MEMBER_EXISTS", "INVITATION_NOT_FOUND", "INVITATION_EXPIRED", "INVITATION_ALREADY_SENT", "INVITATION_EMAIL_FAILED", "TOKEN_NOT_FOUND", "BILLING_PAYMENT_FAILED", "BILLING_NO_SUBSCRIPTION", "BILLING_TAX_ID_INVALID", "BILLING_PLAN_INVALID", "BILLING_OPERATION_FAILED", "FEATURE_NOT_AVAILABLE", "RESOURCE_LIMIT_REACHED", "PLAN_LIMITS_EXCEEDED", "NO_SUBSCRIPTION", "SUBSCRIPTION_INACTIVE", "BILLING_MANAGED_BY_SHOPIFY", "BILLING_CHECKOUT_REQUIRED", "ZIPPY_ADDON_REQUIRED", "ZIPPY_MESSAGE_LIMIT_REACHED", "SHIPMENT_NOT_FOUND", "SHIPMENT_DOCUMENT_NOT_FOUND", "SHIPMENT_ALREADY_SENT", "SHIPMENT_INVALID_STATE", "SHIPMENT_SERVICE_POINT_REQUIRED", "SHIPMENT_SEND_NOT_ATTEMPTED", "PARCEL_NOT_FOUND", "PARCEL_INVALID_SPLIT", "PICKUP_NOT_FOUND", "PICKUP_FAILED", "CARRIER_ERROR", "CARRIER_AUTH_FAILED", "CARRIER_NOT_FOUND", "CARRIER_PRODUCT_NOT_FOUND", "CARRIER_CONFIG_INVALID", "CARRIER_PARAMETER_INVALID", "CARRIER_SERVER_UNAVAILABLE", "CARRIER_GLS_WRONG_ADDRESS", "CARRIER_DAO_INVALID_POSTAL_CODE", "CARRIER_POSTNORD_BOOKING_FAILED", "CARRIER_FEDEX_BOOKING_FAILED", "CARRIER_DHL_EXPRESS_BOOKING_FAILED", "CARRIER_UPS_BOOKING_FAILED", "CARRIER_MATKAHUOLTO_BOOKING_FAILED", "CARRIER_TRACKING_WEBHOOK_REGISTRATION_FAILED", "CARRIER_CUSTOMS_UNSUPPORTED_PRODUCT", "CARRIER_CUSTOMS_INCOMPLETE", "CARRIER_REQUEST_NOT_FOUND", "CARRIER_REQUEST_LOCKED", "CARRIER_REQUEST_DISPATCH_FAILED", "SHIPPING_RULE_NOT_FOUND", "SHIPPING_RULE_INVALID", "ADDRESS_NOT_FOUND", "ORDER_NOT_FOUND", "ORDER_EXISTS", "ORDER_CHANNEL_NOT_FOUND", "ORDER_CHANNEL_CONFIG_INVALID", "INTEGRATION_NOT_CONFIGURED", "INSTALLATION_NOT_FOUND", "WEBHOOK_SIGNATURE_INVALID", "WEBHOOK_PAYLOAD_INVALID", "SHOPIFY_PENDING_INSTALL_NOT_FOUND", "SHOPIFY_PENDING_INSTALL_EXPIRED", "SHOP_ALREADY_CONNECTED", "SHOP_CLAIMED_BY_ANOTHER_ORG", "WOOCOMMERCE_CONNECT_FAILED", "WOOCOMMERCE_AUTH_STATE_INVALID", "CHECKOUT_TOKEN_INVALID", "ORDER_CHANNEL_TYPE_UNSUPPORTED", "PRINTER_NOT_FOUND", "PRINTER_OFFLINE", "PRINTER_AUTH_TIMEOUT", "PRINTER_JOB_NOT_FOUND", "ORG_INTEGRATION_NOT_FOUND", "ORG_WEBHOOK_NOT_FOUND", "AUTOMATION_NOT_FOUND", "AUTOMATION_INVALID", "ZIPPY_DISABLED", "CONVERSATION_NOT_FOUND", "ADMIN_FORBIDDEN", "JOB_HANDLER_NOT_REGISTERED", "JOB_QUEUE_NOT_CONFIGURED", "JOB_ENQUEUE_FAILED", "JOB_PAYLOAD_INVALID", "EMAIL_SEND_FAILED", "INTEGRATION_DELIVERY_FAILED", "WEBHOOK_DELIVERY_FAILED", "DOCUMENT_GENERATION_FAILED", "AI_UNAVAILABLE", "MIGRATION_PROVIDER_UNKNOWN", "MIGRATION_SOURCE_TOKEN_INVALID", "MIGRATION_SOURCE_UNREACHABLE", "MIGRATION_NOT_FOUND", "MIGRATION_IN_PROGRESS", "DATA_EXPORT_NOT_FOUND", "DATA_EXPORT_IN_PROGRESS", "DATA_EXPORT_NOT_READY", "DATA_EXPORT_EXPIRED", "DATA_EXPORT_FAILED"])
154
154
  return false unless code_validator.valid?(@code)
155
155
  return false if @error.nil?
156
156
  return false if @message.nil?
@@ -161,7 +161,7 @@ module Zippendo
161
161
  # Custom attribute writer method checking allowed values (enum).
162
162
  # @param [Object] code Object to be assigned
163
163
  def code=(code)
164
- validator = EnumAttributeValidator.new('String', ["INTERNAL_ERROR", "BAD_REQUEST", "VALIDATION_FAILED", "UNAUTHORIZED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "RATE_LIMITED", "PAYLOAD_TOO_LARGE", "IMAGE_DIMENSIONS_EXCEEDED", "NOT_IMPLEMENTED", "AUTH_INVALID_CREDENTIALS", "AUTH_TOKEN_INVALID", "AUTH_TOKEN_EXPIRED", "AUTH_EMAIL_NOT_VERIFIED", "AUTH_EMAIL_EXISTS", "AUTH_OAUTH_FAILED", "AUTH_SIGNUP_NOT_ALLOWED", "AUTH_VERIFICATION_FAILED", "AUTH_RESET_TOKEN_INVALID", "AUTH_MFA_REQUIRED", "AUTH_MFA_INVALID_CODE", "AUTH_MFA_ALREADY_ENABLED", "AUTH_MFA_NOT_ENABLED", "SESSION_REQUIRED", "ORG_NOT_FOUND", "ORG_ACCESS_DENIED", "ORG_DISABLED", "ORG_SLUG_EXISTS", "BRAND_NOT_FOUND", "BRAND_ACCESS_DENIED", "BRAND_SLUG_EXISTS", "BRAND_HAS_RECORDS", "USER_NOT_FOUND", "USER_EXISTS", "TERMS_NOT_ACCEPTED", "MEMBER_NOT_FOUND", "MEMBER_SELF_BRAND_RESTRICTION", "ROLE_NOT_FOUND", "ROLE_NAME_EXISTS", "ROLE_IN_USE", "MEMBER_EXISTS", "INVITATION_NOT_FOUND", "INVITATION_EXPIRED", "INVITATION_ALREADY_SENT", "INVITATION_EMAIL_FAILED", "TOKEN_NOT_FOUND", "BILLING_PAYMENT_FAILED", "BILLING_NO_SUBSCRIPTION", "BILLING_TAX_ID_INVALID", "BILLING_PLAN_INVALID", "BILLING_OPERATION_FAILED", "FEATURE_NOT_AVAILABLE", "RESOURCE_LIMIT_REACHED", "PLAN_LIMITS_EXCEEDED", "NO_SUBSCRIPTION", "SUBSCRIPTION_INACTIVE", "BILLING_MANAGED_BY_SHOPIFY", "BILLING_CHECKOUT_REQUIRED", "ZIPPY_ADDON_REQUIRED", "ZIPPY_MESSAGE_LIMIT_REACHED", "SHIPMENT_NOT_FOUND", "SHIPMENT_DOCUMENT_NOT_FOUND", "SHIPMENT_ALREADY_SENT", "SHIPMENT_INVALID_STATE", "SHIPMENT_SERVICE_POINT_REQUIRED", "SHIPMENT_SEND_NOT_ATTEMPTED", "PARCEL_NOT_FOUND", "PARCEL_INVALID_SPLIT", "PICKUP_NOT_FOUND", "PICKUP_FAILED", "CARRIER_ERROR", "CARRIER_AUTH_FAILED", "CARRIER_NOT_FOUND", "CARRIER_PRODUCT_NOT_FOUND", "CARRIER_CONFIG_INVALID", "CARRIER_PARAMETER_INVALID", "CARRIER_SERVER_UNAVAILABLE", "CARRIER_GLS_WRONG_ADDRESS", "CARRIER_DAO_INVALID_POSTAL_CODE", "CARRIER_POSTNORD_BOOKING_FAILED", "CARRIER_FEDEX_BOOKING_FAILED", "CARRIER_DHL_EXPRESS_BOOKING_FAILED", "CARRIER_UPS_BOOKING_FAILED", "CARRIER_MATKAHUOLTO_BOOKING_FAILED", "CARRIER_TRACKING_WEBHOOK_REGISTRATION_FAILED", "CARRIER_CUSTOMS_UNSUPPORTED_PRODUCT", "CARRIER_CUSTOMS_INCOMPLETE", "CARRIER_REQUEST_NOT_FOUND", "CARRIER_REQUEST_LOCKED", "CARRIER_REQUEST_DISPATCH_FAILED", "SHIPPING_RULE_NOT_FOUND", "SHIPPING_RULE_INVALID", "ADDRESS_NOT_FOUND", "ORDER_NOT_FOUND", "ORDER_CHANNEL_NOT_FOUND", "ORDER_CHANNEL_CONFIG_INVALID", "INTEGRATION_NOT_CONFIGURED", "INSTALLATION_NOT_FOUND", "WEBHOOK_SIGNATURE_INVALID", "WEBHOOK_PAYLOAD_INVALID", "SHOPIFY_PENDING_INSTALL_NOT_FOUND", "SHOPIFY_PENDING_INSTALL_EXPIRED", "SHOP_ALREADY_CONNECTED", "SHOP_CLAIMED_BY_ANOTHER_ORG", "WOOCOMMERCE_CONNECT_FAILED", "WOOCOMMERCE_AUTH_STATE_INVALID", "CHECKOUT_TOKEN_INVALID", "ORDER_CHANNEL_TYPE_UNSUPPORTED", "PRINTER_NOT_FOUND", "PRINTER_OFFLINE", "PRINTER_AUTH_TIMEOUT", "PRINTER_JOB_NOT_FOUND", "ORG_INTEGRATION_NOT_FOUND", "ORG_WEBHOOK_NOT_FOUND", "AUTOMATION_NOT_FOUND", "AUTOMATION_INVALID", "ZIPPY_DISABLED", "CONVERSATION_NOT_FOUND", "ADMIN_FORBIDDEN", "JOB_HANDLER_NOT_REGISTERED", "JOB_QUEUE_NOT_CONFIGURED", "JOB_ENQUEUE_FAILED", "JOB_PAYLOAD_INVALID", "EMAIL_SEND_FAILED", "INTEGRATION_DELIVERY_FAILED", "WEBHOOK_DELIVERY_FAILED", "DOCUMENT_GENERATION_FAILED", "AI_UNAVAILABLE", "MIGRATION_PROVIDER_UNKNOWN", "MIGRATION_SOURCE_TOKEN_INVALID", "MIGRATION_SOURCE_UNREACHABLE", "MIGRATION_NOT_FOUND", "MIGRATION_IN_PROGRESS", "DATA_EXPORT_NOT_FOUND", "DATA_EXPORT_IN_PROGRESS", "DATA_EXPORT_NOT_READY", "DATA_EXPORT_EXPIRED", "DATA_EXPORT_FAILED"])
164
+ validator = EnumAttributeValidator.new('String', ["INTERNAL_ERROR", "BAD_REQUEST", "VALIDATION_FAILED", "UNAUTHORIZED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "RATE_LIMITED", "PAYLOAD_TOO_LARGE", "IMAGE_DIMENSIONS_EXCEEDED", "NOT_IMPLEMENTED", "AUTH_INVALID_CREDENTIALS", "AUTH_TOKEN_INVALID", "AUTH_TOKEN_EXPIRED", "AUTH_EMAIL_NOT_VERIFIED", "AUTH_EMAIL_EXISTS", "AUTH_OAUTH_FAILED", "AUTH_SIGNUP_NOT_ALLOWED", "AUTH_VERIFICATION_FAILED", "AUTH_RESET_TOKEN_INVALID", "AUTH_MFA_REQUIRED", "AUTH_MFA_INVALID_CODE", "AUTH_MFA_ALREADY_ENABLED", "CAPTCHA_FAILED", "EMAIL_DOMAIN_BLOCKED", "VAT_INVALID", "AUTH_MFA_NOT_ENABLED", "SESSION_REQUIRED", "ORG_NOT_FOUND", "ORG_ACCESS_DENIED", "ORG_DISABLED", "ORG_SLUG_EXISTS", "BRAND_NOT_FOUND", "BRAND_ACCESS_DENIED", "BRAND_SLUG_EXISTS", "BRAND_HAS_RECORDS", "USER_NOT_FOUND", "USER_EXISTS", "TERMS_NOT_ACCEPTED", "MEMBER_NOT_FOUND", "MEMBER_SELF_BRAND_RESTRICTION", "ROLE_NOT_FOUND", "ROLE_NAME_EXISTS", "ROLE_IN_USE", "MEMBER_EXISTS", "INVITATION_NOT_FOUND", "INVITATION_EXPIRED", "INVITATION_ALREADY_SENT", "INVITATION_EMAIL_FAILED", "TOKEN_NOT_FOUND", "BILLING_PAYMENT_FAILED", "BILLING_NO_SUBSCRIPTION", "BILLING_TAX_ID_INVALID", "BILLING_PLAN_INVALID", "BILLING_OPERATION_FAILED", "FEATURE_NOT_AVAILABLE", "RESOURCE_LIMIT_REACHED", "PLAN_LIMITS_EXCEEDED", "NO_SUBSCRIPTION", "SUBSCRIPTION_INACTIVE", "BILLING_MANAGED_BY_SHOPIFY", "BILLING_CHECKOUT_REQUIRED", "ZIPPY_ADDON_REQUIRED", "ZIPPY_MESSAGE_LIMIT_REACHED", "SHIPMENT_NOT_FOUND", "SHIPMENT_DOCUMENT_NOT_FOUND", "SHIPMENT_ALREADY_SENT", "SHIPMENT_INVALID_STATE", "SHIPMENT_SERVICE_POINT_REQUIRED", "SHIPMENT_SEND_NOT_ATTEMPTED", "PARCEL_NOT_FOUND", "PARCEL_INVALID_SPLIT", "PICKUP_NOT_FOUND", "PICKUP_FAILED", "CARRIER_ERROR", "CARRIER_AUTH_FAILED", "CARRIER_NOT_FOUND", "CARRIER_PRODUCT_NOT_FOUND", "CARRIER_CONFIG_INVALID", "CARRIER_PARAMETER_INVALID", "CARRIER_SERVER_UNAVAILABLE", "CARRIER_GLS_WRONG_ADDRESS", "CARRIER_DAO_INVALID_POSTAL_CODE", "CARRIER_POSTNORD_BOOKING_FAILED", "CARRIER_FEDEX_BOOKING_FAILED", "CARRIER_DHL_EXPRESS_BOOKING_FAILED", "CARRIER_UPS_BOOKING_FAILED", "CARRIER_MATKAHUOLTO_BOOKING_FAILED", "CARRIER_TRACKING_WEBHOOK_REGISTRATION_FAILED", "CARRIER_CUSTOMS_UNSUPPORTED_PRODUCT", "CARRIER_CUSTOMS_INCOMPLETE", "CARRIER_REQUEST_NOT_FOUND", "CARRIER_REQUEST_LOCKED", "CARRIER_REQUEST_DISPATCH_FAILED", "SHIPPING_RULE_NOT_FOUND", "SHIPPING_RULE_INVALID", "ADDRESS_NOT_FOUND", "ORDER_NOT_FOUND", "ORDER_EXISTS", "ORDER_CHANNEL_NOT_FOUND", "ORDER_CHANNEL_CONFIG_INVALID", "INTEGRATION_NOT_CONFIGURED", "INSTALLATION_NOT_FOUND", "WEBHOOK_SIGNATURE_INVALID", "WEBHOOK_PAYLOAD_INVALID", "SHOPIFY_PENDING_INSTALL_NOT_FOUND", "SHOPIFY_PENDING_INSTALL_EXPIRED", "SHOP_ALREADY_CONNECTED", "SHOP_CLAIMED_BY_ANOTHER_ORG", "WOOCOMMERCE_CONNECT_FAILED", "WOOCOMMERCE_AUTH_STATE_INVALID", "CHECKOUT_TOKEN_INVALID", "ORDER_CHANNEL_TYPE_UNSUPPORTED", "PRINTER_NOT_FOUND", "PRINTER_OFFLINE", "PRINTER_AUTH_TIMEOUT", "PRINTER_JOB_NOT_FOUND", "ORG_INTEGRATION_NOT_FOUND", "ORG_WEBHOOK_NOT_FOUND", "AUTOMATION_NOT_FOUND", "AUTOMATION_INVALID", "ZIPPY_DISABLED", "CONVERSATION_NOT_FOUND", "ADMIN_FORBIDDEN", "JOB_HANDLER_NOT_REGISTERED", "JOB_QUEUE_NOT_CONFIGURED", "JOB_ENQUEUE_FAILED", "JOB_PAYLOAD_INVALID", "EMAIL_SEND_FAILED", "INTEGRATION_DELIVERY_FAILED", "WEBHOOK_DELIVERY_FAILED", "DOCUMENT_GENERATION_FAILED", "AI_UNAVAILABLE", "MIGRATION_PROVIDER_UNKNOWN", "MIGRATION_SOURCE_TOKEN_INVALID", "MIGRATION_SOURCE_UNREACHABLE", "MIGRATION_NOT_FOUND", "MIGRATION_IN_PROGRESS", "DATA_EXPORT_NOT_FOUND", "DATA_EXPORT_IN_PROGRESS", "DATA_EXPORT_NOT_READY", "DATA_EXPORT_EXPIRED", "DATA_EXPORT_FAILED"])
165
165
  unless validator.valid?(code)
166
166
  fail ArgumentError, "invalid value for \"code\", must be one of #{validator.allowable_values}."
167
167
  end