ultracart_api 4.1.230 → 4.1.232

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 (97) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +62 -2
  3. data/docs/ItemAutoOrder.md +1 -1
  4. data/docs/ItemContentMultimedia.md +2 -0
  5. data/docs/SfvbApi.md +1011 -0
  6. data/docs/SfvbApprovalCreateRequest.md +9 -1
  7. data/docs/SfvbCampaign.md +2 -0
  8. data/docs/SfvbCommsBranchStat.md +20 -0
  9. data/docs/SfvbCommsChange.md +22 -0
  10. data/docs/SfvbCommsClick.md +20 -0
  11. data/docs/SfvbCommsClicksResponse.md +26 -0
  12. data/docs/SfvbCommsDailyStat.md +30 -0
  13. data/docs/SfvbCommsDashboardResponse.md +24 -0
  14. data/docs/SfvbCommsDashboardRow.md +28 -0
  15. data/docs/SfvbCommsMember.md +22 -0
  16. data/docs/SfvbCommsMembersResponse.md +36 -0
  17. data/docs/SfvbCommsPlan.md +66 -0
  18. data/docs/SfvbCommsPlanResponse.md +20 -0
  19. data/docs/SfvbCommsProvider.md +28 -0
  20. data/docs/SfvbCommsProviderImportRequest.md +22 -0
  21. data/docs/SfvbCommsProviderImportResponse.md +26 -0
  22. data/docs/SfvbCommsProviderList.md +20 -0
  23. data/docs/SfvbCommsProvidersResponse.md +22 -0
  24. data/docs/SfvbCommsSender.md +24 -0
  25. data/docs/SfvbCommsSenderUpdate.md +22 -0
  26. data/docs/SfvbCommsSequenceStatsResponse.md +26 -0
  27. data/docs/SfvbCommsSettings.md +34 -0
  28. data/docs/SfvbCommsSettingsResponse.md +24 -0
  29. data/docs/SfvbCommsSettingsUpdateRequest.md +26 -0
  30. data/docs/SfvbCommsStat.md +54 -0
  31. data/docs/SfvbCommsStepStat.md +34 -0
  32. data/docs/SfvbCommsTemplate.md +30 -0
  33. data/docs/SfvbCommsTemplateResponse.md +24 -0
  34. data/docs/SfvbCommsTemplatesResponse.md +20 -0
  35. data/docs/SfvbCommsTestEmailRequest.md +24 -0
  36. data/docs/SfvbCommsTestPostcardRequest.md +36 -0
  37. data/docs/SfvbCommsTestSendResponse.md +32 -0
  38. data/docs/SfvbCommsTestSmsRequest.md +18 -0
  39. data/docs/SfvbFlow.md +2 -0
  40. data/docs/SfvbPostcardAddress.md +28 -0
  41. data/docs/SfvbPostcardCard.md +40 -0
  42. data/docs/SfvbPostcardTrackingResponse.md +34 -0
  43. data/docs/SfvbTransactionalChange.md +24 -0
  44. data/docs/SfvbTransactionalDeliveryOption.md +22 -0
  45. data/docs/SfvbTransactionalEmailDetail.md +30 -0
  46. data/docs/SfvbTransactionalEmailResponse.md +24 -0
  47. data/docs/SfvbTransactionalEmailUpdateRequest.md +28 -0
  48. data/docs/SfvbTransactionalSender.md +24 -0
  49. data/lib/ultracart_api/api/sfvb_api.rb +1553 -183
  50. data/lib/ultracart_api/models/item_auto_order.rb +1 -1
  51. data/lib/ultracart_api/models/item_content_multimedia.rb +11 -1
  52. data/lib/ultracart_api/models/sfvb_approval_create_request.rb +42 -6
  53. data/lib/ultracart_api/models/sfvb_campaign.rb +11 -1
  54. data/lib/ultracart_api/models/sfvb_comms_branch_stat.rb +229 -0
  55. data/lib/ultracart_api/models/sfvb_comms_change.rb +240 -0
  56. data/lib/ultracart_api/models/sfvb_comms_click.rb +230 -0
  57. data/lib/ultracart_api/models/sfvb_comms_clicks_response.rb +264 -0
  58. data/lib/ultracart_api/models/sfvb_comms_daily_stat.rb +280 -0
  59. data/lib/ultracart_api/models/sfvb_comms_dashboard_response.rb +256 -0
  60. data/lib/ultracart_api/models/sfvb_comms_dashboard_row.rb +269 -0
  61. data/lib/ultracart_api/models/sfvb_comms_member.rb +240 -0
  62. data/lib/ultracart_api/models/sfvb_comms_members_response.rb +314 -0
  63. data/lib/ultracart_api/models/sfvb_comms_plan.rb +460 -0
  64. data/lib/ultracart_api/models/sfvb_comms_plan_response.rb +231 -0
  65. data/lib/ultracart_api/models/sfvb_comms_provider.rb +272 -0
  66. data/lib/ultracart_api/models/sfvb_comms_provider_import_request.rb +242 -0
  67. data/lib/ultracart_api/models/sfvb_comms_provider_import_response.rb +264 -0
  68. data/lib/ultracart_api/models/sfvb_comms_provider_list.rb +230 -0
  69. data/lib/ultracart_api/models/sfvb_comms_providers_response.rb +244 -0
  70. data/lib/ultracart_api/models/sfvb_comms_sender.rb +250 -0
  71. data/lib/ultracart_api/models/sfvb_comms_sender_update.rb +240 -0
  72. data/lib/ultracart_api/models/sfvb_comms_sequence_stats_response.rb +263 -0
  73. data/lib/ultracart_api/models/sfvb_comms_settings.rb +297 -0
  74. data/lib/ultracart_api/models/sfvb_comms_settings_response.rb +253 -0
  75. data/lib/ultracart_api/models/sfvb_comms_settings_update_request.rb +257 -0
  76. data/lib/ultracart_api/models/sfvb_comms_stat.rb +402 -0
  77. data/lib/ultracart_api/models/sfvb_comms_step_stat.rb +301 -0
  78. data/lib/ultracart_api/models/sfvb_comms_template.rb +280 -0
  79. data/lib/ultracart_api/models/sfvb_comms_template_response.rb +251 -0
  80. data/lib/ultracart_api/models/sfvb_comms_templates_response.rb +234 -0
  81. data/lib/ultracart_api/models/sfvb_comms_test_email_request.rb +252 -0
  82. data/lib/ultracart_api/models/sfvb_comms_test_postcard_request.rb +312 -0
  83. data/lib/ultracart_api/models/sfvb_comms_test_send_response.rb +292 -0
  84. data/lib/ultracart_api/models/sfvb_comms_test_sms_request.rb +220 -0
  85. data/lib/ultracart_api/models/sfvb_flow.rb +11 -1
  86. data/lib/ultracart_api/models/sfvb_postcard_address.rb +270 -0
  87. data/lib/ultracart_api/models/sfvb_postcard_card.rb +328 -0
  88. data/lib/ultracart_api/models/sfvb_postcard_tracking_response.rb +304 -0
  89. data/lib/ultracart_api/models/sfvb_transactional_change.rb +250 -0
  90. data/lib/ultracart_api/models/sfvb_transactional_delivery_option.rb +240 -0
  91. data/lib/ultracart_api/models/sfvb_transactional_email_detail.rb +283 -0
  92. data/lib/ultracart_api/models/sfvb_transactional_email_response.rb +253 -0
  93. data/lib/ultracart_api/models/sfvb_transactional_email_update_request.rb +272 -0
  94. data/lib/ultracart_api/models/sfvb_transactional_sender.rb +250 -0
  95. data/lib/ultracart_api/version.rb +1 -1
  96. data/lib/ultracart_api.rb +40 -0
  97. metadata +81 -1
@@ -48,7 +48,7 @@ module UltracartClient
48
48
  # Day counts (1 to 365, at most 20) a customer may switch this auto-enrolled item to from MyAccount, for example [30, 60, 90]. Requires the advanced auto order settings to be enabled on the account. Omit to leave unchanged; send an empty array to clear.
49
49
  attr_accessor :auto_order_myaccount_frequency_day_counts
50
50
 
51
- # True if the MyAccount frequency change is only offered once the item is on its last auto order step. Omit to leave unchanged.
51
+ # True if the MyAccount frequency change is only offered once the item is on its last auto order step. If auto_order_myaccount_frequency_schedules or auto_order_myaccount_frequency_day_counts is sent without this property, it is set to false; if none of the three are sent, it is left unchanged.
52
52
  attr_accessor :auto_order_myaccount_frequency_last_step_only
53
53
 
54
54
  # Standard schedules a customer may switch this auto-enrolled item to from MyAccount. Requires the advanced auto order settings to be enabled on the account. Omit to leave unchanged; send an empty array to clear.
@@ -15,6 +15,9 @@ require 'time'
15
15
 
16
16
  module UltracartClient
17
17
  class ItemContentMultimedia
18
+ # AI generated alt text for the image. StoreFront uses this when description is empty.
19
+ attr_accessor :ai_alt_text
20
+
18
21
  # URL where the image can be downloaded from the cloud
19
22
  attr_accessor :cloud_url
20
23
 
@@ -88,6 +91,7 @@ module UltracartClient
88
91
  # Attribute mapping from ruby-style variable name to JSON key.
89
92
  def self.attribute_map
90
93
  {
94
+ :'ai_alt_text' => :'ai_alt_text',
91
95
  :'cloud_url' => :'cloud_url',
92
96
  :'cloud_url_expiration' => :'cloud_url_expiration',
93
97
  :'code' => :'code',
@@ -115,6 +119,7 @@ module UltracartClient
115
119
  # Attribute type mapping.
116
120
  def self.openapi_types
117
121
  {
122
+ :'ai_alt_text' => :'String',
118
123
  :'cloud_url' => :'String',
119
124
  :'cloud_url_expiration' => :'String',
120
125
  :'code' => :'String',
@@ -155,6 +160,10 @@ module UltracartClient
155
160
  h[k.to_sym] = v
156
161
  }
157
162
 
163
+ if attributes.key?(:'ai_alt_text')
164
+ self.ai_alt_text = attributes[:'ai_alt_text']
165
+ end
166
+
158
167
  if attributes.key?(:'cloud_url')
159
168
  self.cloud_url = attributes[:'cloud_url']
160
169
  end
@@ -297,6 +306,7 @@ module UltracartClient
297
306
  def ==(o)
298
307
  return true if self.equal?(o)
299
308
  self.class == o.class &&
309
+ ai_alt_text == o.ai_alt_text &&
300
310
  cloud_url == o.cloud_url &&
301
311
  cloud_url_expiration == o.cloud_url_expiration &&
302
312
  code == o.code &&
@@ -324,7 +334,7 @@ module UltracartClient
324
334
  # Calculates hash code according to all attributes.
325
335
  # @return [Integer] Hash code
326
336
  def hash
327
- [cloud_url, cloud_url_expiration, code, description, exclude_from_gallery, file_name, height, merchant_item_multimedia_oid, orphan, placeholder, size, temp_multimedia_oid, thumbnails, type, url, width].hash
337
+ [ai_alt_text, cloud_url, cloud_url_expiration, code, description, exclude_from_gallery, file_name, height, merchant_item_multimedia_oid, orphan, placeholder, size, temp_multimedia_oid, thumbnails, type, url, width].hash
328
338
  end
329
339
 
330
340
  # Builds the object from hash
@@ -20,6 +20,10 @@ module UltracartClient
20
20
 
21
21
  attr_accessor :affiliate_network
22
22
 
23
+ attr_accessor :comms_list_import
24
+
25
+ attr_accessor :comms_settings
26
+
23
27
  # For a file.put_script write, the exact script to be written, at most 256 KB. For tracking_html.put, the exact HTML the write will send, at most 256 KB. UltraCart reviews it and keeps only its hash, so send the same bytes again on the write. Leave it out for a revert, which names params.version.
24
28
  attr_accessor :content
25
29
 
@@ -32,6 +36,8 @@ module UltracartClient
32
36
 
33
37
  attr_accessor :params
34
38
 
39
+ attr_accessor :postcard_test_mail
40
+
35
41
  # Why the agent wants to do this, in a sentence. Shown to the person as unverified text, capped at 500 characters.
36
42
  attr_accessor :reason
37
43
 
@@ -46,6 +52,8 @@ module UltracartClient
46
52
 
47
53
  attr_accessor :tracking_provider
48
54
 
55
+ attr_accessor :transactional_email
56
+
49
57
  class EnumAttributeValidator
50
58
  attr_reader :datatype
51
59
  attr_reader :allowable_values
@@ -73,17 +81,21 @@ module UltracartClient
73
81
  {
74
82
  :'action' => :'action',
75
83
  :'affiliate_network' => :'affiliate_network',
84
+ :'comms_list_import' => :'comms_list_import',
85
+ :'comms_settings' => :'comms_settings',
76
86
  :'content' => :'content',
77
87
  :'experiment_start' => :'experiment_start',
78
88
  :'item_attribute_rows' => :'item_attribute_rows',
79
89
  :'item_pricing' => :'item_pricing',
80
90
  :'params' => :'params',
91
+ :'postcard_test_mail' => :'postcard_test_mail',
81
92
  :'reason' => :'reason',
82
93
  :'redirect_rows' => :'redirect_rows',
83
94
  :'segment_update' => :'segment_update',
84
95
  :'site_seo' => :'site_seo',
85
96
  :'smart_attribution' => :'smart_attribution',
86
- :'tracking_provider' => :'tracking_provider'
97
+ :'tracking_provider' => :'tracking_provider',
98
+ :'transactional_email' => :'transactional_email'
87
99
  }
88
100
  end
89
101
 
@@ -97,17 +109,21 @@ module UltracartClient
97
109
  {
98
110
  :'action' => :'String',
99
111
  :'affiliate_network' => :'SfvbAffiliateNetworkRequest',
112
+ :'comms_list_import' => :'SfvbCommsProviderImportRequest',
113
+ :'comms_settings' => :'SfvbCommsSettingsUpdateRequest',
100
114
  :'content' => :'String',
101
115
  :'experiment_start' => :'SfvbExperimentStartRequest',
102
116
  :'item_attribute_rows' => :'Array<SfvbItemAttributeBatchRow>',
103
117
  :'item_pricing' => :'SfvbItemPricingRequest',
104
118
  :'params' => :'SfvbApprovalParams',
119
+ :'postcard_test_mail' => :'SfvbCommsTestPostcardRequest',
105
120
  :'reason' => :'String',
106
121
  :'redirect_rows' => :'Array<SfvbRedirectDeleteRow>',
107
122
  :'segment_update' => :'SfvbCommsSegmentWriteRequest',
108
123
  :'site_seo' => :'SfvbSiteSeoRequest',
109
124
  :'smart_attribution' => :'SfvbSmartAttributionRequest',
110
- :'tracking_provider' => :'SfvbTrackingProviderRequest'
125
+ :'tracking_provider' => :'SfvbTrackingProviderRequest',
126
+ :'transactional_email' => :'SfvbTransactionalEmailUpdateRequest'
111
127
  }
112
128
  end
113
129
 
@@ -140,6 +156,14 @@ module UltracartClient
140
156
  self.affiliate_network = attributes[:'affiliate_network']
141
157
  end
142
158
 
159
+ if attributes.key?(:'comms_list_import')
160
+ self.comms_list_import = attributes[:'comms_list_import']
161
+ end
162
+
163
+ if attributes.key?(:'comms_settings')
164
+ self.comms_settings = attributes[:'comms_settings']
165
+ end
166
+
143
167
  if attributes.key?(:'content')
144
168
  self.content = attributes[:'content']
145
169
  end
@@ -162,6 +186,10 @@ module UltracartClient
162
186
  self.params = attributes[:'params']
163
187
  end
164
188
 
189
+ if attributes.key?(:'postcard_test_mail')
190
+ self.postcard_test_mail = attributes[:'postcard_test_mail']
191
+ end
192
+
165
193
  if attributes.key?(:'reason')
166
194
  self.reason = attributes[:'reason']
167
195
  end
@@ -187,6 +215,10 @@ module UltracartClient
187
215
  if attributes.key?(:'tracking_provider')
188
216
  self.tracking_provider = attributes[:'tracking_provider']
189
217
  end
218
+
219
+ if attributes.key?(:'transactional_email')
220
+ self.transactional_email = attributes[:'transactional_email']
221
+ end
190
222
  end
191
223
 
192
224
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -199,7 +231,7 @@ module UltracartClient
199
231
  # Check to see if the all the properties in the model are valid
200
232
  # @return true if the model is valid
201
233
  def valid?
202
- action_validator = EnumAttributeValidator.new('String', ["file.delete", "blog_post.delete", "file.put_script", "redirect.delete_batch", "experiment.start", "experiment.end", "upsell.enable", "item.attribute_batch", "item.pricing", "twilio_account.delete", "sending_domain.delete", "sequence_step.delete", "sequence_step.move", "sequence_step.enable_postcard", "segment.update", "smart_attribution.change", "smart_attribution.delete", "tracking_provider.change", "tracking_html.put", "affiliate_network.change", "affiliate_network.delete", "site_seo.change"])
234
+ action_validator = EnumAttributeValidator.new('String', ["file.delete", "blog_post.delete", "file.put_script", "redirect.delete_batch", "experiment.start", "experiment.end", "upsell.enable", "item.attribute_batch", "item.pricing", "twilio_account.delete", "sending_domain.delete", "sequence_step.delete", "sequence_step.move", "sequence_step.enable_postcard", "segment.update", "smart_attribution.change", "smart_attribution.delete", "tracking_provider.change", "tracking_html.put", "affiliate_network.change", "affiliate_network.delete", "site_seo.change", "transactional_email.update", "comms_settings.update", "comms_list.import", "postcard.test_mail"])
203
235
  return false unless action_validator.valid?(@action)
204
236
  true
205
237
  end
@@ -207,7 +239,7 @@ module UltracartClient
207
239
  # Custom attribute writer method checking allowed values (enum).
208
240
  # @param [Object] action Object to be assigned
209
241
  def action=(action)
210
- validator = EnumAttributeValidator.new('String', ["file.delete", "blog_post.delete", "file.put_script", "redirect.delete_batch", "experiment.start", "experiment.end", "upsell.enable", "item.attribute_batch", "item.pricing", "twilio_account.delete", "sending_domain.delete", "sequence_step.delete", "sequence_step.move", "sequence_step.enable_postcard", "segment.update", "smart_attribution.change", "smart_attribution.delete", "tracking_provider.change", "tracking_html.put", "affiliate_network.change", "affiliate_network.delete", "site_seo.change"])
242
+ validator = EnumAttributeValidator.new('String', ["file.delete", "blog_post.delete", "file.put_script", "redirect.delete_batch", "experiment.start", "experiment.end", "upsell.enable", "item.attribute_batch", "item.pricing", "twilio_account.delete", "sending_domain.delete", "sequence_step.delete", "sequence_step.move", "sequence_step.enable_postcard", "segment.update", "smart_attribution.change", "smart_attribution.delete", "tracking_provider.change", "tracking_html.put", "affiliate_network.change", "affiliate_network.delete", "site_seo.change", "transactional_email.update", "comms_settings.update", "comms_list.import", "postcard.test_mail"])
211
243
  unless validator.valid?(action)
212
244
  fail ArgumentError, "invalid value for \"action\", must be one of #{validator.allowable_values}."
213
245
  end
@@ -221,17 +253,21 @@ module UltracartClient
221
253
  self.class == o.class &&
222
254
  action == o.action &&
223
255
  affiliate_network == o.affiliate_network &&
256
+ comms_list_import == o.comms_list_import &&
257
+ comms_settings == o.comms_settings &&
224
258
  content == o.content &&
225
259
  experiment_start == o.experiment_start &&
226
260
  item_attribute_rows == o.item_attribute_rows &&
227
261
  item_pricing == o.item_pricing &&
228
262
  params == o.params &&
263
+ postcard_test_mail == o.postcard_test_mail &&
229
264
  reason == o.reason &&
230
265
  redirect_rows == o.redirect_rows &&
231
266
  segment_update == o.segment_update &&
232
267
  site_seo == o.site_seo &&
233
268
  smart_attribution == o.smart_attribution &&
234
- tracking_provider == o.tracking_provider
269
+ tracking_provider == o.tracking_provider &&
270
+ transactional_email == o.transactional_email
235
271
  end
236
272
 
237
273
  # @see the `==` method
@@ -243,7 +279,7 @@ module UltracartClient
243
279
  # Calculates hash code according to all attributes.
244
280
  # @return [Integer] Hash code
245
281
  def hash
246
- [action, affiliate_network, content, experiment_start, item_attribute_rows, item_pricing, params, reason, redirect_rows, segment_update, site_seo, smart_attribution, tracking_provider].hash
282
+ [action, affiliate_network, comms_list_import, comms_settings, content, experiment_start, item_attribute_rows, item_pricing, params, postcard_test_mail, reason, redirect_rows, segment_update, site_seo, smart_attribution, tracking_provider, transactional_email].hash
247
283
  end
248
284
 
249
285
  # Builds the object from hash
@@ -66,6 +66,9 @@ module UltracartClient
66
66
  # The part of the from address before the at sign. Defaults to the storefront's marketing setting.
67
67
  attr_accessor :sending_user
68
68
 
69
+ # The number this campaign's SMS steps send from. Without one, every SMS step skips every customer, whatever the account's SMS settings say.
70
+ attr_accessor :sms_phone_number
71
+
69
72
  # The status, such as draft, scheduled, sending, sent or archived.
70
73
  attr_accessor :status
71
74
 
@@ -92,6 +95,7 @@ module UltracartClient
92
95
  :'sending_domain_uuid' => :'sending_domain_uuid',
93
96
  :'sending_name' => :'sending_name',
94
97
  :'sending_user' => :'sending_user',
98
+ :'sms_phone_number' => :'sms_phone_number',
95
99
  :'status' => :'status',
96
100
  :'status_dts' => :'status_dts'
97
101
  }
@@ -122,6 +126,7 @@ module UltracartClient
122
126
  :'sending_domain_uuid' => :'String',
123
127
  :'sending_name' => :'String',
124
128
  :'sending_user' => :'String',
129
+ :'sms_phone_number' => :'String',
125
130
  :'status' => :'String',
126
131
  :'status_dts' => :'String'
127
132
  }
@@ -224,6 +229,10 @@ module UltracartClient
224
229
  self.sending_user = attributes[:'sending_user']
225
230
  end
226
231
 
232
+ if attributes.key?(:'sms_phone_number')
233
+ self.sms_phone_number = attributes[:'sms_phone_number']
234
+ end
235
+
227
236
  if attributes.key?(:'status')
228
237
  self.status = attributes[:'status']
229
238
  end
@@ -268,6 +277,7 @@ module UltracartClient
268
277
  sending_domain_uuid == o.sending_domain_uuid &&
269
278
  sending_name == o.sending_name &&
270
279
  sending_user == o.sending_user &&
280
+ sms_phone_number == o.sms_phone_number &&
271
281
  status == o.status &&
272
282
  status_dts == o.status_dts
273
283
  end
@@ -281,7 +291,7 @@ module UltracartClient
281
291
  # Calculates hash code according to all attributes.
282
292
  # @return [Integer] Hash code
283
293
  def hash
284
- [campaign_uuid, communication_sequence_uuid, created_dts, deleted, emails, end_once_customer_purchases, end_once_customer_purchases_anywhere, hash_sha256, live, memberships, name, notes, postcards, scheduled_dts, sending_domain_uuid, sending_name, sending_user, status, status_dts].hash
294
+ [campaign_uuid, communication_sequence_uuid, created_dts, deleted, emails, end_once_customer_purchases, end_once_customer_purchases_anywhere, hash_sha256, live, memberships, name, notes, postcards, scheduled_dts, sending_domain_uuid, sending_name, sending_user, sms_phone_number, status, status_dts].hash
285
295
  end
286
296
 
287
297
  # Builds the object from hash
@@ -0,0 +1,229 @@
1
+ =begin
2
+ #UltraCart Rest API V2
3
+
4
+ #UltraCart REST API Version 2
5
+
6
+ The version of the OpenAPI document: 2.0.0
7
+ Contact: support@ultracart.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 6.0.1-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module UltracartClient
17
+ class SfvbCommsBranchStat
18
+ # The side, as the admin names it (yes or no, left or right).
19
+ attr_accessor :label
20
+
21
+ attr_accessor :stats
22
+
23
+ # Attribute mapping from ruby-style variable name to JSON key.
24
+ def self.attribute_map
25
+ {
26
+ :'label' => :'label',
27
+ :'stats' => :'stats'
28
+ }
29
+ end
30
+
31
+ # Returns all the JSON keys this model knows about
32
+ def self.acceptable_attributes
33
+ attribute_map.values
34
+ end
35
+
36
+ # Attribute type mapping.
37
+ def self.openapi_types
38
+ {
39
+ :'label' => :'String',
40
+ :'stats' => :'SfvbCommsStat'
41
+ }
42
+ end
43
+
44
+ # List of attributes with nullable: true
45
+ def self.openapi_nullable
46
+ Set.new([
47
+ ])
48
+ end
49
+
50
+ # Initializes the object
51
+ # @param [Hash] attributes Model attributes in the form of hash
52
+ def initialize(attributes = {})
53
+ if (!attributes.is_a?(Hash))
54
+ fail ArgumentError, "The input argument (attributes) must be a hash in `UltracartClient::SfvbCommsBranchStat` initialize method"
55
+ end
56
+
57
+ # check to see if the attribute exists and convert string to symbol for hash key
58
+ attributes = attributes.each_with_object({}) { |(k, v), h|
59
+ if (!self.class.attribute_map.key?(k.to_sym))
60
+ fail ArgumentError, "`#{k}` is not a valid attribute in `UltracartClient::SfvbCommsBranchStat`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
61
+ end
62
+ h[k.to_sym] = v
63
+ }
64
+
65
+ if attributes.key?(:'label')
66
+ self.label = attributes[:'label']
67
+ end
68
+
69
+ if attributes.key?(:'stats')
70
+ self.stats = attributes[:'stats']
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
+ invalid_properties = Array.new
78
+ invalid_properties
79
+ end
80
+
81
+ # Check to see if the all the properties in the model are valid
82
+ # @return true if the model is valid
83
+ def valid?
84
+ true
85
+ end
86
+
87
+ # Checks equality by comparing each attribute.
88
+ # @param [Object] Object to be compared
89
+ def ==(o)
90
+ return true if self.equal?(o)
91
+ self.class == o.class &&
92
+ label == o.label &&
93
+ stats == o.stats
94
+ end
95
+
96
+ # @see the `==` method
97
+ # @param [Object] Object to be compared
98
+ def eql?(o)
99
+ self == o
100
+ end
101
+
102
+ # Calculates hash code according to all attributes.
103
+ # @return [Integer] Hash code
104
+ def hash
105
+ [label, stats].hash
106
+ end
107
+
108
+ # Builds the object from hash
109
+ # @param [Hash] attributes Model attributes in the form of hash
110
+ # @return [Object] Returns the model itself
111
+ def self.build_from_hash(attributes)
112
+ new.build_from_hash(attributes)
113
+ end
114
+
115
+ # Builds the object from hash
116
+ # @param [Hash] attributes Model attributes in the form of hash
117
+ # @return [Object] Returns the model itself
118
+ def build_from_hash(attributes)
119
+ return nil unless attributes.is_a?(Hash)
120
+ attributes = attributes.transform_keys(&:to_sym)
121
+ self.class.openapi_types.each_pair do |key, type|
122
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
123
+ self.send("#{key}=", nil)
124
+ elsif type =~ /\AArray<(.*)>/i
125
+ # check to ensure the input is an array given that the attribute
126
+ # is documented as an array but the input is not
127
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
128
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
129
+ end
130
+ elsif !attributes[self.class.attribute_map[key]].nil?
131
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
132
+ end
133
+ end
134
+
135
+ self
136
+ end
137
+
138
+ # Deserializes the data based on type
139
+ # @param string type Data type
140
+ # @param string value Value to be deserialized
141
+ # @return [Object] Deserialized data
142
+ def _deserialize(type, value)
143
+ case type.to_sym
144
+ when :Time
145
+ Time.parse(value)
146
+ when :Date
147
+ Date.parse(value)
148
+ when :String
149
+ value.to_s
150
+ when :Integer
151
+ value.to_i
152
+ when :Float
153
+ value.to_f
154
+ when :Boolean
155
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
156
+ true
157
+ else
158
+ false
159
+ end
160
+ when :Object
161
+ # generic object (usually a Hash), return directly
162
+ value
163
+ when /\AArray<(?<inner_type>.+)>\z/
164
+ inner_type = Regexp.last_match[:inner_type]
165
+ value.map { |v| _deserialize(inner_type, v) }
166
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
167
+ k_type = Regexp.last_match[:k_type]
168
+ v_type = Regexp.last_match[:v_type]
169
+ {}.tap do |hash|
170
+ value.each do |k, v|
171
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
172
+ end
173
+ end
174
+ else # model
175
+ # models (e.g. Pet) or oneOf
176
+ klass = UltracartClient.const_get(type)
177
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
178
+ end
179
+ end
180
+
181
+ # Returns the string representation of the object
182
+ # @return [String] String presentation of the object
183
+ def to_s
184
+ to_hash.to_s
185
+ end
186
+
187
+ # to_body is an alias to to_hash (backward compatibility)
188
+ # @return [Hash] Returns the object in the form of hash
189
+ def to_body
190
+ to_hash
191
+ end
192
+
193
+ # Returns the object in the form of hash
194
+ # @return [Hash] Returns the object in the form of hash
195
+ def to_hash
196
+ hash = {}
197
+ self.class.attribute_map.each_pair do |attr, param|
198
+ value = self.send(attr)
199
+ if value.nil?
200
+ is_nullable = self.class.openapi_nullable.include?(attr)
201
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
202
+ end
203
+
204
+ hash[param] = _to_hash(value)
205
+ end
206
+ hash
207
+ end
208
+
209
+ # Outputs non-array value in the form of hash
210
+ # For object, use to_hash. Otherwise, just return the value
211
+ # @param [Object] value Any valid value
212
+ # @return [Hash] Returns the value in the form of hash
213
+ def _to_hash(value)
214
+ if value.is_a?(Array)
215
+ value.compact.map { |v| _to_hash(v) }
216
+ elsif value.is_a?(Hash)
217
+ {}.tap do |hash|
218
+ value.each { |k, v| hash[k] = _to_hash(v) }
219
+ end
220
+ elsif value.respond_to? :to_hash
221
+ value.to_hash
222
+ else
223
+ value
224
+ end
225
+ end
226
+
227
+ end
228
+
229
+ end