ultracart_api 3.11.38 → 3.11.40

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7c68f942b13640bd452273ef88c945b45a5b090c0bffacdd38ec5eb25494b996
4
- data.tar.gz: 82a829b0b39cee3fdc57fbfc6bca303f4d0554b2d9f094326de3e4896ef8b9d8
3
+ metadata.gz: d3a671498c4d957ceaa72905007141f4dd49424113f09db3f995d3c7a49d394c
4
+ data.tar.gz: 512bca37ce8ad7a55040a0723b078927a0c758063668baa5cc9c6822479dbced
5
5
  SHA512:
6
- metadata.gz: 84c3a8e42c63921f91fee234b73fc1e837bf9a1ae06ea27d56166992198bfe9fccab296b8c2fb1c4f47ee8437771b43e79b1999d44e0cc8914fd08d63b8013fa
7
- data.tar.gz: 55c6185e883ec2526a1ad08ae6fa3b5cc7c0c722124fe44f127287bb4b501683881ba13c6849b11729478bb069d49c78f84f8e8af41f0b82733261dac0663af8
6
+ metadata.gz: 95f5214c48bdb5b4661e2b85977227b1aff8240bc009b33d129e9c2e5f5ab840da187ec56a3f479f30cca002645d3a60358564d132c3bf44675cc581651b9cb1
7
+ data.tar.gz: 7a56df58c94bc767dcfce7f4ec0c29cb4c2081e28a946655daea86e9b22fd9894cefbaf47b7b857d1c50c59e602e90ffd4871c60ff98ddf7c70bc91973875562
data/README.md CHANGED
@@ -7,7 +7,7 @@ UltraCart REST API Version 2
7
7
  This SDK is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project:
8
8
 
9
9
  - API version: 2.0.0
10
- - Package version: 3.11.38
10
+ - Package version: 3.11.40
11
11
  - Build package: io.swagger.codegen.languages.RubyClientCodegen
12
12
  For more information, please visit [http://www.ultracart.com/api/](http://www.ultracart.com/api/)
13
13
 
@@ -24,15 +24,15 @@ gem build ultracart_api.gemspec
24
24
  Then either install the gem locally:
25
25
 
26
26
  ```shell
27
- gem install ./ultracart_api-3.11.38.gem
27
+ gem install ./ultracart_api-3.11.40.gem
28
28
  ```
29
- (for development, run `gem install --dev ./ultracart_api-3.11.38.gem` to install the development dependencies)
29
+ (for development, run `gem install --dev ./ultracart_api-3.11.40.gem` to install the development dependencies)
30
30
 
31
31
  or publish the gem to a gem hosting service, e.g. [RubyGems](https://rubygems.org/).
32
32
 
33
33
  Finally add this to the Gemfile:
34
34
 
35
- gem 'ultracart_api', '~> 3.11.38'
35
+ gem 'ultracart_api', '~> 3.11.40'
36
36
 
37
37
  ### Install from Git
38
38
 
@@ -345,6 +345,7 @@ Class | Method | HTTP request | Description
345
345
  *UltracartClient::ItemApi* | [**insert_update_item_content_attribute**](docs/ItemApi.md#insert_update_item_content_attribute) | **POST** /item/items/{merchant_item_oid}/content/attributes | Upsert an item content attribute
346
346
  *UltracartClient::ItemApi* | [**update_digital_item**](docs/ItemApi.md#update_digital_item) | **PUT** /item/digital_library/{digital_item_oid} | Updates a file within the digital library
347
347
  *UltracartClient::ItemApi* | [**update_item**](docs/ItemApi.md#update_item) | **PUT** /item/items/{merchant_item_oid} | Update an item
348
+ *UltracartClient::ItemApi* | [**update_item_inventories**](docs/ItemApi.md#update_item_inventories) | **PUT** /item/items/update_item_inventories | Update item inventories for a distribution center
348
349
  *UltracartClient::ItemApi* | [**update_item_shipping_distribution_center_by_code**](docs/ItemApi.md#update_item_shipping_distribution_center_by_code) | **PUT** /item/items/{merchant_item_oid}/shipping/distribution_centers/by_code/{distribution_center_code} | Update an item shipping distribution center
349
350
  *UltracartClient::ItemApi* | [**update_items**](docs/ItemApi.md#update_items) | **PUT** /item/items/batch | Update multiple items
350
351
  *UltracartClient::ItemApi* | [**update_review**](docs/ItemApi.md#update_review) | **PUT** /item/items/{merchant_item_oid}/reviews/{review_oid} | Update a review
@@ -1214,6 +1215,8 @@ Class | Method | HTTP request | Description
1214
1215
  - [UltracartClient::ItemInventorySnapshot](docs/ItemInventorySnapshot.md)
1215
1216
  - [UltracartClient::ItemInventorySnapshotDistributionCenter](docs/ItemInventorySnapshotDistributionCenter.md)
1216
1217
  - [UltracartClient::ItemInventorySnapshotResponse](docs/ItemInventorySnapshotResponse.md)
1218
+ - [UltracartClient::ItemInventoryUpdate](docs/ItemInventoryUpdate.md)
1219
+ - [UltracartClient::ItemInventoryUpdateRequest](docs/ItemInventoryUpdateRequest.md)
1217
1220
  - [UltracartClient::ItemKitComponent](docs/ItemKitComponent.md)
1218
1221
  - [UltracartClient::ItemKitDefinition](docs/ItemKitDefinition.md)
1219
1222
  - [UltracartClient::ItemOption](docs/ItemOption.md)
@@ -1605,6 +1608,8 @@ Not every change is committed to every SDK.
1605
1608
 
1606
1609
  | Version | Date | Comments |
1607
1610
  | --: | :-: | --- |
1611
+ | 3.11.40 | 01/07/2026 | convseration - AI agent profile voice settings |
1612
+ | 3.11.39 | 12/31/2025 | conversations AI - queue AI settings |
1608
1613
  | 3.11.38 | 12/29/2025 | conversations - AI agent level capabilities |
1609
1614
  | 3.11.37 | 12/29/2025 | conversations - pbx agent AI flag |
1610
1615
  | 3.11.36 | 12/22/2025 | conversation - agent auth worker token v2 |
@@ -9,6 +9,8 @@ Name | Type | Description | Notes
9
9
  **ai_persona** | **String** | Persona of this AI agent | [optional]
10
10
  **ai_sms_instructions** | **String** | Additional instructions for this AI when handle SMS messages | [optional]
11
11
  **ai_ticket_instructions** | **String** | Additional instructions for this AI when handling ticket draft replies | [optional]
12
+ **ai_voice_instructions** | **String** | Additional voice instructions for this AI when handling voice calls | [optional]
13
+ **ai_voice_personality** | **String** | Which AI voice personality to use when handling the call. | [optional]
12
14
  **chat_limit** | **Integer** | The number of engagement chats that can be pushed on them at any given time. | [optional]
13
15
  **default_language_iso_code** | **String** | The default language the agent is chatting in | [optional]
14
16
  **default_status** | **String** | Default status when the agent loads conversations app. | [optional]
@@ -3,6 +3,8 @@
3
3
  ## Properties
4
4
  Name | Type | Description | Notes
5
5
  ------------ | ------------- | ------------- | -------------
6
+ **ai_priority** | **String** | AI Agent Priority compared to human agents | [optional]
7
+ **ai_timeout_seconds** | **Integer** | AI timeout seconds | [optional]
6
8
  **announce_queue_position** | **BOOLEAN** | If true, the customer is told their queue position upon entering the queue | [optional]
7
9
  **conversation_pbx_queue_uuid** | **String** | Conversation Pbx Queue unique identifier | [optional]
8
10
  **conversation_voicemail_mailbox_uuid** | **String** | The voicemail mailbox associated with this queue | [optional]
data/docs/ItemApi.md CHANGED
@@ -25,6 +25,7 @@ Method | HTTP request | Description
25
25
  [**insert_update_item_content_attribute**](ItemApi.md#insert_update_item_content_attribute) | **POST** /item/items/{merchant_item_oid}/content/attributes | Upsert an item content attribute
26
26
  [**update_digital_item**](ItemApi.md#update_digital_item) | **PUT** /item/digital_library/{digital_item_oid} | Updates a file within the digital library
27
27
  [**update_item**](ItemApi.md#update_item) | **PUT** /item/items/{merchant_item_oid} | Update an item
28
+ [**update_item_inventories**](ItemApi.md#update_item_inventories) | **PUT** /item/items/update_item_inventories | Update item inventories for a distribution center
28
29
  [**update_item_shipping_distribution_center_by_code**](ItemApi.md#update_item_shipping_distribution_center_by_code) | **PUT** /item/items/{merchant_item_oid}/shipping/distribution_centers/by_code/{distribution_center_code} | Update an item shipping distribution center
29
30
  [**update_items**](ItemApi.md#update_items) | **PUT** /item/items/batch | Update multiple items
30
31
  [**update_review**](ItemApi.md#update_review) | **PUT** /item/items/{merchant_item_oid}/reviews/{review_oid} | Update a review
@@ -1161,6 +1162,55 @@ Name | Type | Description | Notes
1161
1162
 
1162
1163
 
1163
1164
 
1165
+ # **update_item_inventories**
1166
+ > update_item_inventories(item_inventory_update_request)
1167
+
1168
+ Update item inventories for a distribution center
1169
+
1170
+ Update item inventories for a distribution center
1171
+
1172
+ ### Example
1173
+ ```ruby
1174
+ # load the gem
1175
+ require 'ultracart_api'
1176
+
1177
+ # Create a Simple Key: https://ultracart.atlassian.net/wiki/spaces/ucdoc/pages/38688545/API+Simple+Key
1178
+ simple_key = '109ee846ee69f50177018ab12f008a00748a25aa28dbdc0177018ab12f008a00'
1179
+ api_instance = UltracartClient::ItemApi.new_using_api_key(simple_key, false, false)
1180
+
1181
+
1182
+ item_inventory_update_request = UltracartClient::ItemInventoryUpdateRequest.new # ItemInventoryUpdateRequest | Item inventory updates
1183
+
1184
+
1185
+ begin
1186
+ #Update item inventories for a distribution center
1187
+ api_instance.update_item_inventories(item_inventory_update_request)
1188
+ rescue UltracartClient::ApiError => e
1189
+ puts "Exception when calling ItemApi->update_item_inventories: #{e}"
1190
+ end
1191
+ ```
1192
+
1193
+ ### Parameters
1194
+
1195
+ Name | Type | Description | Notes
1196
+ ------------- | ------------- | ------------- | -------------
1197
+ **item_inventory_update_request** | [**ItemInventoryUpdateRequest**](ItemInventoryUpdateRequest.md)| Item inventory updates |
1198
+
1199
+ ### Return type
1200
+
1201
+ nil (empty response body)
1202
+
1203
+ ### Authorization
1204
+
1205
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
1206
+
1207
+ ### HTTP request headers
1208
+
1209
+ - **Content-Type**: application/json; charset=UTF-8
1210
+ - **Accept**: application/json
1211
+
1212
+
1213
+
1164
1214
  # **update_item_shipping_distribution_center_by_code**
1165
1215
  > update_item_shipping_distribution_center_by_code(item_shipping_distribution_center, merchant_item_oid, distribution_center_code)
1166
1216
 
@@ -0,0 +1,10 @@
1
+ # UltracartClient::ItemInventoryUpdate
2
+
3
+ ## Properties
4
+ Name | Type | Description | Notes
5
+ ------------ | ------------- | ------------- | -------------
6
+ **distribution_center_code** | **String** | Distribution center code | [optional]
7
+ **inventory_level** | **Float** | Inventory level | [optional]
8
+ **merchant_item_id** | **String** | Merchant Item ID | [optional]
9
+
10
+
@@ -0,0 +1,8 @@
1
+ # UltracartClient::ItemInventoryUpdateRequest
2
+
3
+ ## Properties
4
+ Name | Type | Description | Notes
5
+ ------------ | ------------- | ------------- | -------------
6
+ **inventory_updates** | [**Array<ItemInventoryUpdate>**](ItemInventoryUpdate.md) | Inventory updates array | [optional]
7
+
8
+
@@ -1288,6 +1288,60 @@ module UltracartClient
1288
1288
  end
1289
1289
  return data, status_code, headers
1290
1290
  end
1291
+ # Update item inventories for a distribution center
1292
+ # Update item inventories for a distribution center
1293
+ # @param item_inventory_update_request Item inventory updates
1294
+ # @param [Hash] opts the optional parameters
1295
+ # @return [nil]
1296
+ def update_item_inventories(item_inventory_update_request, opts = {})
1297
+ update_item_inventories_with_http_info(item_inventory_update_request, opts)
1298
+ nil
1299
+ end
1300
+
1301
+ # Update item inventories for a distribution center
1302
+ # Update item inventories for a distribution center
1303
+ # @param item_inventory_update_request Item inventory updates
1304
+ # @param [Hash] opts the optional parameters
1305
+ # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
1306
+ def update_item_inventories_with_http_info(item_inventory_update_request, opts = {})
1307
+ if @api_client.config.debugging
1308
+ @api_client.config.logger.debug 'Calling API: ItemApi.update_item_inventories ...'
1309
+ end
1310
+ # verify the required parameter 'item_inventory_update_request' is set
1311
+ if @api_client.config.client_side_validation && item_inventory_update_request.nil?
1312
+ fail ArgumentError, "Missing the required parameter 'item_inventory_update_request' when calling ItemApi.update_item_inventories"
1313
+ end
1314
+ # resource path
1315
+ local_var_path = '/item/items/update_item_inventories'
1316
+
1317
+ # query parameters
1318
+ query_params = {}
1319
+
1320
+ # header parameters
1321
+ header_params = {}
1322
+ header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
1323
+ # HTTP header 'Accept' (if needed)
1324
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1325
+ # HTTP header 'Content-Type'
1326
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json; charset=UTF-8'])
1327
+
1328
+ # form parameters
1329
+ form_params = {}
1330
+
1331
+ # http body (model)
1332
+ post_body = @api_client.object_to_http_body(item_inventory_update_request)
1333
+ auth_names = ['ultraCartOauth', 'ultraCartSimpleApiKey']
1334
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
1335
+ :header_params => header_params,
1336
+ :query_params => query_params,
1337
+ :form_params => form_params,
1338
+ :body => post_body,
1339
+ :auth_names => auth_names)
1340
+ if @api_client.config.debugging
1341
+ @api_client.config.logger.debug "API called: ItemApi#update_item_inventories\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1342
+ end
1343
+ return data, status_code, headers
1344
+ end
1291
1345
  # Update an item shipping distribution center
1292
1346
  # Update an item shipping distribution center
1293
1347
  # @param item_shipping_distribution_center Item shipping distribution center
@@ -31,6 +31,12 @@ module UltracartClient
31
31
  # Additional instructions for this AI when handling ticket draft replies
32
32
  attr_accessor :ai_ticket_instructions
33
33
 
34
+ # Additional voice instructions for this AI when handling voice calls
35
+ attr_accessor :ai_voice_instructions
36
+
37
+ # Which AI voice personality to use when handling the call.
38
+ attr_accessor :ai_voice_personality
39
+
34
40
  # The number of engagement chats that can be pushed on them at any given time.
35
41
  attr_accessor :chat_limit
36
42
 
@@ -92,6 +98,8 @@ module UltracartClient
92
98
  :'ai_persona' => :'ai_persona',
93
99
  :'ai_sms_instructions' => :'ai_sms_instructions',
94
100
  :'ai_ticket_instructions' => :'ai_ticket_instructions',
101
+ :'ai_voice_instructions' => :'ai_voice_instructions',
102
+ :'ai_voice_personality' => :'ai_voice_personality',
95
103
  :'chat_limit' => :'chat_limit',
96
104
  :'default_language_iso_code' => :'default_language_iso_code',
97
105
  :'default_status' => :'default_status',
@@ -114,6 +122,8 @@ module UltracartClient
114
122
  :'ai_persona' => :'String',
115
123
  :'ai_sms_instructions' => :'String',
116
124
  :'ai_ticket_instructions' => :'String',
125
+ :'ai_voice_instructions' => :'String',
126
+ :'ai_voice_personality' => :'String',
117
127
  :'chat_limit' => :'Integer',
118
128
  :'default_language_iso_code' => :'String',
119
129
  :'default_status' => :'String',
@@ -159,6 +169,14 @@ module UltracartClient
159
169
  self.ai_ticket_instructions = attributes[:'ai_ticket_instructions']
160
170
  end
161
171
 
172
+ if attributes.has_key?(:'ai_voice_instructions')
173
+ self.ai_voice_instructions = attributes[:'ai_voice_instructions']
174
+ end
175
+
176
+ if attributes.has_key?(:'ai_voice_personality')
177
+ self.ai_voice_personality = attributes[:'ai_voice_personality']
178
+ end
179
+
162
180
  if attributes.has_key?(:'chat_limit')
163
181
  self.chat_limit = attributes[:'chat_limit']
164
182
  end
@@ -214,11 +232,23 @@ module UltracartClient
214
232
  # Check to see if the all the properties in the model are valid
215
233
  # @return true if the model is valid
216
234
  def valid?
235
+ ai_voice_personality_validator = EnumAttributeValidator.new('String', ['Ara', 'Rex', 'Sal', 'Eve', 'Leo'])
236
+ return false unless ai_voice_personality_validator.valid?(@ai_voice_personality)
217
237
  default_status_validator = EnumAttributeValidator.new('String', ['available', 'busy', 'unavailable'])
218
238
  return false unless default_status_validator.valid?(@default_status)
219
239
  true
220
240
  end
221
241
 
242
+ # Custom attribute writer method checking allowed values (enum).
243
+ # @param [Object] ai_voice_personality Object to be assigned
244
+ def ai_voice_personality=(ai_voice_personality)
245
+ validator = EnumAttributeValidator.new('String', ['Ara', 'Rex', 'Sal', 'Eve', 'Leo'])
246
+ unless validator.valid?(ai_voice_personality)
247
+ fail ArgumentError, 'invalid value for "ai_voice_personality", must be one of #{validator.allowable_values}.'
248
+ end
249
+ @ai_voice_personality = ai_voice_personality
250
+ end
251
+
222
252
  # Custom attribute writer method checking allowed values (enum).
223
253
  # @param [Object] default_status Object to be assigned
224
254
  def default_status=(default_status)
@@ -240,6 +270,8 @@ module UltracartClient
240
270
  ai_persona == o.ai_persona &&
241
271
  ai_sms_instructions == o.ai_sms_instructions &&
242
272
  ai_ticket_instructions == o.ai_ticket_instructions &&
273
+ ai_voice_instructions == o.ai_voice_instructions &&
274
+ ai_voice_personality == o.ai_voice_personality &&
243
275
  chat_limit == o.chat_limit &&
244
276
  default_language_iso_code == o.default_language_iso_code &&
245
277
  default_status == o.default_status &&
@@ -261,7 +293,7 @@ module UltracartClient
261
293
  # Calculates hash code according to all attributes.
262
294
  # @return [Fixnum] Hash code
263
295
  def hash
264
- [ai, ai_capabilities, ai_chat_instructions, ai_persona, ai_sms_instructions, ai_ticket_instructions, chat_limit, default_language_iso_code, default_status, display_name, name, profile_image_upload_key, profile_image_url, user_id, zohodesk_classifications, zohodesk_departments].hash
296
+ [ai, ai_capabilities, ai_chat_instructions, ai_persona, ai_sms_instructions, ai_ticket_instructions, ai_voice_instructions, ai_voice_personality, chat_limit, default_language_iso_code, default_status, display_name, name, profile_image_upload_key, profile_image_url, user_id, zohodesk_classifications, zohodesk_departments].hash
265
297
  end
266
298
 
267
299
  # Builds the object from hash
@@ -14,6 +14,12 @@ require 'date'
14
14
 
15
15
  module UltracartClient
16
16
  class ConversationPbxQueue
17
+ # AI Agent Priority compared to human agents
18
+ attr_accessor :ai_priority
19
+
20
+ # AI timeout seconds
21
+ attr_accessor :ai_timeout_seconds
22
+
17
23
  # If true, the customer is told their queue position upon entering the queue
18
24
  attr_accessor :announce_queue_position
19
25
 
@@ -76,9 +82,33 @@ module UltracartClient
76
82
  # Wrap up time in seconds
77
83
  attr_accessor :wrap_up_seconds
78
84
 
85
+ class EnumAttributeValidator
86
+ attr_reader :datatype
87
+ attr_reader :allowable_values
88
+
89
+ def initialize(datatype, allowable_values)
90
+ @allowable_values = allowable_values.map do |value|
91
+ case datatype.to_s
92
+ when /Integer/i
93
+ value.to_i
94
+ when /Float/i
95
+ value.to_f
96
+ else
97
+ value
98
+ end
99
+ end
100
+ end
101
+
102
+ def valid?(value)
103
+ !value || allowable_values.include?(value)
104
+ end
105
+ end
106
+
79
107
  # Attribute mapping from ruby-style variable name to JSON key.
80
108
  def self.attribute_map
81
109
  {
110
+ :'ai_priority' => :'ai_priority',
111
+ :'ai_timeout_seconds' => :'ai_timeout_seconds',
82
112
  :'announce_queue_position' => :'announce_queue_position',
83
113
  :'conversation_pbx_queue_uuid' => :'conversation_pbx_queue_uuid',
84
114
  :'conversation_voicemail_mailbox_uuid' => :'conversation_voicemail_mailbox_uuid',
@@ -106,6 +136,8 @@ module UltracartClient
106
136
  # Attribute type mapping.
107
137
  def self.swagger_types
108
138
  {
139
+ :'ai_priority' => :'String',
140
+ :'ai_timeout_seconds' => :'Integer',
109
141
  :'announce_queue_position' => :'BOOLEAN',
110
142
  :'conversation_pbx_queue_uuid' => :'String',
111
143
  :'conversation_voicemail_mailbox_uuid' => :'String',
@@ -138,6 +170,14 @@ module UltracartClient
138
170
  # convert string to symbol for hash key
139
171
  attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
140
172
 
173
+ if attributes.has_key?(:'ai_priority')
174
+ self.ai_priority = attributes[:'ai_priority']
175
+ end
176
+
177
+ if attributes.has_key?(:'ai_timeout_seconds')
178
+ self.ai_timeout_seconds = attributes[:'ai_timeout_seconds']
179
+ end
180
+
141
181
  if attributes.has_key?(:'announce_queue_position')
142
182
  self.announce_queue_position = attributes[:'announce_queue_position']
143
183
  end
@@ -273,6 +313,8 @@ module UltracartClient
273
313
  # Check to see if the all the properties in the model are valid
274
314
  # @return true if the model is valid
275
315
  def valid?
316
+ ai_priority_validator = EnumAttributeValidator.new('String', ['neutral', 'first', 'backup'])
317
+ return false unless ai_priority_validator.valid?(@ai_priority)
276
318
  return false if !@conversation_voicemail_mailbox_uuid.nil? && @conversation_voicemail_mailbox_uuid.to_s.length > 50
277
319
  return false if !@hold_conversation_pbx_audio_uuid.nil? && @hold_conversation_pbx_audio_uuid.to_s.length > 50
278
320
  return false if !@merchant_id.nil? && @merchant_id.to_s.length > 5
@@ -286,6 +328,16 @@ module UltracartClient
286
328
  true
287
329
  end
288
330
 
331
+ # Custom attribute writer method checking allowed values (enum).
332
+ # @param [Object] ai_priority Object to be assigned
333
+ def ai_priority=(ai_priority)
334
+ validator = EnumAttributeValidator.new('String', ['neutral', 'first', 'backup'])
335
+ unless validator.valid?(ai_priority)
336
+ fail ArgumentError, 'invalid value for "ai_priority", must be one of #{validator.allowable_values}.'
337
+ end
338
+ @ai_priority = ai_priority
339
+ end
340
+
289
341
  # Custom attribute writer method with validation
290
342
  # @param [Object] conversation_voicemail_mailbox_uuid Value to be assigned
291
343
  def conversation_voicemail_mailbox_uuid=(conversation_voicemail_mailbox_uuid)
@@ -391,6 +443,8 @@ module UltracartClient
391
443
  def ==(o)
392
444
  return true if self.equal?(o)
393
445
  self.class == o.class &&
446
+ ai_priority == o.ai_priority &&
447
+ ai_timeout_seconds == o.ai_timeout_seconds &&
394
448
  announce_queue_position == o.announce_queue_position &&
395
449
  conversation_pbx_queue_uuid == o.conversation_pbx_queue_uuid &&
396
450
  conversation_voicemail_mailbox_uuid == o.conversation_voicemail_mailbox_uuid &&
@@ -423,7 +477,7 @@ module UltracartClient
423
477
  # Calculates hash code according to all attributes.
424
478
  # @return [Fixnum] Hash code
425
479
  def hash
426
- [announce_queue_position, conversation_pbx_queue_uuid, conversation_voicemail_mailbox_uuid, hold_conversation_pbx_audio_uuid, max_hold_seconds, members, merchant_id, name, no_agent_available_play_audio_uuid, no_agent_available_say, no_agent_available_say_voice, play_audio_uuid, record_call, say, say_voice, twilio_taskrouter_workflow_sid, twilio_workspace_queue_sid, voicemail, wait_critical_seconds, wait_warning_seconds, wrap_up_seconds].hash
480
+ [ai_priority, ai_timeout_seconds, announce_queue_position, conversation_pbx_queue_uuid, conversation_voicemail_mailbox_uuid, hold_conversation_pbx_audio_uuid, max_hold_seconds, members, merchant_id, name, no_agent_available_play_audio_uuid, no_agent_available_say, no_agent_available_say_voice, play_audio_uuid, record_call, say, say_voice, twilio_taskrouter_workflow_sid, twilio_workspace_queue_sid, voicemail, wait_critical_seconds, wait_warning_seconds, wrap_up_seconds].hash
427
481
  end
428
482
 
429
483
  # Builds the object from hash
@@ -0,0 +1,205 @@
1
+ =begin
2
+ #UltraCart Rest API V2
3
+
4
+ #UltraCart REST API Version 2
5
+
6
+ OpenAPI spec version: 2.0.0
7
+ Contact: support@ultracart.com
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.15-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module UltracartClient
16
+ class ItemInventoryUpdate
17
+ # Distribution center code
18
+ attr_accessor :distribution_center_code
19
+
20
+ # Inventory level
21
+ attr_accessor :inventory_level
22
+
23
+ # Merchant Item ID
24
+ attr_accessor :merchant_item_id
25
+
26
+ # Attribute mapping from ruby-style variable name to JSON key.
27
+ def self.attribute_map
28
+ {
29
+ :'distribution_center_code' => :'distribution_center_code',
30
+ :'inventory_level' => :'inventory_level',
31
+ :'merchant_item_id' => :'merchant_item_id'
32
+ }
33
+ end
34
+
35
+ # Attribute type mapping.
36
+ def self.swagger_types
37
+ {
38
+ :'distribution_center_code' => :'String',
39
+ :'inventory_level' => :'Float',
40
+ :'merchant_item_id' => :'String'
41
+ }
42
+ end
43
+
44
+ # Initializes the object
45
+ # @param [Hash] attributes Model attributes in the form of hash
46
+ def initialize(attributes = {})
47
+ return unless attributes.is_a?(Hash)
48
+
49
+ # convert string to symbol for hash key
50
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
51
+
52
+ if attributes.has_key?(:'distribution_center_code')
53
+ self.distribution_center_code = attributes[:'distribution_center_code']
54
+ end
55
+
56
+ if attributes.has_key?(:'inventory_level')
57
+ self.inventory_level = attributes[:'inventory_level']
58
+ end
59
+
60
+ if attributes.has_key?(:'merchant_item_id')
61
+ self.merchant_item_id = attributes[:'merchant_item_id']
62
+ end
63
+ end
64
+
65
+ # Show invalid properties with the reasons. Usually used together with valid?
66
+ # @return Array for valid properties with the reasons
67
+ def list_invalid_properties
68
+ invalid_properties = Array.new
69
+ invalid_properties
70
+ end
71
+
72
+ # Check to see if the all the properties in the model are valid
73
+ # @return true if the model is valid
74
+ def valid?
75
+ true
76
+ end
77
+
78
+ # Checks equality by comparing each attribute.
79
+ # @param [Object] Object to be compared
80
+ def ==(o)
81
+ return true if self.equal?(o)
82
+ self.class == o.class &&
83
+ distribution_center_code == o.distribution_center_code &&
84
+ inventory_level == o.inventory_level &&
85
+ merchant_item_id == o.merchant_item_id
86
+ end
87
+
88
+ # @see the `==` method
89
+ # @param [Object] Object to be compared
90
+ def eql?(o)
91
+ self == o
92
+ end
93
+
94
+ # Calculates hash code according to all attributes.
95
+ # @return [Fixnum] Hash code
96
+ def hash
97
+ [distribution_center_code, inventory_level, merchant_item_id].hash
98
+ end
99
+
100
+ # Builds the object from hash
101
+ # @param [Hash] attributes Model attributes in the form of hash
102
+ # @return [Object] Returns the model itself
103
+ def build_from_hash(attributes)
104
+ return nil unless attributes.is_a?(Hash)
105
+ self.class.swagger_types.each_pair do |key, type|
106
+ if type =~ /\AArray<(.*)>/i
107
+ # check to ensure the input is an array given that the attribute
108
+ # is documented as an array but the input is not
109
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
110
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
111
+ end
112
+ elsif !attributes[self.class.attribute_map[key]].nil?
113
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
114
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
115
+ end
116
+
117
+ self
118
+ end
119
+
120
+ # Deserializes the data based on type
121
+ # @param string type Data type
122
+ # @param string value Value to be deserialized
123
+ # @return [Object] Deserialized data
124
+ def _deserialize(type, value)
125
+ case type.to_sym
126
+ when :DateTime
127
+ DateTime.parse(value)
128
+ when :Date
129
+ Date.parse(value)
130
+ when :String
131
+ value.to_s
132
+ when :Integer
133
+ value.to_i
134
+ when :Float
135
+ value.to_f
136
+ when :BOOLEAN
137
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
138
+ true
139
+ else
140
+ false
141
+ end
142
+ when :Object
143
+ # generic object (usually a Hash), return directly
144
+ value
145
+ when /\AArray<(?<inner_type>.+)>\z/
146
+ inner_type = Regexp.last_match[:inner_type]
147
+ value.map { |v| _deserialize(inner_type, v) }
148
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
149
+ k_type = Regexp.last_match[:k_type]
150
+ v_type = Regexp.last_match[:v_type]
151
+ {}.tap do |hash|
152
+ value.each do |k, v|
153
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
154
+ end
155
+ end
156
+ else # model
157
+ temp_model = UltracartClient.const_get(type).new
158
+ temp_model.build_from_hash(value)
159
+ end
160
+ end
161
+
162
+ # Returns the string representation of the object
163
+ # @return [String] String presentation of the object
164
+ def to_s
165
+ to_hash.to_s
166
+ end
167
+
168
+ # to_body is an alias to to_hash (backward compatibility)
169
+ # @return [Hash] Returns the object in the form of hash
170
+ def to_body
171
+ to_hash
172
+ end
173
+
174
+ # Returns the object in the form of hash
175
+ # @return [Hash] Returns the object in the form of hash
176
+ def to_hash
177
+ hash = {}
178
+ self.class.attribute_map.each_pair do |attr, param|
179
+ value = self.send(attr)
180
+ next if value.nil?
181
+ hash[param] = _to_hash(value)
182
+ end
183
+ hash
184
+ end
185
+
186
+ # Outputs non-array value in the form of hash
187
+ # For object, use to_hash. Otherwise, just return the value
188
+ # @param [Object] value Any valid value
189
+ # @return [Hash] Returns the value in the form of hash
190
+ def _to_hash(value)
191
+ if value.is_a?(Array)
192
+ value.compact.map { |v| _to_hash(v) }
193
+ elsif value.is_a?(Hash)
194
+ {}.tap do |hash|
195
+ value.each { |k, v| hash[k] = _to_hash(v) }
196
+ end
197
+ elsif value.respond_to? :to_hash
198
+ value.to_hash
199
+ else
200
+ value
201
+ end
202
+ end
203
+
204
+ end
205
+ end
@@ -0,0 +1,187 @@
1
+ =begin
2
+ #UltraCart Rest API V2
3
+
4
+ #UltraCart REST API Version 2
5
+
6
+ OpenAPI spec version: 2.0.0
7
+ Contact: support@ultracart.com
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.15-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module UltracartClient
16
+ class ItemInventoryUpdateRequest
17
+ # Inventory updates array
18
+ attr_accessor :inventory_updates
19
+
20
+ # Attribute mapping from ruby-style variable name to JSON key.
21
+ def self.attribute_map
22
+ {
23
+ :'inventory_updates' => :'inventory_updates'
24
+ }
25
+ end
26
+
27
+ # Attribute type mapping.
28
+ def self.swagger_types
29
+ {
30
+ :'inventory_updates' => :'Array<ItemInventoryUpdate>'
31
+ }
32
+ end
33
+
34
+ # Initializes the object
35
+ # @param [Hash] attributes Model attributes in the form of hash
36
+ def initialize(attributes = {})
37
+ return unless attributes.is_a?(Hash)
38
+
39
+ # convert string to symbol for hash key
40
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
41
+
42
+ if attributes.has_key?(:'inventory_updates')
43
+ if (value = attributes[:'inventory_updates']).is_a?(Array)
44
+ self.inventory_updates = value
45
+ end
46
+ end
47
+ end
48
+
49
+ # Show invalid properties with the reasons. Usually used together with valid?
50
+ # @return Array for valid properties with the reasons
51
+ def list_invalid_properties
52
+ invalid_properties = Array.new
53
+ invalid_properties
54
+ end
55
+
56
+ # Check to see if the all the properties in the model are valid
57
+ # @return true if the model is valid
58
+ def valid?
59
+ true
60
+ end
61
+
62
+ # Checks equality by comparing each attribute.
63
+ # @param [Object] Object to be compared
64
+ def ==(o)
65
+ return true if self.equal?(o)
66
+ self.class == o.class &&
67
+ inventory_updates == o.inventory_updates
68
+ end
69
+
70
+ # @see the `==` method
71
+ # @param [Object] Object to be compared
72
+ def eql?(o)
73
+ self == o
74
+ end
75
+
76
+ # Calculates hash code according to all attributes.
77
+ # @return [Fixnum] Hash code
78
+ def hash
79
+ [inventory_updates].hash
80
+ end
81
+
82
+ # Builds the object from hash
83
+ # @param [Hash] attributes Model attributes in the form of hash
84
+ # @return [Object] Returns the model itself
85
+ def build_from_hash(attributes)
86
+ return nil unless attributes.is_a?(Hash)
87
+ self.class.swagger_types.each_pair do |key, type|
88
+ if type =~ /\AArray<(.*)>/i
89
+ # check to ensure the input is an array given that the attribute
90
+ # is documented as an array but the input is not
91
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
92
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
93
+ end
94
+ elsif !attributes[self.class.attribute_map[key]].nil?
95
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
96
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
97
+ end
98
+
99
+ self
100
+ end
101
+
102
+ # Deserializes the data based on type
103
+ # @param string type Data type
104
+ # @param string value Value to be deserialized
105
+ # @return [Object] Deserialized data
106
+ def _deserialize(type, value)
107
+ case type.to_sym
108
+ when :DateTime
109
+ DateTime.parse(value)
110
+ when :Date
111
+ Date.parse(value)
112
+ when :String
113
+ value.to_s
114
+ when :Integer
115
+ value.to_i
116
+ when :Float
117
+ value.to_f
118
+ when :BOOLEAN
119
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
120
+ true
121
+ else
122
+ false
123
+ end
124
+ when :Object
125
+ # generic object (usually a Hash), return directly
126
+ value
127
+ when /\AArray<(?<inner_type>.+)>\z/
128
+ inner_type = Regexp.last_match[:inner_type]
129
+ value.map { |v| _deserialize(inner_type, v) }
130
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
131
+ k_type = Regexp.last_match[:k_type]
132
+ v_type = Regexp.last_match[:v_type]
133
+ {}.tap do |hash|
134
+ value.each do |k, v|
135
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
136
+ end
137
+ end
138
+ else # model
139
+ temp_model = UltracartClient.const_get(type).new
140
+ temp_model.build_from_hash(value)
141
+ end
142
+ end
143
+
144
+ # Returns the string representation of the object
145
+ # @return [String] String presentation of the object
146
+ def to_s
147
+ to_hash.to_s
148
+ end
149
+
150
+ # to_body is an alias to to_hash (backward compatibility)
151
+ # @return [Hash] Returns the object in the form of hash
152
+ def to_body
153
+ to_hash
154
+ end
155
+
156
+ # Returns the object in the form of hash
157
+ # @return [Hash] Returns the object in the form of hash
158
+ def to_hash
159
+ hash = {}
160
+ self.class.attribute_map.each_pair do |attr, param|
161
+ value = self.send(attr)
162
+ next if value.nil?
163
+ hash[param] = _to_hash(value)
164
+ end
165
+ hash
166
+ end
167
+
168
+ # Outputs non-array value in the form of hash
169
+ # For object, use to_hash. Otherwise, just return the value
170
+ # @param [Object] value Any valid value
171
+ # @return [Hash] Returns the value in the form of hash
172
+ def _to_hash(value)
173
+ if value.is_a?(Array)
174
+ value.compact.map { |v| _to_hash(v) }
175
+ elsif value.is_a?(Hash)
176
+ {}.tap do |hash|
177
+ value.each { |k, v| hash[k] = _to_hash(v) }
178
+ end
179
+ elsif value.respond_to? :to_hash
180
+ value.to_hash
181
+ else
182
+ value
183
+ end
184
+ end
185
+
186
+ end
187
+ end
@@ -11,5 +11,5 @@ Swagger Codegen version: 2.4.15-SNAPSHOT
11
11
  =end
12
12
 
13
13
  module UltracartClient
14
- VERSION = '3.11.38'
14
+ VERSION = '3.11.40'
15
15
  end
data/lib/ultracart_api.rb CHANGED
@@ -603,6 +603,8 @@ require 'ultracart_api/models/item_internal'
603
603
  require 'ultracart_api/models/item_inventory_snapshot'
604
604
  require 'ultracart_api/models/item_inventory_snapshot_distribution_center'
605
605
  require 'ultracart_api/models/item_inventory_snapshot_response'
606
+ require 'ultracart_api/models/item_inventory_update'
607
+ require 'ultracart_api/models/item_inventory_update_request'
606
608
  require 'ultracart_api/models/item_kit_component'
607
609
  require 'ultracart_api/models/item_kit_definition'
608
610
  require 'ultracart_api/models/item_option'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ultracart_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.11.38
4
+ version: 3.11.40
5
5
  platform: ruby
6
6
  authors:
7
7
  - UltraCart
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-12-29 00:00:00.000000000 Z
11
+ date: 2026-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -819,6 +819,8 @@ files:
819
819
  - docs/ItemInventorySnapshot.md
820
820
  - docs/ItemInventorySnapshotDistributionCenter.md
821
821
  - docs/ItemInventorySnapshotResponse.md
822
+ - docs/ItemInventoryUpdate.md
823
+ - docs/ItemInventoryUpdateRequest.md
822
824
  - docs/ItemKitComponent.md
823
825
  - docs/ItemKitDefinition.md
824
826
  - docs/ItemOption.md
@@ -1757,6 +1759,8 @@ files:
1757
1759
  - lib/ultracart_api/models/item_inventory_snapshot.rb
1758
1760
  - lib/ultracart_api/models/item_inventory_snapshot_distribution_center.rb
1759
1761
  - lib/ultracart_api/models/item_inventory_snapshot_response.rb
1762
+ - lib/ultracart_api/models/item_inventory_update.rb
1763
+ - lib/ultracart_api/models/item_inventory_update_request.rb
1760
1764
  - lib/ultracart_api/models/item_kit_component.rb
1761
1765
  - lib/ultracart_api/models/item_kit_definition.rb
1762
1766
  - lib/ultracart_api/models/item_option.rb