ultracart_api 4.1.200 → 4.1.201

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: 8c31b64268acb1092ec9ac34c018320da17be12077a1811a22dcfb40f8b2951a
4
- data.tar.gz: c0d2caf53984e3f593ea2ee5b09c9e2eec11dca7a501323fc16405720c4b8fb7
3
+ metadata.gz: 8eb0f77a073bc3b2d2b66f254190227539e919cfcae97ee88d4844a410922d84
4
+ data.tar.gz: 936959c530a9c85860e0c5e45d2a7ab24e85a101580f77dbd957ec0806923ccf
5
5
  SHA512:
6
- metadata.gz: 90e7180843483a64e17e273243889cb86e5450737eaa9a1e85cdca19fa0abaeb316bb018ab759619122a5b08fe16faf8b4284bcac3bd2ac3bb4293221fed5ccc
7
- data.tar.gz: ee10c6be44c3e4d95fe1b834ce9d8de9eb729873f7a4ce5cf639ffc64ebf40271d2bdef860eb9b0c90ef0b31cd204c6ff9e789fcee684441610ba0cccdf1dae6
6
+ metadata.gz: 492a6776f33223e9f198c4c8185a67b60f67ce0b13d3557b0d4d82b3c8aad2b36994799103b5026676701fbde6703284558280e42aa1ea47cf745fbf0788e62d
7
+ data.tar.gz: 5bcb498157c133ff90e73a6df2cbfe3d3ee2cd508a374df95d2322d21266477df836b3d6957a12c4b13993f7aad4cb119e0a49295488b4adaef669be521bb45b
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.200
10
+ - Package version: 4.1.201
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.200'
19
+ gem 'ultracart_api', '4.1.201'
20
20
  ```
21
21
 
22
22
  install:
@@ -521,6 +521,8 @@ Class | Method | HTTP request | Description
521
521
  *UltracartClient::SfvbApi* | [**get_sfvb_container**](docs/SfvbApi.md#get_sfvb_container) | **GET** /sfvb/storefronts/{storefront_oid}/containers/{owner_type}/{owner_object_id} | Read a container stored outside the file system
522
522
  *UltracartClient::SfvbApi* | [**get_sfvb_container_version**](docs/SfvbApi.md#get_sfvb_container_version) | **GET** /sfvb/storefronts/{storefront_oid}/container_versions/{container_history_oid} | Read the CJSON stored in one container history entry
523
523
  *UltracartClient::SfvbApi* | [**get_sfvb_element**](docs/SfvbApi.md#get_sfvb_element) | **GET** /sfvb/elements/{element_type} | Configuration schema and field card for one element type
524
+ *UltracartClient::SfvbApi* | [**get_sfvb_events**](docs/SfvbApi.md#get_sfvb_events) | **GET** /sfvb/events | Replay events
525
+ *UltracartClient::SfvbApi* | [**get_sfvb_events_authorization**](docs/SfvbApi.md#get_sfvb_events_authorization) | **PUT** /sfvb/events/auth | Open the event stream
524
526
  *UltracartClient::SfvbApi* | [**get_sfvb_experiment**](docs/SfvbApi.md#get_sfvb_experiment) | **GET** /sfvb/storefronts/{storefront_oid}/experiments/{experiment_oid} | Read one experiment and its statistics
525
527
  *UltracartClient::SfvbApi* | [**get_sfvb_experiment_objectives**](docs/SfvbApi.md#get_sfvb_experiment_objectives) | **GET** /sfvb/storefronts/{storefront_oid}/experiments/objectives | List the objectives an experiment can optimize
526
528
  *UltracartClient::SfvbApi* | [**get_sfvb_file_content**](docs/SfvbApi.md#get_sfvb_file_content) | **GET** /sfvb/storefronts/{storefront_oid}/files/content | Read a storefront file
@@ -1888,6 +1890,10 @@ Class | Method | HTTP request | Description
1888
1890
  - [UltracartClient::SfvbElementSchemaResponse](docs/SfvbElementSchemaResponse.md)
1889
1891
  - [UltracartClient::SfvbElementsResponse](docs/SfvbElementsResponse.md)
1890
1892
  - [UltracartClient::SfvbErrorDetail](docs/SfvbErrorDetail.md)
1893
+ - [UltracartClient::SfvbEvent](docs/SfvbEvent.md)
1894
+ - [UltracartClient::SfvbEventsAuthRequest](docs/SfvbEventsAuthRequest.md)
1895
+ - [UltracartClient::SfvbEventsAuthResponse](docs/SfvbEventsAuthResponse.md)
1896
+ - [UltracartClient::SfvbEventsResponse](docs/SfvbEventsResponse.md)
1891
1897
  - [UltracartClient::SfvbExperiment](docs/SfvbExperiment.md)
1892
1898
  - [UltracartClient::SfvbExperimentEndRequest](docs/SfvbExperimentEndRequest.md)
1893
1899
  - [UltracartClient::SfvbExperimentObjective](docs/SfvbExperimentObjective.md)
@@ -2244,6 +2250,7 @@ Not every change is committed to every SDK.
2244
2250
 
2245
2251
  | Version | Date | Comments |
2246
2252
  | --: | :-: | --- |
2253
+ | 4.1.201 | 10/12/2026 | sfvb internal testing |
2247
2254
  | 4.1.200 | 10/09/2026 | sfvb internal testing |
2248
2255
  | 4.1.199 | 10/08/2026 | sfvb internal testing |
2249
2256
  | 4.1.198 | 10/08/2026 | sfvb internal testing |
data/docs/SfvbApi.md CHANGED
@@ -49,6 +49,8 @@ All URIs are relative to *https://secure.ultracart.com/rest/v2*
49
49
  | [**get_sfvb_container**](SfvbApi.md#get_sfvb_container) | **GET** /sfvb/storefronts/{storefront_oid}/containers/{owner_type}/{owner_object_id} | Read a container stored outside the file system |
50
50
  | [**get_sfvb_container_version**](SfvbApi.md#get_sfvb_container_version) | **GET** /sfvb/storefronts/{storefront_oid}/container_versions/{container_history_oid} | Read the CJSON stored in one container history entry |
51
51
  | [**get_sfvb_element**](SfvbApi.md#get_sfvb_element) | **GET** /sfvb/elements/{element_type} | Configuration schema and field card for one element type |
52
+ | [**get_sfvb_events**](SfvbApi.md#get_sfvb_events) | **GET** /sfvb/events | Replay events |
53
+ | [**get_sfvb_events_authorization**](SfvbApi.md#get_sfvb_events_authorization) | **PUT** /sfvb/events/auth | Open the event stream |
52
54
  | [**get_sfvb_experiment**](SfvbApi.md#get_sfvb_experiment) | **GET** /sfvb/storefronts/{storefront_oid}/experiments/{experiment_oid} | Read one experiment and its statistics |
53
55
  | [**get_sfvb_experiment_objectives**](SfvbApi.md#get_sfvb_experiment_objectives) | **GET** /sfvb/storefronts/{storefront_oid}/experiments/objectives | List the objectives an experiment can optimize |
54
56
  | [**get_sfvb_file_content**](SfvbApi.md#get_sfvb_file_content) | **GET** /sfvb/storefronts/{storefront_oid}/files/content | Read a storefront file |
@@ -2141,7 +2143,7 @@ end
2141
2143
 
2142
2144
  End an experiment
2143
2145
 
2144
- Ends a running experiment. With winner_variation_number the winner gets every visitor, including visitors already assigned to another variation, and a page experiment's winning content is promoted into the page by the completion job on its next run, which also emails the merchant. Without a winner a page experiment's id is cleared from its page body so the page shows variation 0, and a url experiment sends everyone to variation 0. Always needs sfvb_publish, and the approval of the person who signed in the CLI - an approved experiment.end request for this experiment and winner, which always needs a fresh authenticator code (see POST /sfvb/approvals).
2146
+ Ends a running experiment. With winner_variation_number the winner gets every visitor, including visitors already assigned to another variation, and a page experiment's winning content is promoted into the page by the completion job on its next run, which also emails the merchant. Without a winner a page experiment's id is cleared from its page body so the page shows variation 0, and a url experiment sends everyone to variation 0. Always needs sfvb_publish, and the approval of the person who signed in the CLI - an approved experiment.end request for this experiment and winner. An end with a winner always needs a fresh authenticator code; an end without a winner can be covered by the person's approval session (see POST /sfvb/approvals).
2145
2147
 
2146
2148
 
2147
2149
  ### Examples
@@ -2620,6 +2622,114 @@ end
2620
2622
  - **Accept**: application/json
2621
2623
 
2622
2624
 
2625
+ ## get_sfvb_events
2626
+
2627
+ > <SfvbEventsResponse> get_sfvb_events(opts)
2628
+
2629
+ Replay events
2630
+
2631
+ The signed-in person's events after the cursor, oldest first. Events are kept 72 hours; an older cursor returns resync_required, and then the caller re-lists what it was waiting on. Events about one sign-in's requests, such as approvals, are only returned to that sign-in. limit is 1 to 500, default 100.
2632
+
2633
+
2634
+ ### Examples
2635
+
2636
+
2637
+ (No example for this operation).
2638
+
2639
+
2640
+ #### Using the get_sfvb_events_with_http_info variant
2641
+
2642
+ This returns an Array which contains the response data, status code and headers.
2643
+
2644
+ > <Array(<SfvbEventsResponse>, Integer, Hash)> get_sfvb_events_with_http_info(opts)
2645
+
2646
+ ```ruby
2647
+ begin
2648
+ # Replay events
2649
+ data, status_code, headers = api_instance.get_sfvb_events_with_http_info(opts)
2650
+ p status_code # => 2xx
2651
+ p headers # => { ... }
2652
+ p data # => <SfvbEventsResponse>
2653
+ rescue UltracartClient::ApiError => e
2654
+ puts "Error when calling SfvbApi->get_sfvb_events_with_http_info: #{e}"
2655
+ end
2656
+ ```
2657
+
2658
+ ### Parameters
2659
+
2660
+ | Name | Type | Description | Notes |
2661
+ | ---- | ---- | ----------- | ----- |
2662
+ | **after** | **String** | Return events after this event_id. Leave it out for every event kept. | [optional] |
2663
+ | **storefront_oid** | **Integer** | Only events about this storefront, plus merchant-level ones. | [optional] |
2664
+ | **limit** | **Integer** | At most this many events, 1 to 500. | [optional] |
2665
+
2666
+ ### Return type
2667
+
2668
+ [**SfvbEventsResponse**](SfvbEventsResponse.md)
2669
+
2670
+ ### Authorization
2671
+
2672
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
2673
+
2674
+ ### HTTP request headers
2675
+
2676
+ - **Content-Type**: Not defined
2677
+ - **Accept**: application/json
2678
+
2679
+
2680
+ ## get_sfvb_events_authorization
2681
+
2682
+ > <SfvbEventsAuthResponse> get_sfvb_events_authorization(opts)
2683
+
2684
+ Open the event stream
2685
+
2686
+ Returns a websocket URL and a single-use token, valid for 5 minutes, for the signed-in person's event stream. Events are thin hints, type and ids only, and the stream is at most once. Re-read the object before acting, and after every reconnect replay from the last event_id with GET events. Send ping messages to keep the connection open, and reconnect with a new token before two hours. Requires a token that resolves to a user, so use the device authorization flow.
2687
+
2688
+
2689
+ ### Examples
2690
+
2691
+
2692
+ (No example for this operation).
2693
+
2694
+
2695
+ #### Using the get_sfvb_events_authorization_with_http_info variant
2696
+
2697
+ This returns an Array which contains the response data, status code and headers.
2698
+
2699
+ > <Array(<SfvbEventsAuthResponse>, Integer, Hash)> get_sfvb_events_authorization_with_http_info(opts)
2700
+
2701
+ ```ruby
2702
+ begin
2703
+ # Open the event stream
2704
+ data, status_code, headers = api_instance.get_sfvb_events_authorization_with_http_info(opts)
2705
+ p status_code # => 2xx
2706
+ p headers # => { ... }
2707
+ p data # => <SfvbEventsAuthResponse>
2708
+ rescue UltracartClient::ApiError => e
2709
+ puts "Error when calling SfvbApi->get_sfvb_events_authorization_with_http_info: #{e}"
2710
+ end
2711
+ ```
2712
+
2713
+ ### Parameters
2714
+
2715
+ | Name | Type | Description | Notes |
2716
+ | ---- | ---- | ----------- | ----- |
2717
+ | **events_auth_request** | [**SfvbEventsAuthRequest**](SfvbEventsAuthRequest.md) | Optional storefront filter | [optional] |
2718
+
2719
+ ### Return type
2720
+
2721
+ [**SfvbEventsAuthResponse**](SfvbEventsAuthResponse.md)
2722
+
2723
+ ### Authorization
2724
+
2725
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
2726
+
2727
+ ### HTTP request headers
2728
+
2729
+ - **Content-Type**: application/json; charset=UTF-8
2730
+ - **Accept**: application/json
2731
+
2732
+
2623
2733
  ## get_sfvb_experiment
2624
2734
 
2625
2735
  > <SfvbExperiment> get_sfvb_experiment(storefront_oid, experiment_oid, opts)
@@ -3602,7 +3712,7 @@ end
3602
3712
 
3603
3713
  List the paths that answered 404
3604
3714
 
3605
- The paths shoppers asked for that answered 404, most hits first or by last_seen. Paths only, never query strings. Bots are left out unless include_bots. Token-like path segments show as {token} unless include_tokens. limit is 1 to 100, default 50.
3715
+ The paths shoppers asked for that answered 404, most hits first or by last_seen. Paths only, never query strings. Bots are left out unless include_bots. Token-like path segments show as {token} unless include_tokens. A path stays listed after a redirect rule catches it, with redirected_to set. redirected=false lists only paths no rule catches yet, and redirected=true only those one does. limit is 1 to 100, default 50.
3606
3716
 
3607
3717
 
3608
3718
  ### Examples
@@ -3640,6 +3750,7 @@ end
3640
3750
  | **include_tokens** | **Boolean** | | [optional] |
3641
3751
  | **q** | **String** | | [optional] |
3642
3752
  | **limit** | **Integer** | | [optional] |
3753
+ | **redirected** | **Boolean** | | [optional] |
3643
3754
 
3644
3755
  ### Return type
3645
3756
 
@@ -6564,7 +6675,7 @@ end
6564
6675
 
6565
6676
  Change one built-in message
6566
6677
 
6567
- Sets one message in any number of languages. ENG replaces the English, which drops its machine translations so they regenerate. Any other language becomes a hand translation. Languages not named are left alone; empty text is refused. Shoppers see it at once. Always needs sfvb_publish.
6678
+ Sets one message in any number of languages. ENG replaces the English, which drops its machine translations so they regenerate. Any other language becomes a hand translation. Languages not named are left alone. Empty text removes that language's translation so machine translation fills it again (not allowed for ENG); it is the undo for an imported message, which can't be reset. Shoppers see it at once. Always needs sfvb_publish.
6568
6679
 
6569
6680
 
6570
6681
  ### Examples
@@ -8,7 +8,7 @@
8
8
  | **comment** | **String** | Comment recorded with the write that replaced this version. | [optional] |
9
9
  | **container_history_oid** | **Integer** | History record oid. Pass to the revert operation on the owning container. Absent on the entry marked current, which holds the value stored right now, has no history row of its own, and so cannot be fetched or reverted to. | [optional] |
10
10
  | **container_name** | **String** | Container name, where the owner has more than one container. | [optional] |
11
- | **created_dts** | **String** | When this snapshot was taken. | [optional] |
11
+ | **created_dts** | **String** | When this snapshot was taken, ISO 8601 UTC. | [optional] |
12
12
  | **current** | **Boolean** | True for the value currently stored. | [optional] |
13
13
  | **edited_by** | **String** | Login of whoever caused this snapshot. | [optional] |
14
14
  | **hash_sha256** | **String** | SHA-256 of this version&#39;s CJSON. | [optional] |
data/docs/SfvbEvent.md ADDED
@@ -0,0 +1,28 @@
1
+ # UltracartClient::SfvbEvent
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **event_dts** | **String** | When it happened, ISO 8601. | [optional] |
8
+ | **event_id** | **String** | Time-ordered id. Pass the last one seen as after to replay what came since. | [optional] |
9
+ | **object_id** | **String** | The id of what changed, such as the approval_id. | [optional] |
10
+ | **object_type** | **String** | What changed, such as approval. | [optional] |
11
+ | **storefront_oid** | **Integer** | The storefront it concerns. Empty for merchant-level objects. | [optional] |
12
+ | **type** | **String** | approval.decided (approved, denied, cancelled or refused by the script review) or approval.ready (the review finished and the person can decide). | [optional] |
13
+
14
+ ## Example
15
+
16
+ ```ruby
17
+ require 'ultracart_api'
18
+
19
+ instance = UltracartClient::SfvbEvent.new(
20
+ event_dts: null,
21
+ event_id: null,
22
+ object_id: null,
23
+ object_type: null,
24
+ storefront_oid: null,
25
+ type: null
26
+ )
27
+ ```
28
+
@@ -0,0 +1,18 @@
1
+ # UltracartClient::SfvbEventsAuthRequest
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **storefront_oids** | **Array&lt;Integer&gt;** | Only events about these storefronts, plus merchant-level ones. Leave it out for every storefront. | [optional] |
8
+
9
+ ## Example
10
+
11
+ ```ruby
12
+ require 'ultracart_api'
13
+
14
+ instance = UltracartClient::SfvbEventsAuthRequest.new(
15
+ storefront_oids: null
16
+ )
17
+ ```
18
+
@@ -0,0 +1,22 @@
1
+ # UltracartClient::SfvbEventsAuthResponse
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **expires_dts** | **String** | When the token stops working, ISO 8601. Ask for a new one to reconnect. | [optional] |
8
+ | **jwt** | **String** | The connect token on its own. | [optional] |
9
+ | **websocket_url** | **String** | The websocket URL to open, with the token on it. Open it before expires_dts; each token opens one connection. | [optional] |
10
+
11
+ ## Example
12
+
13
+ ```ruby
14
+ require 'ultracart_api'
15
+
16
+ instance = UltracartClient::SfvbEventsAuthResponse.new(
17
+ expires_dts: null,
18
+ jwt: null,
19
+ websocket_url: null
20
+ )
21
+ ```
22
+
@@ -0,0 +1,22 @@
1
+ # UltracartClient::SfvbEventsResponse
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **events** | [**Array&lt;SfvbEvent&gt;**](SfvbEvent.md) | Oldest first. | [optional] |
8
+ | **more** | **Boolean** | True when more events follow. Ask again with after set to the last event_id. | [optional] |
9
+ | **resync_required** | **Boolean** | True when the cursor is older than the 72 hours of events kept. Re-list what you were waiting on instead of replaying. | [optional] |
10
+
11
+ ## Example
12
+
13
+ ```ruby
14
+ require 'ultracart_api'
15
+
16
+ instance = UltracartClient::SfvbEventsResponse.new(
17
+ events: null,
18
+ more: null,
19
+ resync_required: null
20
+ )
21
+ ```
22
+
@@ -5,7 +5,7 @@
5
5
  | Name | Type | Description | Notes |
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **language** | **String** | The language code. ENG changes the English source, which clears its machine translations. | [optional] |
8
- | **text** | **String** | The new text. Empty text is refused; reset the message instead. | [optional] |
8
+ | **text** | **String** | The new text. Empty text removes this language&#39;s translation, so it goes back to machine translation. Empty English text is refused. | [optional] |
9
9
 
10
10
  ## Example
11
11
 
@@ -7,13 +7,13 @@
7
7
  | **complete** | **Boolean** | True once the job has stopped, whether it succeeded or failed. | [optional] |
8
8
  | **description** | **String** | Human readable description of the job. | [optional] |
9
9
  | **error_message** | **String** | What to do next when the job did not produce a theme. The internal cause is not returned; it is recorded against the job id in the server log. | [optional] |
10
- | **finished_dts** | **String** | When the job stopped. Null until it does. | [optional] |
10
+ | **finished_dts** | **String** | When the job stopped, ISO 8601 UTC. Null until it does. | [optional] |
11
11
  | **job_id** | **Integer** | Job handle. Poll getSfvbThemeJob with this. | [optional] |
12
12
  | **progress** | **Integer** | Percent complete, 0-100. | [optional] |
13
13
  | **progress_description** | **String** | What the job is doing right now, for example &#39;Duplicating locale text&#39;. | [optional] |
14
- | **started_dts** | **String** | When the job started running. Null until it does. | [optional] |
14
+ | **started_dts** | **String** | When the job started running, ISO 8601 UTC. Null until it does. | [optional] |
15
15
  | **status** | **String** | Raw job status. | [optional] |
16
- | **submitted_dts** | **String** | When the job was queued. | [optional] |
16
+ | **submitted_dts** | **String** | When the job was queued, ISO 8601 UTC. | [optional] |
17
17
  | **success** | **Boolean** | True only when the job finished successfully. Check complete first. | [optional] |
18
18
  | **target_path** | **String** | Path the new theme is being created at. Returned when the job is started and on every poll, so you do not have to keep the response that started it. The theme oid itself is NOT returned, so once the job completes you list themes and match on this path. It is also what success is checked against - a finished job whose theme is not here reports success false rather than pretending. | [optional] |
19
19
 
@@ -2725,7 +2725,7 @@ module UltracartClient
2725
2725
  end
2726
2726
 
2727
2727
  # End an experiment
2728
- # Ends a running experiment. With winner_variation_number the winner gets every visitor, including visitors already assigned to another variation, and a page experiment's winning content is promoted into the page by the completion job on its next run, which also emails the merchant. Without a winner a page experiment's id is cleared from its page body so the page shows variation 0, and a url experiment sends everyone to variation 0. Always needs sfvb_publish, and the approval of the person who signed in the CLI - an approved experiment.end request for this experiment and winner, which always needs a fresh authenticator code (see POST /sfvb/approvals).
2728
+ # Ends a running experiment. With winner_variation_number the winner gets every visitor, including visitors already assigned to another variation, and a page experiment's winning content is promoted into the page by the completion job on its next run, which also emails the merchant. Without a winner a page experiment's id is cleared from its page body so the page shows variation 0, and a url experiment sends everyone to variation 0. Always needs sfvb_publish, and the approval of the person who signed in the CLI - an approved experiment.end request for this experiment and winner. An end with a winner always needs a fresh authenticator code; an end without a winner can be covered by the person's approval session (see POST /sfvb/approvals).
2729
2729
  # @param storefront_oid [Integer]
2730
2730
  # @param experiment_oid [Integer]
2731
2731
  # @param [Hash] opts the optional parameters
@@ -2738,7 +2738,7 @@ module UltracartClient
2738
2738
  end
2739
2739
 
2740
2740
  # End an experiment
2741
- # Ends a running experiment. With winner_variation_number the winner gets every visitor, including visitors already assigned to another variation, and a page experiment&#39;s winning content is promoted into the page by the completion job on its next run, which also emails the merchant. Without a winner a page experiment&#39;s id is cleared from its page body so the page shows variation 0, and a url experiment sends everyone to variation 0. Always needs sfvb_publish, and the approval of the person who signed in the CLI - an approved experiment.end request for this experiment and winner, which always needs a fresh authenticator code (see POST /sfvb/approvals).
2741
+ # Ends a running experiment. With winner_variation_number the winner gets every visitor, including visitors already assigned to another variation, and a page experiment&#39;s winning content is promoted into the page by the completion job on its next run, which also emails the merchant. Without a winner a page experiment&#39;s id is cleared from its page body so the page shows variation 0, and a url experiment sends everyone to variation 0. Always needs sfvb_publish, and the approval of the person who signed in the CLI - an approved experiment.end request for this experiment and winner. An end with a winner always needs a fresh authenticator code; an end without a winner can be covered by the person&#39;s approval session (see POST /sfvb/approvals).
2742
2742
  # @param storefront_oid [Integer]
2743
2743
  # @param experiment_oid [Integer]
2744
2744
  # @param [Hash] opts the optional parameters
@@ -3355,6 +3355,138 @@ module UltracartClient
3355
3355
  return data, status_code, headers
3356
3356
  end
3357
3357
 
3358
+ # Replay events
3359
+ # The signed-in person's events after the cursor, oldest first. Events are kept 72 hours; an older cursor returns resync_required, and then the caller re-lists what it was waiting on. Events about one sign-in's requests, such as approvals, are only returned to that sign-in. limit is 1 to 500, default 100.
3360
+ # @param [Hash] opts the optional parameters
3361
+ # @option opts [String] :after Return events after this event_id. Leave it out for every event kept.
3362
+ # @option opts [Integer] :storefront_oid Only events about this storefront, plus merchant-level ones.
3363
+ # @option opts [Integer] :limit At most this many events, 1 to 500.
3364
+ # @return [SfvbEventsResponse]
3365
+ def get_sfvb_events(opts = {})
3366
+ data, _status_code, _headers = get_sfvb_events_with_http_info(opts)
3367
+ data
3368
+ end
3369
+
3370
+ # Replay events
3371
+ # The signed-in person&#39;s events after the cursor, oldest first. Events are kept 72 hours; an older cursor returns resync_required, and then the caller re-lists what it was waiting on. Events about one sign-in&#39;s requests, such as approvals, are only returned to that sign-in. limit is 1 to 500, default 100.
3372
+ # @param [Hash] opts the optional parameters
3373
+ # @option opts [String] :after Return events after this event_id. Leave it out for every event kept.
3374
+ # @option opts [Integer] :storefront_oid Only events about this storefront, plus merchant-level ones.
3375
+ # @option opts [Integer] :limit At most this many events, 1 to 500.
3376
+ # @return [Array<(SfvbEventsResponse, Integer, Hash)>] SfvbEventsResponse data, response status code and response headers
3377
+ def get_sfvb_events_with_http_info(opts = {})
3378
+ if @api_client.config.debugging
3379
+ @api_client.config.logger.debug 'Calling API: SfvbApi.get_sfvb_events ...'
3380
+ end
3381
+ # resource path
3382
+ local_var_path = '/sfvb/events'
3383
+
3384
+ # query parameters
3385
+ query_params = opts[:query_params] || {}
3386
+ query_params[:'after'] = opts[:'after'] if !opts[:'after'].nil?
3387
+ query_params[:'storefront_oid'] = opts[:'storefront_oid'] if !opts[:'storefront_oid'].nil?
3388
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
3389
+
3390
+ # header parameters
3391
+ header_params = opts[:header_params] || {}
3392
+ header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
3393
+ # HTTP header 'Accept' (if needed)
3394
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
3395
+
3396
+ # form parameters
3397
+ form_params = opts[:form_params] || {}
3398
+
3399
+ # http body (model)
3400
+ post_body = opts[:debug_body]
3401
+
3402
+ # return_type
3403
+ return_type = opts[:debug_return_type] || 'SfvbEventsResponse'
3404
+
3405
+ # auth_names
3406
+ auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
3407
+
3408
+ new_options = opts.merge(
3409
+ :operation => :"SfvbApi.get_sfvb_events",
3410
+ :header_params => header_params,
3411
+ :query_params => query_params,
3412
+ :form_params => form_params,
3413
+ :body => post_body,
3414
+ :auth_names => auth_names,
3415
+ :return_type => return_type
3416
+ )
3417
+
3418
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
3419
+ if @api_client.config.debugging
3420
+ @api_client.config.logger.debug "API called: SfvbApi#get_sfvb_events\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
3421
+ end
3422
+ return data, status_code, headers
3423
+ end
3424
+
3425
+ # Open the event stream
3426
+ # Returns a websocket URL and a single-use token, valid for 5 minutes, for the signed-in person's event stream. Events are thin hints, type and ids only, and the stream is at most once. Re-read the object before acting, and after every reconnect replay from the last event_id with GET events. Send ping messages to keep the connection open, and reconnect with a new token before two hours. Requires a token that resolves to a user, so use the device authorization flow.
3427
+ # @param [Hash] opts the optional parameters
3428
+ # @option opts [SfvbEventsAuthRequest] :events_auth_request Optional storefront filter
3429
+ # @return [SfvbEventsAuthResponse]
3430
+ def get_sfvb_events_authorization(opts = {})
3431
+ data, _status_code, _headers = get_sfvb_events_authorization_with_http_info(opts)
3432
+ data
3433
+ end
3434
+
3435
+ # Open the event stream
3436
+ # Returns a websocket URL and a single-use token, valid for 5 minutes, for the signed-in person&#39;s event stream. Events are thin hints, type and ids only, and the stream is at most once. Re-read the object before acting, and after every reconnect replay from the last event_id with GET events. Send ping messages to keep the connection open, and reconnect with a new token before two hours. Requires a token that resolves to a user, so use the device authorization flow.
3437
+ # @param [Hash] opts the optional parameters
3438
+ # @option opts [SfvbEventsAuthRequest] :events_auth_request Optional storefront filter
3439
+ # @return [Array<(SfvbEventsAuthResponse, Integer, Hash)>] SfvbEventsAuthResponse data, response status code and response headers
3440
+ def get_sfvb_events_authorization_with_http_info(opts = {})
3441
+ if @api_client.config.debugging
3442
+ @api_client.config.logger.debug 'Calling API: SfvbApi.get_sfvb_events_authorization ...'
3443
+ end
3444
+ # resource path
3445
+ local_var_path = '/sfvb/events/auth'
3446
+
3447
+ # query parameters
3448
+ query_params = opts[:query_params] || {}
3449
+
3450
+ # header parameters
3451
+ header_params = opts[:header_params] || {}
3452
+ header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
3453
+ # HTTP header 'Accept' (if needed)
3454
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
3455
+ # HTTP header 'Content-Type'
3456
+ content_type = @api_client.select_header_content_type(['application/json; charset=UTF-8'])
3457
+ if !content_type.nil?
3458
+ header_params['Content-Type'] = content_type
3459
+ end
3460
+
3461
+ # form parameters
3462
+ form_params = opts[:form_params] || {}
3463
+
3464
+ # http body (model)
3465
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'events_auth_request'])
3466
+
3467
+ # return_type
3468
+ return_type = opts[:debug_return_type] || 'SfvbEventsAuthResponse'
3469
+
3470
+ # auth_names
3471
+ auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
3472
+
3473
+ new_options = opts.merge(
3474
+ :operation => :"SfvbApi.get_sfvb_events_authorization",
3475
+ :header_params => header_params,
3476
+ :query_params => query_params,
3477
+ :form_params => form_params,
3478
+ :body => post_body,
3479
+ :auth_names => auth_names,
3480
+ :return_type => return_type
3481
+ )
3482
+
3483
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
3484
+ if @api_client.config.debugging
3485
+ @api_client.config.logger.debug "API called: SfvbApi#get_sfvb_events_authorization\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
3486
+ end
3487
+ return data, status_code, headers
3488
+ end
3489
+
3358
3490
  # Read one experiment and its statistics
3359
3491
  # The experiment, its variations and their statistics, and with daily=true each variation's daily rows. p95_sessions_needed is estimated only after 1000 sessions, and sessions_needed_computed_dts says when. For a url experiment, router_url is the address visitors must enter through.
3360
3492
  # @param storefront_oid [Integer]
@@ -4595,7 +4727,7 @@ module UltracartClient
4595
4727
  end
4596
4728
 
4597
4729
  # List the paths that answered 404
4598
- # The paths shoppers asked for that answered 404, most hits first or by last_seen. Paths only, never query strings. Bots are left out unless include_bots. Token-like path segments show as {token} unless include_tokens. limit is 1 to 100, default 50.
4730
+ # The paths shoppers asked for that answered 404, most hits first or by last_seen. Paths only, never query strings. Bots are left out unless include_bots. Token-like path segments show as {token} unless include_tokens. A path stays listed after a redirect rule catches it, with redirected_to set. redirected=false lists only paths no rule catches yet, and redirected=true only those one does. limit is 1 to 100, default 50.
4599
4731
  # @param storefront_oid [Integer]
4600
4732
  # @param [Hash] opts the optional parameters
4601
4733
  # @option opts [String] :since
@@ -4604,6 +4736,7 @@ module UltracartClient
4604
4736
  # @option opts [Boolean] :include_tokens
4605
4737
  # @option opts [String] :q
4606
4738
  # @option opts [Integer] :limit
4739
+ # @option opts [Boolean] :redirected
4607
4740
  # @return [SfvbNotFoundResponse]
4608
4741
  def get_sfvb_not_found(storefront_oid, opts = {})
4609
4742
  data, _status_code, _headers = get_sfvb_not_found_with_http_info(storefront_oid, opts)
@@ -4611,7 +4744,7 @@ module UltracartClient
4611
4744
  end
4612
4745
 
4613
4746
  # List the paths that answered 404
4614
- # The paths shoppers asked for that answered 404, most hits first or by last_seen. Paths only, never query strings. Bots are left out unless include_bots. Token-like path segments show as {token} unless include_tokens. limit is 1 to 100, default 50.
4747
+ # The paths shoppers asked for that answered 404, most hits first or by last_seen. Paths only, never query strings. Bots are left out unless include_bots. Token-like path segments show as {token} unless include_tokens. A path stays listed after a redirect rule catches it, with redirected_to set. redirected&#x3D;false lists only paths no rule catches yet, and redirected&#x3D;true only those one does. limit is 1 to 100, default 50.
4615
4748
  # @param storefront_oid [Integer]
4616
4749
  # @param [Hash] opts the optional parameters
4617
4750
  # @option opts [String] :since
@@ -4620,6 +4753,7 @@ module UltracartClient
4620
4753
  # @option opts [Boolean] :include_tokens
4621
4754
  # @option opts [String] :q
4622
4755
  # @option opts [Integer] :limit
4756
+ # @option opts [Boolean] :redirected
4623
4757
  # @return [Array<(SfvbNotFoundResponse, Integer, Hash)>] SfvbNotFoundResponse data, response status code and response headers
4624
4758
  def get_sfvb_not_found_with_http_info(storefront_oid, opts = {})
4625
4759
  if @api_client.config.debugging
@@ -4640,6 +4774,7 @@ module UltracartClient
4640
4774
  query_params[:'include_tokens'] = opts[:'include_tokens'] if !opts[:'include_tokens'].nil?
4641
4775
  query_params[:'q'] = opts[:'q'] if !opts[:'q'].nil?
4642
4776
  query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
4777
+ query_params[:'redirected'] = opts[:'redirected'] if !opts[:'redirected'].nil?
4643
4778
 
4644
4779
  # header parameters
4645
4780
  header_params = opts[:header_params] || {}
@@ -8552,7 +8687,7 @@ module UltracartClient
8552
8687
  end
8553
8688
 
8554
8689
  # Change one built-in message
8555
- # Sets one message in any number of languages. ENG replaces the English, which drops its machine translations so they regenerate. Any other language becomes a hand translation. Languages not named are left alone; empty text is refused. Shoppers see it at once. Always needs sfvb_publish.
8690
+ # Sets one message in any number of languages. ENG replaces the English, which drops its machine translations so they regenerate. Any other language becomes a hand translation. Languages not named are left alone. Empty text removes that language's translation so machine translation fills it again (not allowed for ENG); it is the undo for an imported message, which can't be reset. Shoppers see it at once. Always needs sfvb_publish.
8556
8691
  # @param storefront_oid [Integer]
8557
8692
  # @param key [String]
8558
8693
  # @param if_match [String] hash_sha256 from the last read. Required; 428 when absent, 412 when stale.
@@ -8566,7 +8701,7 @@ module UltracartClient
8566
8701
  end
8567
8702
 
8568
8703
  # Change one built-in message
8569
- # Sets one message in any number of languages. ENG replaces the English, which drops its machine translations so they regenerate. Any other language becomes a hand translation. Languages not named are left alone; empty text is refused. Shoppers see it at once. Always needs sfvb_publish.
8704
+ # Sets one message in any number of languages. ENG replaces the English, which drops its machine translations so they regenerate. Any other language becomes a hand translation. Languages not named are left alone. Empty text removes that language&#39;s translation so machine translation fills it again (not allowed for ENG); it is the undo for an imported message, which can&#39;t be reset. Shoppers see it at once. Always needs sfvb_publish.
8570
8705
  # @param storefront_oid [Integer]
8571
8706
  # @param key [String]
8572
8707
  # @param if_match [String] hash_sha256 from the last read. Required; 428 when absent, 412 when stale.
@@ -27,7 +27,7 @@ module UltracartClient
27
27
  # Container name, where the owner has more than one container.
28
28
  attr_accessor :container_name
29
29
 
30
- # When this snapshot was taken.
30
+ # When this snapshot was taken, ISO 8601 UTC.
31
31
  attr_accessor :created_dts
32
32
 
33
33
  # True for the value currently stored.