ultracart_api 4.1.212 → 4.1.214

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: daa7439a4c2c9d9b5c10024beb9d848a7b728c9ff5d057a22923f9381802cf38
4
- data.tar.gz: 5acd544d65144e915ecf68e29428ec9fd3ba8012fecbe54a992afa54b8fae08c
3
+ metadata.gz: c76d90feaffed5fdc1c86aaba08b05bcc3f21163982b7c26bdee0a8a9372fa9c
4
+ data.tar.gz: 0d64bbcea0beeff37dce23844c396733ee231506092bebb786dd05e3140b2fac
5
5
  SHA512:
6
- metadata.gz: 9137149162a374efa7ab54e06cd729eae0046b7d82d08248d3e8fbfbb368098e57469ae74ce9a2cf3428e19acdddefe24c902a827c78abda8f0f89f0cb37ec91
7
- data.tar.gz: 05c4be8139c905ef860a89b6c19ff9b3ed2557eef3975b3298a4720f538b37cda040b24861a92f5f3e9aea5270814ee6323f698b961c58af95f10119da73bae8
6
+ metadata.gz: 38e136135c74082c50fbadd078a84b4f3a14ff5746337a40eced51f7be9c013b53eb571e4da5a370a8c61621a7f7deafeacad36e379ca84a968fdf065609c476
7
+ data.tar.gz: 7710a60f4a7e92d619af5f0bd9e34d2a9ef75874704215f991b0c5c9d7f7e8707d2518e3cf242c3fc30b5c859e1379133c3af6535ee9d86bb85d9d5c5dc30f93
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.212
10
+ - Package version: 4.1.214
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.212'
19
+ gem 'ultracart_api', '4.1.214'
20
20
  ```
21
21
 
22
22
  install:
@@ -674,6 +674,7 @@ Class | Method | HTTP request | Description
674
674
  *UltracartClient::SfvbApi* | [**update_sfvb_item_attribute_batch**](docs/SfvbApi.md#update_sfvb_item_attribute_batch) | **POST** /sfvb/storefronts/{storefront_oid}/items/attributes/batch | Change attributes across many items in one call
675
675
  *UltracartClient::SfvbApi* | [**update_sfvb_library_entry**](docs/SfvbApi.md#update_sfvb_library_entry) | **PUT** /sfvb/storefronts/{storefront_oid}/library/{library_oid} | Update a library entry's draft
676
676
  *UltracartClient::SfvbApi* | [**update_sfvb_redirect**](docs/SfvbApi.md#update_sfvb_redirect) | **PUT** /sfvb/storefronts/{storefront_oid}/redirects/{redirect_id} | Change a redirect rule
677
+ *UltracartClient::SfvbApi* | [**update_sfvb_sequence_step**](docs/SfvbApi.md#update_sfvb_sequence_step) | **PUT** /sfvb/storefronts/{storefront_oid}/sequences/{sequence_uuid}/steps/{step_uuid} | Change one step's settings or audience filter
677
678
  *UltracartClient::SfvbApi* | [**update_sfvb_upsell_offer**](docs/SfvbApi.md#update_sfvb_upsell_offer) | **PUT** /sfvb/storefronts/{storefront_oid}/upsell_offers/{upsell_offer_oid} | Update an upsell offer
678
679
  *UltracartClient::SfvbApi* | [**update_sfvb_upsell_path**](docs/SfvbApi.md#update_sfvb_upsell_path) | **PUT** /sfvb/storefronts/{storefront_oid}/upsell_paths/{upsell_path_oid} | Update an upsell path
679
680
  *UltracartClient::SfvbApi* | [**upload_sfvb_file**](docs/SfvbApi.md#upload_sfvb_file) | **POST** /sfvb/storefronts/{storefront_oid}/files/upload | Store a binary asset that was already uploaded
@@ -2110,6 +2111,8 @@ Class | Method | HTTP request | Description
2110
2111
  - [UltracartClient::SfvbSequence](docs/SfvbSequence.md)
2111
2112
  - [UltracartClient::SfvbSequenceBranch](docs/SfvbSequenceBranch.md)
2112
2113
  - [UltracartClient::SfvbSequenceStep](docs/SfvbSequenceStep.md)
2114
+ - [UltracartClient::SfvbSequenceStepUpdateRequest](docs/SfvbSequenceStepUpdateRequest.md)
2115
+ - [UltracartClient::SfvbSequenceStepUpdateResponse](docs/SfvbSequenceStepUpdateResponse.md)
2113
2116
  - [UltracartClient::SfvbServerLog](docs/SfvbServerLog.md)
2114
2117
  - [UltracartClient::SfvbServerLogDetail](docs/SfvbServerLogDetail.md)
2115
2118
  - [UltracartClient::SfvbServerLogEntry](docs/SfvbServerLogEntry.md)
@@ -2327,6 +2330,8 @@ Not every change is committed to every SDK.
2327
2330
 
2328
2331
  | Version | Date | Comments |
2329
2332
  | --: | :-: | --- |
2333
+ | 4.1.214 | 10/28/2026 | sfvb internal testing |
2334
+ | 4.1.213 | 10/28/2026 | auto order - improve item field descriptions |
2330
2335
  | 4.1.212 | 10/27/2026 | conversation - pbx agent startup activity |
2331
2336
  | 4.1.211 | 10/27/2026 | sfvb internal testing |
2332
2337
  | 4.1.210 | 10/27/2026 | sfvb internal testing |
@@ -7,9 +7,9 @@
7
7
  | **add_ons** | [**Array<AutoOrderAddonItem>**](AutoOrderAddonItem.md) | Array of addon objects instructing which items to add to auto order and how many times they should be added. | [optional] |
8
8
  | **arbitrary_item_id** | **String** | Arbitrary item id that should be rebilled instead of the normal schedule | [optional] |
9
9
  | **arbitrary_percentage_discount** | **Float** | An arbitrary percentage discount to provide on future rebills | [optional] |
10
- | **arbitrary_quantity** | **Float** | Arbitrary quantity to rebill | [optional] |
10
+ | **arbitrary_quantity** | **Float** | Quantity to rebill. When set, every rebill uses this quantity instead of original_quantity. Set this field to change the quantity on an active auto order; the merchant auto order editor updates this same field. Each rebill charges the unit price multiplied by this quantity. | [optional] |
11
11
  | **arbitrary_schedule_days** | **Integer** | The number of days to rebill if the frequency is set to an arbitrary number of days | [optional] |
12
- | **arbitrary_unit_cost** | **Float** | Arbitrary unit cost that rebills of this item should occur at | [optional] |
12
+ | **arbitrary_unit_cost** | **Float** | Arbitrary unit cost that rebills of this item should occur at. This is a price per unit. Each rebill charges it multiplied by the rebill quantity (arbitrary_quantity, or original_quantity when arbitrary_quantity is null). | [optional] |
13
13
  | **arbitrary_unit_cost_remaining_orders** | **Integer** | The number of rebills to give the arbitrary unit cost on before reverting to normal pricing. | [optional] |
14
14
  | **auto_order_item_oid** | **Integer** | Primary key of AutoOrderItem | [optional] |
15
15
  | **calculated_next_shipment_dts** | **String** | Calculated Date/time that this item is scheduled to rebill. Will be null if no more shipments are going to occur on this item | [optional] |
@@ -27,7 +27,7 @@
27
27
  | **number_of_rebills** | **Integer** | The number of times this item has rebilled | [optional] |
28
28
  | **options** | [**Array<AutoOrderItemOption>**](AutoOrderItemOption.md) | Options associated with this item | [optional] |
29
29
  | **original_item_id** | **String** | The original item id purchased. This item controls scheduling. If you wish to modify a schedule, for example, from monthly to yearly, change this item from your monthly item to your yearly item, and then change the next_shipment_dts to your desired date. | [optional] |
30
- | **original_quantity** | **Float** | The original quantity purchased | [optional] |
30
+ | **original_quantity** | **Float** | The quantity purchased on the original order. Rebills use this quantity only when arbitrary_quantity is null. To change the quantity on future rebills, set arbitrary_quantity instead. | [optional] |
31
31
  | **paused** | **Boolean** | True if paused. This field is an object instead of a primitive for backwards compatibility. | [optional] |
32
32
  | **paypal_payer_id** | **String** | The PayPal Payer ID tied to this item | [optional] |
33
33
  | **paypal_recurring_payment_profile_id** | **String** | The PayPal Profile ID tied to this item | [optional] |
data/docs/SfvbApi.md CHANGED
@@ -202,6 +202,7 @@ All URIs are relative to *https://secure.ultracart.com/rest/v2*
202
202
  | [**update_sfvb_item_attribute_batch**](SfvbApi.md#update_sfvb_item_attribute_batch) | **POST** /sfvb/storefronts/{storefront_oid}/items/attributes/batch | Change attributes across many items in one call |
203
203
  | [**update_sfvb_library_entry**](SfvbApi.md#update_sfvb_library_entry) | **PUT** /sfvb/storefronts/{storefront_oid}/library/{library_oid} | Update a library entry's draft |
204
204
  | [**update_sfvb_redirect**](SfvbApi.md#update_sfvb_redirect) | **PUT** /sfvb/storefronts/{storefront_oid}/redirects/{redirect_id} | Change a redirect rule |
205
+ | [**update_sfvb_sequence_step**](SfvbApi.md#update_sfvb_sequence_step) | **PUT** /sfvb/storefronts/{storefront_oid}/sequences/{sequence_uuid}/steps/{step_uuid} | Change one step's settings or audience filter |
205
206
  | [**update_sfvb_upsell_offer**](SfvbApi.md#update_sfvb_upsell_offer) | **PUT** /sfvb/storefronts/{storefront_oid}/upsell_offers/{upsell_offer_oid} | Update an upsell offer |
206
207
  | [**update_sfvb_upsell_path**](SfvbApi.md#update_sfvb_upsell_path) | **PUT** /sfvb/storefronts/{storefront_oid}/upsell_paths/{upsell_path_oid} | Update an upsell path |
207
208
  | [**upload_sfvb_file**](SfvbApi.md#upload_sfvb_file) | **POST** /sfvb/storefronts/{storefront_oid}/files/upload | Store a binary asset that was already uploaded |
@@ -5422,7 +5423,7 @@ This endpoint does not need any parameter.
5422
5423
 
5423
5424
  Get a campaign's or flow's steps as a tree
5424
5425
 
5425
- The communication sequence named by a campaign's or flow's communication_sequence_uuid, with its steps from the start in order. Only condition, split and InboxGeek steps branch, and each holds its two sides in branches. Each step has its type, the admin's label, its settings (a webhook's header and parameter values masked), its audience filter, and the emails, postcard, lists or items it names. waiting adds how many customers are waiting on each step now. Read only.
5426
+ The communication sequence named by a campaign's or flow's communication_sequence_uuid, with its steps from the start in order. Only condition, split and InboxGeek steps branch, and each holds its two sides in branches. Each step has its type, the admin's label, its settings (a webhook's header and parameter values masked), its audience filter, the emails, postcard, lists or items it names, and the hash_sha256 to send as If-Match when changing it. waiting adds how many customers are waiting on each step now. Read only.
5426
5427
 
5427
5428
 
5428
5429
  ### Examples
@@ -9823,7 +9824,7 @@ end
9823
9824
 
9824
9825
  Request a content review of a flow or campaign email
9825
9826
 
9826
- Starts a review the way the admin's Request Review does. One test copy of the email goes to the signed-in user, and to no one else, and the review runs in the background, so read the email again for pending_review and then the ruling. Refused with sfvb.review_not_needed when it doesn't need review, is already waiting for one, or was rejected and not changed since. An email in a flow triggered by an order or an auto order needs order_id, a test order. Needs a signed-in user, not an API key alone.
9827
+ Starts a review the way the admin's Request Review does. The review runs in the background and no test copy is sent. The email is marked pending_review at once, and the signed-in user gets the approved or rejected notice, so read the email again for the ruling. Refused with sfvb.review_not_needed when it doesn't need review, is already waiting for one, or was rejected and not changed since. An email in a flow triggered by an order or an auto order needs order_id, a test order. Needs a signed-in user, not an API key alone.
9827
9828
 
9828
9829
 
9829
9830
  ### Examples
@@ -11027,6 +11028,63 @@ end
11027
11028
  - **Accept**: application/json
11028
11029
 
11029
11030
 
11031
+ ## update_sfvb_sequence_step
11032
+
11033
+ > <SfvbSequenceStepUpdateResponse> update_sfvb_sequence_step(storefront_oid, sequence_uuid, step_uuid, if_match, sequence_step_update_request)
11034
+
11035
+ Change one step's settings or audience filter
11036
+
11037
+ Replaces the step's settings (config_json), its audience filter (filter_profile_equation_json), or both. Nothing else about the step or the sequence changes. Send the step's hash_sha256 as If-Match; the write only lands if the step is still what you read. Email, postcard, experiment, resend, webhook, begin, end, continue and merge steps are refused. A sequence whose campaign or flow is live needs sfvb_publish.
11038
+
11039
+
11040
+ ### Examples
11041
+
11042
+
11043
+ (No example for this operation).
11044
+
11045
+
11046
+ #### Using the update_sfvb_sequence_step_with_http_info variant
11047
+
11048
+ This returns an Array which contains the response data, status code and headers.
11049
+
11050
+ > <Array(<SfvbSequenceStepUpdateResponse>, Integer, Hash)> update_sfvb_sequence_step_with_http_info(storefront_oid, sequence_uuid, step_uuid, if_match, sequence_step_update_request)
11051
+
11052
+ ```ruby
11053
+ begin
11054
+ # Change one step's settings or audience filter
11055
+ data, status_code, headers = api_instance.update_sfvb_sequence_step_with_http_info(storefront_oid, sequence_uuid, step_uuid, if_match, sequence_step_update_request)
11056
+ p status_code # => 2xx
11057
+ p headers # => { ... }
11058
+ p data # => <SfvbSequenceStepUpdateResponse>
11059
+ rescue UltracartClient::ApiError => e
11060
+ puts "Error when calling SfvbApi->update_sfvb_sequence_step_with_http_info: #{e}"
11061
+ end
11062
+ ```
11063
+
11064
+ ### Parameters
11065
+
11066
+ | Name | Type | Description | Notes |
11067
+ | ---- | ---- | ----------- | ----- |
11068
+ | **storefront_oid** | **Integer** | | |
11069
+ | **sequence_uuid** | **String** | | |
11070
+ | **step_uuid** | **String** | | |
11071
+ | **if_match** | **String** | The step&#39;s hash_sha256 from the last read. Required; 428 when absent, 412 when stale. | |
11072
+ | **sequence_step_update_request** | [**SfvbSequenceStepUpdateRequest**](SfvbSequenceStepUpdateRequest.md) | The settings, the filter, or both | |
11073
+
11074
+ ### Return type
11075
+
11076
+ [**SfvbSequenceStepUpdateResponse**](SfvbSequenceStepUpdateResponse.md)
11077
+
11078
+ ### Authorization
11079
+
11080
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
11081
+
11082
+ ### HTTP request headers
11083
+
11084
+ - **Content-Type**: application/json
11085
+ - **Accept**: application/json
11086
+
11087
+
11030
11088
  ## update_sfvb_upsell_offer
11031
11089
 
11032
11090
  > <SfvbUpsellOffer> update_sfvb_upsell_offer(storefront_oid, upsell_offer_oid, if_match, upsell_offer)
@@ -11,6 +11,7 @@
11
11
  | **disabled** | **Boolean** | True when the step is switched off in its settings. | [optional] |
12
12
  | **email_uuids** | **Array&lt;String&gt;** | The emails it sends. One for an email step, one per variant for an experiment. | [optional] |
13
13
  | **filter_profile_equation_json** | **String** | The step&#39;s audience filter as stored, when it has one. | [optional] |
14
+ | **hash_sha256** | **String** | The hash of the step&#39;s type, stored settings and audience filter. Send it back as If-Match when changing the step. | [optional] |
14
15
  | **item_ids** | **Array&lt;String&gt;** | The items it names, for a cart or rate limiter step. | [optional] |
15
16
  | **label** | **String** | The type as the admin names it, such as Time Delay. The type itself for one it doesn&#39;t know. | [optional] |
16
17
  | **list_uuids** | **Array&lt;String&gt;** | The lists it subscribes or unsubscribes, for a list step. | [optional] |
@@ -35,6 +36,7 @@ instance = UltracartClient::SfvbSequenceStep.new(
35
36
  disabled: null,
36
37
  email_uuids: null,
37
38
  filter_profile_equation_json: null,
39
+ hash_sha256: null,
38
40
  item_ids: null,
39
41
  label: null,
40
42
  list_uuids: null,
@@ -0,0 +1,20 @@
1
+ # UltracartClient::SfvbSequenceStepUpdateRequest
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **config_json** | **String** | The step&#39;s new settings, as a JSON object in the admin&#39;s own shape. Replaces the stored settings. | [optional] |
8
+ | **filter_profile_equation_json** | **String** | The step&#39;s new audience filter, as a JSON object. Replaces the stored filter. | [optional] |
9
+
10
+ ## Example
11
+
12
+ ```ruby
13
+ require 'ultracart_api'
14
+
15
+ instance = UltracartClient::SfvbSequenceStepUpdateRequest.new(
16
+ config_json: null,
17
+ filter_profile_equation_json: null
18
+ )
19
+ ```
20
+
@@ -0,0 +1,20 @@
1
+ # UltracartClient::SfvbSequenceStepUpdateResponse
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **notes** | **Array&lt;String&gt;** | Anything worth knowing about the change, such as customers already waiting on the step. | [optional] |
8
+ | **step** | [**SfvbSequenceStep**](SfvbSequenceStep.md) | | [optional] |
9
+
10
+ ## Example
11
+
12
+ ```ruby
13
+ require 'ultracart_api'
14
+
15
+ instance = UltracartClient::SfvbSequenceStepUpdateResponse.new(
16
+ notes: null,
17
+ step: null
18
+ )
19
+ ```
20
+
@@ -6887,7 +6887,7 @@ module UltracartClient
6887
6887
  end
6888
6888
 
6889
6889
  # Get a campaign's or flow's steps as a tree
6890
- # The communication sequence named by a campaign's or flow's communication_sequence_uuid, with its steps from the start in order. Only condition, split and InboxGeek steps branch, and each holds its two sides in branches. Each step has its type, the admin's label, its settings (a webhook's header and parameter values masked), its audience filter, and the emails, postcard, lists or items it names. waiting adds how many customers are waiting on each step now. Read only.
6890
+ # The communication sequence named by a campaign's or flow's communication_sequence_uuid, with its steps from the start in order. Only condition, split and InboxGeek steps branch, and each holds its two sides in branches. Each step has its type, the admin's label, its settings (a webhook's header and parameter values masked), its audience filter, the emails, postcard, lists or items it names, and the hash_sha256 to send as If-Match when changing it. waiting adds how many customers are waiting on each step now. Read only.
6891
6891
  # @param storefront_oid [Integer]
6892
6892
  # @param sequence_uuid [String]
6893
6893
  # @param [Hash] opts the optional parameters
@@ -6899,7 +6899,7 @@ module UltracartClient
6899
6899
  end
6900
6900
 
6901
6901
  # Get a campaign&#39;s or flow&#39;s steps as a tree
6902
- # The communication sequence named by a campaign&#39;s or flow&#39;s communication_sequence_uuid, with its steps from the start in order. Only condition, split and InboxGeek steps branch, and each holds its two sides in branches. Each step has its type, the admin&#39;s label, its settings (a webhook&#39;s header and parameter values masked), its audience filter, and the emails, postcard, lists or items it names. waiting adds how many customers are waiting on each step now. Read only.
6902
+ # The communication sequence named by a campaign&#39;s or flow&#39;s communication_sequence_uuid, with its steps from the start in order. Only condition, split and InboxGeek steps branch, and each holds its two sides in branches. Each step has its type, the admin&#39;s label, its settings (a webhook&#39;s header and parameter values masked), its audience filter, the emails, postcard, lists or items it names, and the hash_sha256 to send as If-Match when changing it. waiting adds how many customers are waiting on each step now. Read only.
6903
6903
  # @param storefront_oid [Integer]
6904
6904
  # @param sequence_uuid [String]
6905
6905
  # @param [Hash] opts the optional parameters
@@ -12957,7 +12957,7 @@ module UltracartClient
12957
12957
  end
12958
12958
 
12959
12959
  # Request a content review of a flow or campaign email
12960
- # Starts a review the way the admin's Request Review does. One test copy of the email goes to the signed-in user, and to no one else, and the review runs in the background, so read the email again for pending_review and then the ruling. Refused with sfvb.review_not_needed when it doesn't need review, is already waiting for one, or was rejected and not changed since. An email in a flow triggered by an order or an auto order needs order_id, a test order. Needs a signed-in user, not an API key alone.
12960
+ # Starts a review the way the admin's Request Review does. The review runs in the background and no test copy is sent. The email is marked pending_review at once, and the signed-in user gets the approved or rejected notice, so read the email again for the ruling. Refused with sfvb.review_not_needed when it doesn't need review, is already waiting for one, or was rejected and not changed since. An email in a flow triggered by an order or an auto order needs order_id, a test order. Needs a signed-in user, not an API key alone.
12961
12961
  # @param storefront_oid [Integer]
12962
12962
  # @param email_uuid [String]
12963
12963
  # @param email_review_request [SfvbEmailReviewRequest] The test order, for an email in an order-triggered flow
@@ -12969,7 +12969,7 @@ module UltracartClient
12969
12969
  end
12970
12970
 
12971
12971
  # Request a content review of a flow or campaign email
12972
- # Starts a review the way the admin&#39;s Request Review does. One test copy of the email goes to the signed-in user, and to no one else, and the review runs in the background, so read the email again for pending_review and then the ruling. Refused with sfvb.review_not_needed when it doesn&#39;t need review, is already waiting for one, or was rejected and not changed since. An email in a flow triggered by an order or an auto order needs order_id, a test order. Needs a signed-in user, not an API key alone.
12972
+ # Starts a review the way the admin&#39;s Request Review does. The review runs in the background and no test copy is sent. The email is marked pending_review at once, and the signed-in user gets the approved or rejected notice, so read the email again for the ruling. Refused with sfvb.review_not_needed when it doesn&#39;t need review, is already waiting for one, or was rejected and not changed since. An email in a flow triggered by an order or an auto order needs order_id, a test order. Needs a signed-in user, not an API key alone.
12973
12973
  # @param storefront_oid [Integer]
12974
12974
  # @param email_uuid [String]
12975
12975
  # @param email_review_request [SfvbEmailReviewRequest] The test order, for an email in an order-triggered flow
@@ -14697,6 +14697,100 @@ module UltracartClient
14697
14697
  return data, status_code, headers
14698
14698
  end
14699
14699
 
14700
+ # Change one step's settings or audience filter
14701
+ # Replaces the step's settings (config_json), its audience filter (filter_profile_equation_json), or both. Nothing else about the step or the sequence changes. Send the step's hash_sha256 as If-Match; the write only lands if the step is still what you read. Email, postcard, experiment, resend, webhook, begin, end, continue and merge steps are refused. A sequence whose campaign or flow is live needs sfvb_publish.
14702
+ # @param storefront_oid [Integer]
14703
+ # @param sequence_uuid [String]
14704
+ # @param step_uuid [String]
14705
+ # @param if_match [String] The step&#39;s hash_sha256 from the last read. Required; 428 when absent, 412 when stale.
14706
+ # @param sequence_step_update_request [SfvbSequenceStepUpdateRequest] The settings, the filter, or both
14707
+ # @param [Hash] opts the optional parameters
14708
+ # @return [SfvbSequenceStepUpdateResponse]
14709
+ def update_sfvb_sequence_step(storefront_oid, sequence_uuid, step_uuid, if_match, sequence_step_update_request, opts = {})
14710
+ data, _status_code, _headers = update_sfvb_sequence_step_with_http_info(storefront_oid, sequence_uuid, step_uuid, if_match, sequence_step_update_request, opts)
14711
+ data
14712
+ end
14713
+
14714
+ # Change one step&#39;s settings or audience filter
14715
+ # Replaces the step&#39;s settings (config_json), its audience filter (filter_profile_equation_json), or both. Nothing else about the step or the sequence changes. Send the step&#39;s hash_sha256 as If-Match; the write only lands if the step is still what you read. Email, postcard, experiment, resend, webhook, begin, end, continue and merge steps are refused. A sequence whose campaign or flow is live needs sfvb_publish.
14716
+ # @param storefront_oid [Integer]
14717
+ # @param sequence_uuid [String]
14718
+ # @param step_uuid [String]
14719
+ # @param if_match [String] The step&#39;s hash_sha256 from the last read. Required; 428 when absent, 412 when stale.
14720
+ # @param sequence_step_update_request [SfvbSequenceStepUpdateRequest] The settings, the filter, or both
14721
+ # @param [Hash] opts the optional parameters
14722
+ # @return [Array<(SfvbSequenceStepUpdateResponse, Integer, Hash)>] SfvbSequenceStepUpdateResponse data, response status code and response headers
14723
+ def update_sfvb_sequence_step_with_http_info(storefront_oid, sequence_uuid, step_uuid, if_match, sequence_step_update_request, opts = {})
14724
+ if @api_client.config.debugging
14725
+ @api_client.config.logger.debug 'Calling API: SfvbApi.update_sfvb_sequence_step ...'
14726
+ end
14727
+ # verify the required parameter 'storefront_oid' is set
14728
+ if @api_client.config.client_side_validation && storefront_oid.nil?
14729
+ fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling SfvbApi.update_sfvb_sequence_step"
14730
+ end
14731
+ # verify the required parameter 'sequence_uuid' is set
14732
+ if @api_client.config.client_side_validation && sequence_uuid.nil?
14733
+ fail ArgumentError, "Missing the required parameter 'sequence_uuid' when calling SfvbApi.update_sfvb_sequence_step"
14734
+ end
14735
+ # verify the required parameter 'step_uuid' is set
14736
+ if @api_client.config.client_side_validation && step_uuid.nil?
14737
+ fail ArgumentError, "Missing the required parameter 'step_uuid' when calling SfvbApi.update_sfvb_sequence_step"
14738
+ end
14739
+ # verify the required parameter 'if_match' is set
14740
+ if @api_client.config.client_side_validation && if_match.nil?
14741
+ fail ArgumentError, "Missing the required parameter 'if_match' when calling SfvbApi.update_sfvb_sequence_step"
14742
+ end
14743
+ # verify the required parameter 'sequence_step_update_request' is set
14744
+ if @api_client.config.client_side_validation && sequence_step_update_request.nil?
14745
+ fail ArgumentError, "Missing the required parameter 'sequence_step_update_request' when calling SfvbApi.update_sfvb_sequence_step"
14746
+ end
14747
+ # resource path
14748
+ local_var_path = '/sfvb/storefronts/{storefront_oid}/sequences/{sequence_uuid}/steps/{step_uuid}'.sub('{' + 'storefront_oid' + '}', CGI.escape(storefront_oid.to_s)).sub('{' + 'sequence_uuid' + '}', CGI.escape(sequence_uuid.to_s)).sub('{' + 'step_uuid' + '}', CGI.escape(step_uuid.to_s))
14749
+
14750
+ # query parameters
14751
+ query_params = opts[:query_params] || {}
14752
+
14753
+ # header parameters
14754
+ header_params = opts[:header_params] || {}
14755
+ header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
14756
+ # HTTP header 'Accept' (if needed)
14757
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
14758
+ # HTTP header 'Content-Type'
14759
+ content_type = @api_client.select_header_content_type(['application/json'])
14760
+ if !content_type.nil?
14761
+ header_params['Content-Type'] = content_type
14762
+ end
14763
+ header_params[:'If-Match'] = if_match
14764
+
14765
+ # form parameters
14766
+ form_params = opts[:form_params] || {}
14767
+
14768
+ # http body (model)
14769
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(sequence_step_update_request)
14770
+
14771
+ # return_type
14772
+ return_type = opts[:debug_return_type] || 'SfvbSequenceStepUpdateResponse'
14773
+
14774
+ # auth_names
14775
+ auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
14776
+
14777
+ new_options = opts.merge(
14778
+ :operation => :"SfvbApi.update_sfvb_sequence_step",
14779
+ :header_params => header_params,
14780
+ :query_params => query_params,
14781
+ :form_params => form_params,
14782
+ :body => post_body,
14783
+ :auth_names => auth_names,
14784
+ :return_type => return_type
14785
+ )
14786
+
14787
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
14788
+ if @api_client.config.debugging
14789
+ @api_client.config.logger.debug "API called: SfvbApi#update_sfvb_sequence_step\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
14790
+ end
14791
+ return data, status_code, headers
14792
+ end
14793
+
14700
14794
  # Update an upsell offer
14701
14795
  # A full replace. Send back the whole offer you read, changed, with its hash_sha256 in If-Match. Read only fields are ignored and a writable field left out is cleared. Changing an offer that is switched on, or changing upsell_item_id_javascript or offsite_content_url, needs sfvb_publish. An update cannot switch an offer on; that is the enable call, which needs approval. Settings the API does not show, such as the offer's screenshots, are kept.
14702
14796
  # @param storefront_oid [Integer]
@@ -24,13 +24,13 @@ module UltracartClient
24
24
  # An arbitrary percentage discount to provide on future rebills
25
25
  attr_accessor :arbitrary_percentage_discount
26
26
 
27
- # Arbitrary quantity to rebill
27
+ # Quantity to rebill. When set, every rebill uses this quantity instead of original_quantity. Set this field to change the quantity on an active auto order; the merchant auto order editor updates this same field. Each rebill charges the unit price multiplied by this quantity.
28
28
  attr_accessor :arbitrary_quantity
29
29
 
30
30
  # The number of days to rebill if the frequency is set to an arbitrary number of days
31
31
  attr_accessor :arbitrary_schedule_days
32
32
 
33
- # Arbitrary unit cost that rebills of this item should occur at
33
+ # Arbitrary unit cost that rebills of this item should occur at. This is a price per unit. Each rebill charges it multiplied by the rebill quantity (arbitrary_quantity, or original_quantity when arbitrary_quantity is null).
34
34
  attr_accessor :arbitrary_unit_cost
35
35
 
36
36
  # The number of rebills to give the arbitrary unit cost on before reverting to normal pricing.
@@ -84,7 +84,7 @@ module UltracartClient
84
84
  # The original item id purchased. This item controls scheduling. If you wish to modify a schedule, for example, from monthly to yearly, change this item from your monthly item to your yearly item, and then change the next_shipment_dts to your desired date.
85
85
  attr_accessor :original_item_id
86
86
 
87
- # The original quantity purchased
87
+ # The quantity purchased on the original order. Rebills use this quantity only when arbitrary_quantity is null. To change the quantity on future rebills, set arbitrary_quantity instead.
88
88
  attr_accessor :original_quantity
89
89
 
90
90
  # True if paused. This field is an object instead of a primitive for backwards compatibility.
@@ -36,6 +36,9 @@ module UltracartClient
36
36
  # The step's audience filter as stored, when it has one.
37
37
  attr_accessor :filter_profile_equation_json
38
38
 
39
+ # The hash of the step's type, stored settings and audience filter. Send it back as If-Match when changing the step.
40
+ attr_accessor :hash_sha256
41
+
39
42
  # The items it names, for a cart or rate limiter step.
40
43
  attr_accessor :item_ids
41
44
 
@@ -76,6 +79,7 @@ module UltracartClient
76
79
  :'disabled' => :'disabled',
77
80
  :'email_uuids' => :'email_uuids',
78
81
  :'filter_profile_equation_json' => :'filter_profile_equation_json',
82
+ :'hash_sha256' => :'hash_sha256',
79
83
  :'item_ids' => :'item_ids',
80
84
  :'label' => :'label',
81
85
  :'list_uuids' => :'list_uuids',
@@ -104,6 +108,7 @@ module UltracartClient
104
108
  :'disabled' => :'Boolean',
105
109
  :'email_uuids' => :'Array<String>',
106
110
  :'filter_profile_equation_json' => :'String',
111
+ :'hash_sha256' => :'String',
107
112
  :'item_ids' => :'Array<String>',
108
113
  :'label' => :'String',
109
114
  :'list_uuids' => :'Array<String>',
@@ -170,6 +175,10 @@ module UltracartClient
170
175
  self.filter_profile_equation_json = attributes[:'filter_profile_equation_json']
171
176
  end
172
177
 
178
+ if attributes.key?(:'hash_sha256')
179
+ self.hash_sha256 = attributes[:'hash_sha256']
180
+ end
181
+
173
182
  if attributes.key?(:'item_ids')
174
183
  if (value = attributes[:'item_ids']).is_a?(Array)
175
184
  self.item_ids = value
@@ -240,6 +249,7 @@ module UltracartClient
240
249
  disabled == o.disabled &&
241
250
  email_uuids == o.email_uuids &&
242
251
  filter_profile_equation_json == o.filter_profile_equation_json &&
252
+ hash_sha256 == o.hash_sha256 &&
243
253
  item_ids == o.item_ids &&
244
254
  label == o.label &&
245
255
  list_uuids == o.list_uuids &&
@@ -261,7 +271,7 @@ module UltracartClient
261
271
  # Calculates hash code according to all attributes.
262
272
  # @return [Integer] Hash code
263
273
  def hash
264
- [branches, config_error, config_json, config_merchant_notes, disabled, email_uuids, filter_profile_equation_json, item_ids, label, list_uuids, merchant_notes, name, number_waiting, postcard_uuid, step_uuid, type, unreachable].hash
274
+ [branches, config_error, config_json, config_merchant_notes, disabled, email_uuids, filter_profile_equation_json, hash_sha256, item_ids, label, list_uuids, merchant_notes, name, number_waiting, postcard_uuid, step_uuid, type, unreachable].hash
265
275
  end
266
276
 
267
277
  # Builds the object from hash
@@ -0,0 +1,230 @@
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 SfvbSequenceStepUpdateRequest
18
+ # The step's new settings, as a JSON object in the admin's own shape. Replaces the stored settings.
19
+ attr_accessor :config_json
20
+
21
+ # The step's new audience filter, as a JSON object. Replaces the stored filter.
22
+ attr_accessor :filter_profile_equation_json
23
+
24
+ # Attribute mapping from ruby-style variable name to JSON key.
25
+ def self.attribute_map
26
+ {
27
+ :'config_json' => :'config_json',
28
+ :'filter_profile_equation_json' => :'filter_profile_equation_json'
29
+ }
30
+ end
31
+
32
+ # Returns all the JSON keys this model knows about
33
+ def self.acceptable_attributes
34
+ attribute_map.values
35
+ end
36
+
37
+ # Attribute type mapping.
38
+ def self.openapi_types
39
+ {
40
+ :'config_json' => :'String',
41
+ :'filter_profile_equation_json' => :'String'
42
+ }
43
+ end
44
+
45
+ # List of attributes with nullable: true
46
+ def self.openapi_nullable
47
+ Set.new([
48
+ ])
49
+ end
50
+
51
+ # Initializes the object
52
+ # @param [Hash] attributes Model attributes in the form of hash
53
+ def initialize(attributes = {})
54
+ if (!attributes.is_a?(Hash))
55
+ fail ArgumentError, "The input argument (attributes) must be a hash in `UltracartClient::SfvbSequenceStepUpdateRequest` initialize method"
56
+ end
57
+
58
+ # check to see if the attribute exists and convert string to symbol for hash key
59
+ attributes = attributes.each_with_object({}) { |(k, v), h|
60
+ if (!self.class.attribute_map.key?(k.to_sym))
61
+ fail ArgumentError, "`#{k}` is not a valid attribute in `UltracartClient::SfvbSequenceStepUpdateRequest`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
62
+ end
63
+ h[k.to_sym] = v
64
+ }
65
+
66
+ if attributes.key?(:'config_json')
67
+ self.config_json = attributes[:'config_json']
68
+ end
69
+
70
+ if attributes.key?(:'filter_profile_equation_json')
71
+ self.filter_profile_equation_json = attributes[:'filter_profile_equation_json']
72
+ end
73
+ end
74
+
75
+ # Show invalid properties with the reasons. Usually used together with valid?
76
+ # @return Array for valid properties with the reasons
77
+ def list_invalid_properties
78
+ invalid_properties = Array.new
79
+ invalid_properties
80
+ end
81
+
82
+ # Check to see if the all the properties in the model are valid
83
+ # @return true if the model is valid
84
+ def valid?
85
+ true
86
+ end
87
+
88
+ # Checks equality by comparing each attribute.
89
+ # @param [Object] Object to be compared
90
+ def ==(o)
91
+ return true if self.equal?(o)
92
+ self.class == o.class &&
93
+ config_json == o.config_json &&
94
+ filter_profile_equation_json == o.filter_profile_equation_json
95
+ end
96
+
97
+ # @see the `==` method
98
+ # @param [Object] Object to be compared
99
+ def eql?(o)
100
+ self == o
101
+ end
102
+
103
+ # Calculates hash code according to all attributes.
104
+ # @return [Integer] Hash code
105
+ def hash
106
+ [config_json, filter_profile_equation_json].hash
107
+ end
108
+
109
+ # Builds the object from hash
110
+ # @param [Hash] attributes Model attributes in the form of hash
111
+ # @return [Object] Returns the model itself
112
+ def self.build_from_hash(attributes)
113
+ new.build_from_hash(attributes)
114
+ end
115
+
116
+ # Builds the object from hash
117
+ # @param [Hash] attributes Model attributes in the form of hash
118
+ # @return [Object] Returns the model itself
119
+ def build_from_hash(attributes)
120
+ return nil unless attributes.is_a?(Hash)
121
+ attributes = attributes.transform_keys(&:to_sym)
122
+ self.class.openapi_types.each_pair do |key, type|
123
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
124
+ self.send("#{key}=", nil)
125
+ elsif type =~ /\AArray<(.*)>/i
126
+ # check to ensure the input is an array given that the attribute
127
+ # is documented as an array but the input is not
128
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
129
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
130
+ end
131
+ elsif !attributes[self.class.attribute_map[key]].nil?
132
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
133
+ end
134
+ end
135
+
136
+ self
137
+ end
138
+
139
+ # Deserializes the data based on type
140
+ # @param string type Data type
141
+ # @param string value Value to be deserialized
142
+ # @return [Object] Deserialized data
143
+ def _deserialize(type, value)
144
+ case type.to_sym
145
+ when :Time
146
+ Time.parse(value)
147
+ when :Date
148
+ Date.parse(value)
149
+ when :String
150
+ value.to_s
151
+ when :Integer
152
+ value.to_i
153
+ when :Float
154
+ value.to_f
155
+ when :Boolean
156
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
157
+ true
158
+ else
159
+ false
160
+ end
161
+ when :Object
162
+ # generic object (usually a Hash), return directly
163
+ value
164
+ when /\AArray<(?<inner_type>.+)>\z/
165
+ inner_type = Regexp.last_match[:inner_type]
166
+ value.map { |v| _deserialize(inner_type, v) }
167
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
168
+ k_type = Regexp.last_match[:k_type]
169
+ v_type = Regexp.last_match[:v_type]
170
+ {}.tap do |hash|
171
+ value.each do |k, v|
172
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
173
+ end
174
+ end
175
+ else # model
176
+ # models (e.g. Pet) or oneOf
177
+ klass = UltracartClient.const_get(type)
178
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
179
+ end
180
+ end
181
+
182
+ # Returns the string representation of the object
183
+ # @return [String] String presentation of the object
184
+ def to_s
185
+ to_hash.to_s
186
+ end
187
+
188
+ # to_body is an alias to to_hash (backward compatibility)
189
+ # @return [Hash] Returns the object in the form of hash
190
+ def to_body
191
+ to_hash
192
+ end
193
+
194
+ # Returns the object in the form of hash
195
+ # @return [Hash] Returns the object in the form of hash
196
+ def to_hash
197
+ hash = {}
198
+ self.class.attribute_map.each_pair do |attr, param|
199
+ value = self.send(attr)
200
+ if value.nil?
201
+ is_nullable = self.class.openapi_nullable.include?(attr)
202
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
203
+ end
204
+
205
+ hash[param] = _to_hash(value)
206
+ end
207
+ hash
208
+ end
209
+
210
+ # Outputs non-array value in the form of hash
211
+ # For object, use to_hash. Otherwise, just return the value
212
+ # @param [Object] value Any valid value
213
+ # @return [Hash] Returns the value in the form of hash
214
+ def _to_hash(value)
215
+ if value.is_a?(Array)
216
+ value.compact.map { |v| _to_hash(v) }
217
+ elsif value.is_a?(Hash)
218
+ {}.tap do |hash|
219
+ value.each { |k, v| hash[k] = _to_hash(v) }
220
+ end
221
+ elsif value.respond_to? :to_hash
222
+ value.to_hash
223
+ else
224
+ value
225
+ end
226
+ end
227
+
228
+ end
229
+
230
+ end
@@ -0,0 +1,231 @@
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 SfvbSequenceStepUpdateResponse
18
+ # Anything worth knowing about the change, such as customers already waiting on the step.
19
+ attr_accessor :notes
20
+
21
+ attr_accessor :step
22
+
23
+ # Attribute mapping from ruby-style variable name to JSON key.
24
+ def self.attribute_map
25
+ {
26
+ :'notes' => :'notes',
27
+ :'step' => :'step'
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
+ :'notes' => :'Array<String>',
40
+ :'step' => :'SfvbSequenceStep'
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::SfvbSequenceStepUpdateResponse` 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::SfvbSequenceStepUpdateResponse`. 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?(:'notes')
66
+ if (value = attributes[:'notes']).is_a?(Array)
67
+ self.notes = value
68
+ end
69
+ end
70
+
71
+ if attributes.key?(:'step')
72
+ self.step = attributes[:'step']
73
+ end
74
+ end
75
+
76
+ # Show invalid properties with the reasons. Usually used together with valid?
77
+ # @return Array for valid properties with the reasons
78
+ def list_invalid_properties
79
+ invalid_properties = Array.new
80
+ invalid_properties
81
+ end
82
+
83
+ # Check to see if the all the properties in the model are valid
84
+ # @return true if the model is valid
85
+ def valid?
86
+ true
87
+ end
88
+
89
+ # Checks equality by comparing each attribute.
90
+ # @param [Object] Object to be compared
91
+ def ==(o)
92
+ return true if self.equal?(o)
93
+ self.class == o.class &&
94
+ notes == o.notes &&
95
+ step == o.step
96
+ end
97
+
98
+ # @see the `==` method
99
+ # @param [Object] Object to be compared
100
+ def eql?(o)
101
+ self == o
102
+ end
103
+
104
+ # Calculates hash code according to all attributes.
105
+ # @return [Integer] Hash code
106
+ def hash
107
+ [notes, step].hash
108
+ end
109
+
110
+ # Builds the object from hash
111
+ # @param [Hash] attributes Model attributes in the form of hash
112
+ # @return [Object] Returns the model itself
113
+ def self.build_from_hash(attributes)
114
+ new.build_from_hash(attributes)
115
+ end
116
+
117
+ # Builds the object from hash
118
+ # @param [Hash] attributes Model attributes in the form of hash
119
+ # @return [Object] Returns the model itself
120
+ def build_from_hash(attributes)
121
+ return nil unless attributes.is_a?(Hash)
122
+ attributes = attributes.transform_keys(&:to_sym)
123
+ self.class.openapi_types.each_pair do |key, type|
124
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
125
+ self.send("#{key}=", nil)
126
+ elsif type =~ /\AArray<(.*)>/i
127
+ # check to ensure the input is an array given that the attribute
128
+ # is documented as an array but the input is not
129
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
130
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
131
+ end
132
+ elsif !attributes[self.class.attribute_map[key]].nil?
133
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
134
+ end
135
+ end
136
+
137
+ self
138
+ end
139
+
140
+ # Deserializes the data based on type
141
+ # @param string type Data type
142
+ # @param string value Value to be deserialized
143
+ # @return [Object] Deserialized data
144
+ def _deserialize(type, value)
145
+ case type.to_sym
146
+ when :Time
147
+ Time.parse(value)
148
+ when :Date
149
+ Date.parse(value)
150
+ when :String
151
+ value.to_s
152
+ when :Integer
153
+ value.to_i
154
+ when :Float
155
+ value.to_f
156
+ when :Boolean
157
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
158
+ true
159
+ else
160
+ false
161
+ end
162
+ when :Object
163
+ # generic object (usually a Hash), return directly
164
+ value
165
+ when /\AArray<(?<inner_type>.+)>\z/
166
+ inner_type = Regexp.last_match[:inner_type]
167
+ value.map { |v| _deserialize(inner_type, v) }
168
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
169
+ k_type = Regexp.last_match[:k_type]
170
+ v_type = Regexp.last_match[:v_type]
171
+ {}.tap do |hash|
172
+ value.each do |k, v|
173
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
174
+ end
175
+ end
176
+ else # model
177
+ # models (e.g. Pet) or oneOf
178
+ klass = UltracartClient.const_get(type)
179
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
180
+ end
181
+ end
182
+
183
+ # Returns the string representation of the object
184
+ # @return [String] String presentation of the object
185
+ def to_s
186
+ to_hash.to_s
187
+ end
188
+
189
+ # to_body is an alias to to_hash (backward compatibility)
190
+ # @return [Hash] Returns the object in the form of hash
191
+ def to_body
192
+ to_hash
193
+ end
194
+
195
+ # Returns the object in the form of hash
196
+ # @return [Hash] Returns the object in the form of hash
197
+ def to_hash
198
+ hash = {}
199
+ self.class.attribute_map.each_pair do |attr, param|
200
+ value = self.send(attr)
201
+ if value.nil?
202
+ is_nullable = self.class.openapi_nullable.include?(attr)
203
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
204
+ end
205
+
206
+ hash[param] = _to_hash(value)
207
+ end
208
+ hash
209
+ end
210
+
211
+ # Outputs non-array value in the form of hash
212
+ # For object, use to_hash. Otherwise, just return the value
213
+ # @param [Object] value Any valid value
214
+ # @return [Hash] Returns the value in the form of hash
215
+ def _to_hash(value)
216
+ if value.is_a?(Array)
217
+ value.compact.map { |v| _to_hash(v) }
218
+ elsif value.is_a?(Hash)
219
+ {}.tap do |hash|
220
+ value.each { |k, v| hash[k] = _to_hash(v) }
221
+ end
222
+ elsif value.respond_to? :to_hash
223
+ value.to_hash
224
+ else
225
+ value
226
+ end
227
+ end
228
+
229
+ end
230
+
231
+ 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.212'
14
+ VERSION = '4.1.214'
15
15
  end
data/lib/ultracart_api.rb CHANGED
@@ -1188,6 +1188,8 @@ require 'ultracart_api/models/sfvb_secret_sink'
1188
1188
  require 'ultracart_api/models/sfvb_sequence'
1189
1189
  require 'ultracart_api/models/sfvb_sequence_branch'
1190
1190
  require 'ultracart_api/models/sfvb_sequence_step'
1191
+ require 'ultracart_api/models/sfvb_sequence_step_update_request'
1192
+ require 'ultracart_api/models/sfvb_sequence_step_update_response'
1191
1193
  require 'ultracart_api/models/sfvb_server_log'
1192
1194
  require 'ultracart_api/models/sfvb_server_log_detail'
1193
1195
  require 'ultracart_api/models/sfvb_server_log_entry'
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.212
4
+ version: 4.1.214
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-27 00:00:00.000000000 Z
11
+ date: 2026-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -1250,6 +1250,8 @@ files:
1250
1250
  - docs/SfvbSequence.md
1251
1251
  - docs/SfvbSequenceBranch.md
1252
1252
  - docs/SfvbSequenceStep.md
1253
+ - docs/SfvbSequenceStepUpdateRequest.md
1254
+ - docs/SfvbSequenceStepUpdateResponse.md
1253
1255
  - docs/SfvbServerLog.md
1254
1256
  - docs/SfvbServerLogDetail.md
1255
1257
  - docs/SfvbServerLogEntry.md
@@ -2596,6 +2598,8 @@ files:
2596
2598
  - lib/ultracart_api/models/sfvb_sequence.rb
2597
2599
  - lib/ultracart_api/models/sfvb_sequence_branch.rb
2598
2600
  - lib/ultracart_api/models/sfvb_sequence_step.rb
2601
+ - lib/ultracart_api/models/sfvb_sequence_step_update_request.rb
2602
+ - lib/ultracart_api/models/sfvb_sequence_step_update_response.rb
2599
2603
  - lib/ultracart_api/models/sfvb_server_log.rb
2600
2604
  - lib/ultracart_api/models/sfvb_server_log_detail.rb
2601
2605
  - lib/ultracart_api/models/sfvb_server_log_entry.rb