late-sdk 0.0.927 → 0.0.929

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.
@@ -0,0 +1,259 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Zernio
17
+ # Public HTTP(S) image URLs. Each role you send replaces that role's images; roles you omit stay. GIF, JPEG or PNG, at most 5120 KB per image.
18
+ class GooglePmaxAssetGroupUpdateImages < ApiModelBase
19
+ # Replaces MARKETING_IMAGE assets. Aspect ratio 1.91:1, minimum 600 x 314 pixels.
20
+ attr_accessor :landscape
21
+
22
+ # Replaces SQUARE_MARKETING_IMAGE assets. Aspect ratio 1:1, minimum 300 x 300 pixels.
23
+ attr_accessor :square
24
+
25
+ # Replaces LOGO assets. Aspect ratio 1:1, minimum 128 x 128 pixels.
26
+ attr_accessor :logo
27
+
28
+ # Attribute mapping from ruby-style variable name to JSON key.
29
+ def self.attribute_map
30
+ {
31
+ :'landscape' => :'landscape',
32
+ :'square' => :'square',
33
+ :'logo' => :'logo'
34
+ }
35
+ end
36
+
37
+ # Returns attribute mapping this model knows about
38
+ def self.acceptable_attribute_map
39
+ attribute_map
40
+ end
41
+
42
+ # Returns all the JSON keys this model knows about
43
+ def self.acceptable_attributes
44
+ acceptable_attribute_map.values
45
+ end
46
+
47
+ # Attribute type mapping.
48
+ def self.openapi_types
49
+ {
50
+ :'landscape' => :'Array<String>',
51
+ :'square' => :'Array<String>',
52
+ :'logo' => :'Array<String>'
53
+ }
54
+ end
55
+
56
+ # List of attributes with nullable: true
57
+ def self.openapi_nullable
58
+ Set.new([
59
+ ])
60
+ end
61
+
62
+ # Initializes the object
63
+ # @param [Hash] attributes Model attributes in the form of hash
64
+ def initialize(attributes = {})
65
+ if (!attributes.is_a?(Hash))
66
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::GooglePmaxAssetGroupUpdateImages` initialize method"
67
+ end
68
+
69
+ # check to see if the attribute exists and convert string to symbol for hash key
70
+ acceptable_attribute_map = self.class.acceptable_attribute_map
71
+ attributes = attributes.each_with_object({}) { |(k, v), h|
72
+ if (!acceptable_attribute_map.key?(k.to_sym))
73
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::GooglePmaxAssetGroupUpdateImages`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
74
+ end
75
+ h[k.to_sym] = v
76
+ }
77
+
78
+ if attributes.key?(:'landscape')
79
+ if (value = attributes[:'landscape']).is_a?(Array)
80
+ self.landscape = value
81
+ end
82
+ end
83
+
84
+ if attributes.key?(:'square')
85
+ if (value = attributes[:'square']).is_a?(Array)
86
+ self.square = value
87
+ end
88
+ end
89
+
90
+ if attributes.key?(:'logo')
91
+ if (value = attributes[:'logo']).is_a?(Array)
92
+ self.logo = value
93
+ end
94
+ end
95
+ end
96
+
97
+ # Show invalid properties with the reasons. Usually used together with valid?
98
+ # @return Array for valid properties with the reasons
99
+ def list_invalid_properties
100
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
101
+ invalid_properties = Array.new
102
+ if !@landscape.nil? && @landscape.length > 20
103
+ invalid_properties.push('invalid value for "landscape", number of items must be less than or equal to 20.')
104
+ end
105
+
106
+ if !@landscape.nil? && @landscape.length < 1
107
+ invalid_properties.push('invalid value for "landscape", number of items must be greater than or equal to 1.')
108
+ end
109
+
110
+ if !@square.nil? && @square.length > 20
111
+ invalid_properties.push('invalid value for "square", number of items must be less than or equal to 20.')
112
+ end
113
+
114
+ if !@square.nil? && @square.length < 1
115
+ invalid_properties.push('invalid value for "square", number of items must be greater than or equal to 1.')
116
+ end
117
+
118
+ if !@logo.nil? && @logo.length > 5
119
+ invalid_properties.push('invalid value for "logo", number of items must be less than or equal to 5.')
120
+ end
121
+
122
+ if !@logo.nil? && @logo.length < 1
123
+ invalid_properties.push('invalid value for "logo", number of items must be greater than or equal to 1.')
124
+ end
125
+
126
+ invalid_properties
127
+ end
128
+
129
+ # Check to see if the all the properties in the model are valid
130
+ # @return true if the model is valid
131
+ def valid?
132
+ warn '[DEPRECATED] the `valid?` method is obsolete'
133
+ return false if !@landscape.nil? && @landscape.length > 20
134
+ return false if !@landscape.nil? && @landscape.length < 1
135
+ return false if !@square.nil? && @square.length > 20
136
+ return false if !@square.nil? && @square.length < 1
137
+ return false if !@logo.nil? && @logo.length > 5
138
+ return false if !@logo.nil? && @logo.length < 1
139
+ true
140
+ end
141
+
142
+ # Custom attribute writer method with validation
143
+ # @param [Object] landscape Value to be assigned
144
+ def landscape=(landscape)
145
+ if landscape.nil?
146
+ fail ArgumentError, 'landscape cannot be nil'
147
+ end
148
+
149
+ if landscape.length > 20
150
+ fail ArgumentError, 'invalid value for "landscape", number of items must be less than or equal to 20.'
151
+ end
152
+
153
+ if landscape.length < 1
154
+ fail ArgumentError, 'invalid value for "landscape", number of items must be greater than or equal to 1.'
155
+ end
156
+
157
+ @landscape = landscape
158
+ end
159
+
160
+ # Custom attribute writer method with validation
161
+ # @param [Object] square Value to be assigned
162
+ def square=(square)
163
+ if square.nil?
164
+ fail ArgumentError, 'square cannot be nil'
165
+ end
166
+
167
+ if square.length > 20
168
+ fail ArgumentError, 'invalid value for "square", number of items must be less than or equal to 20.'
169
+ end
170
+
171
+ if square.length < 1
172
+ fail ArgumentError, 'invalid value for "square", number of items must be greater than or equal to 1.'
173
+ end
174
+
175
+ @square = square
176
+ end
177
+
178
+ # Custom attribute writer method with validation
179
+ # @param [Object] logo Value to be assigned
180
+ def logo=(logo)
181
+ if logo.nil?
182
+ fail ArgumentError, 'logo cannot be nil'
183
+ end
184
+
185
+ if logo.length > 5
186
+ fail ArgumentError, 'invalid value for "logo", number of items must be less than or equal to 5.'
187
+ end
188
+
189
+ if logo.length < 1
190
+ fail ArgumentError, 'invalid value for "logo", number of items must be greater than or equal to 1.'
191
+ end
192
+
193
+ @logo = logo
194
+ end
195
+
196
+ # Checks equality by comparing each attribute.
197
+ # @param [Object] Object to be compared
198
+ def ==(o)
199
+ return true if self.equal?(o)
200
+ self.class == o.class &&
201
+ landscape == o.landscape &&
202
+ square == o.square &&
203
+ logo == o.logo
204
+ end
205
+
206
+ # @see the `==` method
207
+ # @param [Object] Object to be compared
208
+ def eql?(o)
209
+ self == o
210
+ end
211
+
212
+ # Calculates hash code according to all attributes.
213
+ # @return [Integer] Hash code
214
+ def hash
215
+ [landscape, square, logo].hash
216
+ end
217
+
218
+ # Builds the object from hash
219
+ # @param [Hash] attributes Model attributes in the form of hash
220
+ # @return [Object] Returns the model itself
221
+ def self.build_from_hash(attributes)
222
+ return nil unless attributes.is_a?(Hash)
223
+ attributes = attributes.transform_keys(&:to_sym)
224
+ transformed_hash = {}
225
+ openapi_types.each_pair do |key, type|
226
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
227
+ transformed_hash["#{key}"] = nil
228
+ elsif type =~ /\AArray<(.*)>/i
229
+ # check to ensure the input is an array given that the attribute
230
+ # is documented as an array but the input is not
231
+ if attributes[attribute_map[key]].is_a?(Array)
232
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
233
+ end
234
+ elsif !attributes[attribute_map[key]].nil?
235
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
236
+ end
237
+ end
238
+ new(transformed_hash)
239
+ end
240
+
241
+ # Returns the object in the form of hash
242
+ # @return [Hash] Returns the object in the form of hash
243
+ def to_hash
244
+ hash = {}
245
+ self.class.attribute_map.each_pair do |attr, param|
246
+ value = self.send(attr)
247
+ if value.nil?
248
+ is_nullable = self.class.openapi_nullable.include?(attr)
249
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
250
+ end
251
+
252
+ hash[param] = _to_hash(value)
253
+ end
254
+ hash
255
+ end
256
+
257
+ end
258
+
259
+ end
@@ -52,7 +52,7 @@ module Zernio
52
52
  # Optional for video posts. Timestamp in milliseconds to select which frame to use as thumbnail (defaults to 1000ms/1 second). Ignored when videoCoverImageUrl is provided.
53
53
  attr_accessor :video_cover_timestamp_ms
54
54
 
55
- # Optional for video posts. URL of a custom thumbnail image (JPG, PNG, or WebP, max 20MB). The image is stitched as a single frame at the start of the video and used as the cover. Overrides videoCoverTimestampMs when provided.
55
+ # Optional for video posts. URL of a custom thumbnail image (JPG, PNG, or WebP, max 20MB). The image is stitched as a single frame at the start of the video and used as the cover. Accounts connected through the TikTok for Business app instead pass the URL to TikTok as the cover directly, with no stitching, and the URL must resolve on a domain we have verified with TikTok. Overrides videoCoverTimestampMs when provided.
56
56
  attr_accessor :video_cover_image_url
57
57
 
58
58
  # Optional for photo carousels. Index of image to use as cover, 0-based (defaults to 0/first image).
@@ -61,10 +61,10 @@ module Zernio
61
61
  # When true, TikTok may add recommended music (photos only)
62
62
  attr_accessor :auto_add_music
63
63
 
64
- # Set true to disclose AI-generated content
64
+ # Set true to disclose AI-generated content. Accounts connected through the TikTok for Business app carry the disclosure on video posts only: the business photo endpoint has no AI disclosure field, so true on a direct photo post is rejected at creation rather than published undisclosed. Send draft true to publish such a photo post and set the disclosure in the TikTok app.
65
65
  attr_accessor :video_made_with_ai
66
66
 
67
- # Optional long-form description for photo posts (max 4000 chars). Recommended when content exceeds 90 chars, as photo titles are auto-truncated.
67
+ # Optional long-form caption for photo posts (max 4000 chars). Recommended when content exceeds 90 chars, as photo titles are auto-truncated. Falls back to the post content when omitted.
68
68
  attr_accessor :description
69
69
 
70
70
  class EnumAttributeValidator
@@ -15,15 +15,18 @@ require 'time'
15
15
 
16
16
  module Zernio
17
17
  class UpdateAdRequest < ApiModelBase
18
- # Google RSA only. Replaces the complete headline list. No padding or truncation on update.
18
+ # Google Search and Display only. Replaces the complete headline list. Search takes 3-15, Display 1-5 and rejects pinnedField; the count is checked once the ad's channel is known. No padding or truncation on update.
19
19
  attr_accessor :headlines
20
20
 
21
- # Google RSA only. Replaces the complete description list. No padding or truncation on update.
21
+ # Google Search and Display only. Replaces the complete description list. Search takes 2-4, Display 1-5 and rejects pinnedField. No padding or truncation on update.
22
22
  attr_accessor :descriptions
23
23
 
24
- # Google RSA only. Replaces final URLs. Omitted lists stay unchanged.
24
+ # Google Search and Display only. Replaces final URLs. Omitted lists stay unchanged. For Performance Max use assetGroup.finalUrl.
25
25
  attr_accessor :final_urls
26
26
 
27
+ # Google Performance Max only. Replaces whole asset roles on the ad's asset group. Returns 422 on any other platform or channel.
28
+ attr_accessor :asset_group
29
+
27
30
  attr_accessor :status
28
31
 
29
32
  attr_accessor :budget
@@ -63,6 +66,7 @@ module Zernio
63
66
  :'headlines' => :'headlines',
64
67
  :'descriptions' => :'descriptions',
65
68
  :'final_urls' => :'finalUrls',
69
+ :'asset_group' => :'assetGroup',
66
70
  :'status' => :'status',
67
71
  :'budget' => :'budget',
68
72
  :'targeting' => :'targeting',
@@ -87,6 +91,7 @@ module Zernio
87
91
  :'headlines' => :'Array<GoogleRsaHeadline>',
88
92
  :'descriptions' => :'Array<GoogleRsaDescription>',
89
93
  :'final_urls' => :'Array<String>',
94
+ :'asset_group' => :'GooglePmaxAssetGroupUpdate',
90
95
  :'status' => :'String',
91
96
  :'budget' => :'UpdateAdRequestBudget',
92
97
  :'targeting' => :'UpdateAdRequestTargeting',
@@ -135,6 +140,10 @@ module Zernio
135
140
  end
136
141
  end
137
142
 
143
+ if attributes.key?(:'asset_group')
144
+ self.asset_group = attributes[:'asset_group']
145
+ end
146
+
138
147
  if attributes.key?(:'status')
139
148
  self.status = attributes[:'status']
140
149
  end
@@ -165,16 +174,16 @@ module Zernio
165
174
  invalid_properties.push('invalid value for "headlines", number of items must be less than or equal to 15.')
166
175
  end
167
176
 
168
- if !@headlines.nil? && @headlines.length < 3
169
- invalid_properties.push('invalid value for "headlines", number of items must be greater than or equal to 3.')
177
+ if !@headlines.nil? && @headlines.length < 1
178
+ invalid_properties.push('invalid value for "headlines", number of items must be greater than or equal to 1.')
170
179
  end
171
180
 
172
- if !@descriptions.nil? && @descriptions.length > 4
173
- invalid_properties.push('invalid value for "descriptions", number of items must be less than or equal to 4.')
181
+ if !@descriptions.nil? && @descriptions.length > 5
182
+ invalid_properties.push('invalid value for "descriptions", number of items must be less than or equal to 5.')
174
183
  end
175
184
 
176
- if !@descriptions.nil? && @descriptions.length < 2
177
- invalid_properties.push('invalid value for "descriptions", number of items must be greater than or equal to 2.')
185
+ if !@descriptions.nil? && @descriptions.length < 1
186
+ invalid_properties.push('invalid value for "descriptions", number of items must be greater than or equal to 1.')
178
187
  end
179
188
 
180
189
  if !@final_urls.nil? && @final_urls.length < 1
@@ -193,9 +202,9 @@ module Zernio
193
202
  def valid?
194
203
  warn '[DEPRECATED] the `valid?` method is obsolete'
195
204
  return false if !@headlines.nil? && @headlines.length > 15
196
- return false if !@headlines.nil? && @headlines.length < 3
197
- return false if !@descriptions.nil? && @descriptions.length > 4
198
- return false if !@descriptions.nil? && @descriptions.length < 2
205
+ return false if !@headlines.nil? && @headlines.length < 1
206
+ return false if !@descriptions.nil? && @descriptions.length > 5
207
+ return false if !@descriptions.nil? && @descriptions.length < 1
199
208
  return false if !@final_urls.nil? && @final_urls.length < 1
200
209
  status_validator = EnumAttributeValidator.new('String', ["active", "paused"])
201
210
  return false unless status_validator.valid?(@status)
@@ -214,8 +223,8 @@ module Zernio
214
223
  fail ArgumentError, 'invalid value for "headlines", number of items must be less than or equal to 15.'
215
224
  end
216
225
 
217
- if headlines.length < 3
218
- fail ArgumentError, 'invalid value for "headlines", number of items must be greater than or equal to 3.'
226
+ if headlines.length < 1
227
+ fail ArgumentError, 'invalid value for "headlines", number of items must be greater than or equal to 1.'
219
228
  end
220
229
 
221
230
  @headlines = headlines
@@ -228,12 +237,12 @@ module Zernio
228
237
  fail ArgumentError, 'descriptions cannot be nil'
229
238
  end
230
239
 
231
- if descriptions.length > 4
232
- fail ArgumentError, 'invalid value for "descriptions", number of items must be less than or equal to 4.'
240
+ if descriptions.length > 5
241
+ fail ArgumentError, 'invalid value for "descriptions", number of items must be less than or equal to 5.'
233
242
  end
234
243
 
235
- if descriptions.length < 2
236
- fail ArgumentError, 'invalid value for "descriptions", number of items must be greater than or equal to 2.'
244
+ if descriptions.length < 1
245
+ fail ArgumentError, 'invalid value for "descriptions", number of items must be greater than or equal to 1.'
237
246
  end
238
247
 
239
248
  @descriptions = descriptions
@@ -285,6 +294,7 @@ module Zernio
285
294
  headlines == o.headlines &&
286
295
  descriptions == o.descriptions &&
287
296
  final_urls == o.final_urls &&
297
+ asset_group == o.asset_group &&
288
298
  status == o.status &&
289
299
  budget == o.budget &&
290
300
  targeting == o.targeting &&
@@ -301,7 +311,7 @@ module Zernio
301
311
  # Calculates hash code according to all attributes.
302
312
  # @return [Integer] Hash code
303
313
  def hash
304
- [headlines, descriptions, final_urls, status, budget, targeting, creative, name].hash
314
+ [headlines, descriptions, final_urls, asset_group, status, budget, targeting, creative, name].hash
305
315
  end
306
316
 
307
317
  # Builds the object from hash
@@ -24,6 +24,15 @@ module Zernio
24
24
  # Meta and LinkedIn (TikTok has no headline slot)
25
25
  attr_accessor :headline
26
26
 
27
+ # Google Display only. Replaces the responsive display ad's long headline.
28
+ attr_accessor :long_headline
29
+
30
+ # Google Display only. Replaces the responsive display ad's business name.
31
+ attr_accessor :business_name
32
+
33
+ # Google Display only. Uploaded as a new square (1:1) marketing image asset that replaces the current one.
34
+ attr_accessor :square_image_url
35
+
27
36
  attr_accessor :body
28
37
 
29
38
  # Link description slot (Meta `link_data.description` / `video_data.link_description`, LinkedIn creative description).
@@ -71,6 +80,9 @@ module Zernio
71
80
  :'promotion' => :'promotion',
72
81
  :'creative_features' => :'creativeFeatures',
73
82
  :'headline' => :'headline',
83
+ :'long_headline' => :'longHeadline',
84
+ :'business_name' => :'businessName',
85
+ :'square_image_url' => :'squareImageUrl',
74
86
  :'body' => :'body',
75
87
  :'description' => :'description',
76
88
  :'call_to_action' => :'callToAction',
@@ -98,6 +110,9 @@ module Zernio
98
110
  :'promotion' => :'MetaPromotion',
99
111
  :'creative_features' => :'Hash<String, String>',
100
112
  :'headline' => :'String',
113
+ :'long_headline' => :'String',
114
+ :'business_name' => :'String',
115
+ :'square_image_url' => :'String',
101
116
  :'body' => :'String',
102
117
  :'description' => :'String',
103
118
  :'call_to_action' => :'String',
@@ -145,6 +160,18 @@ module Zernio
145
160
  self.headline = attributes[:'headline']
146
161
  end
147
162
 
163
+ if attributes.key?(:'long_headline')
164
+ self.long_headline = attributes[:'long_headline']
165
+ end
166
+
167
+ if attributes.key?(:'business_name')
168
+ self.business_name = attributes[:'business_name']
169
+ end
170
+
171
+ if attributes.key?(:'square_image_url')
172
+ self.square_image_url = attributes[:'square_image_url']
173
+ end
174
+
148
175
  if attributes.key?(:'body')
149
176
  self.body = attributes[:'body']
150
177
  end
@@ -183,6 +210,22 @@ module Zernio
183
210
  def list_invalid_properties
184
211
  warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
185
212
  invalid_properties = Array.new
213
+ if !@long_headline.nil? && @long_headline.to_s.length > 90
214
+ invalid_properties.push('invalid value for "long_headline", the character length must be smaller than or equal to 90.')
215
+ end
216
+
217
+ if !@long_headline.nil? && @long_headline.to_s.length < 1
218
+ invalid_properties.push('invalid value for "long_headline", the character length must be greater than or equal to 1.')
219
+ end
220
+
221
+ if !@business_name.nil? && @business_name.to_s.length > 25
222
+ invalid_properties.push('invalid value for "business_name", the character length must be smaller than or equal to 25.')
223
+ end
224
+
225
+ if !@business_name.nil? && @business_name.to_s.length < 1
226
+ invalid_properties.push('invalid value for "business_name", the character length must be greater than or equal to 1.')
227
+ end
228
+
186
229
  if !@description.nil? && @description.to_s.length > 255
187
230
  invalid_properties.push('invalid value for "description", the character length must be smaller than or equal to 255.')
188
231
  end
@@ -194,10 +237,50 @@ module Zernio
194
237
  # @return true if the model is valid
195
238
  def valid?
196
239
  warn '[DEPRECATED] the `valid?` method is obsolete'
240
+ return false if !@long_headline.nil? && @long_headline.to_s.length > 90
241
+ return false if !@long_headline.nil? && @long_headline.to_s.length < 1
242
+ return false if !@business_name.nil? && @business_name.to_s.length > 25
243
+ return false if !@business_name.nil? && @business_name.to_s.length < 1
197
244
  return false if !@description.nil? && @description.to_s.length > 255
198
245
  true
199
246
  end
200
247
 
248
+ # Custom attribute writer method with validation
249
+ # @param [Object] long_headline Value to be assigned
250
+ def long_headline=(long_headline)
251
+ if long_headline.nil?
252
+ fail ArgumentError, 'long_headline cannot be nil'
253
+ end
254
+
255
+ if long_headline.to_s.length > 90
256
+ fail ArgumentError, 'invalid value for "long_headline", the character length must be smaller than or equal to 90.'
257
+ end
258
+
259
+ if long_headline.to_s.length < 1
260
+ fail ArgumentError, 'invalid value for "long_headline", the character length must be greater than or equal to 1.'
261
+ end
262
+
263
+ @long_headline = long_headline
264
+ end
265
+
266
+ # Custom attribute writer method with validation
267
+ # @param [Object] business_name Value to be assigned
268
+ def business_name=(business_name)
269
+ if business_name.nil?
270
+ fail ArgumentError, 'business_name cannot be nil'
271
+ end
272
+
273
+ if business_name.to_s.length > 25
274
+ fail ArgumentError, 'invalid value for "business_name", the character length must be smaller than or equal to 25.'
275
+ end
276
+
277
+ if business_name.to_s.length < 1
278
+ fail ArgumentError, 'invalid value for "business_name", the character length must be greater than or equal to 1.'
279
+ end
280
+
281
+ @business_name = business_name
282
+ end
283
+
201
284
  # Custom attribute writer method with validation
202
285
  # @param [Object] description Value to be assigned
203
286
  def description=(description)
@@ -220,6 +303,9 @@ module Zernio
220
303
  promotion == o.promotion &&
221
304
  creative_features == o.creative_features &&
222
305
  headline == o.headline &&
306
+ long_headline == o.long_headline &&
307
+ business_name == o.business_name &&
308
+ square_image_url == o.square_image_url &&
223
309
  body == o.body &&
224
310
  description == o.description &&
225
311
  call_to_action == o.call_to_action &&
@@ -239,7 +325,7 @@ module Zernio
239
325
  # Calculates hash code according to all attributes.
240
326
  # @return [Integer] Hash code
241
327
  def hash
242
- [promotion, creative_features, headline, body, description, call_to_action, link_url, image_url, video_url, video_id, existing_creative_id].hash
328
+ [promotion, creative_features, headline, long_headline, business_name, square_image_url, body, description, call_to_action, link_url, image_url, video_url, video_id, existing_creative_id].hash
243
329
  end
244
330
 
245
331
  # Builds the object from hash
@@ -11,5 +11,5 @@ Generator version: 7.19.0
11
11
  =end
12
12
 
13
13
  module Zernio
14
- VERSION = '0.0.927'
14
+ VERSION = '0.0.929'
15
15
  end
data/lib/zernio-sdk.rb CHANGED
@@ -936,6 +936,8 @@ require 'zernio-sdk/models/google_pmax_asset_group'
936
936
  require 'zernio-sdk/models/google_pmax_asset_group_assets_inner'
937
937
  require 'zernio-sdk/models/google_pmax_asset_group_input'
938
938
  require 'zernio-sdk/models/google_pmax_asset_group_input_images'
939
+ require 'zernio-sdk/models/google_pmax_asset_group_update'
940
+ require 'zernio-sdk/models/google_pmax_asset_group_update_images'
939
941
  require 'zernio-sdk/models/google_rsa_description'
940
942
  require 'zernio-sdk/models/google_rsa_headline'
941
943
  require 'zernio-sdk/models/google_sitelink'