zernio-sdk 0.0.107 → 0.0.108

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: 875d897018fb6256fa20c800fdc514456151f5347db1c0c3d5aff9f6117c0486
4
- data.tar.gz: 626b3b9c30cefb2420df47de5d69f5420bffbf859b2431911fea22e7b05c7880
3
+ metadata.gz: 122907134481d50d553be8e2186ea0271cffcd72b54e964e5a37d8de172ca4b4
4
+ data.tar.gz: 05bc8d9e982b0e8e9761a02f68152a5e7808a320cf02157958a55501ef61019e
5
5
  SHA512:
6
- metadata.gz: 0e4de5ad7a4f4934303d3e4d75a0b35a1b9d3863ea0b687fdbd0333de5874d5172ecc3e2aead4120d463ab39566c52514f03d0c1093d601d2d841f960bde84c3
7
- data.tar.gz: 8b4cd4c8769ed09e3120354d8e87f6033476d714d8a90ae5f101a5c5ef6f6606b2ec26f7ddfae8aadc8ad6351b258e534401e835c6a6c7df17abc121e42400c2
6
+ metadata.gz: 292437673e4b8a1cca4bf50ec7d2e1a4d83dd6d57e36b23cb3e92c08e9f2b9fea3e9a758e0b1885aa7bbe9b6ed5f23595d7a1fefea206bf5f6aaee689285e776
7
+ data.tar.gz: 2be343ad324e78307772fa6cc9a3948f99261273c5f6a00e7006bd0a36e4998a596e206356e2c25de167842dc498bbcf651c7fdb15b2652fc35fde484023d1fa
data/README.md CHANGED
@@ -330,6 +330,7 @@ Class | Method | HTTP request | Description
330
330
  - [Late::Ad](docs/Ad.md)
331
331
  - [Late::AdBudget](docs/AdBudget.md)
332
332
  - [Late::AdCampaign](docs/AdCampaign.md)
333
+ - [Late::AdCreative](docs/AdCreative.md)
333
334
  - [Late::AdMetrics](docs/AdMetrics.md)
334
335
  - [Late::AdSchedule](docs/AdSchedule.md)
335
336
  - [Late::AdTreeAdSet](docs/AdTreeAdSet.md)
data/docs/Ad.md CHANGED
@@ -19,7 +19,7 @@
19
19
  | **platform_ad_set_id** | **String** | | [optional] |
20
20
  | **campaign_name** | **String** | | [optional] |
21
21
  | **ad_set_name** | **String** | | [optional] |
22
- | **creative** | **Object** | Platform-specific creative data | [optional] |
22
+ | **creative** | [**AdCreative**](AdCreative.md) | | [optional] |
23
23
  | **targeting** | **Object** | | [optional] |
24
24
  | **schedule** | [**AdSchedule**](AdSchedule.md) | | [optional] |
25
25
  | **rejection_reason** | **String** | | [optional] |
@@ -0,0 +1,36 @@
1
+ # Late::AdCreative
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **thumbnail_url** | **String** | Primary thumbnail/image URL | [optional] |
8
+ | **image_url** | **String** | Alternative image URL | [optional] |
9
+ | **media_urls** | **Array<String>** | All media URLs for this ad (carousel images, multiple assets). Populated for Meta (carousel child_attachments), Google Ads (responsive display marketing_images), and LinkedIn (multi-image posts). | [optional] |
10
+ | **body** | **String** | Ad copy/text | [optional] |
11
+ | **google_headline** | **String** | Google Ads headline | [optional] |
12
+ | **google_description** | **String** | Google Ads description | [optional] |
13
+ | **link_url** | **String** | Destination URL | [optional] |
14
+ | **pinterest_image_url** | **String** | | [optional] |
15
+ | **pinterest_title** | **String** | | [optional] |
16
+ | **pinterest_description** | **String** | | [optional] |
17
+
18
+ ## Example
19
+
20
+ ```ruby
21
+ require 'late-sdk'
22
+
23
+ instance = Late::AdCreative.new(
24
+ thumbnail_url: null,
25
+ image_url: null,
26
+ media_urls: null,
27
+ body: null,
28
+ google_headline: null,
29
+ google_description: null,
30
+ link_url: null,
31
+ pinterest_image_url: null,
32
+ pinterest_title: null,
33
+ pinterest_description: null
34
+ )
35
+ ```
36
+
@@ -46,7 +46,6 @@ module Late
46
46
 
47
47
  attr_accessor :ad_set_name
48
48
 
49
- # Platform-specific creative data
50
49
  attr_accessor :creative
51
50
 
52
51
  attr_accessor :targeting
@@ -136,7 +135,7 @@ module Late
136
135
  :'platform_ad_set_id' => :'String',
137
136
  :'campaign_name' => :'String',
138
137
  :'ad_set_name' => :'String',
139
- :'creative' => :'Object',
138
+ :'creative' => :'AdCreative',
140
139
  :'targeting' => :'Object',
141
140
  :'schedule' => :'AdSchedule',
142
141
  :'rejection_reason' => :'String',
@@ -0,0 +1,238 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
5
+
6
+ The version of the OpenAPI document: 1.0.1
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 Late
17
+ # Platform-specific creative data. Fields vary by platform.
18
+ class AdCreative < ApiModelBase
19
+ # Primary thumbnail/image URL
20
+ attr_accessor :thumbnail_url
21
+
22
+ # Alternative image URL
23
+ attr_accessor :image_url
24
+
25
+ # All media URLs for this ad (carousel images, multiple assets). Populated for Meta (carousel child_attachments), Google Ads (responsive display marketing_images), and LinkedIn (multi-image posts).
26
+ attr_accessor :media_urls
27
+
28
+ # Ad copy/text
29
+ attr_accessor :body
30
+
31
+ # Google Ads headline
32
+ attr_accessor :google_headline
33
+
34
+ # Google Ads description
35
+ attr_accessor :google_description
36
+
37
+ # Destination URL
38
+ attr_accessor :link_url
39
+
40
+ attr_accessor :pinterest_image_url
41
+
42
+ attr_accessor :pinterest_title
43
+
44
+ attr_accessor :pinterest_description
45
+
46
+ # Attribute mapping from ruby-style variable name to JSON key.
47
+ def self.attribute_map
48
+ {
49
+ :'thumbnail_url' => :'thumbnailUrl',
50
+ :'image_url' => :'imageUrl',
51
+ :'media_urls' => :'mediaUrls',
52
+ :'body' => :'body',
53
+ :'google_headline' => :'googleHeadline',
54
+ :'google_description' => :'googleDescription',
55
+ :'link_url' => :'linkUrl',
56
+ :'pinterest_image_url' => :'pinterestImageUrl',
57
+ :'pinterest_title' => :'pinterestTitle',
58
+ :'pinterest_description' => :'pinterestDescription'
59
+ }
60
+ end
61
+
62
+ # Returns attribute mapping this model knows about
63
+ def self.acceptable_attribute_map
64
+ attribute_map
65
+ end
66
+
67
+ # Returns all the JSON keys this model knows about
68
+ def self.acceptable_attributes
69
+ acceptable_attribute_map.values
70
+ end
71
+
72
+ # Attribute type mapping.
73
+ def self.openapi_types
74
+ {
75
+ :'thumbnail_url' => :'String',
76
+ :'image_url' => :'String',
77
+ :'media_urls' => :'Array<String>',
78
+ :'body' => :'String',
79
+ :'google_headline' => :'String',
80
+ :'google_description' => :'String',
81
+ :'link_url' => :'String',
82
+ :'pinterest_image_url' => :'String',
83
+ :'pinterest_title' => :'String',
84
+ :'pinterest_description' => :'String'
85
+ }
86
+ end
87
+
88
+ # List of attributes with nullable: true
89
+ def self.openapi_nullable
90
+ Set.new([
91
+ ])
92
+ end
93
+
94
+ # Initializes the object
95
+ # @param [Hash] attributes Model attributes in the form of hash
96
+ def initialize(attributes = {})
97
+ if (!attributes.is_a?(Hash))
98
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Late::AdCreative` initialize method"
99
+ end
100
+
101
+ # check to see if the attribute exists and convert string to symbol for hash key
102
+ acceptable_attribute_map = self.class.acceptable_attribute_map
103
+ attributes = attributes.each_with_object({}) { |(k, v), h|
104
+ if (!acceptable_attribute_map.key?(k.to_sym))
105
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Late::AdCreative`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
106
+ end
107
+ h[k.to_sym] = v
108
+ }
109
+
110
+ if attributes.key?(:'thumbnail_url')
111
+ self.thumbnail_url = attributes[:'thumbnail_url']
112
+ end
113
+
114
+ if attributes.key?(:'image_url')
115
+ self.image_url = attributes[:'image_url']
116
+ end
117
+
118
+ if attributes.key?(:'media_urls')
119
+ if (value = attributes[:'media_urls']).is_a?(Array)
120
+ self.media_urls = value
121
+ end
122
+ end
123
+
124
+ if attributes.key?(:'body')
125
+ self.body = attributes[:'body']
126
+ end
127
+
128
+ if attributes.key?(:'google_headline')
129
+ self.google_headline = attributes[:'google_headline']
130
+ end
131
+
132
+ if attributes.key?(:'google_description')
133
+ self.google_description = attributes[:'google_description']
134
+ end
135
+
136
+ if attributes.key?(:'link_url')
137
+ self.link_url = attributes[:'link_url']
138
+ end
139
+
140
+ if attributes.key?(:'pinterest_image_url')
141
+ self.pinterest_image_url = attributes[:'pinterest_image_url']
142
+ end
143
+
144
+ if attributes.key?(:'pinterest_title')
145
+ self.pinterest_title = attributes[:'pinterest_title']
146
+ end
147
+
148
+ if attributes.key?(:'pinterest_description')
149
+ self.pinterest_description = attributes[:'pinterest_description']
150
+ end
151
+ end
152
+
153
+ # Show invalid properties with the reasons. Usually used together with valid?
154
+ # @return Array for valid properties with the reasons
155
+ def list_invalid_properties
156
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
157
+ invalid_properties = Array.new
158
+ invalid_properties
159
+ end
160
+
161
+ # Check to see if the all the properties in the model are valid
162
+ # @return true if the model is valid
163
+ def valid?
164
+ warn '[DEPRECATED] the `valid?` method is obsolete'
165
+ true
166
+ end
167
+
168
+ # Checks equality by comparing each attribute.
169
+ # @param [Object] Object to be compared
170
+ def ==(o)
171
+ return true if self.equal?(o)
172
+ self.class == o.class &&
173
+ thumbnail_url == o.thumbnail_url &&
174
+ image_url == o.image_url &&
175
+ media_urls == o.media_urls &&
176
+ body == o.body &&
177
+ google_headline == o.google_headline &&
178
+ google_description == o.google_description &&
179
+ link_url == o.link_url &&
180
+ pinterest_image_url == o.pinterest_image_url &&
181
+ pinterest_title == o.pinterest_title &&
182
+ pinterest_description == o.pinterest_description
183
+ end
184
+
185
+ # @see the `==` method
186
+ # @param [Object] Object to be compared
187
+ def eql?(o)
188
+ self == o
189
+ end
190
+
191
+ # Calculates hash code according to all attributes.
192
+ # @return [Integer] Hash code
193
+ def hash
194
+ [thumbnail_url, image_url, media_urls, body, google_headline, google_description, link_url, pinterest_image_url, pinterest_title, pinterest_description].hash
195
+ end
196
+
197
+ # Builds the object from hash
198
+ # @param [Hash] attributes Model attributes in the form of hash
199
+ # @return [Object] Returns the model itself
200
+ def self.build_from_hash(attributes)
201
+ return nil unless attributes.is_a?(Hash)
202
+ attributes = attributes.transform_keys(&:to_sym)
203
+ transformed_hash = {}
204
+ openapi_types.each_pair do |key, type|
205
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
206
+ transformed_hash["#{key}"] = nil
207
+ elsif type =~ /\AArray<(.*)>/i
208
+ # check to ensure the input is an array given that the attribute
209
+ # is documented as an array but the input is not
210
+ if attributes[attribute_map[key]].is_a?(Array)
211
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
212
+ end
213
+ elsif !attributes[attribute_map[key]].nil?
214
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
215
+ end
216
+ end
217
+ new(transformed_hash)
218
+ end
219
+
220
+ # Returns the object in the form of hash
221
+ # @return [Hash] Returns the object in the form of hash
222
+ def to_hash
223
+ hash = {}
224
+ self.class.attribute_map.each_pair do |attr, param|
225
+ value = self.send(attr)
226
+ if value.nil?
227
+ is_nullable = self.class.openapi_nullable.include?(attr)
228
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
229
+ end
230
+
231
+ hash[param] = _to_hash(value)
232
+ end
233
+ hash
234
+ end
235
+
236
+ end
237
+
238
+ end
@@ -11,5 +11,5 @@ Generator version: 7.19.0
11
11
  =end
12
12
 
13
13
  module Late
14
- VERSION = '0.0.107'
14
+ VERSION = '0.0.108'
15
15
  end
data/lib/late-sdk.rb CHANGED
@@ -26,6 +26,7 @@ require 'late-sdk/models/activate_sequence200_response'
26
26
  require 'late-sdk/models/ad'
27
27
  require 'late-sdk/models/ad_budget'
28
28
  require 'late-sdk/models/ad_campaign'
29
+ require 'late-sdk/models/ad_creative'
29
30
  require 'late-sdk/models/ad_metrics'
30
31
  require 'late-sdk/models/ad_schedule'
31
32
  require 'late-sdk/models/ad_tree_ad_set'
data/openapi.yaml CHANGED
@@ -2588,7 +2588,24 @@ components:
2588
2588
  platformAdSetId: { type: string }
2589
2589
  campaignName: { type: string }
2590
2590
  adSetName: { type: string }
2591
- creative: { type: object, description: Platform-specific creative data }
2591
+ creative:
2592
+ type: object
2593
+ nullable: true
2594
+ description: Platform-specific creative data. Fields vary by platform.
2595
+ properties:
2596
+ thumbnailUrl: { type: string, description: Primary thumbnail/image URL }
2597
+ imageUrl: { type: string, description: Alternative image URL }
2598
+ mediaUrls:
2599
+ type: array
2600
+ items: { type: string }
2601
+ description: All media URLs for this ad (carousel images, multiple assets). Populated for Meta (carousel child_attachments), Google Ads (responsive display marketing_images), and LinkedIn (multi-image posts).
2602
+ body: { type: string, description: Ad copy/text }
2603
+ googleHeadline: { type: string, description: Google Ads headline }
2604
+ googleDescription: { type: string, description: Google Ads description }
2605
+ linkUrl: { type: string, description: Destination URL }
2606
+ pinterestImageUrl: { type: string }
2607
+ pinterestTitle: { type: string }
2608
+ pinterestDescription: { type: string }
2592
2609
  targeting: { type: object }
2593
2610
  schedule:
2594
2611
  type: object
@@ -0,0 +1,90 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
5
+
6
+ The version of the OpenAPI document: 1.0.1
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+ require 'date'
16
+
17
+ # Unit tests for Late::AdCreative
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe Late::AdCreative do
21
+ #let(:instance) { Late::AdCreative.new }
22
+
23
+ describe 'test an instance of AdCreative' do
24
+ it 'should create an instance of AdCreative' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(Late::AdCreative)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "thumbnail_url"' do
31
+ it 'should work' do
32
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
33
+ end
34
+ end
35
+
36
+ describe 'test attribute "image_url"' do
37
+ it 'should work' do
38
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
39
+ end
40
+ end
41
+
42
+ describe 'test attribute "media_urls"' do
43
+ it 'should work' do
44
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
45
+ end
46
+ end
47
+
48
+ describe 'test attribute "body"' do
49
+ it 'should work' do
50
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
51
+ end
52
+ end
53
+
54
+ describe 'test attribute "google_headline"' do
55
+ it 'should work' do
56
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
57
+ end
58
+ end
59
+
60
+ describe 'test attribute "google_description"' do
61
+ it 'should work' do
62
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
63
+ end
64
+ end
65
+
66
+ describe 'test attribute "link_url"' do
67
+ it 'should work' do
68
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
69
+ end
70
+ end
71
+
72
+ describe 'test attribute "pinterest_image_url"' do
73
+ it 'should work' do
74
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
75
+ end
76
+ end
77
+
78
+ describe 'test attribute "pinterest_title"' do
79
+ it 'should work' do
80
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
81
+ end
82
+ end
83
+
84
+ describe 'test attribute "pinterest_description"' do
85
+ it 'should work' do
86
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
87
+ end
88
+ end
89
+
90
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zernio-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.107
4
+ version: 0.0.108
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenAPI-Generator
@@ -77,6 +77,7 @@ files:
77
77
  - docs/AdBudget.md
78
78
  - docs/AdCampaign.md
79
79
  - docs/AdCampaignsApi.md
80
+ - docs/AdCreative.md
80
81
  - docs/AdMetrics.md
81
82
  - docs/AdSchedule.md
82
83
  - docs/AdTreeAdSet.md
@@ -863,6 +864,7 @@ files:
863
864
  - lib/late-sdk/models/ad.rb
864
865
  - lib/late-sdk/models/ad_budget.rb
865
866
  - lib/late-sdk/models/ad_campaign.rb
867
+ - lib/late-sdk/models/ad_creative.rb
866
868
  - lib/late-sdk/models/ad_metrics.rb
867
869
  - lib/late-sdk/models/ad_schedule.rb
868
870
  - lib/late-sdk/models/ad_tree_ad_set.rb
@@ -1611,6 +1613,7 @@ files:
1611
1613
  - spec/models/activate_sequence200_response_spec.rb
1612
1614
  - spec/models/ad_budget_spec.rb
1613
1615
  - spec/models/ad_campaign_spec.rb
1616
+ - spec/models/ad_creative_spec.rb
1614
1617
  - spec/models/ad_metrics_spec.rb
1615
1618
  - spec/models/ad_schedule_spec.rb
1616
1619
  - spec/models/ad_spec.rb
@@ -2942,6 +2945,7 @@ test_files:
2942
2945
  - spec/models/ad_campaign_spec.rb
2943
2946
  - spec/models/set_contact_field_value_request_spec.rb
2944
2947
  - spec/models/update_ad200_response_spec.rb
2948
+ - spec/models/ad_creative_spec.rb
2945
2949
  - spec/models/linked_in_aggregate_analytics_daily_response_analytics_spec.rb
2946
2950
  - spec/models/get_comment_automation200_response_automation_spec.rb
2947
2951
  - spec/models/get_linked_in_mentions200_response_spec.rb