ultracart_api 4.1.150 → 4.1.152

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +18 -2
  3. data/docs/ConversationAgentTestSessionJoinRequest.md +18 -0
  4. data/docs/ConversationAgentTestSessionRequest.md +24 -0
  5. data/docs/ConversationAgentTestSessionResponse.md +32 -0
  6. data/docs/ConversationApi.md +111 -0
  7. data/docs/ConversationCustomerAuth.md +30 -0
  8. data/docs/SfvbApi.md +111 -0
  9. data/docs/SfvbThemeAttribute.md +34 -0
  10. data/docs/SfvbThemeAttributeUpdate.md +24 -0
  11. data/docs/SfvbThemeAttributeUpdateRequest.md +18 -0
  12. data/docs/SfvbThemeAttributesResponse.md +24 -0
  13. data/docs/SfvbThemeFont.md +22 -0
  14. data/docs/SfvbThemeFontFamily.md +22 -0
  15. data/lib/ultracart_api/api/conversation_api.rb +156 -0
  16. data/lib/ultracart_api/api/sfvb_api.rb +151 -0
  17. data/lib/ultracart_api/models/conversation_agent_test_session_join_request.rb +220 -0
  18. data/lib/ultracart_api/models/conversation_agent_test_session_request.rb +250 -0
  19. data/lib/ultracart_api/models/conversation_agent_test_session_response.rb +285 -0
  20. data/lib/ultracart_api/models/conversation_customer_auth.rb +273 -0
  21. data/lib/ultracart_api/models/sfvb_theme_attribute.rb +333 -0
  22. data/lib/ultracart_api/models/sfvb_theme_attribute_update.rb +283 -0
  23. data/lib/ultracart_api/models/sfvb_theme_attribute_update_request.rb +222 -0
  24. data/lib/ultracart_api/models/sfvb_theme_attributes_response.rb +252 -0
  25. data/lib/ultracart_api/models/sfvb_theme_font.rb +242 -0
  26. data/lib/ultracart_api/models/sfvb_theme_font_family.rb +274 -0
  27. data/lib/ultracart_api/version.rb +1 -1
  28. data/lib/ultracart_api.rb +10 -0
  29. metadata +22 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0dd10e0e13b853be44db9716b0141fab32c531e40f176c6e6e116107da27464e
4
- data.tar.gz: 551f2e71eef3b0d331b0599f79113a70c50ce1e610135a6b4b1cb0ba34cc7431
3
+ metadata.gz: f0ea0de2841710ce3dec7e18831851afe0ed6050c7032c7fb438545e70dfd728
4
+ data.tar.gz: fdd7b997d12a5ad7e6e554fba251212dc8385dc0f33ab34d8994613dd8edb224
5
5
  SHA512:
6
- metadata.gz: 1a1fea1e8d56f3a4ce8e45a3bec035bb1044e5fef96f3b3afc8eef8723c07d48f0f498e7d2c27b3e0cdf992876e0dd7db75cd16625fb94780cb6f0d87930cec0
7
- data.tar.gz: 18df8e1fdbf9bc225af078d8259641e2930491d5fbec6b3fcdf0b48a506ec17a35aa7ab20c99b57f7088e1097d790467058f032953b20b54915e1d90ca61c0ad
6
+ metadata.gz: 07e8aa7717a139f16a11934a5935d4c373fc14ad444ceb8ee9d239aec4ba0b14e60a5144027001c41db199316ac082ffc0c8228672050bd47efb8d1ee3777bd2
7
+ data.tar.gz: 36700814e5460576a8233647604a6a7fcfa744079b364b81ad0ef0785eef69183fcf3db282a7ada0a060baf0ae1b165cc287e938fac601d24c85a6a788777225
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.150
10
+ - Package version: 4.1.152
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.150'
19
+ gem 'ultracart_api', '4.1.152'
20
20
  ```
21
21
 
22
22
  install:
@@ -252,6 +252,7 @@ Class | Method | HTTP request | Description
252
252
  *UltracartClient::ConversationApi* | [**insert_pbx_time_range**](docs/ConversationApi.md#insert_pbx_time_range) | **POST** /conversation/pbx/time_range | Insert pbx timeRange
253
253
  *UltracartClient::ConversationApi* | [**insert_pbx_voicemail_mailbox**](docs/ConversationApi.md#insert_pbx_voicemail_mailbox) | **POST** /conversation/pbx/voicemail_mailbox | Insert pbx voicemailMailbox
254
254
  *UltracartClient::ConversationApi* | [**insert_user_pbx_audio**](docs/ConversationApi.md#insert_user_pbx_audio) | **POST** /conversation/pbx/audio/user | Insert user pbx audio
255
+ *UltracartClient::ConversationApi* | [**join_agent_test_session**](docs/ConversationApi.md#join_agent_test_session) | **PUT** /conversation/agent/profiles/{user_id}/test_session/{conversation_uuid}/join | Join a test conversation as the simulated customer
255
256
  *UltracartClient::ConversationApi* | [**join_conversation**](docs/ConversationApi.md#join_conversation) | **PUT** /conversation/conversations/{conversation_uuid}/join | Join a conversation
256
257
  *UltracartClient::ConversationApi* | [**leave_conversation**](docs/ConversationApi.md#leave_conversation) | **DELETE** /conversation/conversations/{conversation_uuid}/leave | Leave a conversation
257
258
  *UltracartClient::ConversationApi* | [**listened_pbx_agent_voicemail**](docs/ConversationApi.md#listened_pbx_agent_voicemail) | **GET** /conversation/pbx/agent/voicemails/{recording_sid}/listened | Listened Agent Voicemail
@@ -267,6 +268,7 @@ Class | Method | HTTP request | Description
267
268
  *UltracartClient::ConversationApi* | [**search_pbx_available_phone_numbers**](docs/ConversationApi.md#search_pbx_available_phone_numbers) | **GET** /conversation/pbx/phone_number/search | Search for available phone numbers
268
269
  *UltracartClient::ConversationApi* | [**search_pbx_calls**](docs/ConversationApi.md#search_pbx_calls) | **POST** /conversation/pbx/call/search | Search pbx call records
269
270
  *UltracartClient::ConversationApi* | [**sms_unsubscribe_conversation**](docs/ConversationApi.md#sms_unsubscribe_conversation) | **PUT** /conversation/conversations/{conversation_uuid}/sms_unsubscribe | Unsubscribe any SMS participants in this conversation
271
+ *UltracartClient::ConversationApi* | [**start_agent_test_session**](docs/ConversationApi.md#start_agent_test_session) | **PUT** /conversation/agent/profiles/{user_id}/test_session | Start a test conversation with this AI agent
270
272
  *UltracartClient::ConversationApi* | [**start_conversation**](docs/ConversationApi.md#start_conversation) | **PUT** /conversation/conversations | Start a conversation
271
273
  *UltracartClient::ConversationApi* | [**update_agent_profile**](docs/ConversationApi.md#update_agent_profile) | **PUT** /conversation/agent/profile | Update agent profile
272
274
  *UltracartClient::ConversationApi* | [**update_agent_profile_mcp**](docs/ConversationApi.md#update_agent_profile_mcp) | **POST** /conversation/agent/profiles/{user_id}/mcps/{mcp_server_uuid} | Update an agent MCP server
@@ -485,6 +487,7 @@ Class | Method | HTTP request | Description
485
487
  *UltracartClient::SfvbApi* | [**get_sfvb_library_entry**](docs/SfvbApi.md#get_sfvb_library_entry) | **GET** /sfvb/storefronts/{storefront_oid}/library/{library_oid} | Read one library entry including its CJSON
486
488
  *UltracartClient::SfvbApi* | [**get_sfvb_preview_url**](docs/SfvbApi.md#get_sfvb_preview_url) | **GET** /sfvb/storefronts/{storefront_oid}/preview_sessions/{preview_session_id}/url | URL that renders a preview session
487
489
  *UltracartClient::SfvbApi* | [**get_sfvb_theme**](docs/SfvbApi.md#get_sfvb_theme) | **GET** /sfvb/storefronts/{storefront_oid}/themes/{theme_oid} | Get a theme
490
+ *UltracartClient::SfvbApi* | [**get_sfvb_theme_attributes**](docs/SfvbApi.md#get_sfvb_theme_attributes) | **GET** /sfvb/storefronts/{storefront_oid}/themes/{theme_oid}/attributes | Read a theme's colors, fonts and settings
488
491
  *UltracartClient::SfvbApi* | [**get_sfvb_theme_job**](docs/SfvbApi.md#get_sfvb_theme_job) | **GET** /sfvb/storefronts/{storefront_oid}/theme_jobs/{job_id} | Status of an asynchronous theme job
489
492
  *UltracartClient::SfvbApi* | [**get_sfvb_version**](docs/SfvbApi.md#get_sfvb_version) | **GET** /sfvb/version | Compiler version for this merchant
490
493
  *UltracartClient::SfvbApi* | [**get_sfvb_whoami**](docs/SfvbApi.md#get_sfvb_whoami) | **GET** /sfvb/whoami | Who this token is
@@ -499,6 +502,7 @@ Class | Method | HTTP request | Description
499
502
  *UltracartClient::SfvbApi* | [**put_sfvb_container**](docs/SfvbApi.md#put_sfvb_container) | **PUT** /sfvb/storefronts/{storefront_oid}/containers/{owner_type}/{owner_object_id} | Write a container stored outside the file system
500
503
  *UltracartClient::SfvbApi* | [**put_sfvb_file_content**](docs/SfvbApi.md#put_sfvb_file_content) | **PUT** /sfvb/storefronts/{storefront_oid}/files/content | Write a storefront file
501
504
  *UltracartClient::SfvbApi* | [**put_sfvb_preview_session**](docs/SfvbApi.md#put_sfvb_preview_session) | **PUT** /sfvb/storefronts/{storefront_oid}/preview_sessions/{preview_session_id} | Push containers into a preview session
505
+ *UltracartClient::SfvbApi* | [**put_sfvb_theme_attributes**](docs/SfvbApi.md#put_sfvb_theme_attributes) | **PUT** /sfvb/storefronts/{storefront_oid}/themes/{theme_oid}/attributes | Change a theme's colors, fonts and settings
502
506
  *UltracartClient::SfvbApi* | [**render_sfvb_widgets**](docs/SfvbApi.md#render_sfvb_widgets) | **POST** /sfvb/storefronts/{storefront_oid}/themes/{theme_oid}/render | Render a CJSON node to HTML
503
507
  *UltracartClient::SfvbApi* | [**reserve_sfvb_widget_ids**](docs/SfvbApi.md#reserve_sfvb_widget_ids) | **POST** /sfvb/storefronts/{storefront_oid}/widget_ids | Reserve a block of widget ids
504
508
  *UltracartClient::SfvbApi* | [**revert_sfvb_container**](docs/SfvbApi.md#revert_sfvb_container) | **POST** /sfvb/storefronts/{storefront_oid}/containers/{owner_type}/{owner_object_id}/revert | Revert a container stored outside the file system
@@ -941,6 +945,9 @@ Class | Method | HTTP request | Description
941
945
  - [UltracartClient::ConversationAgentStatusRollupSearchResponse](docs/ConversationAgentStatusRollupSearchResponse.md)
942
946
  - [UltracartClient::ConversationAgentStatusSummaryResponse](docs/ConversationAgentStatusSummaryResponse.md)
943
947
  - [UltracartClient::ConversationAgentStatusTimelineResponse](docs/ConversationAgentStatusTimelineResponse.md)
948
+ - [UltracartClient::ConversationAgentTestSessionJoinRequest](docs/ConversationAgentTestSessionJoinRequest.md)
949
+ - [UltracartClient::ConversationAgentTestSessionRequest](docs/ConversationAgentTestSessionRequest.md)
950
+ - [UltracartClient::ConversationAgentTestSessionResponse](docs/ConversationAgentTestSessionResponse.md)
944
951
  - [UltracartClient::ConversationAutocompleteRequest](docs/ConversationAutocompleteRequest.md)
945
952
  - [UltracartClient::ConversationAutocompleteResponse](docs/ConversationAutocompleteResponse.md)
946
953
  - [UltracartClient::ConversationAutocompleteValue](docs/ConversationAutocompleteValue.md)
@@ -948,6 +955,7 @@ Class | Method | HTTP request | Description
948
955
  - [UltracartClient::ConversationCannedMessageResponse](docs/ConversationCannedMessageResponse.md)
949
956
  - [UltracartClient::ConversationCannedMessagesResponse](docs/ConversationCannedMessagesResponse.md)
950
957
  - [UltracartClient::ConversationCannedMessagesSearch](docs/ConversationCannedMessagesSearch.md)
958
+ - [UltracartClient::ConversationCustomerAuth](docs/ConversationCustomerAuth.md)
951
959
  - [UltracartClient::ConversationDeleteKnowledgeBaseDocumentResponse](docs/ConversationDeleteKnowledgeBaseDocumentResponse.md)
952
960
  - [UltracartClient::ConversationDepartment](docs/ConversationDepartment.md)
953
961
  - [UltracartClient::ConversationDepartmentMember](docs/ConversationDepartmentMember.md)
@@ -1754,7 +1762,13 @@ Class | Method | HTTP request | Description
1754
1762
  - [UltracartClient::SfvbStorefront](docs/SfvbStorefront.md)
1755
1763
  - [UltracartClient::SfvbStorefrontsResponse](docs/SfvbStorefrontsResponse.md)
1756
1764
  - [UltracartClient::SfvbTheme](docs/SfvbTheme.md)
1765
+ - [UltracartClient::SfvbThemeAttribute](docs/SfvbThemeAttribute.md)
1766
+ - [UltracartClient::SfvbThemeAttributeUpdate](docs/SfvbThemeAttributeUpdate.md)
1767
+ - [UltracartClient::SfvbThemeAttributeUpdateRequest](docs/SfvbThemeAttributeUpdateRequest.md)
1768
+ - [UltracartClient::SfvbThemeAttributesResponse](docs/SfvbThemeAttributesResponse.md)
1757
1769
  - [UltracartClient::SfvbThemeDuplicateRequest](docs/SfvbThemeDuplicateRequest.md)
1770
+ - [UltracartClient::SfvbThemeFont](docs/SfvbThemeFont.md)
1771
+ - [UltracartClient::SfvbThemeFontFamily](docs/SfvbThemeFontFamily.md)
1758
1772
  - [UltracartClient::SfvbThemeJobResponse](docs/SfvbThemeJobResponse.md)
1759
1773
  - [UltracartClient::SfvbThemesResponse](docs/SfvbThemesResponse.md)
1760
1774
  - [UltracartClient::SfvbUpsellOffer](docs/SfvbUpsellOffer.md)
@@ -1928,6 +1942,8 @@ Not every change is committed to every SDK.
1928
1942
 
1929
1943
  | Version | Date | Comments |
1930
1944
  | --: | :-: | --- |
1945
+ | 4.1.152 | 09/09/2026 | sfvb - internal testing |
1946
+ | 4.1.151 | 09/04/2026 | conversations - added ai agent capabilities |
1931
1947
  | 4.1.150 | 09/04/2026 | conversations - add ai agent capabilities |
1932
1948
  | 4.1.149 | 09/04/2026 | conversations - added ai agent capabilities |
1933
1949
  | 4.1.148 | 09/04/2026 | conversations - added ai agent capabilities |
@@ -0,0 +1,18 @@
1
+ # UltracartClient::ConversationAgentTestSessionJoinRequest
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **conversation_webchat_queue_uuid** | **String** | Queue entry uuid returned when the test session was started | [optional] |
8
+
9
+ ## Example
10
+
11
+ ```ruby
12
+ require 'ultracart_api'
13
+
14
+ instance = UltracartClient::ConversationAgentTestSessionJoinRequest.new(
15
+ conversation_webchat_queue_uuid: null
16
+ )
17
+ ```
18
+
@@ -0,0 +1,24 @@
1
+ # UltracartClient::ConversationAgentTestSessionRequest
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **customer_profile_oid** | **Integer** | Customer profile to converse as. The cart is established as a soft login for this customer, so the agent sees their real order history. | [optional] |
8
+ | **question** | **String** | Optional opening question, the same way a customer types one before joining the queue. | [optional] |
9
+ | **queue_name** | **String** | Webchat queue to join. The agent is selected explicitly, so this does not have to be a queue the agent is assigned to. | [optional] |
10
+ | **storefront_host_name** | **String** | Host name of the storefront to test against, with no protocol prefix. Determines which catalog the agent searches. | [optional] |
11
+
12
+ ## Example
13
+
14
+ ```ruby
15
+ require 'ultracart_api'
16
+
17
+ instance = UltracartClient::ConversationAgentTestSessionRequest.new(
18
+ customer_profile_oid: null,
19
+ question: null,
20
+ queue_name: null,
21
+ storefront_host_name: null
22
+ )
23
+ ```
24
+
@@ -0,0 +1,32 @@
1
+ # UltracartClient::ConversationAgentTestSessionResponse
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **cart_id** | **String** | Cart established for this session, soft logged in as the chosen customer profile. Real, and anything the agent adds to it persists. | [optional] |
8
+ | **conversation_webchat_queue_uuid** | **String** | Queue entry created for this session | [optional] |
9
+ | **customer_auth** | [**ConversationCustomerAuth**](ConversationCustomerAuth.md) | | [optional] |
10
+ | **error** | [**Error**](Error.md) | | [optional] |
11
+ | **metadata** | [**ResponseMetadata**](ResponseMetadata.md) | | [optional] |
12
+ | **storefront_host_name** | **String** | Storefront the session is running against | [optional] |
13
+ | **success** | **Boolean** | | [optional] |
14
+ | **warning** | [**Warning**](Warning.md) | | [optional] |
15
+
16
+ ## Example
17
+
18
+ ```ruby
19
+ require 'ultracart_api'
20
+
21
+ instance = UltracartClient::ConversationAgentTestSessionResponse.new(
22
+ cart_id: null,
23
+ conversation_webchat_queue_uuid: null,
24
+ customer_auth: null,
25
+ error: null,
26
+ metadata: null,
27
+ storefront_host_name: null,
28
+ success: null,
29
+ warning: null
30
+ )
31
+ ```
32
+
@@ -107,6 +107,7 @@ All URIs are relative to *https://secure.ultracart.com/rest/v2*
107
107
  | [**insert_pbx_time_range**](ConversationApi.md#insert_pbx_time_range) | **POST** /conversation/pbx/time_range | Insert pbx timeRange |
108
108
  | [**insert_pbx_voicemail_mailbox**](ConversationApi.md#insert_pbx_voicemail_mailbox) | **POST** /conversation/pbx/voicemail_mailbox | Insert pbx voicemailMailbox |
109
109
  | [**insert_user_pbx_audio**](ConversationApi.md#insert_user_pbx_audio) | **POST** /conversation/pbx/audio/user | Insert user pbx audio |
110
+ | [**join_agent_test_session**](ConversationApi.md#join_agent_test_session) | **PUT** /conversation/agent/profiles/{user_id}/test_session/{conversation_uuid}/join | Join a test conversation as the simulated customer |
110
111
  | [**join_conversation**](ConversationApi.md#join_conversation) | **PUT** /conversation/conversations/{conversation_uuid}/join | Join a conversation |
111
112
  | [**leave_conversation**](ConversationApi.md#leave_conversation) | **DELETE** /conversation/conversations/{conversation_uuid}/leave | Leave a conversation |
112
113
  | [**listened_pbx_agent_voicemail**](ConversationApi.md#listened_pbx_agent_voicemail) | **GET** /conversation/pbx/agent/voicemails/{recording_sid}/listened | Listened Agent Voicemail |
@@ -122,6 +123,7 @@ All URIs are relative to *https://secure.ultracart.com/rest/v2*
122
123
  | [**search_pbx_available_phone_numbers**](ConversationApi.md#search_pbx_available_phone_numbers) | **GET** /conversation/pbx/phone_number/search | Search for available phone numbers |
123
124
  | [**search_pbx_calls**](ConversationApi.md#search_pbx_calls) | **POST** /conversation/pbx/call/search | Search pbx call records |
124
125
  | [**sms_unsubscribe_conversation**](ConversationApi.md#sms_unsubscribe_conversation) | **PUT** /conversation/conversations/{conversation_uuid}/sms_unsubscribe | Unsubscribe any SMS participants in this conversation |
126
+ | [**start_agent_test_session**](ConversationApi.md#start_agent_test_session) | **PUT** /conversation/agent/profiles/{user_id}/test_session | Start a test conversation with this AI agent |
125
127
  | [**start_conversation**](ConversationApi.md#start_conversation) | **PUT** /conversation/conversations | Start a conversation |
126
128
  | [**update_agent_profile**](ConversationApi.md#update_agent_profile) | **PUT** /conversation/agent/profile | Update agent profile |
127
129
  | [**update_agent_profile_mcp**](ConversationApi.md#update_agent_profile_mcp) | **POST** /conversation/agent/profiles/{user_id}/mcps/{mcp_server_uuid} | Update an agent MCP server |
@@ -5632,6 +5634,61 @@ end
5632
5634
  - **Accept**: application/json
5633
5635
 
5634
5636
 
5637
+ ## join_agent_test_session
5638
+
5639
+ > join_agent_test_session(user_id, conversation_uuid, join_request)
5640
+
5641
+ Join a test conversation as the simulated customer
5642
+
5643
+ Joins the simulated customer to the conversation the agent opened for a test session. This mirrors what the storefront webchat widget does after an agent picks up its queue entry, and it is what gives the conversation a customer participant. Requires a logged in user with conversations admin; an API key or OAuth application cannot call this.
5644
+
5645
+
5646
+ ### Examples
5647
+
5648
+
5649
+ (No example for this operation).
5650
+
5651
+
5652
+ #### Using the join_agent_test_session_with_http_info variant
5653
+
5654
+ This returns an Array which contains the response data (`nil` in this case), status code and headers.
5655
+
5656
+ > <Array(nil, Integer, Hash)> join_agent_test_session_with_http_info(user_id, conversation_uuid, join_request)
5657
+
5658
+ ```ruby
5659
+ begin
5660
+ # Join a test conversation as the simulated customer
5661
+ data, status_code, headers = api_instance.join_agent_test_session_with_http_info(user_id, conversation_uuid, join_request)
5662
+ p status_code # => 2xx
5663
+ p headers # => { ... }
5664
+ p data # => nil
5665
+ rescue UltracartClient::ApiError => e
5666
+ puts "Error when calling ConversationApi->join_agent_test_session_with_http_info: #{e}"
5667
+ end
5668
+ ```
5669
+
5670
+ ### Parameters
5671
+
5672
+ | Name | Type | Description | Notes |
5673
+ | ---- | ---- | ----------- | ----- |
5674
+ | **user_id** | **Integer** | | |
5675
+ | **conversation_uuid** | **String** | | |
5676
+ | **join_request** | [**ConversationAgentTestSessionJoinRequest**](ConversationAgentTestSessionJoinRequest.md) | Test session join request | |
5677
+
5678
+ ### Return type
5679
+
5680
+ nil (empty response body)
5681
+
5682
+ ### Authorization
5683
+
5684
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
5685
+
5686
+ ### HTTP request headers
5687
+
5688
+ - **Content-Type**: application/json
5689
+ - **Accept**: application/json
5690
+
5691
+
5635
5692
  ## join_conversation
5636
5693
 
5637
5694
  > join_conversation(conversation_uuid, opts)
@@ -6449,6 +6506,60 @@ nil (empty response body)
6449
6506
  - **Accept**: application/json
6450
6507
 
6451
6508
 
6509
+ ## start_agent_test_session
6510
+
6511
+ > <ConversationAgentTestSessionResponse> start_agent_test_session(user_id, test_session_request)
6512
+
6513
+ Start a test conversation with this AI agent
6514
+
6515
+ Opens a webchat conversation against this specific AI agent as if the given customer had started it from the storefront, so the agent can be tried out before it is put in front of anyone. The session runs against live data: the cart is real, the customer is real, and anything the agent does during the conversation actually happens. Requires a logged in user with conversations admin; an API key or OAuth application cannot call this.
6516
+
6517
+
6518
+ ### Examples
6519
+
6520
+
6521
+ (No example for this operation).
6522
+
6523
+
6524
+ #### Using the start_agent_test_session_with_http_info variant
6525
+
6526
+ This returns an Array which contains the response data, status code and headers.
6527
+
6528
+ > <Array(<ConversationAgentTestSessionResponse>, Integer, Hash)> start_agent_test_session_with_http_info(user_id, test_session_request)
6529
+
6530
+ ```ruby
6531
+ begin
6532
+ # Start a test conversation with this AI agent
6533
+ data, status_code, headers = api_instance.start_agent_test_session_with_http_info(user_id, test_session_request)
6534
+ p status_code # => 2xx
6535
+ p headers # => { ... }
6536
+ p data # => <ConversationAgentTestSessionResponse>
6537
+ rescue UltracartClient::ApiError => e
6538
+ puts "Error when calling ConversationApi->start_agent_test_session_with_http_info: #{e}"
6539
+ end
6540
+ ```
6541
+
6542
+ ### Parameters
6543
+
6544
+ | Name | Type | Description | Notes |
6545
+ | ---- | ---- | ----------- | ----- |
6546
+ | **user_id** | **Integer** | | |
6547
+ | **test_session_request** | [**ConversationAgentTestSessionRequest**](ConversationAgentTestSessionRequest.md) | Test session request | |
6548
+
6549
+ ### Return type
6550
+
6551
+ [**ConversationAgentTestSessionResponse**](ConversationAgentTestSessionResponse.md)
6552
+
6553
+ ### Authorization
6554
+
6555
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
6556
+
6557
+ ### HTTP request headers
6558
+
6559
+ - **Content-Type**: application/json
6560
+ - **Accept**: application/json
6561
+
6562
+
6452
6563
  ## start_conversation
6453
6564
 
6454
6565
  > <ConversationStartResponse> start_conversation(start_request)
@@ -0,0 +1,30 @@
1
+ # UltracartClient::ConversationCustomerAuth
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **conversation_participant_arn** | **String** | | [optional] |
8
+ | **conversation_participant_name** | **String** | | [optional] |
9
+ | **join_dts_conversation_participant_arn** | **String** | | [optional] |
10
+ | **jwt** | **String** | | [optional] |
11
+ | **merchant_id** | **String** | | [optional] |
12
+ | **merchant_id_queue_name** | **String** | | [optional] |
13
+ | **websocket_url** | **String** | | [optional] |
14
+
15
+ ## Example
16
+
17
+ ```ruby
18
+ require 'ultracart_api'
19
+
20
+ instance = UltracartClient::ConversationCustomerAuth.new(
21
+ conversation_participant_arn: null,
22
+ conversation_participant_name: null,
23
+ join_dts_conversation_participant_arn: null,
24
+ jwt: null,
25
+ merchant_id: null,
26
+ merchant_id_queue_name: null,
27
+ websocket_url: null
28
+ )
29
+ ```
30
+
data/docs/SfvbApi.md CHANGED
@@ -19,6 +19,7 @@ All URIs are relative to *https://secure.ultracart.com/rest/v2*
19
19
  | [**get_sfvb_library_entry**](SfvbApi.md#get_sfvb_library_entry) | **GET** /sfvb/storefronts/{storefront_oid}/library/{library_oid} | Read one library entry including its CJSON |
20
20
  | [**get_sfvb_preview_url**](SfvbApi.md#get_sfvb_preview_url) | **GET** /sfvb/storefronts/{storefront_oid}/preview_sessions/{preview_session_id}/url | URL that renders a preview session |
21
21
  | [**get_sfvb_theme**](SfvbApi.md#get_sfvb_theme) | **GET** /sfvb/storefronts/{storefront_oid}/themes/{theme_oid} | Get a theme |
22
+ | [**get_sfvb_theme_attributes**](SfvbApi.md#get_sfvb_theme_attributes) | **GET** /sfvb/storefronts/{storefront_oid}/themes/{theme_oid}/attributes | Read a theme&#39;s colors, fonts and settings |
22
23
  | [**get_sfvb_theme_job**](SfvbApi.md#get_sfvb_theme_job) | **GET** /sfvb/storefronts/{storefront_oid}/theme_jobs/{job_id} | Status of an asynchronous theme job |
23
24
  | [**get_sfvb_version**](SfvbApi.md#get_sfvb_version) | **GET** /sfvb/version | Compiler version for this merchant |
24
25
  | [**get_sfvb_whoami**](SfvbApi.md#get_sfvb_whoami) | **GET** /sfvb/whoami | Who this token is |
@@ -33,6 +34,7 @@ All URIs are relative to *https://secure.ultracart.com/rest/v2*
33
34
  | [**put_sfvb_container**](SfvbApi.md#put_sfvb_container) | **PUT** /sfvb/storefronts/{storefront_oid}/containers/{owner_type}/{owner_object_id} | Write a container stored outside the file system |
34
35
  | [**put_sfvb_file_content**](SfvbApi.md#put_sfvb_file_content) | **PUT** /sfvb/storefronts/{storefront_oid}/files/content | Write a storefront file |
35
36
  | [**put_sfvb_preview_session**](SfvbApi.md#put_sfvb_preview_session) | **PUT** /sfvb/storefronts/{storefront_oid}/preview_sessions/{preview_session_id} | Push containers into a preview session |
37
+ | [**put_sfvb_theme_attributes**](SfvbApi.md#put_sfvb_theme_attributes) | **PUT** /sfvb/storefronts/{storefront_oid}/themes/{theme_oid}/attributes | Change a theme&#39;s colors, fonts and settings |
36
38
  | [**render_sfvb_widgets**](SfvbApi.md#render_sfvb_widgets) | **POST** /sfvb/storefronts/{storefront_oid}/themes/{theme_oid}/render | Render a CJSON node to HTML |
37
39
  | [**reserve_sfvb_widget_ids**](SfvbApi.md#reserve_sfvb_widget_ids) | **POST** /sfvb/storefronts/{storefront_oid}/widget_ids | Reserve a block of widget ids |
38
40
  | [**revert_sfvb_container**](SfvbApi.md#revert_sfvb_container) | **POST** /sfvb/storefronts/{storefront_oid}/containers/{owner_type}/{owner_object_id}/revert | Revert a container stored outside the file system |
@@ -853,6 +855,60 @@ end
853
855
  - **Accept**: application/json
854
856
 
855
857
 
858
+ ## get_sfvb_theme_attributes
859
+
860
+ > <SfvbThemeAttributesResponse> get_sfvb_theme_attributes(storefront_oid, theme_oid)
861
+
862
+ Read a theme's colors, fonts and settings
863
+
864
+ The values theme.css and the compiled containers resolve at render time. These do NOT live in any file. settings.json contains a palette and looks like the answer, but it is the theme's factory template - it supplies defaults for slots that have never been set and is ignored for slots that have, so editing it will not change a color and reading it will not tell you the current one. Slots a template declares but nothing has ever set are included here, carrying the default they will render with, so the response describes the whole theme rather than the rows that happen to exist.
865
+
866
+
867
+ ### Examples
868
+
869
+
870
+ (No example for this operation).
871
+
872
+
873
+ #### Using the get_sfvb_theme_attributes_with_http_info variant
874
+
875
+ This returns an Array which contains the response data, status code and headers.
876
+
877
+ > <Array(<SfvbThemeAttributesResponse>, Integer, Hash)> get_sfvb_theme_attributes_with_http_info(storefront_oid, theme_oid)
878
+
879
+ ```ruby
880
+ begin
881
+ # Read a theme's colors, fonts and settings
882
+ data, status_code, headers = api_instance.get_sfvb_theme_attributes_with_http_info(storefront_oid, theme_oid)
883
+ p status_code # => 2xx
884
+ p headers # => { ... }
885
+ p data # => <SfvbThemeAttributesResponse>
886
+ rescue UltracartClient::ApiError => e
887
+ puts "Error when calling SfvbApi->get_sfvb_theme_attributes_with_http_info: #{e}"
888
+ end
889
+ ```
890
+
891
+ ### Parameters
892
+
893
+ | Name | Type | Description | Notes |
894
+ | ---- | ---- | ----------- | ----- |
895
+ | **storefront_oid** | **Integer** | | |
896
+ | **theme_oid** | **Integer** | | |
897
+
898
+ ### Return type
899
+
900
+ [**SfvbThemeAttributesResponse**](SfvbThemeAttributesResponse.md)
901
+
902
+ ### Authorization
903
+
904
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
905
+
906
+ ### HTTP request headers
907
+
908
+ - **Content-Type**: Not defined
909
+ - **Accept**: application/json
910
+
911
+
856
912
  ## get_sfvb_theme_job
857
913
 
858
914
  > <SfvbThemeJobResponse> get_sfvb_theme_job(storefront_oid, job_id)
@@ -1604,6 +1660,61 @@ end
1604
1660
  - **Accept**: application/json
1605
1661
 
1606
1662
 
1663
+ ## put_sfvb_theme_attributes
1664
+
1665
+ > <SfvbThemeAttributesResponse> put_sfvb_theme_attributes(storefront_oid, theme_oid, attribute_update_request)
1666
+
1667
+ Change a theme's colors, fonts and settings
1668
+
1669
+ A partial update. Only the slots you name are changed and every other slot on the theme keeps its value, so there is no need to send the whole set back to change one color. Send a whole palette in one call rather than one call per color - they are applied together, so the storefront never renders half of a change. Needs sfvb_publish when the theme is the one serving live traffic, because a color is referenced by name from every template that uses it and one write repaints the whole storefront at once. On a dormant theme sfvb_write is enough, which is what makes duplicate-then-restyle work.
1670
+
1671
+
1672
+ ### Examples
1673
+
1674
+
1675
+ (No example for this operation).
1676
+
1677
+
1678
+ #### Using the put_sfvb_theme_attributes_with_http_info variant
1679
+
1680
+ This returns an Array which contains the response data, status code and headers.
1681
+
1682
+ > <Array(<SfvbThemeAttributesResponse>, Integer, Hash)> put_sfvb_theme_attributes_with_http_info(storefront_oid, theme_oid, attribute_update_request)
1683
+
1684
+ ```ruby
1685
+ begin
1686
+ # Change a theme's colors, fonts and settings
1687
+ data, status_code, headers = api_instance.put_sfvb_theme_attributes_with_http_info(storefront_oid, theme_oid, attribute_update_request)
1688
+ p status_code # => 2xx
1689
+ p headers # => { ... }
1690
+ p data # => <SfvbThemeAttributesResponse>
1691
+ rescue UltracartClient::ApiError => e
1692
+ puts "Error when calling SfvbApi->put_sfvb_theme_attributes_with_http_info: #{e}"
1693
+ end
1694
+ ```
1695
+
1696
+ ### Parameters
1697
+
1698
+ | Name | Type | Description | Notes |
1699
+ | ---- | ---- | ----------- | ----- |
1700
+ | **storefront_oid** | **Integer** | | |
1701
+ | **theme_oid** | **Integer** | | |
1702
+ | **attribute_update_request** | [**SfvbThemeAttributeUpdateRequest**](SfvbThemeAttributeUpdateRequest.md) | Slots to change | |
1703
+
1704
+ ### Return type
1705
+
1706
+ [**SfvbThemeAttributesResponse**](SfvbThemeAttributesResponse.md)
1707
+
1708
+ ### Authorization
1709
+
1710
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
1711
+
1712
+ ### HTTP request headers
1713
+
1714
+ - **Content-Type**: application/json
1715
+ - **Accept**: application/json
1716
+
1717
+
1607
1718
  ## render_sfvb_widgets
1608
1719
 
1609
1720
  > <SfvbRenderResponse> render_sfvb_widgets(storefront_oid, theme_oid, render_request)
@@ -0,0 +1,34 @@
1
+ # UltracartClient::SfvbThemeAttribute
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **default_value** | **String** | What the declaring template falls back to when this slot has no value. | [optional] |
8
+ | **deprecated** | **Boolean** | True when the theme marks this slot as on its way out. Prefer not to build on it. | [optional] |
9
+ | **description** | **String** | What this slot is for, where the theme author documented it. | [optional] |
10
+ | **font** | [**SfvbThemeFont**](SfvbThemeFont.md) | | [optional] |
11
+ | **name** | **String** | Slot name, for example Theme Color 01. Returned in the casing the theme&#39;s templates declare, which may differ from the casing you wrote. Compare case insensitively. | [optional] |
12
+ | **type** | **String** | What kind of slot this is, taken from the template that declares it rather than guessed from the value. orphan means nothing declares it. | [optional] |
13
+ | **undeclared** | **Boolean** | True when no template in this theme references this name. Writing such a name is allowed and is how the builder stores its own settings, but if you did not mean to create one this is a misspelling and the write changed nothing visible. | [optional] |
14
+ | **unused** | **Boolean** | True when the slot is declared but nothing in the theme actually reads it, so setting it has no visible effect. | [optional] |
15
+ | **value** | **String** | The applied value. For a colour this is a hex or rgb string, for a boolean the text true or false, for a font the raw JSON document also given in the font field. When the stored value is empty the current preset&#39;s default is filled in here. | [optional] |
16
+
17
+ ## Example
18
+
19
+ ```ruby
20
+ require 'ultracart_api'
21
+
22
+ instance = UltracartClient::SfvbThemeAttribute.new(
23
+ default_value: null,
24
+ deprecated: null,
25
+ description: null,
26
+ font: null,
27
+ name: null,
28
+ type: null,
29
+ undeclared: null,
30
+ unused: null,
31
+ value: null
32
+ )
33
+ ```
34
+
@@ -0,0 +1,24 @@
1
+ # UltracartClient::SfvbThemeAttributeUpdate
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **font** | [**SfvbThemeFont**](SfvbThemeFont.md) | | [optional] |
8
+ | **name** | **String** | Slot name. Matched without regard to case against what the theme already has, so you do not have to reproduce the exact casing. A name nothing matches creates a new slot. | [optional] |
9
+ | **type** | **String** | Only consulted when creating a slot the theme does not already have. For a slot that exists the declared type always wins, because the templates decide it and not the caller. | [optional] |
10
+ | **value** | **String** | The value to store. An empty string clears the slot, which makes it fall back to the theme&#39;s default rather than removing it. Ignored for a font when the font field is supplied. | [optional] |
11
+
12
+ ## Example
13
+
14
+ ```ruby
15
+ require 'ultracart_api'
16
+
17
+ instance = UltracartClient::SfvbThemeAttributeUpdate.new(
18
+ font: null,
19
+ name: null,
20
+ type: null,
21
+ value: null
22
+ )
23
+ ```
24
+
@@ -0,0 +1,18 @@
1
+ # UltracartClient::SfvbThemeAttributeUpdateRequest
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **attributes** | [**Array&lt;SfvbThemeAttributeUpdate&gt;**](SfvbThemeAttributeUpdate.md) | The slots to change. Sending several in one call is preferred over one call each - they are applied together, so a palette lands as a single change rather than as a sequence a shopper could see halfway through. | [optional] |
8
+
9
+ ## Example
10
+
11
+ ```ruby
12
+ require 'ultracart_api'
13
+
14
+ instance = UltracartClient::SfvbThemeAttributeUpdateRequest.new(
15
+ attributes: null
16
+ )
17
+ ```
18
+
@@ -0,0 +1,24 @@
1
+ # UltracartClient::SfvbThemeAttributesResponse
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **active** | **Boolean** | True when this theme is the one serving live traffic. Changing an active theme&#39;s colours changes what shoppers see immediately, so the write requires the sfvb_publish scope. Duplicate the theme and restyle the copy to work with an ordinary write scope. | [optional] |
8
+ | **attributes** | [**Array&lt;SfvbThemeAttribute&gt;**](SfvbThemeAttribute.md) | Every slot this theme has, including ones declared by a template but never set. Sorted by name. | [optional] |
9
+ | **theme_name** | **String** | Theme name, so a caller can confirm it is working on the theme it meant. | [optional] |
10
+ | **theme_oid** | **Integer** | StoreFront theme oid these belong to. | [optional] |
11
+
12
+ ## Example
13
+
14
+ ```ruby
15
+ require 'ultracart_api'
16
+
17
+ instance = UltracartClient::SfvbThemeAttributesResponse.new(
18
+ active: null,
19
+ attributes: null,
20
+ theme_name: null,
21
+ theme_oid: null
22
+ )
23
+ ```
24
+
@@ -0,0 +1,22 @@
1
+ # UltracartClient::SfvbThemeFont
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **families** | [**Array&lt;SfvbThemeFontFamily&gt;**](SfvbThemeFontFamily.md) | Ordered font stack. The browser uses the first one it can load, so a generic family belongs last as the fallback. | [optional] |
8
+ | **size** | **String** | Font size as a number without units, for example 16. Empty means the theme decides. | [optional] |
9
+ | **weight** | **String** | CSS font weight, for example 400 or bold. Empty means the theme decides. | [optional] |
10
+
11
+ ## Example
12
+
13
+ ```ruby
14
+ require 'ultracart_api'
15
+
16
+ instance = UltracartClient::SfvbThemeFont.new(
17
+ families: null,
18
+ size: null,
19
+ weight: null
20
+ )
21
+ ```
22
+
@@ -0,0 +1,22 @@
1
+ # UltracartClient::SfvbThemeFontFamily
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **family** | **String** | Family name, for example Montserrat. | [optional] |
8
+ | **kit_id** | **String** | Typekit kit identifier. Only meaningful when type is typekit. | [optional] |
9
+ | **type** | **String** | Where the font comes from. native means a font installed on the shopper&#39;s machine, generic means a CSS keyword such as serif or sans-serif and belongs last in the stack. | [optional] |
10
+
11
+ ## Example
12
+
13
+ ```ruby
14
+ require 'ultracart_api'
15
+
16
+ instance = UltracartClient::SfvbThemeFontFamily.new(
17
+ family: null,
18
+ kit_id: null,
19
+ type: null
20
+ )
21
+ ```
22
+