ultracart_api 4.1.201 → 4.1.202

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: 8eb0f77a073bc3b2d2b66f254190227539e919cfcae97ee88d4844a410922d84
4
- data.tar.gz: 936959c530a9c85860e0c5e45d2a7ab24e85a101580f77dbd957ec0806923ccf
3
+ metadata.gz: c8e2a0df2a48694c297eccac324214153614a364647f403482a52863732a8d42
4
+ data.tar.gz: 6391ca2c7f7f14054a3c351fb22165e8e8f793c0685af64e4deefd5c33dd3928
5
5
  SHA512:
6
- metadata.gz: 492a6776f33223e9f198c4c8185a67b60f67ce0b13d3557b0d4d82b3c8aad2b36994799103b5026676701fbde6703284558280e42aa1ea47cf745fbf0788e62d
7
- data.tar.gz: 5bcb498157c133ff90e73a6df2cbfe3d3ee2cd508a374df95d2322d21266477df836b3d6957a12c4b13993f7aad4cb119e0a49295488b4adaef669be521bb45b
6
+ metadata.gz: d2f086140b99df10e1fc950f74e5bb323b83289356a330c6ea78499c271c73a5a1b1085ae108a30d1a089c622ed65cde9fbf170521c97a91cbd2ee853f5e6ac3
7
+ data.tar.gz: 53ec4581fefb66a0b5021744599a789c9e4e634b9b017b4dd1980e118ee46fabaf7f31272e815ca39e06fd7369eadd8f2df00acd0b861f59fb84c9898bb51d25
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.201
10
+ - Package version: 4.1.202
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.201'
19
+ gem 'ultracart_api', '4.1.202'
20
20
  ```
21
21
 
22
22
  install:
@@ -599,6 +599,7 @@ Class | Method | HTTP request | Description
599
599
  *UltracartClient::SfvbApi* | [**put_sfvb_item_attributes**](docs/SfvbApi.md#put_sfvb_item_attributes) | **PUT** /sfvb/storefronts/{storefront_oid}/items/attributes | Change some of an item's attributes
600
600
  *UltracartClient::SfvbApi* | [**put_sfvb_item_content**](docs/SfvbApi.md#put_sfvb_item_content) | **PUT** /sfvb/storefronts/{storefront_oid}/items/content | Change an item's title or long description
601
601
  *UltracartClient::SfvbApi* | [**put_sfvb_item_multimedia**](docs/SfvbApi.md#put_sfvb_item_multimedia) | **PUT** /sfvb/storefronts/{storefront_oid}/items/multimedia | Attach an image to an item
602
+ *UltracartClient::SfvbApi* | [**put_sfvb_item_multimedia_description**](docs/SfvbApi.md#put_sfvb_item_multimedia_description) | **PUT** /sfvb/storefronts/{storefront_oid}/items/multimedia/description | Change an item image's description
602
603
  *UltracartClient::SfvbApi* | [**put_sfvb_item_pricing**](docs/SfvbApi.md#put_sfvb_item_pricing) | **PUT** /sfvb/storefronts/{storefront_oid}/items/pricing | Change what an item charges
603
604
  *UltracartClient::SfvbApi* | [**put_sfvb_item_related**](docs/SfvbApi.md#put_sfvb_item_related) | **PUT** /sfvb/storefronts/{storefront_oid}/items/related | Replace an item's related items
604
605
  *UltracartClient::SfvbApi* | [**put_sfvb_item_seo**](docs/SfvbApi.md#put_sfvb_item_seo) | **PUT** /sfvb/storefronts/{storefront_oid}/items/seo | Change an item's search metadata
@@ -1937,6 +1938,7 @@ Class | Method | HTTP request | Description
1937
1938
  - [UltracartClient::SfvbItemContainersResponse](docs/SfvbItemContainersResponse.md)
1938
1939
  - [UltracartClient::SfvbItemContentRequest](docs/SfvbItemContentRequest.md)
1939
1940
  - [UltracartClient::SfvbItemMultimedia](docs/SfvbItemMultimedia.md)
1941
+ - [UltracartClient::SfvbItemMultimediaDescriptionRequest](docs/SfvbItemMultimediaDescriptionRequest.md)
1940
1942
  - [UltracartClient::SfvbItemMultimediaRequest](docs/SfvbItemMultimediaRequest.md)
1941
1943
  - [UltracartClient::SfvbItemPricing](docs/SfvbItemPricing.md)
1942
1944
  - [UltracartClient::SfvbItemPricingRequest](docs/SfvbItemPricingRequest.md)
@@ -2250,6 +2252,7 @@ Not every change is committed to every SDK.
2250
2252
 
2251
2253
  | Version | Date | Comments |
2252
2254
  | --: | :-: | --- |
2255
+ | 4.1.202 | 10/13/2026 | sfvb internal testing |
2253
2256
  | 4.1.201 | 10/12/2026 | sfvb internal testing |
2254
2257
  | 4.1.200 | 10/09/2026 | sfvb internal testing |
2255
2258
  | 4.1.199 | 10/08/2026 | sfvb internal testing |
data/docs/OauthApi.md CHANGED
@@ -294,7 +294,7 @@ end
294
294
  | Name | Type | Description | Notes |
295
295
  | ---- | ---- | ----------- | ----- |
296
296
  | **client_id** | **String** | The OAuth application client_id. | |
297
- | **token** | **String** | The OAuth access token that is to be revoked.. | |
297
+ | **token** | **String** | The OAuth access token or refresh token that is to be revoked. | |
298
298
 
299
299
  ### Return type
300
300
 
data/docs/SfvbApi.md CHANGED
@@ -127,6 +127,7 @@ All URIs are relative to *https://secure.ultracart.com/rest/v2*
127
127
  | [**put_sfvb_item_attributes**](SfvbApi.md#put_sfvb_item_attributes) | **PUT** /sfvb/storefronts/{storefront_oid}/items/attributes | Change some of an item's attributes |
128
128
  | [**put_sfvb_item_content**](SfvbApi.md#put_sfvb_item_content) | **PUT** /sfvb/storefronts/{storefront_oid}/items/content | Change an item's title or long description |
129
129
  | [**put_sfvb_item_multimedia**](SfvbApi.md#put_sfvb_item_multimedia) | **PUT** /sfvb/storefronts/{storefront_oid}/items/multimedia | Attach an image to an item |
130
+ | [**put_sfvb_item_multimedia_description**](SfvbApi.md#put_sfvb_item_multimedia_description) | **PUT** /sfvb/storefronts/{storefront_oid}/items/multimedia/description | Change an item image's description |
130
131
  | [**put_sfvb_item_pricing**](SfvbApi.md#put_sfvb_item_pricing) | **PUT** /sfvb/storefronts/{storefront_oid}/items/pricing | Change what an item charges |
131
132
  | [**put_sfvb_item_related**](SfvbApi.md#put_sfvb_item_related) | **PUT** /sfvb/storefronts/{storefront_oid}/items/related | Replace an item's related items |
132
133
  | [**put_sfvb_item_seo**](SfvbApi.md#put_sfvb_item_seo) | **PUT** /sfvb/storefronts/{storefront_oid}/items/seo | Change an item's search metadata |
@@ -6894,6 +6895,62 @@ end
6894
6895
  - **Accept**: application/json
6895
6896
 
6896
6897
 
6898
+ ## put_sfvb_item_multimedia_description
6899
+
6900
+ > <SfvbItemResponse> put_sfvb_item_multimedia_description(storefront_oid, item_multimedia_description_request, opts)
6901
+
6902
+ Change an item image's description
6903
+
6904
+ Changes the description (alt text) of one image already attached to the item, in place. The image is not touched. Name it by merchant_item_multimedia_oid, or by exactly one of code or default; gallery images often have no code. An empty description clears it, so the render falls back again. Send the description_sha256 you read as current_sha256 so a change made since is not overwritten. A description written here takes the place of the machine description, and image recognition never overwrites it.
6905
+
6906
+
6907
+ ### Examples
6908
+
6909
+
6910
+ (No example for this operation).
6911
+
6912
+
6913
+ #### Using the put_sfvb_item_multimedia_description_with_http_info variant
6914
+
6915
+ This returns an Array which contains the response data, status code and headers.
6916
+
6917
+ > <Array(<SfvbItemResponse>, Integer, Hash)> put_sfvb_item_multimedia_description_with_http_info(storefront_oid, item_multimedia_description_request, opts)
6918
+
6919
+ ```ruby
6920
+ begin
6921
+ # Change an item image's description
6922
+ data, status_code, headers = api_instance.put_sfvb_item_multimedia_description_with_http_info(storefront_oid, item_multimedia_description_request, opts)
6923
+ p status_code # => 2xx
6924
+ p headers # => { ... }
6925
+ p data # => <SfvbItemResponse>
6926
+ rescue UltracartClient::ApiError => e
6927
+ puts "Error when calling SfvbApi->put_sfvb_item_multimedia_description_with_http_info: #{e}"
6928
+ end
6929
+ ```
6930
+
6931
+ ### Parameters
6932
+
6933
+ | Name | Type | Description | Notes |
6934
+ | ---- | ---- | ----------- | ----- |
6935
+ | **storefront_oid** | **Integer** | | |
6936
+ | **item_multimedia_description_request** | [**SfvbItemMultimediaDescriptionRequest**](SfvbItemMultimediaDescriptionRequest.md) | The image and its new description | |
6937
+ | **merchant_item_id** | **String** | | [optional] |
6938
+ | **merchant_item_oid** | **Integer** | | [optional] |
6939
+
6940
+ ### Return type
6941
+
6942
+ [**SfvbItemResponse**](SfvbItemResponse.md)
6943
+
6944
+ ### Authorization
6945
+
6946
+ [ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
6947
+
6948
+ ### HTTP request headers
6949
+
6950
+ - **Content-Type**: application/json
6951
+ - **Accept**: application/json
6952
+
6953
+
6897
6954
  ## put_sfvb_item_pricing
6898
6955
 
6899
6956
  > <SfvbItemPricing> put_sfvb_item_pricing(storefront_oid, if_match, item_pricing_request, opts)
@@ -7,10 +7,14 @@
7
7
  | **code** | **String** | The image code, which is what an itemimage element&#39;s itemImageCode refers to. Empty for the default image. | [optional] |
8
8
  | **declared** | **Boolean** | True when a template declares this code. A slot that is attached but not declared is an image nothing on the page is asking for. | [optional] |
9
9
  | **default** | **Boolean** | True for the image an itemimage element with no code renders. Default is per media type, so an item may have one default image and one default PDF at the same time. | [optional] |
10
- | **description** | **String** | Stored with the image and rendered as its alt text. When it is empty the render falls back to the item&#39;s own description, so an empty value here is not an empty alt attribute. | [optional] |
10
+ | **description** | **String** | The merchant&#39;s description, stored with the image and rendered as its alt text. When it is empty the render falls back to rekognition_description or to text built from the item&#39;s title, depending on the element, so an empty value here is not an empty alt attribute. | [optional] |
11
+ | **description_sha256** | **String** | SHA-256 of description (empty when there is none). Send it as current_sha256 when changing the description so a change made since you read it is not overwritten. | [optional] |
12
+ | **description_source** | **String** | Where the alt text comes from now. merchant when description is set, rekognition when only rekognition_description is, none otherwise. | [optional] |
11
13
  | **dimensions** | **String** | Width x height in pixels, when the storage measured the file. | [optional] |
12
14
  | **exclude_from_gallery** | **Boolean** | True when the storage marks this image as kept out of the item gallery. | [optional] |
13
15
  | **filename** | **String** | The stored file&#39;s name. Empty when the slot is declared and nothing is attached. | [optional] |
16
+ | **merchant_item_multimedia_oid** | **Integer** | The stored image&#39;s id. Name it to change this image&#39;s description when it has no code. | [optional] |
17
+ | **rekognition_description** | **String** | The machine description image recognition produced for the stored image, if any. It is used only while description is empty, and a description written here or in the admin always takes its place. | [optional] |
14
18
  | **type** | **String** | The media type the storage recorded. | [optional] |
15
19
  | **view_url** | **String** | Where the stored image is served. Absent when nothing is attached to the slot. | [optional] |
16
20
 
@@ -24,9 +28,13 @@ instance = UltracartClient::SfvbItemMultimedia.new(
24
28
  declared: null,
25
29
  default: null,
26
30
  description: null,
31
+ description_sha256: null,
32
+ description_source: null,
27
33
  dimensions: null,
28
34
  exclude_from_gallery: null,
29
35
  filename: null,
36
+ merchant_item_multimedia_oid: null,
37
+ rekognition_description: null,
30
38
  type: null,
31
39
  view_url: null
32
40
  )
@@ -0,0 +1,26 @@
1
+ # UltracartClient::SfvbItemMultimediaDescriptionRequest
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **code** | **String** | The image code, the value an itemimage element&#39;s itemImageCode names. | [optional] |
8
+ | **current_sha256** | **String** | The description_sha256 you read. When it is sent and the description has changed since, nothing is written and the call fails with a version conflict. | [optional] |
9
+ | **default** | **Boolean** | The item&#39;s default image, which an itemimage element with no code renders. | [optional] |
10
+ | **description** | **String** | The new description, rendered as the image&#39;s alt text. An empty string clears it, so the image falls back to the machine description or the element&#39;s own fallback. Longer text is cut to 500 characters. | [optional] |
11
+ | **merchant_item_multimedia_oid** | **Integer** | The stored image&#39;s id, as an item read reports it. Name this, or one of code or default. | [optional] |
12
+
13
+ ## Example
14
+
15
+ ```ruby
16
+ require 'ultracart_api'
17
+
18
+ instance = UltracartClient::SfvbItemMultimediaDescriptionRequest.new(
19
+ code: null,
20
+ current_sha256: null,
21
+ default: null,
22
+ description: null,
23
+ merchant_item_multimedia_oid: null
24
+ )
25
+ ```
26
+
@@ -259,7 +259,7 @@ module UltracartClient
259
259
  # Revoke this OAuth application.
260
260
  # Revokes the OAuth application associated with the specified client_id and token.
261
261
  # @param client_id [String] The OAuth application client_id.
262
- # @param token [String] The OAuth access token that is to be revoked..
262
+ # @param token [String] The OAuth access token or refresh token that is to be revoked.
263
263
  # @param [Hash] opts the optional parameters
264
264
  # @return [OauthRevokeSuccessResponse]
265
265
  def oauth_revoke(client_id, token, opts = {})
@@ -270,7 +270,7 @@ module UltracartClient
270
270
  # Revoke this OAuth application.
271
271
  # Revokes the OAuth application associated with the specified client_id and token.
272
272
  # @param client_id [String] The OAuth application client_id.
273
- # @param token [String] The OAuth access token that is to be revoked..
273
+ # @param token [String] The OAuth access token or refresh token that is to be revoked.
274
274
  # @param [Hash] opts the optional parameters
275
275
  # @return [Array<(OauthRevokeSuccessResponse, Integer, Hash)>] OauthRevokeSuccessResponse data, response status code and response headers
276
276
  def oauth_revoke_with_http_info(client_id, token, opts = {})
@@ -9020,6 +9020,87 @@ module UltracartClient
9020
9020
  return data, status_code, headers
9021
9021
  end
9022
9022
 
9023
+ # Change an item image's description
9024
+ # Changes the description (alt text) of one image already attached to the item, in place. The image is not touched. Name it by merchant_item_multimedia_oid, or by exactly one of code or default; gallery images often have no code. An empty description clears it, so the render falls back again. Send the description_sha256 you read as current_sha256 so a change made since is not overwritten. A description written here takes the place of the machine description, and image recognition never overwrites it.
9025
+ # @param storefront_oid [Integer]
9026
+ # @param item_multimedia_description_request [SfvbItemMultimediaDescriptionRequest] The image and its new description
9027
+ # @param [Hash] opts the optional parameters
9028
+ # @option opts [String] :merchant_item_id
9029
+ # @option opts [Integer] :merchant_item_oid
9030
+ # @return [SfvbItemResponse]
9031
+ def put_sfvb_item_multimedia_description(storefront_oid, item_multimedia_description_request, opts = {})
9032
+ data, _status_code, _headers = put_sfvb_item_multimedia_description_with_http_info(storefront_oid, item_multimedia_description_request, opts)
9033
+ data
9034
+ end
9035
+
9036
+ # Change an item image&#39;s description
9037
+ # Changes the description (alt text) of one image already attached to the item, in place. The image is not touched. Name it by merchant_item_multimedia_oid, or by exactly one of code or default; gallery images often have no code. An empty description clears it, so the render falls back again. Send the description_sha256 you read as current_sha256 so a change made since is not overwritten. A description written here takes the place of the machine description, and image recognition never overwrites it.
9038
+ # @param storefront_oid [Integer]
9039
+ # @param item_multimedia_description_request [SfvbItemMultimediaDescriptionRequest] The image and its new description
9040
+ # @param [Hash] opts the optional parameters
9041
+ # @option opts [String] :merchant_item_id
9042
+ # @option opts [Integer] :merchant_item_oid
9043
+ # @return [Array<(SfvbItemResponse, Integer, Hash)>] SfvbItemResponse data, response status code and response headers
9044
+ def put_sfvb_item_multimedia_description_with_http_info(storefront_oid, item_multimedia_description_request, opts = {})
9045
+ if @api_client.config.debugging
9046
+ @api_client.config.logger.debug 'Calling API: SfvbApi.put_sfvb_item_multimedia_description ...'
9047
+ end
9048
+ # verify the required parameter 'storefront_oid' is set
9049
+ if @api_client.config.client_side_validation && storefront_oid.nil?
9050
+ fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling SfvbApi.put_sfvb_item_multimedia_description"
9051
+ end
9052
+ # verify the required parameter 'item_multimedia_description_request' is set
9053
+ if @api_client.config.client_side_validation && item_multimedia_description_request.nil?
9054
+ fail ArgumentError, "Missing the required parameter 'item_multimedia_description_request' when calling SfvbApi.put_sfvb_item_multimedia_description"
9055
+ end
9056
+ # resource path
9057
+ local_var_path = '/sfvb/storefronts/{storefront_oid}/items/multimedia/description'.sub('{' + 'storefront_oid' + '}', CGI.escape(storefront_oid.to_s))
9058
+
9059
+ # query parameters
9060
+ query_params = opts[:query_params] || {}
9061
+ query_params[:'merchant_item_id'] = opts[:'merchant_item_id'] if !opts[:'merchant_item_id'].nil?
9062
+ query_params[:'merchant_item_oid'] = opts[:'merchant_item_oid'] if !opts[:'merchant_item_oid'].nil?
9063
+
9064
+ # header parameters
9065
+ header_params = opts[:header_params] || {}
9066
+ header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
9067
+ # HTTP header 'Accept' (if needed)
9068
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
9069
+ # HTTP header 'Content-Type'
9070
+ content_type = @api_client.select_header_content_type(['application/json'])
9071
+ if !content_type.nil?
9072
+ header_params['Content-Type'] = content_type
9073
+ end
9074
+
9075
+ # form parameters
9076
+ form_params = opts[:form_params] || {}
9077
+
9078
+ # http body (model)
9079
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(item_multimedia_description_request)
9080
+
9081
+ # return_type
9082
+ return_type = opts[:debug_return_type] || 'SfvbItemResponse'
9083
+
9084
+ # auth_names
9085
+ auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
9086
+
9087
+ new_options = opts.merge(
9088
+ :operation => :"SfvbApi.put_sfvb_item_multimedia_description",
9089
+ :header_params => header_params,
9090
+ :query_params => query_params,
9091
+ :form_params => form_params,
9092
+ :body => post_body,
9093
+ :auth_names => auth_names,
9094
+ :return_type => return_type
9095
+ )
9096
+
9097
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
9098
+ if @api_client.config.debugging
9099
+ @api_client.config.logger.debug "API called: SfvbApi#put_sfvb_item_multimedia_description\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
9100
+ end
9101
+ return data, status_code, headers
9102
+ end
9103
+
9023
9104
  # Change what an item charges
9024
9105
  # Partial - a field left out is untouched. A sale needs sale_cost, sale_start and sale_end together, the end after the start; clear_sale removes it. msrp must be more than 0 (0 only when the price is 0); clear_msrp removes it. volume_discounts replaces the retail quantity breaks. Shoppers pay the new price at once, so this needs sfvb_publish, If-Match with the pricing hash_sha256, and the approval of the person who signed in the CLI - an approved item.pricing request for this item and exactly this change. A change that sets every field to what it already is returns the pricing unchanged and uses no approval.
9025
9106
  # @param storefront_oid [Integer]
@@ -24,9 +24,15 @@ module UltracartClient
24
24
  # True for the image an itemimage element with no code renders. Default is per media type, so an item may have one default image and one default PDF at the same time.
25
25
  attr_accessor :default
26
26
 
27
- # Stored with the image and rendered as its alt text. When it is empty the render falls back to the item's own description, so an empty value here is not an empty alt attribute.
27
+ # The merchant's description, stored with the image and rendered as its alt text. When it is empty the render falls back to rekognition_description or to text built from the item's title, depending on the element, so an empty value here is not an empty alt attribute.
28
28
  attr_accessor :description
29
29
 
30
+ # SHA-256 of description (empty when there is none). Send it as current_sha256 when changing the description so a change made since you read it is not overwritten.
31
+ attr_accessor :description_sha256
32
+
33
+ # Where the alt text comes from now. merchant when description is set, rekognition when only rekognition_description is, none otherwise.
34
+ attr_accessor :description_source
35
+
30
36
  # Width x height in pixels, when the storage measured the file.
31
37
  attr_accessor :dimensions
32
38
 
@@ -36,6 +42,12 @@ module UltracartClient
36
42
  # The stored file's name. Empty when the slot is declared and nothing is attached.
37
43
  attr_accessor :filename
38
44
 
45
+ # The stored image's id. Name it to change this image's description when it has no code.
46
+ attr_accessor :merchant_item_multimedia_oid
47
+
48
+ # The machine description image recognition produced for the stored image, if any. It is used only while description is empty, and a description written here or in the admin always takes its place.
49
+ attr_accessor :rekognition_description
50
+
39
51
  # The media type the storage recorded.
40
52
  attr_accessor :type
41
53
 
@@ -71,9 +83,13 @@ module UltracartClient
71
83
  :'declared' => :'declared',
72
84
  :'default' => :'default',
73
85
  :'description' => :'description',
86
+ :'description_sha256' => :'description_sha256',
87
+ :'description_source' => :'description_source',
74
88
  :'dimensions' => :'dimensions',
75
89
  :'exclude_from_gallery' => :'exclude_from_gallery',
76
90
  :'filename' => :'filename',
91
+ :'merchant_item_multimedia_oid' => :'merchant_item_multimedia_oid',
92
+ :'rekognition_description' => :'rekognition_description',
77
93
  :'type' => :'type',
78
94
  :'view_url' => :'view_url'
79
95
  }
@@ -91,9 +107,13 @@ module UltracartClient
91
107
  :'declared' => :'Boolean',
92
108
  :'default' => :'Boolean',
93
109
  :'description' => :'String',
110
+ :'description_sha256' => :'String',
111
+ :'description_source' => :'String',
94
112
  :'dimensions' => :'String',
95
113
  :'exclude_from_gallery' => :'Boolean',
96
114
  :'filename' => :'String',
115
+ :'merchant_item_multimedia_oid' => :'Integer',
116
+ :'rekognition_description' => :'String',
97
117
  :'type' => :'String',
98
118
  :'view_url' => :'String'
99
119
  }
@@ -136,6 +156,14 @@ module UltracartClient
136
156
  self.description = attributes[:'description']
137
157
  end
138
158
 
159
+ if attributes.key?(:'description_sha256')
160
+ self.description_sha256 = attributes[:'description_sha256']
161
+ end
162
+
163
+ if attributes.key?(:'description_source')
164
+ self.description_source = attributes[:'description_source']
165
+ end
166
+
139
167
  if attributes.key?(:'dimensions')
140
168
  self.dimensions = attributes[:'dimensions']
141
169
  end
@@ -148,6 +176,14 @@ module UltracartClient
148
176
  self.filename = attributes[:'filename']
149
177
  end
150
178
 
179
+ if attributes.key?(:'merchant_item_multimedia_oid')
180
+ self.merchant_item_multimedia_oid = attributes[:'merchant_item_multimedia_oid']
181
+ end
182
+
183
+ if attributes.key?(:'rekognition_description')
184
+ self.rekognition_description = attributes[:'rekognition_description']
185
+ end
186
+
151
187
  if attributes.key?(:'type')
152
188
  self.type = attributes[:'type']
153
189
  end
@@ -167,11 +203,23 @@ module UltracartClient
167
203
  # Check to see if the all the properties in the model are valid
168
204
  # @return true if the model is valid
169
205
  def valid?
206
+ description_source_validator = EnumAttributeValidator.new('String', ["merchant", "rekognition", "none"])
207
+ return false unless description_source_validator.valid?(@description_source)
170
208
  type_validator = EnumAttributeValidator.new('String', ["Image", "Video", "PDF", "Text", "Unknown"])
171
209
  return false unless type_validator.valid?(@type)
172
210
  true
173
211
  end
174
212
 
213
+ # Custom attribute writer method checking allowed values (enum).
214
+ # @param [Object] description_source Object to be assigned
215
+ def description_source=(description_source)
216
+ validator = EnumAttributeValidator.new('String', ["merchant", "rekognition", "none"])
217
+ unless validator.valid?(description_source)
218
+ fail ArgumentError, "invalid value for \"description_source\", must be one of #{validator.allowable_values}."
219
+ end
220
+ @description_source = description_source
221
+ end
222
+
175
223
  # Custom attribute writer method checking allowed values (enum).
176
224
  # @param [Object] type Object to be assigned
177
225
  def type=(type)
@@ -191,9 +239,13 @@ module UltracartClient
191
239
  declared == o.declared &&
192
240
  default == o.default &&
193
241
  description == o.description &&
242
+ description_sha256 == o.description_sha256 &&
243
+ description_source == o.description_source &&
194
244
  dimensions == o.dimensions &&
195
245
  exclude_from_gallery == o.exclude_from_gallery &&
196
246
  filename == o.filename &&
247
+ merchant_item_multimedia_oid == o.merchant_item_multimedia_oid &&
248
+ rekognition_description == o.rekognition_description &&
197
249
  type == o.type &&
198
250
  view_url == o.view_url
199
251
  end
@@ -207,7 +259,7 @@ module UltracartClient
207
259
  # Calculates hash code according to all attributes.
208
260
  # @return [Integer] Hash code
209
261
  def hash
210
- [code, declared, default, description, dimensions, exclude_from_gallery, filename, type, view_url].hash
262
+ [code, declared, default, description, description_sha256, description_source, dimensions, exclude_from_gallery, filename, merchant_item_multimedia_oid, rekognition_description, type, view_url].hash
211
263
  end
212
264
 
213
265
  # Builds the object from hash
@@ -0,0 +1,260 @@
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 SfvbItemMultimediaDescriptionRequest
18
+ # The image code, the value an itemimage element's itemImageCode names.
19
+ attr_accessor :code
20
+
21
+ # The description_sha256 you read. When it is sent and the description has changed since, nothing is written and the call fails with a version conflict.
22
+ attr_accessor :current_sha256
23
+
24
+ # The item's default image, which an itemimage element with no code renders.
25
+ attr_accessor :default
26
+
27
+ # The new description, rendered as the image's alt text. An empty string clears it, so the image falls back to the machine description or the element's own fallback. Longer text is cut to 500 characters.
28
+ attr_accessor :description
29
+
30
+ # The stored image's id, as an item read reports it. Name this, or one of code or default.
31
+ attr_accessor :merchant_item_multimedia_oid
32
+
33
+ # Attribute mapping from ruby-style variable name to JSON key.
34
+ def self.attribute_map
35
+ {
36
+ :'code' => :'code',
37
+ :'current_sha256' => :'current_sha256',
38
+ :'default' => :'default',
39
+ :'description' => :'description',
40
+ :'merchant_item_multimedia_oid' => :'merchant_item_multimedia_oid'
41
+ }
42
+ end
43
+
44
+ # Returns all the JSON keys this model knows about
45
+ def self.acceptable_attributes
46
+ attribute_map.values
47
+ end
48
+
49
+ # Attribute type mapping.
50
+ def self.openapi_types
51
+ {
52
+ :'code' => :'String',
53
+ :'current_sha256' => :'String',
54
+ :'default' => :'Boolean',
55
+ :'description' => :'String',
56
+ :'merchant_item_multimedia_oid' => :'Integer'
57
+ }
58
+ end
59
+
60
+ # List of attributes with nullable: true
61
+ def self.openapi_nullable
62
+ Set.new([
63
+ ])
64
+ end
65
+
66
+ # Initializes the object
67
+ # @param [Hash] attributes Model attributes in the form of hash
68
+ def initialize(attributes = {})
69
+ if (!attributes.is_a?(Hash))
70
+ fail ArgumentError, "The input argument (attributes) must be a hash in `UltracartClient::SfvbItemMultimediaDescriptionRequest` initialize method"
71
+ end
72
+
73
+ # check to see if the attribute exists and convert string to symbol for hash key
74
+ attributes = attributes.each_with_object({}) { |(k, v), h|
75
+ if (!self.class.attribute_map.key?(k.to_sym))
76
+ fail ArgumentError, "`#{k}` is not a valid attribute in `UltracartClient::SfvbItemMultimediaDescriptionRequest`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
77
+ end
78
+ h[k.to_sym] = v
79
+ }
80
+
81
+ if attributes.key?(:'code')
82
+ self.code = attributes[:'code']
83
+ end
84
+
85
+ if attributes.key?(:'current_sha256')
86
+ self.current_sha256 = attributes[:'current_sha256']
87
+ end
88
+
89
+ if attributes.key?(:'default')
90
+ self.default = attributes[:'default']
91
+ end
92
+
93
+ if attributes.key?(:'description')
94
+ self.description = attributes[:'description']
95
+ end
96
+
97
+ if attributes.key?(:'merchant_item_multimedia_oid')
98
+ self.merchant_item_multimedia_oid = attributes[:'merchant_item_multimedia_oid']
99
+ end
100
+ end
101
+
102
+ # Show invalid properties with the reasons. Usually used together with valid?
103
+ # @return Array for valid properties with the reasons
104
+ def list_invalid_properties
105
+ invalid_properties = Array.new
106
+ invalid_properties
107
+ end
108
+
109
+ # Check to see if the all the properties in the model are valid
110
+ # @return true if the model is valid
111
+ def valid?
112
+ true
113
+ end
114
+
115
+ # Checks equality by comparing each attribute.
116
+ # @param [Object] Object to be compared
117
+ def ==(o)
118
+ return true if self.equal?(o)
119
+ self.class == o.class &&
120
+ code == o.code &&
121
+ current_sha256 == o.current_sha256 &&
122
+ default == o.default &&
123
+ description == o.description &&
124
+ merchant_item_multimedia_oid == o.merchant_item_multimedia_oid
125
+ end
126
+
127
+ # @see the `==` method
128
+ # @param [Object] Object to be compared
129
+ def eql?(o)
130
+ self == o
131
+ end
132
+
133
+ # Calculates hash code according to all attributes.
134
+ # @return [Integer] Hash code
135
+ def hash
136
+ [code, current_sha256, default, description, merchant_item_multimedia_oid].hash
137
+ end
138
+
139
+ # Builds the object from hash
140
+ # @param [Hash] attributes Model attributes in the form of hash
141
+ # @return [Object] Returns the model itself
142
+ def self.build_from_hash(attributes)
143
+ new.build_from_hash(attributes)
144
+ end
145
+
146
+ # Builds the object from hash
147
+ # @param [Hash] attributes Model attributes in the form of hash
148
+ # @return [Object] Returns the model itself
149
+ def build_from_hash(attributes)
150
+ return nil unless attributes.is_a?(Hash)
151
+ attributes = attributes.transform_keys(&:to_sym)
152
+ self.class.openapi_types.each_pair do |key, type|
153
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
154
+ self.send("#{key}=", nil)
155
+ elsif type =~ /\AArray<(.*)>/i
156
+ # check to ensure the input is an array given that the attribute
157
+ # is documented as an array but the input is not
158
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
159
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
160
+ end
161
+ elsif !attributes[self.class.attribute_map[key]].nil?
162
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
163
+ end
164
+ end
165
+
166
+ self
167
+ end
168
+
169
+ # Deserializes the data based on type
170
+ # @param string type Data type
171
+ # @param string value Value to be deserialized
172
+ # @return [Object] Deserialized data
173
+ def _deserialize(type, value)
174
+ case type.to_sym
175
+ when :Time
176
+ Time.parse(value)
177
+ when :Date
178
+ Date.parse(value)
179
+ when :String
180
+ value.to_s
181
+ when :Integer
182
+ value.to_i
183
+ when :Float
184
+ value.to_f
185
+ when :Boolean
186
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
187
+ true
188
+ else
189
+ false
190
+ end
191
+ when :Object
192
+ # generic object (usually a Hash), return directly
193
+ value
194
+ when /\AArray<(?<inner_type>.+)>\z/
195
+ inner_type = Regexp.last_match[:inner_type]
196
+ value.map { |v| _deserialize(inner_type, v) }
197
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
198
+ k_type = Regexp.last_match[:k_type]
199
+ v_type = Regexp.last_match[:v_type]
200
+ {}.tap do |hash|
201
+ value.each do |k, v|
202
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
203
+ end
204
+ end
205
+ else # model
206
+ # models (e.g. Pet) or oneOf
207
+ klass = UltracartClient.const_get(type)
208
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
209
+ end
210
+ end
211
+
212
+ # Returns the string representation of the object
213
+ # @return [String] String presentation of the object
214
+ def to_s
215
+ to_hash.to_s
216
+ end
217
+
218
+ # to_body is an alias to to_hash (backward compatibility)
219
+ # @return [Hash] Returns the object in the form of hash
220
+ def to_body
221
+ to_hash
222
+ end
223
+
224
+ # Returns the object in the form of hash
225
+ # @return [Hash] Returns the object in the form of hash
226
+ def to_hash
227
+ hash = {}
228
+ self.class.attribute_map.each_pair do |attr, param|
229
+ value = self.send(attr)
230
+ if value.nil?
231
+ is_nullable = self.class.openapi_nullable.include?(attr)
232
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
233
+ end
234
+
235
+ hash[param] = _to_hash(value)
236
+ end
237
+ hash
238
+ end
239
+
240
+ # Outputs non-array value in the form of hash
241
+ # For object, use to_hash. Otherwise, just return the value
242
+ # @param [Object] value Any valid value
243
+ # @return [Hash] Returns the value in the form of hash
244
+ def _to_hash(value)
245
+ if value.is_a?(Array)
246
+ value.compact.map { |v| _to_hash(v) }
247
+ elsif value.is_a?(Hash)
248
+ {}.tap do |hash|
249
+ value.each { |k, v| hash[k] = _to_hash(v) }
250
+ end
251
+ elsif value.respond_to? :to_hash
252
+ value.to_hash
253
+ else
254
+ value
255
+ end
256
+ end
257
+
258
+ end
259
+
260
+ 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.201'
14
+ VERSION = '4.1.202'
15
15
  end
data/lib/ultracart_api.rb CHANGED
@@ -1054,6 +1054,7 @@ require 'ultracart_api/models/sfvb_item_container'
1054
1054
  require 'ultracart_api/models/sfvb_item_containers_response'
1055
1055
  require 'ultracart_api/models/sfvb_item_content_request'
1056
1056
  require 'ultracart_api/models/sfvb_item_multimedia'
1057
+ require 'ultracart_api/models/sfvb_item_multimedia_description_request'
1057
1058
  require 'ultracart_api/models/sfvb_item_multimedia_request'
1058
1059
  require 'ultracart_api/models/sfvb_item_pricing'
1059
1060
  require 'ultracart_api/models/sfvb_item_pricing_request'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ultracart_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.201
4
+ version: 4.1.202
5
5
  platform: ruby
6
6
  authors:
7
7
  - UltraCart
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-10-12 00:00:00.000000000 Z
11
+ date: 2026-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus
@@ -1116,6 +1116,7 @@ files:
1116
1116
  - docs/SfvbItemContainersResponse.md
1117
1117
  - docs/SfvbItemContentRequest.md
1118
1118
  - docs/SfvbItemMultimedia.md
1119
+ - docs/SfvbItemMultimediaDescriptionRequest.md
1119
1120
  - docs/SfvbItemMultimediaRequest.md
1120
1121
  - docs/SfvbItemPricing.md
1121
1122
  - docs/SfvbItemPricingRequest.md
@@ -2424,6 +2425,7 @@ files:
2424
2425
  - lib/ultracart_api/models/sfvb_item_containers_response.rb
2425
2426
  - lib/ultracart_api/models/sfvb_item_content_request.rb
2426
2427
  - lib/ultracart_api/models/sfvb_item_multimedia.rb
2428
+ - lib/ultracart_api/models/sfvb_item_multimedia_description_request.rb
2427
2429
  - lib/ultracart_api/models/sfvb_item_multimedia_request.rb
2428
2430
  - lib/ultracart_api/models/sfvb_item_pricing.rb
2429
2431
  - lib/ultracart_api/models/sfvb_item_pricing_request.rb