ultracart_api 4.1.210 → 4.1.211

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: e01b5f98446f4cd7a17870cd2492a7909f7e890cee3d71e968937e3ea161e861
4
- data.tar.gz: 4845b8436645b593f800f84e32313d14384e619d1d58c4dd0cddd066d2102648
3
+ metadata.gz: 433a8aaea315101666d5b31ee8a8983cb95241f2421824d42d069e463e3cc94c
4
+ data.tar.gz: 90123646be6a6a72b2dbf8024107caf6d62b5881b6893e4f70f80e9ed2f3e116
5
5
  SHA512:
6
- metadata.gz: 8eae36df126bd5b1af621ae04b4db5243b507394ba0dc2d47a8f6c900b71a40a4a0c03fc66fa57839384b5da16e6f5bd0d20d9a0876ab16ff6cc12c7f4dac357
7
- data.tar.gz: 9600f18f9314f9fcc61264cafdb0ccf00748f099d08c376a5148d5cc02cd927e0628eb565969dc3ba5f756f49f474866b2d19da8c1eb4e25aba4a8e075d3f035
6
+ metadata.gz: e83035d699791416639d17e2443643057d38fc5b6bd6cce8b5dd5432afad09d2d06152f0b4c91909a5d98836ee8e1713ba1bdd7650ca8869ede586dccffdd46a
7
+ data.tar.gz: c74ca1fc0536aafdfc8010cc1055fce1464b8b965b73930d1f5fd1a68c5465a93a3dfbc3e51a10807fe5b239535f2fcfbdb625f4b185813ea285f35b27c6c3b2
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.210
10
+ - Package version: 4.1.211
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.210'
19
+ gem 'ultracart_api', '4.1.211'
20
20
  ```
21
21
 
22
22
  install:
@@ -572,6 +572,7 @@ Class | Method | HTTP request | Description
572
572
  *UltracartClient::SfvbApi* | [**get_sfvb_secret_kinds**](docs/SfvbApi.md#get_sfvb_secret_kinds) | **GET** /sfvb/secrets/kinds | List the secrets this server collects
573
573
  *UltracartClient::SfvbApi* | [**get_sfvb_secret_request**](docs/SfvbApi.md#get_sfvb_secret_request) | **GET** /sfvb/secrets/{request_id} | Read one secret request
574
574
  *UltracartClient::SfvbApi* | [**get_sfvb_secret_requests**](docs/SfvbApi.md#get_sfvb_secret_requests) | **GET** /sfvb/secrets | List this sign-in's secret requests
575
+ *UltracartClient::SfvbApi* | [**get_sfvb_sequence**](docs/SfvbApi.md#get_sfvb_sequence) | **GET** /sfvb/storefronts/{storefront_oid}/sequences/{sequence_uuid} | Get a campaign's or flow's steps as a tree
575
576
  *UltracartClient::SfvbApi* | [**get_sfvb_server_log**](docs/SfvbApi.md#get_sfvb_server_log) | **GET** /sfvb/storefronts/{storefront_oid}/logs/{log_id} | Get one storefront render log
576
577
  *UltracartClient::SfvbApi* | [**get_sfvb_site_attributes**](docs/SfvbApi.md#get_sfvb_site_attributes) | **GET** /sfvb/storefronts/{storefront_oid}/attributes | Read a storefront's site attributes
577
578
  *UltracartClient::SfvbApi* | [**get_sfvb_test_orders**](docs/SfvbApi.md#get_sfvb_test_orders) | **GET** /sfvb/storefronts/{storefront_oid}/test_orders | List recent test orders
@@ -2106,6 +2107,9 @@ Class | Method | HTTP request | Description
2106
2107
  - [UltracartClient::SfvbSecretRequestCreate](docs/SfvbSecretRequestCreate.md)
2107
2108
  - [UltracartClient::SfvbSecretRequestsResponse](docs/SfvbSecretRequestsResponse.md)
2108
2109
  - [UltracartClient::SfvbSecretSink](docs/SfvbSecretSink.md)
2110
+ - [UltracartClient::SfvbSequence](docs/SfvbSequence.md)
2111
+ - [UltracartClient::SfvbSequenceBranch](docs/SfvbSequenceBranch.md)
2112
+ - [UltracartClient::SfvbSequenceStep](docs/SfvbSequenceStep.md)
2109
2113
  - [UltracartClient::SfvbServerLog](docs/SfvbServerLog.md)
2110
2114
  - [UltracartClient::SfvbServerLogDetail](docs/SfvbServerLogDetail.md)
2111
2115
  - [UltracartClient::SfvbServerLogEntry](docs/SfvbServerLogEntry.md)
@@ -2323,6 +2327,7 @@ Not every change is committed to every SDK.
2323
2327
 
2324
2328
  | Version | Date | Comments |
2325
2329
  | --: | :-: | --- |
2330
+ | 4.1.211 | 10/27/2026 | sfvb internal testing |
2326
2331
  | 4.1.210 | 10/27/2026 | sfvb internal testing |
2327
2332
  | 4.1.209 | 10/27/2026 | sfvb internal testing |
2328
2333
  | 4.1.208 | 10/26/2026 | sfvb internal testing |
data/docs/SfvbApi.md CHANGED
@@ -100,6 +100,7 @@ All URIs are relative to *https://secure.ultracart.com/rest/v2*
100
100
  | [**get_sfvb_secret_kinds**](SfvbApi.md#get_sfvb_secret_kinds) | **GET** /sfvb/secrets/kinds | List the secrets this server collects |
101
101
  | [**get_sfvb_secret_request**](SfvbApi.md#get_sfvb_secret_request) | **GET** /sfvb/secrets/{request_id} | Read one secret request |
102
102
  | [**get_sfvb_secret_requests**](SfvbApi.md#get_sfvb_secret_requests) | **GET** /sfvb/secrets | List this sign-in's secret requests |
103
+ | [**get_sfvb_sequence**](SfvbApi.md#get_sfvb_sequence) | **GET** /sfvb/storefronts/{storefront_oid}/sequences/{sequence_uuid} | Get a campaign's or flow's steps as a tree |
103
104
  | [**get_sfvb_server_log**](SfvbApi.md#get_sfvb_server_log) | **GET** /sfvb/storefronts/{storefront_oid}/logs/{log_id} | Get one storefront render log |
104
105
  | [**get_sfvb_site_attributes**](SfvbApi.md#get_sfvb_site_attributes) | **GET** /sfvb/storefronts/{storefront_oid}/attributes | Read a storefront's site attributes |
105
106
  | [**get_sfvb_test_orders**](SfvbApi.md#get_sfvb_test_orders) | **GET** /sfvb/storefronts/{storefront_oid}/test_orders | List recent test orders |
@@ -5415,6 +5416,61 @@ This endpoint does not need any parameter.
5415
5416
  - **Accept**: application/json
5416
5417
 
5417
5418
 
5419
+ ## get_sfvb_sequence
5420
+
5421
+ > <SfvbSequence> get_sfvb_sequence(storefront_oid, sequence_uuid, opts)
5422
+
5423
+ Get a campaign's or flow's steps as a tree
5424
+
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
+
5427
+
5428
+ ### Examples
5429
+
5430
+
5431
+ (No example for this operation).
5432
+
5433
+
5434
+ #### Using the get_sfvb_sequence_with_http_info variant
5435
+
5436
+ This returns an Array which contains the response data, status code and headers.
5437
+
5438
+ > <Array(<SfvbSequence>, Integer, Hash)> get_sfvb_sequence_with_http_info(storefront_oid, sequence_uuid, opts)
5439
+
5440
+ ```ruby
5441
+ begin
5442
+ # Get a campaign's or flow's steps as a tree
5443
+ data, status_code, headers = api_instance.get_sfvb_sequence_with_http_info(storefront_oid, sequence_uuid, opts)
5444
+ p status_code # => 2xx
5445
+ p headers # => { ... }
5446
+ p data # => <SfvbSequence>
5447
+ rescue UltracartClient::ApiError => e
5448
+ puts "Error when calling SfvbApi->get_sfvb_sequence_with_http_info: #{e}"
5449
+ end
5450
+ ```
5451
+
5452
+ ### Parameters
5453
+
5454
+ | Name | Type | Description | Notes |
5455
+ | ---- | ---- | ----------- | ----- |
5456
+ | **storefront_oid** | **Integer** | | |
5457
+ | **sequence_uuid** | **String** | | |
5458
+ | **waiting** | **Boolean** | Include how many customers are waiting on each step | [optional] |
5459
+
5460
+ ### Return type
5461
+
5462
+ [**SfvbSequence**](SfvbSequence.md)
5463
+
5464
+ ### Authorization
5465
+
5466
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
5467
+
5468
+ ### HTTP request headers
5469
+
5470
+ - **Content-Type**: Not defined
5471
+ - **Accept**: application/json
5472
+
5473
+
5418
5474
  ## get_sfvb_server_log
5419
5475
 
5420
5476
  > <SfvbServerLogDetail> get_sfvb_server_log(storefront_oid, log_id, opts)
@@ -0,0 +1,34 @@
1
+ # UltracartClient::SfvbSequence
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **communication_sequence_uuid** | **String** | The sequence uuid. | [optional] |
8
+ | **live** | **Boolean** | True when its emails and postcards reach customers now. | [optional] |
9
+ | **notes** | **Array&lt;String&gt;** | Anything the read could not do, such as waiting counts that were unavailable. | [optional] |
10
+ | **owner_name** | **String** | The campaign or flow name. | [optional] |
11
+ | **owner_status** | **String** | The campaign or flow status. | [optional] |
12
+ | **owner_type** | **String** | campaign or flow. | [optional] |
13
+ | **owner_uuid** | **String** | The campaign or flow uuid. | [optional] |
14
+ | **steps** | [**Array&lt;SfvbSequenceStep&gt;**](SfvbSequenceStep.md) | The steps from the start, in order. A branching step holds its sides in branches. | [optional] |
15
+ | **waiting_included** | **Boolean** | True when number_waiting was filled in. | [optional] |
16
+
17
+ ## Example
18
+
19
+ ```ruby
20
+ require 'ultracart_api'
21
+
22
+ instance = UltracartClient::SfvbSequence.new(
23
+ communication_sequence_uuid: null,
24
+ live: null,
25
+ notes: null,
26
+ owner_name: null,
27
+ owner_status: null,
28
+ owner_type: null,
29
+ owner_uuid: null,
30
+ steps: null,
31
+ waiting_included: null
32
+ )
33
+ ```
34
+
@@ -0,0 +1,20 @@
1
+ # UltracartClient::SfvbSequenceBranch
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **label** | **String** | yes or no for a condition, left or right for a split or an InboxGeek step. | [optional] |
8
+ | **steps** | [**Array&lt;SfvbSequenceStep&gt;**](SfvbSequenceStep.md) | The steps on this side, in order. | [optional] |
9
+
10
+ ## Example
11
+
12
+ ```ruby
13
+ require 'ultracart_api'
14
+
15
+ instance = UltracartClient::SfvbSequenceBranch.new(
16
+ label: null,
17
+ steps: null
18
+ )
19
+ ```
20
+
@@ -0,0 +1,50 @@
1
+ # UltracartClient::SfvbSequenceStep
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **branches** | [**Array&lt;SfvbSequenceBranch&gt;**](SfvbSequenceBranch.md) | Its two sides, for a condition, split or InboxGeek step. Absent for every other type. | [optional] |
8
+ | **config_error** | **Boolean** | True when the step&#39;s settings could not be read. | [optional] |
9
+ | **config_json** | **String** | The step&#39;s settings as the admin stores them. A webhook&#39;s header and parameter values are masked. | [optional] |
10
+ | **config_merchant_notes** | **String** | A note stored inside the step&#39;s settings, when there is one. | [optional] |
11
+ | **disabled** | **Boolean** | True when the step is switched off in its settings. | [optional] |
12
+ | **email_uuids** | **Array&lt;String&gt;** | The emails it sends. One for an email step, one per variant for an experiment. | [optional] |
13
+ | **filter_profile_equation_json** | **String** | The step&#39;s audience filter as stored, when it has one. | [optional] |
14
+ | **item_ids** | **Array&lt;String&gt;** | The items it names, for a cart or rate limiter step. | [optional] |
15
+ | **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
+ | **list_uuids** | **Array&lt;String&gt;** | The lists it subscribes or unsubscribes, for a list step. | [optional] |
17
+ | **merchant_notes** | **String** | The note stored on the step. | [optional] |
18
+ | **name** | **String** | The step&#39;s own display name from its settings, when it has one. | [optional] |
19
+ | **number_waiting** | **Integer** | How many customers are waiting on this step now. Only when waiting counts were asked for. | [optional] |
20
+ | **postcard_uuid** | **String** | The postcard it sends, for a postcard step. | [optional] |
21
+ | **step_uuid** | **String** | The step uuid. | [optional] |
22
+ | **type** | **String** | The step type, such as email, wait, condition or webhook. | [optional] |
23
+ | **unreachable** | **Boolean** | True for a step no branch leads to. Listed at the end so nothing is hidden. | [optional] |
24
+
25
+ ## Example
26
+
27
+ ```ruby
28
+ require 'ultracart_api'
29
+
30
+ instance = UltracartClient::SfvbSequenceStep.new(
31
+ branches: null,
32
+ config_error: null,
33
+ config_json: null,
34
+ config_merchant_notes: null,
35
+ disabled: null,
36
+ email_uuids: null,
37
+ filter_profile_equation_json: null,
38
+ item_ids: null,
39
+ label: null,
40
+ list_uuids: null,
41
+ merchant_notes: null,
42
+ name: null,
43
+ number_waiting: null,
44
+ postcard_uuid: null,
45
+ step_uuid: null,
46
+ type: null,
47
+ unreachable: null
48
+ )
49
+ ```
50
+
@@ -6886,6 +6886,79 @@ module UltracartClient
6886
6886
  return data, status_code, headers
6887
6887
  end
6888
6888
 
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.
6891
+ # @param storefront_oid [Integer]
6892
+ # @param sequence_uuid [String]
6893
+ # @param [Hash] opts the optional parameters
6894
+ # @option opts [Boolean] :waiting Include how many customers are waiting on each step
6895
+ # @return [SfvbSequence]
6896
+ def get_sfvb_sequence(storefront_oid, sequence_uuid, opts = {})
6897
+ data, _status_code, _headers = get_sfvb_sequence_with_http_info(storefront_oid, sequence_uuid, opts)
6898
+ data
6899
+ end
6900
+
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.
6903
+ # @param storefront_oid [Integer]
6904
+ # @param sequence_uuid [String]
6905
+ # @param [Hash] opts the optional parameters
6906
+ # @option opts [Boolean] :waiting Include how many customers are waiting on each step
6907
+ # @return [Array<(SfvbSequence, Integer, Hash)>] SfvbSequence data, response status code and response headers
6908
+ def get_sfvb_sequence_with_http_info(storefront_oid, sequence_uuid, opts = {})
6909
+ if @api_client.config.debugging
6910
+ @api_client.config.logger.debug 'Calling API: SfvbApi.get_sfvb_sequence ...'
6911
+ end
6912
+ # verify the required parameter 'storefront_oid' is set
6913
+ if @api_client.config.client_side_validation && storefront_oid.nil?
6914
+ fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling SfvbApi.get_sfvb_sequence"
6915
+ end
6916
+ # verify the required parameter 'sequence_uuid' is set
6917
+ if @api_client.config.client_side_validation && sequence_uuid.nil?
6918
+ fail ArgumentError, "Missing the required parameter 'sequence_uuid' when calling SfvbApi.get_sfvb_sequence"
6919
+ end
6920
+ # resource path
6921
+ local_var_path = '/sfvb/storefronts/{storefront_oid}/sequences/{sequence_uuid}'.sub('{' + 'storefront_oid' + '}', CGI.escape(storefront_oid.to_s)).sub('{' + 'sequence_uuid' + '}', CGI.escape(sequence_uuid.to_s))
6922
+
6923
+ # query parameters
6924
+ query_params = opts[:query_params] || {}
6925
+ query_params[:'waiting'] = opts[:'waiting'] if !opts[:'waiting'].nil?
6926
+
6927
+ # header parameters
6928
+ header_params = opts[:header_params] || {}
6929
+ header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
6930
+ # HTTP header 'Accept' (if needed)
6931
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
6932
+
6933
+ # form parameters
6934
+ form_params = opts[:form_params] || {}
6935
+
6936
+ # http body (model)
6937
+ post_body = opts[:debug_body]
6938
+
6939
+ # return_type
6940
+ return_type = opts[:debug_return_type] || 'SfvbSequence'
6941
+
6942
+ # auth_names
6943
+ auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
6944
+
6945
+ new_options = opts.merge(
6946
+ :operation => :"SfvbApi.get_sfvb_sequence",
6947
+ :header_params => header_params,
6948
+ :query_params => query_params,
6949
+ :form_params => form_params,
6950
+ :body => post_body,
6951
+ :auth_names => auth_names,
6952
+ :return_type => return_type
6953
+ )
6954
+
6955
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
6956
+ if @api_client.config.debugging
6957
+ @api_client.config.logger.debug "API called: SfvbApi#get_sfvb_sequence\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
6958
+ end
6959
+ return data, status_code, headers
6960
+ end
6961
+
6889
6962
  # Get one storefront render log
6890
6963
  # One render's server log with its lines, each with a level, a category such as VELOCITY or FLOW, and the message. log_id comes from the list, or from the X-UltraCart-Storefront-Log-Id header a page sends inside an SFVB preview session. min_level is debug, info, warn or error, default debug.
6891
6964
  # @param storefront_oid [Integer]
@@ -0,0 +1,304 @@
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 SfvbSequence
18
+ # The sequence uuid.
19
+ attr_accessor :communication_sequence_uuid
20
+
21
+ # True when its emails and postcards reach customers now.
22
+ attr_accessor :live
23
+
24
+ # Anything the read could not do, such as waiting counts that were unavailable.
25
+ attr_accessor :notes
26
+
27
+ # The campaign or flow name.
28
+ attr_accessor :owner_name
29
+
30
+ # The campaign or flow status.
31
+ attr_accessor :owner_status
32
+
33
+ # campaign or flow.
34
+ attr_accessor :owner_type
35
+
36
+ # The campaign or flow uuid.
37
+ attr_accessor :owner_uuid
38
+
39
+ # The steps from the start, in order. A branching step holds its sides in branches.
40
+ attr_accessor :steps
41
+
42
+ # True when number_waiting was filled in.
43
+ attr_accessor :waiting_included
44
+
45
+ # Attribute mapping from ruby-style variable name to JSON key.
46
+ def self.attribute_map
47
+ {
48
+ :'communication_sequence_uuid' => :'communication_sequence_uuid',
49
+ :'live' => :'live',
50
+ :'notes' => :'notes',
51
+ :'owner_name' => :'owner_name',
52
+ :'owner_status' => :'owner_status',
53
+ :'owner_type' => :'owner_type',
54
+ :'owner_uuid' => :'owner_uuid',
55
+ :'steps' => :'steps',
56
+ :'waiting_included' => :'waiting_included'
57
+ }
58
+ end
59
+
60
+ # Returns all the JSON keys this model knows about
61
+ def self.acceptable_attributes
62
+ attribute_map.values
63
+ end
64
+
65
+ # Attribute type mapping.
66
+ def self.openapi_types
67
+ {
68
+ :'communication_sequence_uuid' => :'String',
69
+ :'live' => :'Boolean',
70
+ :'notes' => :'Array<String>',
71
+ :'owner_name' => :'String',
72
+ :'owner_status' => :'String',
73
+ :'owner_type' => :'String',
74
+ :'owner_uuid' => :'String',
75
+ :'steps' => :'Array<SfvbSequenceStep>',
76
+ :'waiting_included' => :'Boolean'
77
+ }
78
+ end
79
+
80
+ # List of attributes with nullable: true
81
+ def self.openapi_nullable
82
+ Set.new([
83
+ ])
84
+ end
85
+
86
+ # Initializes the object
87
+ # @param [Hash] attributes Model attributes in the form of hash
88
+ def initialize(attributes = {})
89
+ if (!attributes.is_a?(Hash))
90
+ fail ArgumentError, "The input argument (attributes) must be a hash in `UltracartClient::SfvbSequence` initialize method"
91
+ end
92
+
93
+ # check to see if the attribute exists and convert string to symbol for hash key
94
+ attributes = attributes.each_with_object({}) { |(k, v), h|
95
+ if (!self.class.attribute_map.key?(k.to_sym))
96
+ fail ArgumentError, "`#{k}` is not a valid attribute in `UltracartClient::SfvbSequence`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
97
+ end
98
+ h[k.to_sym] = v
99
+ }
100
+
101
+ if attributes.key?(:'communication_sequence_uuid')
102
+ self.communication_sequence_uuid = attributes[:'communication_sequence_uuid']
103
+ end
104
+
105
+ if attributes.key?(:'live')
106
+ self.live = attributes[:'live']
107
+ end
108
+
109
+ if attributes.key?(:'notes')
110
+ if (value = attributes[:'notes']).is_a?(Array)
111
+ self.notes = value
112
+ end
113
+ end
114
+
115
+ if attributes.key?(:'owner_name')
116
+ self.owner_name = attributes[:'owner_name']
117
+ end
118
+
119
+ if attributes.key?(:'owner_status')
120
+ self.owner_status = attributes[:'owner_status']
121
+ end
122
+
123
+ if attributes.key?(:'owner_type')
124
+ self.owner_type = attributes[:'owner_type']
125
+ end
126
+
127
+ if attributes.key?(:'owner_uuid')
128
+ self.owner_uuid = attributes[:'owner_uuid']
129
+ end
130
+
131
+ if attributes.key?(:'steps')
132
+ if (value = attributes[:'steps']).is_a?(Array)
133
+ self.steps = value
134
+ end
135
+ end
136
+
137
+ if attributes.key?(:'waiting_included')
138
+ self.waiting_included = attributes[:'waiting_included']
139
+ end
140
+ end
141
+
142
+ # Show invalid properties with the reasons. Usually used together with valid?
143
+ # @return Array for valid properties with the reasons
144
+ def list_invalid_properties
145
+ invalid_properties = Array.new
146
+ invalid_properties
147
+ end
148
+
149
+ # Check to see if the all the properties in the model are valid
150
+ # @return true if the model is valid
151
+ def valid?
152
+ true
153
+ end
154
+
155
+ # Checks equality by comparing each attribute.
156
+ # @param [Object] Object to be compared
157
+ def ==(o)
158
+ return true if self.equal?(o)
159
+ self.class == o.class &&
160
+ communication_sequence_uuid == o.communication_sequence_uuid &&
161
+ live == o.live &&
162
+ notes == o.notes &&
163
+ owner_name == o.owner_name &&
164
+ owner_status == o.owner_status &&
165
+ owner_type == o.owner_type &&
166
+ owner_uuid == o.owner_uuid &&
167
+ steps == o.steps &&
168
+ waiting_included == o.waiting_included
169
+ end
170
+
171
+ # @see the `==` method
172
+ # @param [Object] Object to be compared
173
+ def eql?(o)
174
+ self == o
175
+ end
176
+
177
+ # Calculates hash code according to all attributes.
178
+ # @return [Integer] Hash code
179
+ def hash
180
+ [communication_sequence_uuid, live, notes, owner_name, owner_status, owner_type, owner_uuid, steps, waiting_included].hash
181
+ end
182
+
183
+ # Builds the object from hash
184
+ # @param [Hash] attributes Model attributes in the form of hash
185
+ # @return [Object] Returns the model itself
186
+ def self.build_from_hash(attributes)
187
+ new.build_from_hash(attributes)
188
+ end
189
+
190
+ # Builds the object from hash
191
+ # @param [Hash] attributes Model attributes in the form of hash
192
+ # @return [Object] Returns the model itself
193
+ def build_from_hash(attributes)
194
+ return nil unless attributes.is_a?(Hash)
195
+ attributes = attributes.transform_keys(&:to_sym)
196
+ self.class.openapi_types.each_pair do |key, type|
197
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
198
+ self.send("#{key}=", nil)
199
+ elsif type =~ /\AArray<(.*)>/i
200
+ # check to ensure the input is an array given that the attribute
201
+ # is documented as an array but the input is not
202
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
203
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
204
+ end
205
+ elsif !attributes[self.class.attribute_map[key]].nil?
206
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
207
+ end
208
+ end
209
+
210
+ self
211
+ end
212
+
213
+ # Deserializes the data based on type
214
+ # @param string type Data type
215
+ # @param string value Value to be deserialized
216
+ # @return [Object] Deserialized data
217
+ def _deserialize(type, value)
218
+ case type.to_sym
219
+ when :Time
220
+ Time.parse(value)
221
+ when :Date
222
+ Date.parse(value)
223
+ when :String
224
+ value.to_s
225
+ when :Integer
226
+ value.to_i
227
+ when :Float
228
+ value.to_f
229
+ when :Boolean
230
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
231
+ true
232
+ else
233
+ false
234
+ end
235
+ when :Object
236
+ # generic object (usually a Hash), return directly
237
+ value
238
+ when /\AArray<(?<inner_type>.+)>\z/
239
+ inner_type = Regexp.last_match[:inner_type]
240
+ value.map { |v| _deserialize(inner_type, v) }
241
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
242
+ k_type = Regexp.last_match[:k_type]
243
+ v_type = Regexp.last_match[:v_type]
244
+ {}.tap do |hash|
245
+ value.each do |k, v|
246
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
247
+ end
248
+ end
249
+ else # model
250
+ # models (e.g. Pet) or oneOf
251
+ klass = UltracartClient.const_get(type)
252
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
253
+ end
254
+ end
255
+
256
+ # Returns the string representation of the object
257
+ # @return [String] String presentation of the object
258
+ def to_s
259
+ to_hash.to_s
260
+ end
261
+
262
+ # to_body is an alias to to_hash (backward compatibility)
263
+ # @return [Hash] Returns the object in the form of hash
264
+ def to_body
265
+ to_hash
266
+ end
267
+
268
+ # Returns the object in the form of hash
269
+ # @return [Hash] Returns the object in the form of hash
270
+ def to_hash
271
+ hash = {}
272
+ self.class.attribute_map.each_pair do |attr, param|
273
+ value = self.send(attr)
274
+ if value.nil?
275
+ is_nullable = self.class.openapi_nullable.include?(attr)
276
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
277
+ end
278
+
279
+ hash[param] = _to_hash(value)
280
+ end
281
+ hash
282
+ end
283
+
284
+ # Outputs non-array value in the form of hash
285
+ # For object, use to_hash. Otherwise, just return the value
286
+ # @param [Object] value Any valid value
287
+ # @return [Hash] Returns the value in the form of hash
288
+ def _to_hash(value)
289
+ if value.is_a?(Array)
290
+ value.compact.map { |v| _to_hash(v) }
291
+ elsif value.is_a?(Hash)
292
+ {}.tap do |hash|
293
+ value.each { |k, v| hash[k] = _to_hash(v) }
294
+ end
295
+ elsif value.respond_to? :to_hash
296
+ value.to_hash
297
+ else
298
+ value
299
+ end
300
+ end
301
+
302
+ end
303
+
304
+ end
@@ -0,0 +1,232 @@
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 SfvbSequenceBranch
18
+ # yes or no for a condition, left or right for a split or an InboxGeek step.
19
+ attr_accessor :label
20
+
21
+ # The steps on this side, in order.
22
+ attr_accessor :steps
23
+
24
+ # Attribute mapping from ruby-style variable name to JSON key.
25
+ def self.attribute_map
26
+ {
27
+ :'label' => :'label',
28
+ :'steps' => :'steps'
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
+ :'label' => :'String',
41
+ :'steps' => :'Array<SfvbSequenceStep>'
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::SfvbSequenceBranch` 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::SfvbSequenceBranch`. 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?(:'label')
67
+ self.label = attributes[:'label']
68
+ end
69
+
70
+ if attributes.key?(:'steps')
71
+ if (value = attributes[:'steps']).is_a?(Array)
72
+ self.steps = value
73
+ end
74
+ end
75
+ end
76
+
77
+ # Show invalid properties with the reasons. Usually used together with valid?
78
+ # @return Array for valid properties with the reasons
79
+ def list_invalid_properties
80
+ invalid_properties = Array.new
81
+ invalid_properties
82
+ end
83
+
84
+ # Check to see if the all the properties in the model are valid
85
+ # @return true if the model is valid
86
+ def valid?
87
+ true
88
+ end
89
+
90
+ # Checks equality by comparing each attribute.
91
+ # @param [Object] Object to be compared
92
+ def ==(o)
93
+ return true if self.equal?(o)
94
+ self.class == o.class &&
95
+ label == o.label &&
96
+ steps == o.steps
97
+ end
98
+
99
+ # @see the `==` method
100
+ # @param [Object] Object to be compared
101
+ def eql?(o)
102
+ self == o
103
+ end
104
+
105
+ # Calculates hash code according to all attributes.
106
+ # @return [Integer] Hash code
107
+ def hash
108
+ [label, steps].hash
109
+ end
110
+
111
+ # Builds the object from hash
112
+ # @param [Hash] attributes Model attributes in the form of hash
113
+ # @return [Object] Returns the model itself
114
+ def self.build_from_hash(attributes)
115
+ new.build_from_hash(attributes)
116
+ end
117
+
118
+ # Builds the object from hash
119
+ # @param [Hash] attributes Model attributes in the form of hash
120
+ # @return [Object] Returns the model itself
121
+ def build_from_hash(attributes)
122
+ return nil unless attributes.is_a?(Hash)
123
+ attributes = attributes.transform_keys(&:to_sym)
124
+ self.class.openapi_types.each_pair do |key, type|
125
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
126
+ self.send("#{key}=", nil)
127
+ elsif type =~ /\AArray<(.*)>/i
128
+ # check to ensure the input is an array given that the attribute
129
+ # is documented as an array but the input is not
130
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
131
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
132
+ end
133
+ elsif !attributes[self.class.attribute_map[key]].nil?
134
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
135
+ end
136
+ end
137
+
138
+ self
139
+ end
140
+
141
+ # Deserializes the data based on type
142
+ # @param string type Data type
143
+ # @param string value Value to be deserialized
144
+ # @return [Object] Deserialized data
145
+ def _deserialize(type, value)
146
+ case type.to_sym
147
+ when :Time
148
+ Time.parse(value)
149
+ when :Date
150
+ Date.parse(value)
151
+ when :String
152
+ value.to_s
153
+ when :Integer
154
+ value.to_i
155
+ when :Float
156
+ value.to_f
157
+ when :Boolean
158
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
159
+ true
160
+ else
161
+ false
162
+ end
163
+ when :Object
164
+ # generic object (usually a Hash), return directly
165
+ value
166
+ when /\AArray<(?<inner_type>.+)>\z/
167
+ inner_type = Regexp.last_match[:inner_type]
168
+ value.map { |v| _deserialize(inner_type, v) }
169
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
170
+ k_type = Regexp.last_match[:k_type]
171
+ v_type = Regexp.last_match[:v_type]
172
+ {}.tap do |hash|
173
+ value.each do |k, v|
174
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
175
+ end
176
+ end
177
+ else # model
178
+ # models (e.g. Pet) or oneOf
179
+ klass = UltracartClient.const_get(type)
180
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
181
+ end
182
+ end
183
+
184
+ # Returns the string representation of the object
185
+ # @return [String] String presentation of the object
186
+ def to_s
187
+ to_hash.to_s
188
+ end
189
+
190
+ # to_body is an alias to to_hash (backward compatibility)
191
+ # @return [Hash] Returns the object in the form of hash
192
+ def to_body
193
+ to_hash
194
+ end
195
+
196
+ # Returns the object in the form of hash
197
+ # @return [Hash] Returns the object in the form of hash
198
+ def to_hash
199
+ hash = {}
200
+ self.class.attribute_map.each_pair do |attr, param|
201
+ value = self.send(attr)
202
+ if value.nil?
203
+ is_nullable = self.class.openapi_nullable.include?(attr)
204
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
205
+ end
206
+
207
+ hash[param] = _to_hash(value)
208
+ end
209
+ hash
210
+ end
211
+
212
+ # Outputs non-array value in the form of hash
213
+ # For object, use to_hash. Otherwise, just return the value
214
+ # @param [Object] value Any valid value
215
+ # @return [Hash] Returns the value in the form of hash
216
+ def _to_hash(value)
217
+ if value.is_a?(Array)
218
+ value.compact.map { |v| _to_hash(v) }
219
+ elsif value.is_a?(Hash)
220
+ {}.tap do |hash|
221
+ value.each { |k, v| hash[k] = _to_hash(v) }
222
+ end
223
+ elsif value.respond_to? :to_hash
224
+ value.to_hash
225
+ else
226
+ value
227
+ end
228
+ end
229
+
230
+ end
231
+
232
+ end
@@ -0,0 +1,388 @@
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 SfvbSequenceStep
18
+ # Its two sides, for a condition, split or InboxGeek step. Absent for every other type.
19
+ attr_accessor :branches
20
+
21
+ # True when the step's settings could not be read.
22
+ attr_accessor :config_error
23
+
24
+ # The step's settings as the admin stores them. A webhook's header and parameter values are masked.
25
+ attr_accessor :config_json
26
+
27
+ # A note stored inside the step's settings, when there is one.
28
+ attr_accessor :config_merchant_notes
29
+
30
+ # True when the step is switched off in its settings.
31
+ attr_accessor :disabled
32
+
33
+ # The emails it sends. One for an email step, one per variant for an experiment.
34
+ attr_accessor :email_uuids
35
+
36
+ # The step's audience filter as stored, when it has one.
37
+ attr_accessor :filter_profile_equation_json
38
+
39
+ # The items it names, for a cart or rate limiter step.
40
+ attr_accessor :item_ids
41
+
42
+ # The type as the admin names it, such as Time Delay. The type itself for one it doesn't know.
43
+ attr_accessor :label
44
+
45
+ # The lists it subscribes or unsubscribes, for a list step.
46
+ attr_accessor :list_uuids
47
+
48
+ # The note stored on the step.
49
+ attr_accessor :merchant_notes
50
+
51
+ # The step's own display name from its settings, when it has one.
52
+ attr_accessor :name
53
+
54
+ # How many customers are waiting on this step now. Only when waiting counts were asked for.
55
+ attr_accessor :number_waiting
56
+
57
+ # The postcard it sends, for a postcard step.
58
+ attr_accessor :postcard_uuid
59
+
60
+ # The step uuid.
61
+ attr_accessor :step_uuid
62
+
63
+ # The step type, such as email, wait, condition or webhook.
64
+ attr_accessor :type
65
+
66
+ # True for a step no branch leads to. Listed at the end so nothing is hidden.
67
+ attr_accessor :unreachable
68
+
69
+ # Attribute mapping from ruby-style variable name to JSON key.
70
+ def self.attribute_map
71
+ {
72
+ :'branches' => :'branches',
73
+ :'config_error' => :'config_error',
74
+ :'config_json' => :'config_json',
75
+ :'config_merchant_notes' => :'config_merchant_notes',
76
+ :'disabled' => :'disabled',
77
+ :'email_uuids' => :'email_uuids',
78
+ :'filter_profile_equation_json' => :'filter_profile_equation_json',
79
+ :'item_ids' => :'item_ids',
80
+ :'label' => :'label',
81
+ :'list_uuids' => :'list_uuids',
82
+ :'merchant_notes' => :'merchant_notes',
83
+ :'name' => :'name',
84
+ :'number_waiting' => :'number_waiting',
85
+ :'postcard_uuid' => :'postcard_uuid',
86
+ :'step_uuid' => :'step_uuid',
87
+ :'type' => :'type',
88
+ :'unreachable' => :'unreachable'
89
+ }
90
+ end
91
+
92
+ # Returns all the JSON keys this model knows about
93
+ def self.acceptable_attributes
94
+ attribute_map.values
95
+ end
96
+
97
+ # Attribute type mapping.
98
+ def self.openapi_types
99
+ {
100
+ :'branches' => :'Array<SfvbSequenceBranch>',
101
+ :'config_error' => :'Boolean',
102
+ :'config_json' => :'String',
103
+ :'config_merchant_notes' => :'String',
104
+ :'disabled' => :'Boolean',
105
+ :'email_uuids' => :'Array<String>',
106
+ :'filter_profile_equation_json' => :'String',
107
+ :'item_ids' => :'Array<String>',
108
+ :'label' => :'String',
109
+ :'list_uuids' => :'Array<String>',
110
+ :'merchant_notes' => :'String',
111
+ :'name' => :'String',
112
+ :'number_waiting' => :'Integer',
113
+ :'postcard_uuid' => :'String',
114
+ :'step_uuid' => :'String',
115
+ :'type' => :'String',
116
+ :'unreachable' => :'Boolean'
117
+ }
118
+ end
119
+
120
+ # List of attributes with nullable: true
121
+ def self.openapi_nullable
122
+ Set.new([
123
+ ])
124
+ end
125
+
126
+ # Initializes the object
127
+ # @param [Hash] attributes Model attributes in the form of hash
128
+ def initialize(attributes = {})
129
+ if (!attributes.is_a?(Hash))
130
+ fail ArgumentError, "The input argument (attributes) must be a hash in `UltracartClient::SfvbSequenceStep` initialize method"
131
+ end
132
+
133
+ # check to see if the attribute exists and convert string to symbol for hash key
134
+ attributes = attributes.each_with_object({}) { |(k, v), h|
135
+ if (!self.class.attribute_map.key?(k.to_sym))
136
+ fail ArgumentError, "`#{k}` is not a valid attribute in `UltracartClient::SfvbSequenceStep`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
137
+ end
138
+ h[k.to_sym] = v
139
+ }
140
+
141
+ if attributes.key?(:'branches')
142
+ if (value = attributes[:'branches']).is_a?(Array)
143
+ self.branches = value
144
+ end
145
+ end
146
+
147
+ if attributes.key?(:'config_error')
148
+ self.config_error = attributes[:'config_error']
149
+ end
150
+
151
+ if attributes.key?(:'config_json')
152
+ self.config_json = attributes[:'config_json']
153
+ end
154
+
155
+ if attributes.key?(:'config_merchant_notes')
156
+ self.config_merchant_notes = attributes[:'config_merchant_notes']
157
+ end
158
+
159
+ if attributes.key?(:'disabled')
160
+ self.disabled = attributes[:'disabled']
161
+ end
162
+
163
+ if attributes.key?(:'email_uuids')
164
+ if (value = attributes[:'email_uuids']).is_a?(Array)
165
+ self.email_uuids = value
166
+ end
167
+ end
168
+
169
+ if attributes.key?(:'filter_profile_equation_json')
170
+ self.filter_profile_equation_json = attributes[:'filter_profile_equation_json']
171
+ end
172
+
173
+ if attributes.key?(:'item_ids')
174
+ if (value = attributes[:'item_ids']).is_a?(Array)
175
+ self.item_ids = value
176
+ end
177
+ end
178
+
179
+ if attributes.key?(:'label')
180
+ self.label = attributes[:'label']
181
+ end
182
+
183
+ if attributes.key?(:'list_uuids')
184
+ if (value = attributes[:'list_uuids']).is_a?(Array)
185
+ self.list_uuids = value
186
+ end
187
+ end
188
+
189
+ if attributes.key?(:'merchant_notes')
190
+ self.merchant_notes = attributes[:'merchant_notes']
191
+ end
192
+
193
+ if attributes.key?(:'name')
194
+ self.name = attributes[:'name']
195
+ end
196
+
197
+ if attributes.key?(:'number_waiting')
198
+ self.number_waiting = attributes[:'number_waiting']
199
+ end
200
+
201
+ if attributes.key?(:'postcard_uuid')
202
+ self.postcard_uuid = attributes[:'postcard_uuid']
203
+ end
204
+
205
+ if attributes.key?(:'step_uuid')
206
+ self.step_uuid = attributes[:'step_uuid']
207
+ end
208
+
209
+ if attributes.key?(:'type')
210
+ self.type = attributes[:'type']
211
+ end
212
+
213
+ if attributes.key?(:'unreachable')
214
+ self.unreachable = attributes[:'unreachable']
215
+ end
216
+ end
217
+
218
+ # Show invalid properties with the reasons. Usually used together with valid?
219
+ # @return Array for valid properties with the reasons
220
+ def list_invalid_properties
221
+ invalid_properties = Array.new
222
+ invalid_properties
223
+ end
224
+
225
+ # Check to see if the all the properties in the model are valid
226
+ # @return true if the model is valid
227
+ def valid?
228
+ true
229
+ end
230
+
231
+ # Checks equality by comparing each attribute.
232
+ # @param [Object] Object to be compared
233
+ def ==(o)
234
+ return true if self.equal?(o)
235
+ self.class == o.class &&
236
+ branches == o.branches &&
237
+ config_error == o.config_error &&
238
+ config_json == o.config_json &&
239
+ config_merchant_notes == o.config_merchant_notes &&
240
+ disabled == o.disabled &&
241
+ email_uuids == o.email_uuids &&
242
+ filter_profile_equation_json == o.filter_profile_equation_json &&
243
+ item_ids == o.item_ids &&
244
+ label == o.label &&
245
+ list_uuids == o.list_uuids &&
246
+ merchant_notes == o.merchant_notes &&
247
+ name == o.name &&
248
+ number_waiting == o.number_waiting &&
249
+ postcard_uuid == o.postcard_uuid &&
250
+ step_uuid == o.step_uuid &&
251
+ type == o.type &&
252
+ unreachable == o.unreachable
253
+ end
254
+
255
+ # @see the `==` method
256
+ # @param [Object] Object to be compared
257
+ def eql?(o)
258
+ self == o
259
+ end
260
+
261
+ # Calculates hash code according to all attributes.
262
+ # @return [Integer] Hash code
263
+ 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
265
+ end
266
+
267
+ # Builds the object from hash
268
+ # @param [Hash] attributes Model attributes in the form of hash
269
+ # @return [Object] Returns the model itself
270
+ def self.build_from_hash(attributes)
271
+ new.build_from_hash(attributes)
272
+ end
273
+
274
+ # Builds the object from hash
275
+ # @param [Hash] attributes Model attributes in the form of hash
276
+ # @return [Object] Returns the model itself
277
+ def build_from_hash(attributes)
278
+ return nil unless attributes.is_a?(Hash)
279
+ attributes = attributes.transform_keys(&:to_sym)
280
+ self.class.openapi_types.each_pair do |key, type|
281
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
282
+ self.send("#{key}=", nil)
283
+ elsif type =~ /\AArray<(.*)>/i
284
+ # check to ensure the input is an array given that the attribute
285
+ # is documented as an array but the input is not
286
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
287
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
288
+ end
289
+ elsif !attributes[self.class.attribute_map[key]].nil?
290
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
291
+ end
292
+ end
293
+
294
+ self
295
+ end
296
+
297
+ # Deserializes the data based on type
298
+ # @param string type Data type
299
+ # @param string value Value to be deserialized
300
+ # @return [Object] Deserialized data
301
+ def _deserialize(type, value)
302
+ case type.to_sym
303
+ when :Time
304
+ Time.parse(value)
305
+ when :Date
306
+ Date.parse(value)
307
+ when :String
308
+ value.to_s
309
+ when :Integer
310
+ value.to_i
311
+ when :Float
312
+ value.to_f
313
+ when :Boolean
314
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
315
+ true
316
+ else
317
+ false
318
+ end
319
+ when :Object
320
+ # generic object (usually a Hash), return directly
321
+ value
322
+ when /\AArray<(?<inner_type>.+)>\z/
323
+ inner_type = Regexp.last_match[:inner_type]
324
+ value.map { |v| _deserialize(inner_type, v) }
325
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
326
+ k_type = Regexp.last_match[:k_type]
327
+ v_type = Regexp.last_match[:v_type]
328
+ {}.tap do |hash|
329
+ value.each do |k, v|
330
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
331
+ end
332
+ end
333
+ else # model
334
+ # models (e.g. Pet) or oneOf
335
+ klass = UltracartClient.const_get(type)
336
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
337
+ end
338
+ end
339
+
340
+ # Returns the string representation of the object
341
+ # @return [String] String presentation of the object
342
+ def to_s
343
+ to_hash.to_s
344
+ end
345
+
346
+ # to_body is an alias to to_hash (backward compatibility)
347
+ # @return [Hash] Returns the object in the form of hash
348
+ def to_body
349
+ to_hash
350
+ end
351
+
352
+ # Returns the object in the form of hash
353
+ # @return [Hash] Returns the object in the form of hash
354
+ def to_hash
355
+ hash = {}
356
+ self.class.attribute_map.each_pair do |attr, param|
357
+ value = self.send(attr)
358
+ if value.nil?
359
+ is_nullable = self.class.openapi_nullable.include?(attr)
360
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
361
+ end
362
+
363
+ hash[param] = _to_hash(value)
364
+ end
365
+ hash
366
+ end
367
+
368
+ # Outputs non-array value in the form of hash
369
+ # For object, use to_hash. Otherwise, just return the value
370
+ # @param [Object] value Any valid value
371
+ # @return [Hash] Returns the value in the form of hash
372
+ def _to_hash(value)
373
+ if value.is_a?(Array)
374
+ value.compact.map { |v| _to_hash(v) }
375
+ elsif value.is_a?(Hash)
376
+ {}.tap do |hash|
377
+ value.each { |k, v| hash[k] = _to_hash(v) }
378
+ end
379
+ elsif value.respond_to? :to_hash
380
+ value.to_hash
381
+ else
382
+ value
383
+ end
384
+ end
385
+
386
+ end
387
+
388
+ 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.210'
14
+ VERSION = '4.1.211'
15
15
  end
data/lib/ultracart_api.rb CHANGED
@@ -1185,6 +1185,9 @@ require 'ultracart_api/models/sfvb_secret_request'
1185
1185
  require 'ultracart_api/models/sfvb_secret_request_create'
1186
1186
  require 'ultracart_api/models/sfvb_secret_requests_response'
1187
1187
  require 'ultracart_api/models/sfvb_secret_sink'
1188
+ require 'ultracart_api/models/sfvb_sequence'
1189
+ require 'ultracart_api/models/sfvb_sequence_branch'
1190
+ require 'ultracart_api/models/sfvb_sequence_step'
1188
1191
  require 'ultracart_api/models/sfvb_server_log'
1189
1192
  require 'ultracart_api/models/sfvb_server_log_detail'
1190
1193
  require 'ultracart_api/models/sfvb_server_log_entry'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ultracart_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.210
4
+ version: 4.1.211
5
5
  platform: ruby
6
6
  authors:
7
7
  - UltraCart
@@ -1247,6 +1247,9 @@ files:
1247
1247
  - docs/SfvbSecretRequestCreate.md
1248
1248
  - docs/SfvbSecretRequestsResponse.md
1249
1249
  - docs/SfvbSecretSink.md
1250
+ - docs/SfvbSequence.md
1251
+ - docs/SfvbSequenceBranch.md
1252
+ - docs/SfvbSequenceStep.md
1250
1253
  - docs/SfvbServerLog.md
1251
1254
  - docs/SfvbServerLogDetail.md
1252
1255
  - docs/SfvbServerLogEntry.md
@@ -2590,6 +2593,9 @@ files:
2590
2593
  - lib/ultracart_api/models/sfvb_secret_request_create.rb
2591
2594
  - lib/ultracart_api/models/sfvb_secret_requests_response.rb
2592
2595
  - lib/ultracart_api/models/sfvb_secret_sink.rb
2596
+ - lib/ultracart_api/models/sfvb_sequence.rb
2597
+ - lib/ultracart_api/models/sfvb_sequence_branch.rb
2598
+ - lib/ultracart_api/models/sfvb_sequence_step.rb
2593
2599
  - lib/ultracart_api/models/sfvb_server_log.rb
2594
2600
  - lib/ultracart_api/models/sfvb_server_log_detail.rb
2595
2601
  - lib/ultracart_api/models/sfvb_server_log_entry.rb