ultracart_api 4.1.214 → 4.1.216

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: c76d90feaffed5fdc1c86aaba08b05bcc3f21163982b7c26bdee0a8a9372fa9c
4
- data.tar.gz: 0d64bbcea0beeff37dce23844c396733ee231506092bebb786dd05e3140b2fac
3
+ metadata.gz: c9d982114341675667b756d95ce82f8b73da11be370ae3be33c299498d979890
4
+ data.tar.gz: '018a0ed9d2b4b54698c322ffabf20ae0ba0eb71d5f00ca98e46cbf90d7b2a301'
5
5
  SHA512:
6
- metadata.gz: 38e136135c74082c50fbadd078a84b4f3a14ff5746337a40eced51f7be9c013b53eb571e4da5a370a8c61621a7f7deafeacad36e379ca84a968fdf065609c476
7
- data.tar.gz: 7710a60f4a7e92d619af5f0bd9e34d2a9ef75874704215f991b0c5c9d7f7e8707d2518e3cf242c3fc30b5c859e1379133c3af6535ee9d86bb85d9d5c5dc30f93
6
+ metadata.gz: 5cbd5537546c75260f4c6717a22f811552d27b7e99ccc18d5d34a38f97140f23a3169dcf66d165fd1c22816d34cc0bc094102e0fd66a60c199d01f79e306f5bd
7
+ data.tar.gz: f67506e1c0f8f1ac33c90e2e6d31d7abcc376f8d642814c6e51c7504bdd8b8ec48c97e0346e9ae6f3cc1f55fe7cb4e2468d34042a9c160b3704ce5587311d2f7
data/README.md CHANGED
@@ -7,7 +7,7 @@ Note: Every method has a sample for every language. See https://github.com/Ultr
7
7
  This SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
8
8
 
9
9
  - API version: 2.0.0
10
- - Package version: 4.1.214
10
+ - Package version: 4.1.216
11
11
  - Build package: org.openapitools.codegen.languages.RubyClientCodegen
12
12
  - For more information, please visit [http://www.ultracart.com/api/](http://www.ultracart.com/api/)
13
13
 
@@ -16,7 +16,7 @@ This SDK is automatically generated by the [OpenAPI Generator](https://openapi-g
16
16
  gemfile:
17
17
 
18
18
  ```shell
19
- gem 'ultracart_api', '4.1.214'
19
+ gem 'ultracart_api', '4.1.216'
20
20
  ```
21
21
 
22
22
  install:
@@ -593,6 +593,7 @@ Class | Method | HTTP request | Description
593
593
  *UltracartClient::SfvbApi* | [**insert_sfvb_page**](docs/SfvbApi.md#insert_sfvb_page) | **POST** /sfvb/storefronts/{storefront_oid}/pages | Create a page
594
594
  *UltracartClient::SfvbApi* | [**insert_sfvb_redirect**](docs/SfvbApi.md#insert_sfvb_redirect) | **POST** /sfvb/storefronts/{storefront_oid}/redirects | Create a 301 redirect rule
595
595
  *UltracartClient::SfvbApi* | [**insert_sfvb_secret_request**](docs/SfvbApi.md#insert_sfvb_secret_request) | **POST** /sfvb/secrets | Ask a person to enter secret values
596
+ *UltracartClient::SfvbApi* | [**insert_sfvb_sequence_step**](docs/SfvbApi.md#insert_sfvb_sequence_step) | **POST** /sfvb/storefronts/{storefront_oid}/sequences/{sequence_uuid}/steps | Add an email step, with its new email
596
597
  *UltracartClient::SfvbApi* | [**insert_sfvb_upsell_offer**](docs/SfvbApi.md#insert_sfvb_upsell_offer) | **POST** /sfvb/storefronts/{storefront_oid}/upsell_offers | Create an upsell offer
597
598
  *UltracartClient::SfvbApi* | [**insert_sfvb_upsell_path**](docs/SfvbApi.md#insert_sfvb_upsell_path) | **POST** /sfvb/storefronts/{storefront_oid}/upsell_paths | Create an upsell path
598
599
  *UltracartClient::SfvbApi* | [**install_sfvb_library_entry**](docs/SfvbApi.md#install_sfvb_library_entry) | **POST** /sfvb/storefronts/{storefront_oid}/library/{library_oid}/install | Install a library entry into a storefront
@@ -2012,6 +2013,7 @@ Class | Method | HTTP request | Description
2012
2013
  - [UltracartClient::SfvbItemResponse](docs/SfvbItemResponse.md)
2013
2014
  - [UltracartClient::SfvbItemSeo](docs/SfvbItemSeo.md)
2014
2015
  - [UltracartClient::SfvbItemSeoRequest](docs/SfvbItemSeoRequest.md)
2016
+ - [UltracartClient::SfvbItemTags](docs/SfvbItemTags.md)
2015
2017
  - [UltracartClient::SfvbItemVolumeDiscount](docs/SfvbItemVolumeDiscount.md)
2016
2018
  - [UltracartClient::SfvbLibraryAiReview](docs/SfvbLibraryAiReview.md)
2017
2019
  - [UltracartClient::SfvbLibraryContentManifest](docs/SfvbLibraryContentManifest.md)
@@ -2111,6 +2113,8 @@ Class | Method | HTTP request | Description
2111
2113
  - [UltracartClient::SfvbSequence](docs/SfvbSequence.md)
2112
2114
  - [UltracartClient::SfvbSequenceBranch](docs/SfvbSequenceBranch.md)
2113
2115
  - [UltracartClient::SfvbSequenceStep](docs/SfvbSequenceStep.md)
2116
+ - [UltracartClient::SfvbSequenceStepCreateRequest](docs/SfvbSequenceStepCreateRequest.md)
2117
+ - [UltracartClient::SfvbSequenceStepCreateResponse](docs/SfvbSequenceStepCreateResponse.md)
2114
2118
  - [UltracartClient::SfvbSequenceStepUpdateRequest](docs/SfvbSequenceStepUpdateRequest.md)
2115
2119
  - [UltracartClient::SfvbSequenceStepUpdateResponse](docs/SfvbSequenceStepUpdateResponse.md)
2116
2120
  - [UltracartClient::SfvbServerLog](docs/SfvbServerLog.md)
@@ -2330,6 +2334,8 @@ Not every change is committed to every SDK.
2330
2334
 
2331
2335
  | Version | Date | Comments |
2332
2336
  | --: | :-: | --- |
2337
+ | 4.1.216 | 10/29/2026 | sfvb internal testing |
2338
+ | 4.1.215 | 10/28/2026 | sfvb internal testing |
2333
2339
  | 4.1.214 | 10/28/2026 | sfvb internal testing |
2334
2340
  | 4.1.213 | 10/28/2026 | auto order - improve item field descriptions |
2335
2341
  | 4.1.212 | 10/27/2026 | conversation - pbx agent startup activity |
data/docs/SfvbApi.md CHANGED
@@ -121,6 +121,7 @@ All URIs are relative to *https://secure.ultracart.com/rest/v2*
121
121
  | [**insert_sfvb_page**](SfvbApi.md#insert_sfvb_page) | **POST** /sfvb/storefronts/{storefront_oid}/pages | Create a page |
122
122
  | [**insert_sfvb_redirect**](SfvbApi.md#insert_sfvb_redirect) | **POST** /sfvb/storefronts/{storefront_oid}/redirects | Create a 301 redirect rule |
123
123
  | [**insert_sfvb_secret_request**](SfvbApi.md#insert_sfvb_secret_request) | **POST** /sfvb/secrets | Ask a person to enter secret values |
124
+ | [**insert_sfvb_sequence_step**](SfvbApi.md#insert_sfvb_sequence_step) | **POST** /sfvb/storefronts/{storefront_oid}/sequences/{sequence_uuid}/steps | Add an email step, with its new email |
124
125
  | [**insert_sfvb_upsell_offer**](SfvbApi.md#insert_sfvb_upsell_offer) | **POST** /sfvb/storefronts/{storefront_oid}/upsell_offers | Create an upsell offer |
125
126
  | [**insert_sfvb_upsell_path**](SfvbApi.md#insert_sfvb_upsell_path) | **POST** /sfvb/storefronts/{storefront_oid}/upsell_paths | Create an upsell path |
126
127
  | [**install_sfvb_library_entry**](SfvbApi.md#install_sfvb_library_entry) | **POST** /sfvb/storefronts/{storefront_oid}/library/{library_oid}/install | Install a library entry into a storefront |
@@ -6550,6 +6551,62 @@ end
6550
6551
  - **Accept**: application/json
6551
6552
 
6552
6553
 
6554
+ ## insert_sfvb_sequence_step
6555
+
6556
+ > <SfvbSequenceStepCreateResponse> insert_sfvb_sequence_step(storefront_oid, sequence_uuid, if_match, sequence_step_create_request)
6557
+
6558
+ Add an email step, with its new email
6559
+
6560
+ Creates a new email with the subject and preview text and adds the email step that sends it, together, so a failure leaves neither. It goes right after after_step_uuid, or first on one side of a condition, split or inboxgeek step (branch_step_uuid with side). Send that step's hash_sha256 as If-Match. The email has no body yet, and gets the content review flags the admin gives a new email here. A sequence whose campaign or flow is live needs sfvb_publish.
6561
+
6562
+
6563
+ ### Examples
6564
+
6565
+
6566
+ (No example for this operation).
6567
+
6568
+
6569
+ #### Using the insert_sfvb_sequence_step_with_http_info variant
6570
+
6571
+ This returns an Array which contains the response data, status code and headers.
6572
+
6573
+ > <Array(<SfvbSequenceStepCreateResponse>, Integer, Hash)> insert_sfvb_sequence_step_with_http_info(storefront_oid, sequence_uuid, if_match, sequence_step_create_request)
6574
+
6575
+ ```ruby
6576
+ begin
6577
+ # Add an email step, with its new email
6578
+ data, status_code, headers = api_instance.insert_sfvb_sequence_step_with_http_info(storefront_oid, sequence_uuid, if_match, sequence_step_create_request)
6579
+ p status_code # => 2xx
6580
+ p headers # => { ... }
6581
+ p data # => <SfvbSequenceStepCreateResponse>
6582
+ rescue UltracartClient::ApiError => e
6583
+ puts "Error when calling SfvbApi->insert_sfvb_sequence_step_with_http_info: #{e}"
6584
+ end
6585
+ ```
6586
+
6587
+ ### Parameters
6588
+
6589
+ | Name | Type | Description | Notes |
6590
+ | ---- | ---- | ----------- | ----- |
6591
+ | **storefront_oid** | **Integer** | | |
6592
+ | **sequence_uuid** | **String** | | |
6593
+ | **if_match** | **String** | The hash_sha256 of the step it goes after, or of the branching step. Required; 428 when absent, 412 when stale. | |
6594
+ | **sequence_step_create_request** | [**SfvbSequenceStepCreateRequest**](SfvbSequenceStepCreateRequest.md) | Where the step goes, and the new email&#39;s subject and preview text | |
6595
+
6596
+ ### Return type
6597
+
6598
+ [**SfvbSequenceStepCreateResponse**](SfvbSequenceStepCreateResponse.md)
6599
+
6600
+ ### Authorization
6601
+
6602
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
6603
+
6604
+ ### HTTP request headers
6605
+
6606
+ - **Content-Type**: application/json
6607
+ - **Accept**: application/json
6608
+
6609
+
6553
6610
  ## insert_sfvb_upsell_offer
6554
6611
 
6555
6612
  > <SfvbUpsellOffer> insert_sfvb_upsell_offer(storefront_oid, upsell_offer)
@@ -11,6 +11,7 @@
11
11
  | **merchant_item_oid** | **Integer** | The item&#39;s internal oid, which appears nowhere on a rendered storefront. | [optional] |
12
12
  | **multimedia** | [**Array&lt;SfvbItemMultimedia&gt;**](SfvbItemMultimedia.md) | Every image slot a template declares plus every image attached to the item. | [optional] |
13
13
  | **seo** | [**SfvbItemSeo**](SfvbItemSeo.md) | | [optional] |
14
+ | **tags** | [**SfvbItemTags**](SfvbItemTags.md) | | [optional] |
14
15
  | **title** | **String** | What an itemtitle element renders. This is the item&#39;s short description in the catalog, not a storefront only field, so changing it changes the item everywhere. | [optional] |
15
16
 
16
17
  ## Example
@@ -26,6 +27,7 @@ instance = UltracartClient::SfvbItemResponse.new(
26
27
  merchant_item_oid: null,
27
28
  multimedia: null,
28
29
  seo: null,
30
+ tags: null,
29
31
  title: null
30
32
  )
31
33
  ```
@@ -0,0 +1,22 @@
1
+ # UltracartClient::SfvbItemTags
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **customer** | **Array&lt;String&gt;** | Tags put on the customer when this item is bought, in stored order. | [optional] |
8
+ | **item** | **Array&lt;String&gt;** | The item&#39;s own tags, in stored order. These are what the item in cart with tag conditions and itemcondition check. | [optional] |
9
+ | **order** | **Array&lt;String&gt;** | Tags put on the order when this item is bought, in stored order. | [optional] |
10
+
11
+ ## Example
12
+
13
+ ```ruby
14
+ require 'ultracart_api'
15
+
16
+ instance = UltracartClient::SfvbItemTags.new(
17
+ customer: null,
18
+ item: null,
19
+ order: null
20
+ )
21
+ ```
22
+
@@ -0,0 +1,28 @@
1
+ # UltracartClient::SfvbSequenceStepCreateRequest
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **after_step_uuid** | **String** | The step the new step follows, in the same list. Not an end, continue or merge step. | [optional] |
8
+ | **branch_step_uuid** | **String** | A condition, split or inboxgeek step. With side, the new step goes first on that side. | [optional] |
9
+ | **preview_text** | **String** | The new email&#39;s preview text, 5 to 150 characters. | [optional] |
10
+ | **side** | **String** | With branch_step_uuid, the side&#39;s label from the sequence read. yes or no for a condition, left or right for a split or inboxgeek step. | [optional] |
11
+ | **subject** | **String** | The new email&#39;s subject line, 5 to 150 characters. | [optional] |
12
+ | **type** | **String** | The kind of step. Only email for now. | [optional] |
13
+
14
+ ## Example
15
+
16
+ ```ruby
17
+ require 'ultracart_api'
18
+
19
+ instance = UltracartClient::SfvbSequenceStepCreateRequest.new(
20
+ after_step_uuid: null,
21
+ branch_step_uuid: null,
22
+ preview_text: null,
23
+ side: null,
24
+ subject: null,
25
+ type: null
26
+ )
27
+ ```
28
+
@@ -0,0 +1,24 @@
1
+ # UltracartClient::SfvbSequenceStepCreateResponse
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **email_uuid** | **String** | The new email&#39;s uuid. Its body is the email container with this owner id. | [optional] |
8
+ | **notes** | **Array&lt;String&gt;** | What to do next, such as writing the body, and customers already waiting on the step before it. | [optional] |
9
+ | **requires_review** | **Boolean** | True when the new email must pass content review before it sends. | [optional] |
10
+ | **step** | [**SfvbSequenceStep**](SfvbSequenceStep.md) | | [optional] |
11
+
12
+ ## Example
13
+
14
+ ```ruby
15
+ require 'ultracart_api'
16
+
17
+ instance = UltracartClient::SfvbSequenceStepCreateResponse.new(
18
+ email_uuid: null,
19
+ notes: null,
20
+ requires_review: null,
21
+ step: null
22
+ )
23
+ ```
24
+
@@ -8370,6 +8370,94 @@ module UltracartClient
8370
8370
  return data, status_code, headers
8371
8371
  end
8372
8372
 
8373
+ # Add an email step, with its new email
8374
+ # Creates a new email with the subject and preview text and adds the email step that sends it, together, so a failure leaves neither. It goes right after after_step_uuid, or first on one side of a condition, split or inboxgeek step (branch_step_uuid with side). Send that step's hash_sha256 as If-Match. The email has no body yet, and gets the content review flags the admin gives a new email here. A sequence whose campaign or flow is live needs sfvb_publish.
8375
+ # @param storefront_oid [Integer]
8376
+ # @param sequence_uuid [String]
8377
+ # @param if_match [String] The hash_sha256 of the step it goes after, or of the branching step. Required; 428 when absent, 412 when stale.
8378
+ # @param sequence_step_create_request [SfvbSequenceStepCreateRequest] Where the step goes, and the new email&#39;s subject and preview text
8379
+ # @param [Hash] opts the optional parameters
8380
+ # @return [SfvbSequenceStepCreateResponse]
8381
+ def insert_sfvb_sequence_step(storefront_oid, sequence_uuid, if_match, sequence_step_create_request, opts = {})
8382
+ data, _status_code, _headers = insert_sfvb_sequence_step_with_http_info(storefront_oid, sequence_uuid, if_match, sequence_step_create_request, opts)
8383
+ data
8384
+ end
8385
+
8386
+ # Add an email step, with its new email
8387
+ # Creates a new email with the subject and preview text and adds the email step that sends it, together, so a failure leaves neither. It goes right after after_step_uuid, or first on one side of a condition, split or inboxgeek step (branch_step_uuid with side). Send that step&#39;s hash_sha256 as If-Match. The email has no body yet, and gets the content review flags the admin gives a new email here. A sequence whose campaign or flow is live needs sfvb_publish.
8388
+ # @param storefront_oid [Integer]
8389
+ # @param sequence_uuid [String]
8390
+ # @param if_match [String] The hash_sha256 of the step it goes after, or of the branching step. Required; 428 when absent, 412 when stale.
8391
+ # @param sequence_step_create_request [SfvbSequenceStepCreateRequest] Where the step goes, and the new email&#39;s subject and preview text
8392
+ # @param [Hash] opts the optional parameters
8393
+ # @return [Array<(SfvbSequenceStepCreateResponse, Integer, Hash)>] SfvbSequenceStepCreateResponse data, response status code and response headers
8394
+ def insert_sfvb_sequence_step_with_http_info(storefront_oid, sequence_uuid, if_match, sequence_step_create_request, opts = {})
8395
+ if @api_client.config.debugging
8396
+ @api_client.config.logger.debug 'Calling API: SfvbApi.insert_sfvb_sequence_step ...'
8397
+ end
8398
+ # verify the required parameter 'storefront_oid' is set
8399
+ if @api_client.config.client_side_validation && storefront_oid.nil?
8400
+ fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling SfvbApi.insert_sfvb_sequence_step"
8401
+ end
8402
+ # verify the required parameter 'sequence_uuid' is set
8403
+ if @api_client.config.client_side_validation && sequence_uuid.nil?
8404
+ fail ArgumentError, "Missing the required parameter 'sequence_uuid' when calling SfvbApi.insert_sfvb_sequence_step"
8405
+ end
8406
+ # verify the required parameter 'if_match' is set
8407
+ if @api_client.config.client_side_validation && if_match.nil?
8408
+ fail ArgumentError, "Missing the required parameter 'if_match' when calling SfvbApi.insert_sfvb_sequence_step"
8409
+ end
8410
+ # verify the required parameter 'sequence_step_create_request' is set
8411
+ if @api_client.config.client_side_validation && sequence_step_create_request.nil?
8412
+ fail ArgumentError, "Missing the required parameter 'sequence_step_create_request' when calling SfvbApi.insert_sfvb_sequence_step"
8413
+ end
8414
+ # resource path
8415
+ local_var_path = '/sfvb/storefronts/{storefront_oid}/sequences/{sequence_uuid}/steps'.sub('{' + 'storefront_oid' + '}', CGI.escape(storefront_oid.to_s)).sub('{' + 'sequence_uuid' + '}', CGI.escape(sequence_uuid.to_s))
8416
+
8417
+ # query parameters
8418
+ query_params = opts[:query_params] || {}
8419
+
8420
+ # header parameters
8421
+ header_params = opts[:header_params] || {}
8422
+ header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
8423
+ # HTTP header 'Accept' (if needed)
8424
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
8425
+ # HTTP header 'Content-Type'
8426
+ content_type = @api_client.select_header_content_type(['application/json'])
8427
+ if !content_type.nil?
8428
+ header_params['Content-Type'] = content_type
8429
+ end
8430
+ header_params[:'If-Match'] = if_match
8431
+
8432
+ # form parameters
8433
+ form_params = opts[:form_params] || {}
8434
+
8435
+ # http body (model)
8436
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(sequence_step_create_request)
8437
+
8438
+ # return_type
8439
+ return_type = opts[:debug_return_type] || 'SfvbSequenceStepCreateResponse'
8440
+
8441
+ # auth_names
8442
+ auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
8443
+
8444
+ new_options = opts.merge(
8445
+ :operation => :"SfvbApi.insert_sfvb_sequence_step",
8446
+ :header_params => header_params,
8447
+ :query_params => query_params,
8448
+ :form_params => form_params,
8449
+ :body => post_body,
8450
+ :auth_names => auth_names,
8451
+ :return_type => return_type
8452
+ )
8453
+
8454
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
8455
+ if @api_client.config.debugging
8456
+ @api_client.config.logger.debug "API called: SfvbApi#insert_sfvb_sequence_step\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
8457
+ end
8458
+ return data, status_code, headers
8459
+ end
8460
+
8373
8461
  # Create an upsell offer
8374
8462
  # Every item it names must exist, and every shipping method, payment method and loyalty tier must be one the merchant has. Put it on a path with a path update to have it shown. It must be created with active false, and switched on with the enable call, which needs approval. upsell_item_id_javascript or offsite_content_url needs sfvb_publish. Its page content is its container, written with the container endpoints and owner type upsell.
8375
8463
  # @param storefront_oid [Integer]
@@ -260,7 +260,7 @@ module UltracartClient
260
260
  # Check to see if the all the properties in the model are valid
261
261
  # @return true if the model is valid
262
262
  def valid?
263
- payment_method_validator = EnumAttributeValidator.new('String', ["Affirm", "Amazon", "Amazon Pay", "Amazon SC", "Cash", "Check", "COD", "Credit Card", "Crypto", "eBay", "eCheck", "Google Shopping", "Goldbelly", "GoHighLevel", "Insurance", "Link", "LoanHero", "Money Order", "PayPal", "Purchase Order", "Quote Request", "Unknown", "Wire Transfer", "Walmart", "Shop.com", "Sezzle", "Venmo", "Apple Pay", "Google Pay", "Health Benefit Card", "PayPal Fastlane", "Klarna"])
263
+ payment_method_validator = EnumAttributeValidator.new('String', ["Affirm", "Amazon", "Amazon Pay", "Amazon SC", "Cash", "Check", "COD", "Credit Card", "Crypto", "eBay", "eCheck", "Google Shopping", "Goldbelly", "GoHighLevel", "Insurance", "Link", "LoanHero", "Money Order", "PayPal", "Purchase Order", "Quote Request", "Unknown", "Wire Transfer", "Walmart", "Shop.com", "Sezzle", "Truemed", "Venmo", "Apple Pay", "Google Pay", "Health Benefit Card", "PayPal Fastlane", "Klarna"])
264
264
  return false unless payment_method_validator.valid?(@payment_method)
265
265
  payment_status_validator = EnumAttributeValidator.new('String', ["Unprocessed", "Authorized", "Capture Failed", "Processed", "Declined", "Voided", "Refunded", "Skipped"])
266
266
  return false unless payment_status_validator.valid?(@payment_status)
@@ -270,7 +270,7 @@ module UltracartClient
270
270
  # Custom attribute writer method checking allowed values (enum).
271
271
  # @param [Object] payment_method Object to be assigned
272
272
  def payment_method=(payment_method)
273
- validator = EnumAttributeValidator.new('String', ["Affirm", "Amazon", "Amazon Pay", "Amazon SC", "Cash", "Check", "COD", "Credit Card", "Crypto", "eBay", "eCheck", "Google Shopping", "Goldbelly", "GoHighLevel", "Insurance", "Link", "LoanHero", "Money Order", "PayPal", "Purchase Order", "Quote Request", "Unknown", "Wire Transfer", "Walmart", "Shop.com", "Sezzle", "Venmo", "Apple Pay", "Google Pay", "Health Benefit Card", "PayPal Fastlane", "Klarna"])
273
+ validator = EnumAttributeValidator.new('String', ["Affirm", "Amazon", "Amazon Pay", "Amazon SC", "Cash", "Check", "COD", "Credit Card", "Crypto", "eBay", "eCheck", "Google Shopping", "Goldbelly", "GoHighLevel", "Insurance", "Link", "LoanHero", "Money Order", "PayPal", "Purchase Order", "Quote Request", "Unknown", "Wire Transfer", "Walmart", "Shop.com", "Sezzle", "Truemed", "Venmo", "Apple Pay", "Google Pay", "Health Benefit Card", "PayPal Fastlane", "Klarna"])
274
274
  unless validator.valid?(payment_method)
275
275
  fail ArgumentError, "invalid value for \"payment_method\", must be one of #{validator.allowable_values}."
276
276
  end
@@ -35,6 +35,8 @@ module UltracartClient
35
35
 
36
36
  attr_accessor :seo
37
37
 
38
+ attr_accessor :tags
39
+
38
40
  # What an itemtitle element renders. This is the item's short description in the catalog, not a storefront only field, so changing it changes the item everywhere.
39
41
  attr_accessor :title
40
42
 
@@ -48,6 +50,7 @@ module UltracartClient
48
50
  :'merchant_item_oid' => :'merchant_item_oid',
49
51
  :'multimedia' => :'multimedia',
50
52
  :'seo' => :'seo',
53
+ :'tags' => :'tags',
51
54
  :'title' => :'title'
52
55
  }
53
56
  end
@@ -67,6 +70,7 @@ module UltracartClient
67
70
  :'merchant_item_oid' => :'Integer',
68
71
  :'multimedia' => :'Array<SfvbItemMultimedia>',
69
72
  :'seo' => :'SfvbItemSeo',
73
+ :'tags' => :'SfvbItemTags',
70
74
  :'title' => :'String'
71
75
  }
72
76
  end
@@ -126,6 +130,10 @@ module UltracartClient
126
130
  self.seo = attributes[:'seo']
127
131
  end
128
132
 
133
+ if attributes.key?(:'tags')
134
+ self.tags = attributes[:'tags']
135
+ end
136
+
129
137
  if attributes.key?(:'title')
130
138
  self.title = attributes[:'title']
131
139
  end
@@ -156,6 +164,7 @@ module UltracartClient
156
164
  merchant_item_oid == o.merchant_item_oid &&
157
165
  multimedia == o.multimedia &&
158
166
  seo == o.seo &&
167
+ tags == o.tags &&
159
168
  title == o.title
160
169
  end
161
170
 
@@ -168,7 +177,7 @@ module UltracartClient
168
177
  # Calculates hash code according to all attributes.
169
178
  # @return [Integer] Hash code
170
179
  def hash
171
- [attributes, description, groups, merchant_item_id, merchant_item_oid, multimedia, seo, title].hash
180
+ [attributes, description, groups, merchant_item_id, merchant_item_oid, multimedia, seo, tags, title].hash
172
181
  end
173
182
 
174
183
  # Builds the object from hash
@@ -0,0 +1,246 @@
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 SfvbItemTags
18
+ # Tags put on the customer when this item is bought, in stored order.
19
+ attr_accessor :customer
20
+
21
+ # The item's own tags, in stored order. These are what the item in cart with tag conditions and itemcondition check.
22
+ attr_accessor :item
23
+
24
+ # Tags put on the order when this item is bought, in stored order.
25
+ attr_accessor :order
26
+
27
+ # Attribute mapping from ruby-style variable name to JSON key.
28
+ def self.attribute_map
29
+ {
30
+ :'customer' => :'customer',
31
+ :'item' => :'item',
32
+ :'order' => :'order'
33
+ }
34
+ end
35
+
36
+ # Returns all the JSON keys this model knows about
37
+ def self.acceptable_attributes
38
+ attribute_map.values
39
+ end
40
+
41
+ # Attribute type mapping.
42
+ def self.openapi_types
43
+ {
44
+ :'customer' => :'Array<String>',
45
+ :'item' => :'Array<String>',
46
+ :'order' => :'Array<String>'
47
+ }
48
+ end
49
+
50
+ # List of attributes with nullable: true
51
+ def self.openapi_nullable
52
+ Set.new([
53
+ ])
54
+ end
55
+
56
+ # Initializes the object
57
+ # @param [Hash] attributes Model attributes in the form of hash
58
+ def initialize(attributes = {})
59
+ if (!attributes.is_a?(Hash))
60
+ fail ArgumentError, "The input argument (attributes) must be a hash in `UltracartClient::SfvbItemTags` initialize method"
61
+ end
62
+
63
+ # check to see if the attribute exists and convert string to symbol for hash key
64
+ attributes = attributes.each_with_object({}) { |(k, v), h|
65
+ if (!self.class.attribute_map.key?(k.to_sym))
66
+ fail ArgumentError, "`#{k}` is not a valid attribute in `UltracartClient::SfvbItemTags`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
67
+ end
68
+ h[k.to_sym] = v
69
+ }
70
+
71
+ if attributes.key?(:'customer')
72
+ if (value = attributes[:'customer']).is_a?(Array)
73
+ self.customer = value
74
+ end
75
+ end
76
+
77
+ if attributes.key?(:'item')
78
+ if (value = attributes[:'item']).is_a?(Array)
79
+ self.item = value
80
+ end
81
+ end
82
+
83
+ if attributes.key?(:'order')
84
+ if (value = attributes[:'order']).is_a?(Array)
85
+ self.order = value
86
+ end
87
+ end
88
+ end
89
+
90
+ # Show invalid properties with the reasons. Usually used together with valid?
91
+ # @return Array for valid properties with the reasons
92
+ def list_invalid_properties
93
+ invalid_properties = Array.new
94
+ invalid_properties
95
+ end
96
+
97
+ # Check to see if the all the properties in the model are valid
98
+ # @return true if the model is valid
99
+ def valid?
100
+ true
101
+ end
102
+
103
+ # Checks equality by comparing each attribute.
104
+ # @param [Object] Object to be compared
105
+ def ==(o)
106
+ return true if self.equal?(o)
107
+ self.class == o.class &&
108
+ customer == o.customer &&
109
+ item == o.item &&
110
+ order == o.order
111
+ end
112
+
113
+ # @see the `==` method
114
+ # @param [Object] Object to be compared
115
+ def eql?(o)
116
+ self == o
117
+ end
118
+
119
+ # Calculates hash code according to all attributes.
120
+ # @return [Integer] Hash code
121
+ def hash
122
+ [customer, item, order].hash
123
+ end
124
+
125
+ # Builds the object from hash
126
+ # @param [Hash] attributes Model attributes in the form of hash
127
+ # @return [Object] Returns the model itself
128
+ def self.build_from_hash(attributes)
129
+ new.build_from_hash(attributes)
130
+ end
131
+
132
+ # Builds the object from hash
133
+ # @param [Hash] attributes Model attributes in the form of hash
134
+ # @return [Object] Returns the model itself
135
+ def build_from_hash(attributes)
136
+ return nil unless attributes.is_a?(Hash)
137
+ attributes = attributes.transform_keys(&:to_sym)
138
+ self.class.openapi_types.each_pair do |key, type|
139
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
140
+ self.send("#{key}=", nil)
141
+ elsif type =~ /\AArray<(.*)>/i
142
+ # check to ensure the input is an array given that the attribute
143
+ # is documented as an array but the input is not
144
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
145
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
146
+ end
147
+ elsif !attributes[self.class.attribute_map[key]].nil?
148
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
149
+ end
150
+ end
151
+
152
+ self
153
+ end
154
+
155
+ # Deserializes the data based on type
156
+ # @param string type Data type
157
+ # @param string value Value to be deserialized
158
+ # @return [Object] Deserialized data
159
+ def _deserialize(type, value)
160
+ case type.to_sym
161
+ when :Time
162
+ Time.parse(value)
163
+ when :Date
164
+ Date.parse(value)
165
+ when :String
166
+ value.to_s
167
+ when :Integer
168
+ value.to_i
169
+ when :Float
170
+ value.to_f
171
+ when :Boolean
172
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
173
+ true
174
+ else
175
+ false
176
+ end
177
+ when :Object
178
+ # generic object (usually a Hash), return directly
179
+ value
180
+ when /\AArray<(?<inner_type>.+)>\z/
181
+ inner_type = Regexp.last_match[:inner_type]
182
+ value.map { |v| _deserialize(inner_type, v) }
183
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
184
+ k_type = Regexp.last_match[:k_type]
185
+ v_type = Regexp.last_match[:v_type]
186
+ {}.tap do |hash|
187
+ value.each do |k, v|
188
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
189
+ end
190
+ end
191
+ else # model
192
+ # models (e.g. Pet) or oneOf
193
+ klass = UltracartClient.const_get(type)
194
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
195
+ end
196
+ end
197
+
198
+ # Returns the string representation of the object
199
+ # @return [String] String presentation of the object
200
+ def to_s
201
+ to_hash.to_s
202
+ end
203
+
204
+ # to_body is an alias to to_hash (backward compatibility)
205
+ # @return [Hash] Returns the object in the form of hash
206
+ def to_body
207
+ to_hash
208
+ end
209
+
210
+ # Returns the object in the form of hash
211
+ # @return [Hash] Returns the object in the form of hash
212
+ def to_hash
213
+ hash = {}
214
+ self.class.attribute_map.each_pair do |attr, param|
215
+ value = self.send(attr)
216
+ if value.nil?
217
+ is_nullable = self.class.openapi_nullable.include?(attr)
218
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
219
+ end
220
+
221
+ hash[param] = _to_hash(value)
222
+ end
223
+ hash
224
+ end
225
+
226
+ # Outputs non-array value in the form of hash
227
+ # For object, use to_hash. Otherwise, just return the value
228
+ # @param [Object] value Any valid value
229
+ # @return [Hash] Returns the value in the form of hash
230
+ def _to_hash(value)
231
+ if value.is_a?(Array)
232
+ value.compact.map { |v| _to_hash(v) }
233
+ elsif value.is_a?(Hash)
234
+ {}.tap do |hash|
235
+ value.each { |k, v| hash[k] = _to_hash(v) }
236
+ end
237
+ elsif value.respond_to? :to_hash
238
+ value.to_hash
239
+ else
240
+ value
241
+ end
242
+ end
243
+
244
+ end
245
+
246
+ end
@@ -0,0 +1,270 @@
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 SfvbSequenceStepCreateRequest
18
+ # The step the new step follows, in the same list. Not an end, continue or merge step.
19
+ attr_accessor :after_step_uuid
20
+
21
+ # A condition, split or inboxgeek step. With side, the new step goes first on that side.
22
+ attr_accessor :branch_step_uuid
23
+
24
+ # The new email's preview text, 5 to 150 characters.
25
+ attr_accessor :preview_text
26
+
27
+ # With branch_step_uuid, the side's label from the sequence read. yes or no for a condition, left or right for a split or inboxgeek step.
28
+ attr_accessor :side
29
+
30
+ # The new email's subject line, 5 to 150 characters.
31
+ attr_accessor :subject
32
+
33
+ # The kind of step. Only email for now.
34
+ attr_accessor :type
35
+
36
+ # Attribute mapping from ruby-style variable name to JSON key.
37
+ def self.attribute_map
38
+ {
39
+ :'after_step_uuid' => :'after_step_uuid',
40
+ :'branch_step_uuid' => :'branch_step_uuid',
41
+ :'preview_text' => :'preview_text',
42
+ :'side' => :'side',
43
+ :'subject' => :'subject',
44
+ :'type' => :'type'
45
+ }
46
+ end
47
+
48
+ # Returns all the JSON keys this model knows about
49
+ def self.acceptable_attributes
50
+ attribute_map.values
51
+ end
52
+
53
+ # Attribute type mapping.
54
+ def self.openapi_types
55
+ {
56
+ :'after_step_uuid' => :'String',
57
+ :'branch_step_uuid' => :'String',
58
+ :'preview_text' => :'String',
59
+ :'side' => :'String',
60
+ :'subject' => :'String',
61
+ :'type' => :'String'
62
+ }
63
+ end
64
+
65
+ # List of attributes with nullable: true
66
+ def self.openapi_nullable
67
+ Set.new([
68
+ ])
69
+ end
70
+
71
+ # Initializes the object
72
+ # @param [Hash] attributes Model attributes in the form of hash
73
+ def initialize(attributes = {})
74
+ if (!attributes.is_a?(Hash))
75
+ fail ArgumentError, "The input argument (attributes) must be a hash in `UltracartClient::SfvbSequenceStepCreateRequest` initialize method"
76
+ end
77
+
78
+ # check to see if the attribute exists and convert string to symbol for hash key
79
+ attributes = attributes.each_with_object({}) { |(k, v), h|
80
+ if (!self.class.attribute_map.key?(k.to_sym))
81
+ fail ArgumentError, "`#{k}` is not a valid attribute in `UltracartClient::SfvbSequenceStepCreateRequest`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
82
+ end
83
+ h[k.to_sym] = v
84
+ }
85
+
86
+ if attributes.key?(:'after_step_uuid')
87
+ self.after_step_uuid = attributes[:'after_step_uuid']
88
+ end
89
+
90
+ if attributes.key?(:'branch_step_uuid')
91
+ self.branch_step_uuid = attributes[:'branch_step_uuid']
92
+ end
93
+
94
+ if attributes.key?(:'preview_text')
95
+ self.preview_text = attributes[:'preview_text']
96
+ end
97
+
98
+ if attributes.key?(:'side')
99
+ self.side = attributes[:'side']
100
+ end
101
+
102
+ if attributes.key?(:'subject')
103
+ self.subject = attributes[:'subject']
104
+ end
105
+
106
+ if attributes.key?(:'type')
107
+ self.type = attributes[:'type']
108
+ end
109
+ end
110
+
111
+ # Show invalid properties with the reasons. Usually used together with valid?
112
+ # @return Array for valid properties with the reasons
113
+ def list_invalid_properties
114
+ invalid_properties = Array.new
115
+ invalid_properties
116
+ end
117
+
118
+ # Check to see if the all the properties in the model are valid
119
+ # @return true if the model is valid
120
+ def valid?
121
+ true
122
+ end
123
+
124
+ # Checks equality by comparing each attribute.
125
+ # @param [Object] Object to be compared
126
+ def ==(o)
127
+ return true if self.equal?(o)
128
+ self.class == o.class &&
129
+ after_step_uuid == o.after_step_uuid &&
130
+ branch_step_uuid == o.branch_step_uuid &&
131
+ preview_text == o.preview_text &&
132
+ side == o.side &&
133
+ subject == o.subject &&
134
+ type == o.type
135
+ end
136
+
137
+ # @see the `==` method
138
+ # @param [Object] Object to be compared
139
+ def eql?(o)
140
+ self == o
141
+ end
142
+
143
+ # Calculates hash code according to all attributes.
144
+ # @return [Integer] Hash code
145
+ def hash
146
+ [after_step_uuid, branch_step_uuid, preview_text, side, subject, type].hash
147
+ end
148
+
149
+ # Builds the object from hash
150
+ # @param [Hash] attributes Model attributes in the form of hash
151
+ # @return [Object] Returns the model itself
152
+ def self.build_from_hash(attributes)
153
+ new.build_from_hash(attributes)
154
+ end
155
+
156
+ # Builds the object from hash
157
+ # @param [Hash] attributes Model attributes in the form of hash
158
+ # @return [Object] Returns the model itself
159
+ def build_from_hash(attributes)
160
+ return nil unless attributes.is_a?(Hash)
161
+ attributes = attributes.transform_keys(&:to_sym)
162
+ self.class.openapi_types.each_pair do |key, type|
163
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
164
+ self.send("#{key}=", nil)
165
+ elsif type =~ /\AArray<(.*)>/i
166
+ # check to ensure the input is an array given that the attribute
167
+ # is documented as an array but the input is not
168
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
169
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
170
+ end
171
+ elsif !attributes[self.class.attribute_map[key]].nil?
172
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
173
+ end
174
+ end
175
+
176
+ self
177
+ end
178
+
179
+ # Deserializes the data based on type
180
+ # @param string type Data type
181
+ # @param string value Value to be deserialized
182
+ # @return [Object] Deserialized data
183
+ def _deserialize(type, value)
184
+ case type.to_sym
185
+ when :Time
186
+ Time.parse(value)
187
+ when :Date
188
+ Date.parse(value)
189
+ when :String
190
+ value.to_s
191
+ when :Integer
192
+ value.to_i
193
+ when :Float
194
+ value.to_f
195
+ when :Boolean
196
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
197
+ true
198
+ else
199
+ false
200
+ end
201
+ when :Object
202
+ # generic object (usually a Hash), return directly
203
+ value
204
+ when /\AArray<(?<inner_type>.+)>\z/
205
+ inner_type = Regexp.last_match[:inner_type]
206
+ value.map { |v| _deserialize(inner_type, v) }
207
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
208
+ k_type = Regexp.last_match[:k_type]
209
+ v_type = Regexp.last_match[:v_type]
210
+ {}.tap do |hash|
211
+ value.each do |k, v|
212
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
213
+ end
214
+ end
215
+ else # model
216
+ # models (e.g. Pet) or oneOf
217
+ klass = UltracartClient.const_get(type)
218
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
219
+ end
220
+ end
221
+
222
+ # Returns the string representation of the object
223
+ # @return [String] String presentation of the object
224
+ def to_s
225
+ to_hash.to_s
226
+ end
227
+
228
+ # to_body is an alias to to_hash (backward compatibility)
229
+ # @return [Hash] Returns the object in the form of hash
230
+ def to_body
231
+ to_hash
232
+ end
233
+
234
+ # Returns the object in the form of hash
235
+ # @return [Hash] Returns the object in the form of hash
236
+ def to_hash
237
+ hash = {}
238
+ self.class.attribute_map.each_pair do |attr, param|
239
+ value = self.send(attr)
240
+ if value.nil?
241
+ is_nullable = self.class.openapi_nullable.include?(attr)
242
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
243
+ end
244
+
245
+ hash[param] = _to_hash(value)
246
+ end
247
+ hash
248
+ end
249
+
250
+ # Outputs non-array value in the form of hash
251
+ # For object, use to_hash. Otherwise, just return the value
252
+ # @param [Object] value Any valid value
253
+ # @return [Hash] Returns the value in the form of hash
254
+ def _to_hash(value)
255
+ if value.is_a?(Array)
256
+ value.compact.map { |v| _to_hash(v) }
257
+ elsif value.is_a?(Hash)
258
+ {}.tap do |hash|
259
+ value.each { |k, v| hash[k] = _to_hash(v) }
260
+ end
261
+ elsif value.respond_to? :to_hash
262
+ value.to_hash
263
+ else
264
+ value
265
+ end
266
+ end
267
+
268
+ end
269
+
270
+ end
@@ -0,0 +1,251 @@
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 SfvbSequenceStepCreateResponse
18
+ # The new email's uuid. Its body is the email container with this owner id.
19
+ attr_accessor :email_uuid
20
+
21
+ # What to do next, such as writing the body, and customers already waiting on the step before it.
22
+ attr_accessor :notes
23
+
24
+ # True when the new email must pass content review before it sends.
25
+ attr_accessor :requires_review
26
+
27
+ attr_accessor :step
28
+
29
+ # Attribute mapping from ruby-style variable name to JSON key.
30
+ def self.attribute_map
31
+ {
32
+ :'email_uuid' => :'email_uuid',
33
+ :'notes' => :'notes',
34
+ :'requires_review' => :'requires_review',
35
+ :'step' => :'step'
36
+ }
37
+ end
38
+
39
+ # Returns all the JSON keys this model knows about
40
+ def self.acceptable_attributes
41
+ attribute_map.values
42
+ end
43
+
44
+ # Attribute type mapping.
45
+ def self.openapi_types
46
+ {
47
+ :'email_uuid' => :'String',
48
+ :'notes' => :'Array<String>',
49
+ :'requires_review' => :'Boolean',
50
+ :'step' => :'SfvbSequenceStep'
51
+ }
52
+ end
53
+
54
+ # List of attributes with nullable: true
55
+ def self.openapi_nullable
56
+ Set.new([
57
+ ])
58
+ end
59
+
60
+ # Initializes the object
61
+ # @param [Hash] attributes Model attributes in the form of hash
62
+ def initialize(attributes = {})
63
+ if (!attributes.is_a?(Hash))
64
+ fail ArgumentError, "The input argument (attributes) must be a hash in `UltracartClient::SfvbSequenceStepCreateResponse` initialize method"
65
+ end
66
+
67
+ # check to see if the attribute exists and convert string to symbol for hash key
68
+ attributes = attributes.each_with_object({}) { |(k, v), h|
69
+ if (!self.class.attribute_map.key?(k.to_sym))
70
+ fail ArgumentError, "`#{k}` is not a valid attribute in `UltracartClient::SfvbSequenceStepCreateResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
71
+ end
72
+ h[k.to_sym] = v
73
+ }
74
+
75
+ if attributes.key?(:'email_uuid')
76
+ self.email_uuid = attributes[:'email_uuid']
77
+ end
78
+
79
+ if attributes.key?(:'notes')
80
+ if (value = attributes[:'notes']).is_a?(Array)
81
+ self.notes = value
82
+ end
83
+ end
84
+
85
+ if attributes.key?(:'requires_review')
86
+ self.requires_review = attributes[:'requires_review']
87
+ end
88
+
89
+ if attributes.key?(:'step')
90
+ self.step = attributes[:'step']
91
+ end
92
+ end
93
+
94
+ # Show invalid properties with the reasons. Usually used together with valid?
95
+ # @return Array for valid properties with the reasons
96
+ def list_invalid_properties
97
+ invalid_properties = Array.new
98
+ invalid_properties
99
+ end
100
+
101
+ # Check to see if the all the properties in the model are valid
102
+ # @return true if the model is valid
103
+ def valid?
104
+ true
105
+ end
106
+
107
+ # Checks equality by comparing each attribute.
108
+ # @param [Object] Object to be compared
109
+ def ==(o)
110
+ return true if self.equal?(o)
111
+ self.class == o.class &&
112
+ email_uuid == o.email_uuid &&
113
+ notes == o.notes &&
114
+ requires_review == o.requires_review &&
115
+ step == o.step
116
+ end
117
+
118
+ # @see the `==` method
119
+ # @param [Object] Object to be compared
120
+ def eql?(o)
121
+ self == o
122
+ end
123
+
124
+ # Calculates hash code according to all attributes.
125
+ # @return [Integer] Hash code
126
+ def hash
127
+ [email_uuid, notes, requires_review, step].hash
128
+ end
129
+
130
+ # Builds the object from hash
131
+ # @param [Hash] attributes Model attributes in the form of hash
132
+ # @return [Object] Returns the model itself
133
+ def self.build_from_hash(attributes)
134
+ new.build_from_hash(attributes)
135
+ end
136
+
137
+ # Builds the object from hash
138
+ # @param [Hash] attributes Model attributes in the form of hash
139
+ # @return [Object] Returns the model itself
140
+ def build_from_hash(attributes)
141
+ return nil unless attributes.is_a?(Hash)
142
+ attributes = attributes.transform_keys(&:to_sym)
143
+ self.class.openapi_types.each_pair do |key, type|
144
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
145
+ self.send("#{key}=", nil)
146
+ elsif type =~ /\AArray<(.*)>/i
147
+ # check to ensure the input is an array given that the attribute
148
+ # is documented as an array but the input is not
149
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
150
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
151
+ end
152
+ elsif !attributes[self.class.attribute_map[key]].nil?
153
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
154
+ end
155
+ end
156
+
157
+ self
158
+ end
159
+
160
+ # Deserializes the data based on type
161
+ # @param string type Data type
162
+ # @param string value Value to be deserialized
163
+ # @return [Object] Deserialized data
164
+ def _deserialize(type, value)
165
+ case type.to_sym
166
+ when :Time
167
+ Time.parse(value)
168
+ when :Date
169
+ Date.parse(value)
170
+ when :String
171
+ value.to_s
172
+ when :Integer
173
+ value.to_i
174
+ when :Float
175
+ value.to_f
176
+ when :Boolean
177
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
178
+ true
179
+ else
180
+ false
181
+ end
182
+ when :Object
183
+ # generic object (usually a Hash), return directly
184
+ value
185
+ when /\AArray<(?<inner_type>.+)>\z/
186
+ inner_type = Regexp.last_match[:inner_type]
187
+ value.map { |v| _deserialize(inner_type, v) }
188
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
189
+ k_type = Regexp.last_match[:k_type]
190
+ v_type = Regexp.last_match[:v_type]
191
+ {}.tap do |hash|
192
+ value.each do |k, v|
193
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
194
+ end
195
+ end
196
+ else # model
197
+ # models (e.g. Pet) or oneOf
198
+ klass = UltracartClient.const_get(type)
199
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
200
+ end
201
+ end
202
+
203
+ # Returns the string representation of the object
204
+ # @return [String] String presentation of the object
205
+ def to_s
206
+ to_hash.to_s
207
+ end
208
+
209
+ # to_body is an alias to to_hash (backward compatibility)
210
+ # @return [Hash] Returns the object in the form of hash
211
+ def to_body
212
+ to_hash
213
+ end
214
+
215
+ # Returns the object in the form of hash
216
+ # @return [Hash] Returns the object in the form of hash
217
+ def to_hash
218
+ hash = {}
219
+ self.class.attribute_map.each_pair do |attr, param|
220
+ value = self.send(attr)
221
+ if value.nil?
222
+ is_nullable = self.class.openapi_nullable.include?(attr)
223
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
224
+ end
225
+
226
+ hash[param] = _to_hash(value)
227
+ end
228
+ hash
229
+ end
230
+
231
+ # Outputs non-array value in the form of hash
232
+ # For object, use to_hash. Otherwise, just return the value
233
+ # @param [Object] value Any valid value
234
+ # @return [Hash] Returns the value in the form of hash
235
+ def _to_hash(value)
236
+ if value.is_a?(Array)
237
+ value.compact.map { |v| _to_hash(v) }
238
+ elsif value.is_a?(Hash)
239
+ {}.tap do |hash|
240
+ value.each { |k, v| hash[k] = _to_hash(v) }
241
+ end
242
+ elsif value.respond_to? :to_hash
243
+ value.to_hash
244
+ else
245
+ value
246
+ end
247
+ end
248
+
249
+ end
250
+
251
+ end
@@ -11,5 +11,5 @@ OpenAPI Generator version: 6.0.1-SNAPSHOT
11
11
  =end
12
12
 
13
13
  module UltracartClient
14
- VERSION = '4.1.214'
14
+ VERSION = '4.1.216'
15
15
  end
data/lib/ultracart_api.rb CHANGED
@@ -1089,6 +1089,7 @@ require 'ultracart_api/models/sfvb_item_related_request'
1089
1089
  require 'ultracart_api/models/sfvb_item_response'
1090
1090
  require 'ultracart_api/models/sfvb_item_seo'
1091
1091
  require 'ultracart_api/models/sfvb_item_seo_request'
1092
+ require 'ultracart_api/models/sfvb_item_tags'
1092
1093
  require 'ultracart_api/models/sfvb_item_volume_discount'
1093
1094
  require 'ultracart_api/models/sfvb_library_ai_review'
1094
1095
  require 'ultracart_api/models/sfvb_library_content_manifest'
@@ -1188,6 +1189,8 @@ require 'ultracart_api/models/sfvb_secret_sink'
1188
1189
  require 'ultracart_api/models/sfvb_sequence'
1189
1190
  require 'ultracart_api/models/sfvb_sequence_branch'
1190
1191
  require 'ultracart_api/models/sfvb_sequence_step'
1192
+ require 'ultracart_api/models/sfvb_sequence_step_create_request'
1193
+ require 'ultracart_api/models/sfvb_sequence_step_create_response'
1191
1194
  require 'ultracart_api/models/sfvb_sequence_step_update_request'
1192
1195
  require 'ultracart_api/models/sfvb_sequence_step_update_response'
1193
1196
  require 'ultracart_api/models/sfvb_server_log'
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: 4.1.214
4
+ version: 4.1.216
5
5
  platform: ruby
6
6
  authors:
7
7
  - UltraCart
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-10-28 00:00:00.000000000 Z
11
+ date: 2026-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -1151,6 +1151,7 @@ files:
1151
1151
  - docs/SfvbItemResponse.md
1152
1152
  - docs/SfvbItemSeo.md
1153
1153
  - docs/SfvbItemSeoRequest.md
1154
+ - docs/SfvbItemTags.md
1154
1155
  - docs/SfvbItemVolumeDiscount.md
1155
1156
  - docs/SfvbLibraryAiReview.md
1156
1157
  - docs/SfvbLibraryContentManifest.md
@@ -1250,6 +1251,8 @@ files:
1250
1251
  - docs/SfvbSequence.md
1251
1252
  - docs/SfvbSequenceBranch.md
1252
1253
  - docs/SfvbSequenceStep.md
1254
+ - docs/SfvbSequenceStepCreateRequest.md
1255
+ - docs/SfvbSequenceStepCreateResponse.md
1253
1256
  - docs/SfvbSequenceStepUpdateRequest.md
1254
1257
  - docs/SfvbSequenceStepUpdateResponse.md
1255
1258
  - docs/SfvbServerLog.md
@@ -2499,6 +2502,7 @@ files:
2499
2502
  - lib/ultracart_api/models/sfvb_item_response.rb
2500
2503
  - lib/ultracart_api/models/sfvb_item_seo.rb
2501
2504
  - lib/ultracart_api/models/sfvb_item_seo_request.rb
2505
+ - lib/ultracart_api/models/sfvb_item_tags.rb
2502
2506
  - lib/ultracart_api/models/sfvb_item_volume_discount.rb
2503
2507
  - lib/ultracart_api/models/sfvb_library_ai_review.rb
2504
2508
  - lib/ultracart_api/models/sfvb_library_content_manifest.rb
@@ -2598,6 +2602,8 @@ files:
2598
2602
  - lib/ultracart_api/models/sfvb_sequence.rb
2599
2603
  - lib/ultracart_api/models/sfvb_sequence_branch.rb
2600
2604
  - lib/ultracart_api/models/sfvb_sequence_step.rb
2605
+ - lib/ultracart_api/models/sfvb_sequence_step_create_request.rb
2606
+ - lib/ultracart_api/models/sfvb_sequence_step_create_response.rb
2601
2607
  - lib/ultracart_api/models/sfvb_sequence_step_update_request.rb
2602
2608
  - lib/ultracart_api/models/sfvb_sequence_step_update_response.rb
2603
2609
  - lib/ultracart_api/models/sfvb_server_log.rb