zernio-sdk 0.0.99 → 0.0.100
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 +4 -4
- data/README.md +1 -0
- data/docs/AdsApi.md +1 -1
- data/docs/BoostPostRequest.md +7 -1
- data/docs/BoostPostRequestTracking.md +20 -0
- data/docs/CreateAdAudienceRequest.md +5 -1
- data/docs/CreateStandaloneAdRequest.md +12 -2
- data/lib/late-sdk/models/boost_post_request.rb +35 -4
- data/lib/late-sdk/models/boost_post_request_tracking.rb +157 -0
- data/lib/late-sdk/models/create_ad_audience_request.rb +24 -4
- data/lib/late-sdk/models/create_standalone_ad_request.rb +90 -15
- data/lib/late-sdk/version.rb +1 -1
- data/lib/late-sdk.rb +1 -0
- data/openapi.yaml +35 -3
- data/spec/models/boost_post_request_spec.rb +22 -0
- data/spec/models/boost_post_request_tracking_spec.rb +42 -0
- data/spec/models/create_ad_audience_request_spec.rb +12 -0
- data/spec/models/create_standalone_ad_request_spec.rb +30 -0
- metadata +5 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 38a525d4bb08e56592a11454256aaf13bd0df5f8d2f852421c121b424c88b2f5
|
|
4
|
+
data.tar.gz: 94a9f494671048b71f46d91754def558ecac1e128dfcf84648ea4f3ecac72c54
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 268cc43af084aec2fc83058de79081c5c54e9a118694fb61cd2ac2ef6f6c548a4bca46993ead36f1e030e8f461d03724dcdd0af8473a354abef4f7265dadf424
|
|
7
|
+
data.tar.gz: f2d78ad309a469cc51968aa580db12fc8fb811483a903bad1a81cbb984b0d6bc02429fa7f1f7bf07ee62b8a43721db7d34bb6a645046d6736eec113b8f642597
|
data/README.md
CHANGED
|
@@ -366,6 +366,7 @@ Class | Method | HTTP request | Description
|
|
|
366
366
|
- [Late::BoostPostRequestBudget](docs/BoostPostRequestBudget.md)
|
|
367
367
|
- [Late::BoostPostRequestSchedule](docs/BoostPostRequestSchedule.md)
|
|
368
368
|
- [Late::BoostPostRequestTargeting](docs/BoostPostRequestTargeting.md)
|
|
369
|
+
- [Late::BoostPostRequestTracking](docs/BoostPostRequestTracking.md)
|
|
369
370
|
- [Late::BulkCreateContacts200Response](docs/BulkCreateContacts200Response.md)
|
|
370
371
|
- [Late::BulkCreateContactsRequest](docs/BulkCreateContactsRequest.md)
|
|
371
372
|
- [Late::BulkCreateContactsRequestContactsInner](docs/BulkCreateContactsRequestContactsInner.md)
|
data/docs/AdsApi.md
CHANGED
|
@@ -105,7 +105,7 @@ Late.configure do |config|
|
|
|
105
105
|
end
|
|
106
106
|
|
|
107
107
|
api_instance = Late::AdsApi.new
|
|
108
|
-
create_standalone_ad_request = Late::CreateStandaloneAdRequest.new({account_id: 'account_id_example', ad_account_id: 'ad_account_id_example', name: 'name_example', goal: 'engagement', budget_amount: 3.56, budget_type: 'daily', body: 'body_example'
|
|
108
|
+
create_standalone_ad_request = Late::CreateStandaloneAdRequest.new({account_id: 'account_id_example', ad_account_id: 'ad_account_id_example', name: 'name_example', goal: 'engagement', budget_amount: 3.56, budget_type: 'daily', body: 'body_example'}) # CreateStandaloneAdRequest |
|
|
109
109
|
|
|
110
110
|
begin
|
|
111
111
|
# Create a standalone ad with custom creative
|
data/docs/BoostPostRequest.md
CHANGED
|
@@ -14,6 +14,9 @@
|
|
|
14
14
|
| **currency** | **String** | | [optional] |
|
|
15
15
|
| **schedule** | [**BoostPostRequestSchedule**](BoostPostRequestSchedule.md) | | [optional] |
|
|
16
16
|
| **targeting** | [**BoostPostRequestTargeting**](BoostPostRequestTargeting.md) | | [optional] |
|
|
17
|
+
| **bid_amount** | **Float** | Max bid cap (Meta only) | [optional] |
|
|
18
|
+
| **tracking** | [**BoostPostRequestTracking**](BoostPostRequestTracking.md) | | [optional] |
|
|
19
|
+
| **special_ad_categories** | **Array<String>** | Meta only. Required for housing, employment, credit, or political ads. | [optional] |
|
|
17
20
|
|
|
18
21
|
## Example
|
|
19
22
|
|
|
@@ -30,7 +33,10 @@ instance = Late::BoostPostRequest.new(
|
|
|
30
33
|
budget: null,
|
|
31
34
|
currency: USD,
|
|
32
35
|
schedule: null,
|
|
33
|
-
targeting: null
|
|
36
|
+
targeting: null,
|
|
37
|
+
bid_amount: null,
|
|
38
|
+
tracking: null,
|
|
39
|
+
special_ad_categories: null
|
|
34
40
|
)
|
|
35
41
|
```
|
|
36
42
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Late::BoostPostRequestTracking
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **pixel_id** | **String** | | [optional] |
|
|
8
|
+
| **url_tags** | **String** | | [optional] |
|
|
9
|
+
|
|
10
|
+
## Example
|
|
11
|
+
|
|
12
|
+
```ruby
|
|
13
|
+
require 'late-sdk'
|
|
14
|
+
|
|
15
|
+
instance = Late::BoostPostRequestTracking.new(
|
|
16
|
+
pixel_id: null,
|
|
17
|
+
url_tags: null
|
|
18
|
+
)
|
|
19
|
+
```
|
|
20
|
+
|
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
| **source_audience_id** | **String** | Required for lookalike audiences | [optional] |
|
|
15
15
|
| **country** | **String** | 2-letter code, required for lookalike audiences | [optional] |
|
|
16
16
|
| **ratio** | **Float** | Required for lookalike audiences | [optional] |
|
|
17
|
+
| **rule** | **Object** | Pixel event rule for website audiences (optional) | [optional] |
|
|
18
|
+
| **customer_file_source** | **String** | Data source declaration for GDPR compliance (customer_list only) | [optional] |
|
|
17
19
|
|
|
18
20
|
## Example
|
|
19
21
|
|
|
@@ -30,7 +32,9 @@ instance = Late::CreateAdAudienceRequest.new(
|
|
|
30
32
|
retention_days: null,
|
|
31
33
|
source_audience_id: null,
|
|
32
34
|
country: null,
|
|
33
|
-
ratio: null
|
|
35
|
+
ratio: null,
|
|
36
|
+
rule: null,
|
|
37
|
+
customer_file_source: null
|
|
34
38
|
)
|
|
35
39
|
```
|
|
36
40
|
|
|
@@ -12,10 +12,13 @@
|
|
|
12
12
|
| **budget_type** | **String** | | |
|
|
13
13
|
| **currency** | **String** | | [optional] |
|
|
14
14
|
| **headline** | **String** | Required for most platforms. Max: Meta=255, Google=30, Pinterest=100 | [optional] |
|
|
15
|
+
| **long_headline** | **String** | Google Display only | [optional] |
|
|
15
16
|
| **body** | **String** | Max: Google=90, Pinterest=500 | |
|
|
16
17
|
| **call_to_action** | **String** | Meta only | [optional] |
|
|
17
18
|
| **link_url** | **String** | | [optional] |
|
|
18
|
-
| **image_url** | **String** | Image URL (or video URL for TikTok) |
|
|
19
|
+
| **image_url** | **String** | Image URL (or video URL for TikTok). Not required for Google Search campaigns. | [optional] |
|
|
20
|
+
| **business_name** | **String** | Google Display only | [optional] |
|
|
21
|
+
| **board_id** | **String** | Pinterest only. Board ID (auto-creates if not provided). | [optional] |
|
|
19
22
|
| **countries** | **Array<String>** | | [optional] |
|
|
20
23
|
| **age_min** | **Integer** | | [optional] |
|
|
21
24
|
| **age_max** | **Integer** | | [optional] |
|
|
@@ -24,6 +27,8 @@
|
|
|
24
27
|
| **audience_id** | **String** | Custom audience ID for targeting | [optional] |
|
|
25
28
|
| **campaign_type** | **String** | Google only | [optional][default to 'display'] |
|
|
26
29
|
| **keywords** | **Array<String>** | Google Search only | [optional] |
|
|
30
|
+
| **additional_headlines** | **Array<String>** | Google Search RSA only. Extra headlines. | [optional] |
|
|
31
|
+
| **additional_descriptions** | **Array<String>** | Google Search RSA only. Extra descriptions. | [optional] |
|
|
27
32
|
|
|
28
33
|
## Example
|
|
29
34
|
|
|
@@ -39,10 +44,13 @@ instance = Late::CreateStandaloneAdRequest.new(
|
|
|
39
44
|
budget_type: null,
|
|
40
45
|
currency: null,
|
|
41
46
|
headline: null,
|
|
47
|
+
long_headline: null,
|
|
42
48
|
body: null,
|
|
43
49
|
call_to_action: null,
|
|
44
50
|
link_url: null,
|
|
45
51
|
image_url: null,
|
|
52
|
+
business_name: null,
|
|
53
|
+
board_id: null,
|
|
46
54
|
countries: null,
|
|
47
55
|
age_min: null,
|
|
48
56
|
age_max: null,
|
|
@@ -50,7 +58,9 @@ instance = Late::CreateStandaloneAdRequest.new(
|
|
|
50
58
|
end_date: null,
|
|
51
59
|
audience_id: null,
|
|
52
60
|
campaign_type: null,
|
|
53
|
-
keywords: null
|
|
61
|
+
keywords: null,
|
|
62
|
+
additional_headlines: null,
|
|
63
|
+
additional_descriptions: null
|
|
54
64
|
)
|
|
55
65
|
```
|
|
56
66
|
|
|
@@ -39,6 +39,14 @@ module Late
|
|
|
39
39
|
|
|
40
40
|
attr_accessor :targeting
|
|
41
41
|
|
|
42
|
+
# Max bid cap (Meta only)
|
|
43
|
+
attr_accessor :bid_amount
|
|
44
|
+
|
|
45
|
+
attr_accessor :tracking
|
|
46
|
+
|
|
47
|
+
# Meta only. Required for housing, employment, credit, or political ads.
|
|
48
|
+
attr_accessor :special_ad_categories
|
|
49
|
+
|
|
42
50
|
class EnumAttributeValidator
|
|
43
51
|
attr_reader :datatype
|
|
44
52
|
attr_reader :allowable_values
|
|
@@ -73,7 +81,10 @@ module Late
|
|
|
73
81
|
:'budget' => :'budget',
|
|
74
82
|
:'currency' => :'currency',
|
|
75
83
|
:'schedule' => :'schedule',
|
|
76
|
-
:'targeting' => :'targeting'
|
|
84
|
+
:'targeting' => :'targeting',
|
|
85
|
+
:'bid_amount' => :'bidAmount',
|
|
86
|
+
:'tracking' => :'tracking',
|
|
87
|
+
:'special_ad_categories' => :'specialAdCategories'
|
|
77
88
|
}
|
|
78
89
|
end
|
|
79
90
|
|
|
@@ -99,7 +110,10 @@ module Late
|
|
|
99
110
|
:'budget' => :'BoostPostRequestBudget',
|
|
100
111
|
:'currency' => :'String',
|
|
101
112
|
:'schedule' => :'BoostPostRequestSchedule',
|
|
102
|
-
:'targeting' => :'BoostPostRequestTargeting'
|
|
113
|
+
:'targeting' => :'BoostPostRequestTargeting',
|
|
114
|
+
:'bid_amount' => :'Float',
|
|
115
|
+
:'tracking' => :'BoostPostRequestTracking',
|
|
116
|
+
:'special_ad_categories' => :'Array<String>'
|
|
103
117
|
}
|
|
104
118
|
end
|
|
105
119
|
|
|
@@ -174,6 +188,20 @@ module Late
|
|
|
174
188
|
if attributes.key?(:'targeting')
|
|
175
189
|
self.targeting = attributes[:'targeting']
|
|
176
190
|
end
|
|
191
|
+
|
|
192
|
+
if attributes.key?(:'bid_amount')
|
|
193
|
+
self.bid_amount = attributes[:'bid_amount']
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
if attributes.key?(:'tracking')
|
|
197
|
+
self.tracking = attributes[:'tracking']
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
if attributes.key?(:'special_ad_categories')
|
|
201
|
+
if (value = attributes[:'special_ad_categories']).is_a?(Array)
|
|
202
|
+
self.special_ad_categories = value
|
|
203
|
+
end
|
|
204
|
+
end
|
|
177
205
|
end
|
|
178
206
|
|
|
179
207
|
# Show invalid properties with the reasons. Usually used together with valid?
|
|
@@ -291,7 +319,10 @@ module Late
|
|
|
291
319
|
budget == o.budget &&
|
|
292
320
|
currency == o.currency &&
|
|
293
321
|
schedule == o.schedule &&
|
|
294
|
-
targeting == o.targeting
|
|
322
|
+
targeting == o.targeting &&
|
|
323
|
+
bid_amount == o.bid_amount &&
|
|
324
|
+
tracking == o.tracking &&
|
|
325
|
+
special_ad_categories == o.special_ad_categories
|
|
295
326
|
end
|
|
296
327
|
|
|
297
328
|
# @see the `==` method
|
|
@@ -303,7 +334,7 @@ module Late
|
|
|
303
334
|
# Calculates hash code according to all attributes.
|
|
304
335
|
# @return [Integer] Hash code
|
|
305
336
|
def hash
|
|
306
|
-
[post_id, platform_post_id, account_id, ad_account_id, name, goal, budget, currency, schedule, targeting].hash
|
|
337
|
+
[post_id, platform_post_id, account_id, ad_account_id, name, goal, budget, currency, schedule, targeting, bid_amount, tracking, special_ad_categories].hash
|
|
307
338
|
end
|
|
308
339
|
|
|
309
340
|
# Builds the object from hash
|
|
@@ -0,0 +1,157 @@
|
|
|
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
|
+
# Meta only. Tracking specs (pixel, URL tags).
|
|
18
|
+
class BoostPostRequestTracking < ApiModelBase
|
|
19
|
+
attr_accessor :pixel_id
|
|
20
|
+
|
|
21
|
+
attr_accessor :url_tags
|
|
22
|
+
|
|
23
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
|
24
|
+
def self.attribute_map
|
|
25
|
+
{
|
|
26
|
+
:'pixel_id' => :'pixelId',
|
|
27
|
+
:'url_tags' => :'urlTags'
|
|
28
|
+
}
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Returns attribute mapping this model knows about
|
|
32
|
+
def self.acceptable_attribute_map
|
|
33
|
+
attribute_map
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Returns all the JSON keys this model knows about
|
|
37
|
+
def self.acceptable_attributes
|
|
38
|
+
acceptable_attribute_map.values
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Attribute type mapping.
|
|
42
|
+
def self.openapi_types
|
|
43
|
+
{
|
|
44
|
+
:'pixel_id' => :'String',
|
|
45
|
+
:'url_tags' => :'String'
|
|
46
|
+
}
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# List of attributes with nullable: true
|
|
50
|
+
def self.openapi_nullable
|
|
51
|
+
Set.new([
|
|
52
|
+
])
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Initializes the object
|
|
56
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
57
|
+
def initialize(attributes = {})
|
|
58
|
+
if (!attributes.is_a?(Hash))
|
|
59
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `Late::BoostPostRequestTracking` initialize method"
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
|
63
|
+
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
64
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
65
|
+
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
66
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `Late::BoostPostRequestTracking`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
67
|
+
end
|
|
68
|
+
h[k.to_sym] = v
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if attributes.key?(:'pixel_id')
|
|
72
|
+
self.pixel_id = attributes[:'pixel_id']
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
if attributes.key?(:'url_tags')
|
|
76
|
+
self.url_tags = attributes[:'url_tags']
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# Show invalid properties with the reasons. Usually used together with valid?
|
|
81
|
+
# @return Array for valid properties with the reasons
|
|
82
|
+
def list_invalid_properties
|
|
83
|
+
warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
|
|
84
|
+
invalid_properties = Array.new
|
|
85
|
+
invalid_properties
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# Check to see if the all the properties in the model are valid
|
|
89
|
+
# @return true if the model is valid
|
|
90
|
+
def valid?
|
|
91
|
+
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
92
|
+
true
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# Checks equality by comparing each attribute.
|
|
96
|
+
# @param [Object] Object to be compared
|
|
97
|
+
def ==(o)
|
|
98
|
+
return true if self.equal?(o)
|
|
99
|
+
self.class == o.class &&
|
|
100
|
+
pixel_id == o.pixel_id &&
|
|
101
|
+
url_tags == o.url_tags
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
# @see the `==` method
|
|
105
|
+
# @param [Object] Object to be compared
|
|
106
|
+
def eql?(o)
|
|
107
|
+
self == o
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# Calculates hash code according to all attributes.
|
|
111
|
+
# @return [Integer] Hash code
|
|
112
|
+
def hash
|
|
113
|
+
[pixel_id, url_tags].hash
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
# Builds the object from hash
|
|
117
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
118
|
+
# @return [Object] Returns the model itself
|
|
119
|
+
def self.build_from_hash(attributes)
|
|
120
|
+
return nil unless attributes.is_a?(Hash)
|
|
121
|
+
attributes = attributes.transform_keys(&:to_sym)
|
|
122
|
+
transformed_hash = {}
|
|
123
|
+
openapi_types.each_pair do |key, type|
|
|
124
|
+
if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
|
|
125
|
+
transformed_hash["#{key}"] = nil
|
|
126
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
127
|
+
# check to ensure the input is an array given that the attribute
|
|
128
|
+
# is documented as an array but the input is not
|
|
129
|
+
if attributes[attribute_map[key]].is_a?(Array)
|
|
130
|
+
transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
|
|
131
|
+
end
|
|
132
|
+
elsif !attributes[attribute_map[key]].nil?
|
|
133
|
+
transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
new(transformed_hash)
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
# Returns the object in the form of hash
|
|
140
|
+
# @return [Hash] Returns the object in the form of hash
|
|
141
|
+
def to_hash
|
|
142
|
+
hash = {}
|
|
143
|
+
self.class.attribute_map.each_pair do |attr, param|
|
|
144
|
+
value = self.send(attr)
|
|
145
|
+
if value.nil?
|
|
146
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
|
147
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
hash[param] = _to_hash(value)
|
|
151
|
+
end
|
|
152
|
+
hash
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
end
|
|
@@ -41,6 +41,12 @@ module Late
|
|
|
41
41
|
# Required for lookalike audiences
|
|
42
42
|
attr_accessor :ratio
|
|
43
43
|
|
|
44
|
+
# Pixel event rule for website audiences (optional)
|
|
45
|
+
attr_accessor :rule
|
|
46
|
+
|
|
47
|
+
# Data source declaration for GDPR compliance (customer_list only)
|
|
48
|
+
attr_accessor :customer_file_source
|
|
49
|
+
|
|
44
50
|
class EnumAttributeValidator
|
|
45
51
|
attr_reader :datatype
|
|
46
52
|
attr_reader :allowable_values
|
|
@@ -75,7 +81,9 @@ module Late
|
|
|
75
81
|
:'retention_days' => :'retentionDays',
|
|
76
82
|
:'source_audience_id' => :'sourceAudienceId',
|
|
77
83
|
:'country' => :'country',
|
|
78
|
-
:'ratio' => :'ratio'
|
|
84
|
+
:'ratio' => :'ratio',
|
|
85
|
+
:'rule' => :'rule',
|
|
86
|
+
:'customer_file_source' => :'customerFileSource'
|
|
79
87
|
}
|
|
80
88
|
end
|
|
81
89
|
|
|
@@ -101,7 +109,9 @@ module Late
|
|
|
101
109
|
:'retention_days' => :'Integer',
|
|
102
110
|
:'source_audience_id' => :'String',
|
|
103
111
|
:'country' => :'String',
|
|
104
|
-
:'ratio' => :'Float'
|
|
112
|
+
:'ratio' => :'Float',
|
|
113
|
+
:'rule' => :'Object',
|
|
114
|
+
:'customer_file_source' => :'String'
|
|
105
115
|
}
|
|
106
116
|
end
|
|
107
117
|
|
|
@@ -174,6 +184,14 @@ module Late
|
|
|
174
184
|
if attributes.key?(:'ratio')
|
|
175
185
|
self.ratio = attributes[:'ratio']
|
|
176
186
|
end
|
|
187
|
+
|
|
188
|
+
if attributes.key?(:'rule')
|
|
189
|
+
self.rule = attributes[:'rule']
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
if attributes.key?(:'customer_file_source')
|
|
193
|
+
self.customer_file_source = attributes[:'customer_file_source']
|
|
194
|
+
end
|
|
177
195
|
end
|
|
178
196
|
|
|
179
197
|
# Show invalid properties with the reasons. Usually used together with valid?
|
|
@@ -332,7 +350,9 @@ module Late
|
|
|
332
350
|
retention_days == o.retention_days &&
|
|
333
351
|
source_audience_id == o.source_audience_id &&
|
|
334
352
|
country == o.country &&
|
|
335
|
-
ratio == o.ratio
|
|
353
|
+
ratio == o.ratio &&
|
|
354
|
+
rule == o.rule &&
|
|
355
|
+
customer_file_source == o.customer_file_source
|
|
336
356
|
end
|
|
337
357
|
|
|
338
358
|
# @see the `==` method
|
|
@@ -344,7 +364,7 @@ module Late
|
|
|
344
364
|
# Calculates hash code according to all attributes.
|
|
345
365
|
# @return [Integer] Hash code
|
|
346
366
|
def hash
|
|
347
|
-
[account_id, ad_account_id, name, description, type, pixel_id, retention_days, source_audience_id, country, ratio].hash
|
|
367
|
+
[account_id, ad_account_id, name, description, type, pixel_id, retention_days, source_audience_id, country, ratio, rule, customer_file_source].hash
|
|
348
368
|
end
|
|
349
369
|
|
|
350
370
|
# Builds the object from hash
|
|
@@ -32,6 +32,9 @@ module Late
|
|
|
32
32
|
# Required for most platforms. Max: Meta=255, Google=30, Pinterest=100
|
|
33
33
|
attr_accessor :headline
|
|
34
34
|
|
|
35
|
+
# Google Display only
|
|
36
|
+
attr_accessor :long_headline
|
|
37
|
+
|
|
35
38
|
# Max: Google=90, Pinterest=500
|
|
36
39
|
attr_accessor :body
|
|
37
40
|
|
|
@@ -40,9 +43,15 @@ module Late
|
|
|
40
43
|
|
|
41
44
|
attr_accessor :link_url
|
|
42
45
|
|
|
43
|
-
# Image URL (or video URL for TikTok)
|
|
46
|
+
# Image URL (or video URL for TikTok). Not required for Google Search campaigns.
|
|
44
47
|
attr_accessor :image_url
|
|
45
48
|
|
|
49
|
+
# Google Display only
|
|
50
|
+
attr_accessor :business_name
|
|
51
|
+
|
|
52
|
+
# Pinterest only. Board ID (auto-creates if not provided).
|
|
53
|
+
attr_accessor :board_id
|
|
54
|
+
|
|
46
55
|
attr_accessor :countries
|
|
47
56
|
|
|
48
57
|
attr_accessor :age_min
|
|
@@ -63,6 +72,12 @@ module Late
|
|
|
63
72
|
# Google Search only
|
|
64
73
|
attr_accessor :keywords
|
|
65
74
|
|
|
75
|
+
# Google Search RSA only. Extra headlines.
|
|
76
|
+
attr_accessor :additional_headlines
|
|
77
|
+
|
|
78
|
+
# Google Search RSA only. Extra descriptions.
|
|
79
|
+
attr_accessor :additional_descriptions
|
|
80
|
+
|
|
66
81
|
class EnumAttributeValidator
|
|
67
82
|
attr_reader :datatype
|
|
68
83
|
attr_reader :allowable_values
|
|
@@ -96,10 +111,13 @@ module Late
|
|
|
96
111
|
:'budget_type' => :'budgetType',
|
|
97
112
|
:'currency' => :'currency',
|
|
98
113
|
:'headline' => :'headline',
|
|
114
|
+
:'long_headline' => :'longHeadline',
|
|
99
115
|
:'body' => :'body',
|
|
100
116
|
:'call_to_action' => :'callToAction',
|
|
101
117
|
:'link_url' => :'linkUrl',
|
|
102
118
|
:'image_url' => :'imageUrl',
|
|
119
|
+
:'business_name' => :'businessName',
|
|
120
|
+
:'board_id' => :'boardId',
|
|
103
121
|
:'countries' => :'countries',
|
|
104
122
|
:'age_min' => :'ageMin',
|
|
105
123
|
:'age_max' => :'ageMax',
|
|
@@ -107,7 +125,9 @@ module Late
|
|
|
107
125
|
:'end_date' => :'endDate',
|
|
108
126
|
:'audience_id' => :'audienceId',
|
|
109
127
|
:'campaign_type' => :'campaignType',
|
|
110
|
-
:'keywords' => :'keywords'
|
|
128
|
+
:'keywords' => :'keywords',
|
|
129
|
+
:'additional_headlines' => :'additionalHeadlines',
|
|
130
|
+
:'additional_descriptions' => :'additionalDescriptions'
|
|
111
131
|
}
|
|
112
132
|
end
|
|
113
133
|
|
|
@@ -132,10 +152,13 @@ module Late
|
|
|
132
152
|
:'budget_type' => :'String',
|
|
133
153
|
:'currency' => :'String',
|
|
134
154
|
:'headline' => :'String',
|
|
155
|
+
:'long_headline' => :'String',
|
|
135
156
|
:'body' => :'String',
|
|
136
157
|
:'call_to_action' => :'String',
|
|
137
158
|
:'link_url' => :'String',
|
|
138
159
|
:'image_url' => :'String',
|
|
160
|
+
:'business_name' => :'String',
|
|
161
|
+
:'board_id' => :'String',
|
|
139
162
|
:'countries' => :'Array<String>',
|
|
140
163
|
:'age_min' => :'Integer',
|
|
141
164
|
:'age_max' => :'Integer',
|
|
@@ -143,7 +166,9 @@ module Late
|
|
|
143
166
|
:'end_date' => :'Time',
|
|
144
167
|
:'audience_id' => :'String',
|
|
145
168
|
:'campaign_type' => :'String',
|
|
146
|
-
:'keywords' => :'Array<String>'
|
|
169
|
+
:'keywords' => :'Array<String>',
|
|
170
|
+
:'additional_headlines' => :'Array<String>',
|
|
171
|
+
:'additional_descriptions' => :'Array<String>'
|
|
147
172
|
}
|
|
148
173
|
end
|
|
149
174
|
|
|
@@ -213,6 +238,10 @@ module Late
|
|
|
213
238
|
self.headline = attributes[:'headline']
|
|
214
239
|
end
|
|
215
240
|
|
|
241
|
+
if attributes.key?(:'long_headline')
|
|
242
|
+
self.long_headline = attributes[:'long_headline']
|
|
243
|
+
end
|
|
244
|
+
|
|
216
245
|
if attributes.key?(:'body')
|
|
217
246
|
self.body = attributes[:'body']
|
|
218
247
|
else
|
|
@@ -229,8 +258,14 @@ module Late
|
|
|
229
258
|
|
|
230
259
|
if attributes.key?(:'image_url')
|
|
231
260
|
self.image_url = attributes[:'image_url']
|
|
232
|
-
|
|
233
|
-
|
|
261
|
+
end
|
|
262
|
+
|
|
263
|
+
if attributes.key?(:'business_name')
|
|
264
|
+
self.business_name = attributes[:'business_name']
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
if attributes.key?(:'board_id')
|
|
268
|
+
self.board_id = attributes[:'board_id']
|
|
234
269
|
end
|
|
235
270
|
|
|
236
271
|
if attributes.key?(:'countries')
|
|
@@ -272,6 +307,18 @@ module Late
|
|
|
272
307
|
self.keywords = value
|
|
273
308
|
end
|
|
274
309
|
end
|
|
310
|
+
|
|
311
|
+
if attributes.key?(:'additional_headlines')
|
|
312
|
+
if (value = attributes[:'additional_headlines']).is_a?(Array)
|
|
313
|
+
self.additional_headlines = value
|
|
314
|
+
end
|
|
315
|
+
end
|
|
316
|
+
|
|
317
|
+
if attributes.key?(:'additional_descriptions')
|
|
318
|
+
if (value = attributes[:'additional_descriptions']).is_a?(Array)
|
|
319
|
+
self.additional_descriptions = value
|
|
320
|
+
end
|
|
321
|
+
end
|
|
275
322
|
end
|
|
276
323
|
|
|
277
324
|
# Show invalid properties with the reasons. Usually used together with valid?
|
|
@@ -307,12 +354,16 @@ module Late
|
|
|
307
354
|
invalid_properties.push('invalid value for "budget_type", budget_type cannot be nil.')
|
|
308
355
|
end
|
|
309
356
|
|
|
357
|
+
if !@long_headline.nil? && @long_headline.to_s.length > 90
|
|
358
|
+
invalid_properties.push('invalid value for "long_headline", the character length must be smaller than or equal to 90.')
|
|
359
|
+
end
|
|
360
|
+
|
|
310
361
|
if @body.nil?
|
|
311
362
|
invalid_properties.push('invalid value for "body", body cannot be nil.')
|
|
312
363
|
end
|
|
313
364
|
|
|
314
|
-
if
|
|
315
|
-
invalid_properties.push('invalid value for "
|
|
365
|
+
if !@business_name.nil? && @business_name.to_s.length > 25
|
|
366
|
+
invalid_properties.push('invalid value for "business_name", the character length must be smaller than or equal to 25.')
|
|
316
367
|
end
|
|
317
368
|
|
|
318
369
|
if !@age_min.nil? && @age_min > 65
|
|
@@ -349,10 +400,11 @@ module Late
|
|
|
349
400
|
return false if @budget_type.nil?
|
|
350
401
|
budget_type_validator = EnumAttributeValidator.new('String', ["daily", "lifetime"])
|
|
351
402
|
return false unless budget_type_validator.valid?(@budget_type)
|
|
403
|
+
return false if !@long_headline.nil? && @long_headline.to_s.length > 90
|
|
352
404
|
return false if @body.nil?
|
|
353
405
|
call_to_action_validator = EnumAttributeValidator.new('String', ["LEARN_MORE", "SHOP_NOW", "SIGN_UP", "BOOK_TRAVEL", "CONTACT_US", "DOWNLOAD", "GET_OFFER", "GET_QUOTE", "SUBSCRIBE", "WATCH_MORE"])
|
|
354
406
|
return false unless call_to_action_validator.valid?(@call_to_action)
|
|
355
|
-
return false if
|
|
407
|
+
return false if !@business_name.nil? && @business_name.to_s.length > 25
|
|
356
408
|
return false if !@age_min.nil? && @age_min > 65
|
|
357
409
|
return false if !@age_min.nil? && @age_min < 13
|
|
358
410
|
return false if !@age_max.nil? && @age_max > 65
|
|
@@ -426,6 +478,20 @@ module Late
|
|
|
426
478
|
@budget_type = budget_type
|
|
427
479
|
end
|
|
428
480
|
|
|
481
|
+
# Custom attribute writer method with validation
|
|
482
|
+
# @param [Object] long_headline Value to be assigned
|
|
483
|
+
def long_headline=(long_headline)
|
|
484
|
+
if long_headline.nil?
|
|
485
|
+
fail ArgumentError, 'long_headline cannot be nil'
|
|
486
|
+
end
|
|
487
|
+
|
|
488
|
+
if long_headline.to_s.length > 90
|
|
489
|
+
fail ArgumentError, 'invalid value for "long_headline", the character length must be smaller than or equal to 90.'
|
|
490
|
+
end
|
|
491
|
+
|
|
492
|
+
@long_headline = long_headline
|
|
493
|
+
end
|
|
494
|
+
|
|
429
495
|
# Custom attribute writer method with validation
|
|
430
496
|
# @param [Object] body Value to be assigned
|
|
431
497
|
def body=(body)
|
|
@@ -447,13 +513,17 @@ module Late
|
|
|
447
513
|
end
|
|
448
514
|
|
|
449
515
|
# Custom attribute writer method with validation
|
|
450
|
-
# @param [Object]
|
|
451
|
-
def
|
|
452
|
-
if
|
|
453
|
-
fail ArgumentError, '
|
|
516
|
+
# @param [Object] business_name Value to be assigned
|
|
517
|
+
def business_name=(business_name)
|
|
518
|
+
if business_name.nil?
|
|
519
|
+
fail ArgumentError, 'business_name cannot be nil'
|
|
520
|
+
end
|
|
521
|
+
|
|
522
|
+
if business_name.to_s.length > 25
|
|
523
|
+
fail ArgumentError, 'invalid value for "business_name", the character length must be smaller than or equal to 25.'
|
|
454
524
|
end
|
|
455
525
|
|
|
456
|
-
@
|
|
526
|
+
@business_name = business_name
|
|
457
527
|
end
|
|
458
528
|
|
|
459
529
|
# Custom attribute writer method with validation
|
|
@@ -515,10 +585,13 @@ module Late
|
|
|
515
585
|
budget_type == o.budget_type &&
|
|
516
586
|
currency == o.currency &&
|
|
517
587
|
headline == o.headline &&
|
|
588
|
+
long_headline == o.long_headline &&
|
|
518
589
|
body == o.body &&
|
|
519
590
|
call_to_action == o.call_to_action &&
|
|
520
591
|
link_url == o.link_url &&
|
|
521
592
|
image_url == o.image_url &&
|
|
593
|
+
business_name == o.business_name &&
|
|
594
|
+
board_id == o.board_id &&
|
|
522
595
|
countries == o.countries &&
|
|
523
596
|
age_min == o.age_min &&
|
|
524
597
|
age_max == o.age_max &&
|
|
@@ -526,7 +599,9 @@ module Late
|
|
|
526
599
|
end_date == o.end_date &&
|
|
527
600
|
audience_id == o.audience_id &&
|
|
528
601
|
campaign_type == o.campaign_type &&
|
|
529
|
-
keywords == o.keywords
|
|
602
|
+
keywords == o.keywords &&
|
|
603
|
+
additional_headlines == o.additional_headlines &&
|
|
604
|
+
additional_descriptions == o.additional_descriptions
|
|
530
605
|
end
|
|
531
606
|
|
|
532
607
|
# @see the `==` method
|
|
@@ -538,7 +613,7 @@ module Late
|
|
|
538
613
|
# Calculates hash code according to all attributes.
|
|
539
614
|
# @return [Integer] Hash code
|
|
540
615
|
def hash
|
|
541
|
-
[account_id, ad_account_id, name, goal, budget_amount, budget_type, currency, headline, body, call_to_action, link_url, image_url, countries, age_min, age_max, interests, end_date, audience_id, campaign_type, keywords].hash
|
|
616
|
+
[account_id, ad_account_id, name, goal, budget_amount, budget_type, currency, headline, long_headline, body, call_to_action, link_url, image_url, business_name, board_id, countries, age_min, age_max, interests, end_date, audience_id, campaign_type, keywords, additional_headlines, additional_descriptions].hash
|
|
542
617
|
end
|
|
543
618
|
|
|
544
619
|
# Builds the object from hash
|
data/lib/late-sdk/version.rb
CHANGED
data/lib/late-sdk.rb
CHANGED
|
@@ -54,6 +54,7 @@ require 'late-sdk/models/boost_post_request'
|
|
|
54
54
|
require 'late-sdk/models/boost_post_request_budget'
|
|
55
55
|
require 'late-sdk/models/boost_post_request_schedule'
|
|
56
56
|
require 'late-sdk/models/boost_post_request_targeting'
|
|
57
|
+
require 'late-sdk/models/boost_post_request_tracking'
|
|
57
58
|
require 'late-sdk/models/bulk_create_contacts200_response'
|
|
58
59
|
require 'late-sdk/models/bulk_create_contacts_request'
|
|
59
60
|
require 'late-sdk/models/bulk_create_contacts_request_contacts_inner'
|
data/openapi.yaml
CHANGED
|
@@ -17525,6 +17525,8 @@ paths:
|
|
|
17525
17525
|
type: array
|
|
17526
17526
|
items: { type: object }
|
|
17527
17527
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
17528
|
+
'403':
|
|
17529
|
+
description: Ads add-on required
|
|
17528
17530
|
'404': { $ref: '#/components/responses/NotFound' }
|
|
17529
17531
|
|
|
17530
17532
|
/v1/ads/accounts:
|
|
@@ -17555,6 +17557,8 @@ paths:
|
|
|
17555
17557
|
currency: { type: string }
|
|
17556
17558
|
status: { type: string }
|
|
17557
17559
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
17560
|
+
'422':
|
|
17561
|
+
description: Platform ads connection required (TikTok Ads, X Ads) or Instagram missing linked Facebook account
|
|
17558
17562
|
|
|
17559
17563
|
/v1/ads/boost:
|
|
17560
17564
|
post:
|
|
@@ -17597,6 +17601,17 @@ paths:
|
|
|
17597
17601
|
ageMax: { type: integer, minimum: 13, maximum: 65 }
|
|
17598
17602
|
countries: { type: array, items: { type: string } }
|
|
17599
17603
|
interests: { type: array, items: { type: string } }
|
|
17604
|
+
bidAmount: { type: number, description: "Max bid cap (Meta only)" }
|
|
17605
|
+
tracking:
|
|
17606
|
+
type: object
|
|
17607
|
+
description: "Meta only. Tracking specs (pixel, URL tags)."
|
|
17608
|
+
properties:
|
|
17609
|
+
pixelId: { type: string }
|
|
17610
|
+
urlTags: { type: string }
|
|
17611
|
+
specialAdCategories:
|
|
17612
|
+
type: array
|
|
17613
|
+
description: "Meta only. Required for housing, employment, credit, or political ads."
|
|
17614
|
+
items: { type: string, enum: [HOUSING, EMPLOYMENT, CREDIT, ISSUES_ELECTIONS_POLITICS] }
|
|
17600
17615
|
responses:
|
|
17601
17616
|
'201':
|
|
17602
17617
|
description: Ad created
|
|
@@ -17627,7 +17642,7 @@ paths:
|
|
|
17627
17642
|
application/json:
|
|
17628
17643
|
schema:
|
|
17629
17644
|
type: object
|
|
17630
|
-
required: [accountId, adAccountId, name, goal, budgetAmount, budgetType, body
|
|
17645
|
+
required: [accountId, adAccountId, name, goal, budgetAmount, budgetType, body]
|
|
17631
17646
|
properties:
|
|
17632
17647
|
accountId: { type: string }
|
|
17633
17648
|
adAccountId: { type: string }
|
|
@@ -17637,10 +17652,13 @@ paths:
|
|
|
17637
17652
|
budgetType: { type: string, enum: [daily, lifetime] }
|
|
17638
17653
|
currency: { type: string }
|
|
17639
17654
|
headline: { type: string, description: "Required for most platforms. Max: Meta=255, Google=30, Pinterest=100" }
|
|
17655
|
+
longHeadline: { type: string, maxLength: 90, description: "Google Display only" }
|
|
17640
17656
|
body: { type: string, description: "Max: Google=90, Pinterest=500" }
|
|
17641
17657
|
callToAction: { type: string, enum: [LEARN_MORE, SHOP_NOW, SIGN_UP, BOOK_TRAVEL, CONTACT_US, DOWNLOAD, GET_OFFER, GET_QUOTE, SUBSCRIBE, WATCH_MORE], description: Meta only }
|
|
17642
17658
|
linkUrl: { type: string, format: uri }
|
|
17643
|
-
imageUrl: { type: string, format: uri, description: Image URL (or video URL for TikTok) }
|
|
17659
|
+
imageUrl: { type: string, format: uri, description: "Image URL (or video URL for TikTok). Not required for Google Search campaigns." }
|
|
17660
|
+
businessName: { type: string, maxLength: 25, description: "Google Display only" }
|
|
17661
|
+
boardId: { type: string, description: "Pinterest only. Board ID (auto-creates if not provided)." }
|
|
17644
17662
|
countries: { type: array, items: { type: string } }
|
|
17645
17663
|
ageMin: { type: integer, minimum: 13, maximum: 65 }
|
|
17646
17664
|
ageMax: { type: integer, minimum: 13, maximum: 65 }
|
|
@@ -17649,6 +17667,8 @@ paths:
|
|
|
17649
17667
|
audienceId: { type: string, description: Custom audience ID for targeting }
|
|
17650
17668
|
campaignType: { type: string, enum: [display, search], default: display, description: Google only }
|
|
17651
17669
|
keywords: { type: array, items: { type: string }, description: Google Search only }
|
|
17670
|
+
additionalHeadlines: { type: array, items: { type: string }, description: "Google Search RSA only. Extra headlines." }
|
|
17671
|
+
additionalDescriptions: { type: array, items: { type: string }, description: "Google Search RSA only. Extra descriptions." }
|
|
17652
17672
|
responses:
|
|
17653
17673
|
'201':
|
|
17654
17674
|
description: Ad created
|
|
@@ -17717,6 +17737,8 @@ paths:
|
|
|
17717
17737
|
name: { type: string }
|
|
17718
17738
|
category: { type: string }
|
|
17719
17739
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
17740
|
+
'403':
|
|
17741
|
+
description: Ads add-on required
|
|
17720
17742
|
|
|
17721
17743
|
/v1/ads/audiences:
|
|
17722
17744
|
get:
|
|
@@ -17777,6 +17799,8 @@ paths:
|
|
|
17777
17799
|
sourceAudienceId: { type: string, description: Required for lookalike audiences }
|
|
17778
17800
|
country: { type: string, description: "2-letter code, required for lookalike audiences" }
|
|
17779
17801
|
ratio: { type: number, minimum: 0.01, maximum: 0.20, description: Required for lookalike audiences }
|
|
17802
|
+
rule: { type: object, description: "Pixel event rule for website audiences (optional)" }
|
|
17803
|
+
customerFileSource: { type: string, description: "Data source declaration for GDPR compliance (customer_list only)" }
|
|
17780
17804
|
responses:
|
|
17781
17805
|
'201':
|
|
17782
17806
|
description: Audience created
|
|
@@ -17814,6 +17838,8 @@ paths:
|
|
|
17814
17838
|
audience: { type: object }
|
|
17815
17839
|
metaData: { type: object, nullable: true, description: Fresh data from Meta API }
|
|
17816
17840
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
17841
|
+
'403':
|
|
17842
|
+
description: Ads add-on required
|
|
17817
17843
|
'404': { $ref: '#/components/responses/NotFound' }
|
|
17818
17844
|
delete:
|
|
17819
17845
|
operationId: deleteAdAudience
|
|
@@ -17834,6 +17860,8 @@ paths:
|
|
|
17834
17860
|
properties:
|
|
17835
17861
|
message: { type: string }
|
|
17836
17862
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
17863
|
+
'403':
|
|
17864
|
+
description: Ads add-on required
|
|
17837
17865
|
'404': { $ref: '#/components/responses/NotFound' }
|
|
17838
17866
|
|
|
17839
17867
|
/v1/ads/audiences/{audienceId}/users:
|
|
@@ -17875,6 +17903,10 @@ paths:
|
|
|
17875
17903
|
numReceived: { type: integer }
|
|
17876
17904
|
numInvalid: { type: integer }
|
|
17877
17905
|
'400':
|
|
17878
|
-
description: Invalid input
|
|
17906
|
+
description: Invalid input (empty users array, missing email/phone)
|
|
17879
17907
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
17908
|
+
'403':
|
|
17909
|
+
description: Ads add-on required
|
|
17880
17910
|
'404': { $ref: '#/components/responses/NotFound' }
|
|
17911
|
+
'422':
|
|
17912
|
+
description: Audience is not a customer_list type or has no platform ID yet
|
|
@@ -91,4 +91,26 @@ describe Late::BoostPostRequest do
|
|
|
91
91
|
end
|
|
92
92
|
end
|
|
93
93
|
|
|
94
|
+
describe 'test attribute "bid_amount"' do
|
|
95
|
+
it 'should work' do
|
|
96
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
describe 'test attribute "tracking"' do
|
|
101
|
+
it 'should work' do
|
|
102
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
describe 'test attribute "special_ad_categories"' do
|
|
107
|
+
it 'should work' do
|
|
108
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
109
|
+
# validator = Petstore::EnumTest::EnumAttributeValidator.new('Array<String>', ["HOUSING", "EMPLOYMENT", "CREDIT", "ISSUES_ELECTIONS_POLITICS"])
|
|
110
|
+
# validator.allowable_values.each do |value|
|
|
111
|
+
# expect { instance.special_ad_categories = value }.not_to raise_error
|
|
112
|
+
# end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
|
|
94
116
|
end
|
|
@@ -0,0 +1,42 @@
|
|
|
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::BoostPostRequestTracking
|
|
18
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
19
|
+
# Please update as you see appropriate
|
|
20
|
+
describe Late::BoostPostRequestTracking do
|
|
21
|
+
#let(:instance) { Late::BoostPostRequestTracking.new }
|
|
22
|
+
|
|
23
|
+
describe 'test an instance of BoostPostRequestTracking' do
|
|
24
|
+
it 'should create an instance of BoostPostRequestTracking' do
|
|
25
|
+
# uncomment below to test the instance creation
|
|
26
|
+
#expect(instance).to be_instance_of(Late::BoostPostRequestTracking)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe 'test attribute "pixel_id"' 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 "url_tags"' 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
|
+
end
|
|
@@ -91,4 +91,16 @@ describe Late::CreateAdAudienceRequest do
|
|
|
91
91
|
end
|
|
92
92
|
end
|
|
93
93
|
|
|
94
|
+
describe 'test attribute "rule"' do
|
|
95
|
+
it 'should work' do
|
|
96
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
describe 'test attribute "customer_file_source"' do
|
|
101
|
+
it 'should work' do
|
|
102
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
|
|
94
106
|
end
|
|
@@ -83,6 +83,12 @@ describe Late::CreateStandaloneAdRequest do
|
|
|
83
83
|
end
|
|
84
84
|
end
|
|
85
85
|
|
|
86
|
+
describe 'test attribute "long_headline"' do
|
|
87
|
+
it 'should work' do
|
|
88
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
86
92
|
describe 'test attribute "body"' do
|
|
87
93
|
it 'should work' do
|
|
88
94
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
@@ -111,6 +117,18 @@ describe Late::CreateStandaloneAdRequest do
|
|
|
111
117
|
end
|
|
112
118
|
end
|
|
113
119
|
|
|
120
|
+
describe 'test attribute "business_name"' do
|
|
121
|
+
it 'should work' do
|
|
122
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
describe 'test attribute "board_id"' do
|
|
127
|
+
it 'should work' do
|
|
128
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|
|
114
132
|
describe 'test attribute "countries"' do
|
|
115
133
|
it 'should work' do
|
|
116
134
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
@@ -163,4 +181,16 @@ describe Late::CreateStandaloneAdRequest do
|
|
|
163
181
|
end
|
|
164
182
|
end
|
|
165
183
|
|
|
184
|
+
describe 'test attribute "additional_headlines"' do
|
|
185
|
+
it 'should work' do
|
|
186
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
187
|
+
end
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
describe 'test attribute "additional_descriptions"' do
|
|
191
|
+
it 'should work' do
|
|
192
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
193
|
+
end
|
|
194
|
+
end
|
|
195
|
+
|
|
166
196
|
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.
|
|
4
|
+
version: 0.0.100
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- OpenAPI-Generator
|
|
@@ -107,6 +107,7 @@ files:
|
|
|
107
107
|
- docs/BoostPostRequestBudget.md
|
|
108
108
|
- docs/BoostPostRequestSchedule.md
|
|
109
109
|
- docs/BoostPostRequestTargeting.md
|
|
110
|
+
- docs/BoostPostRequestTracking.md
|
|
110
111
|
- docs/BroadcastsApi.md
|
|
111
112
|
- docs/BulkCreateContacts200Response.md
|
|
112
113
|
- docs/BulkCreateContactsRequest.md
|
|
@@ -909,6 +910,7 @@ files:
|
|
|
909
910
|
- lib/late-sdk/models/boost_post_request_budget.rb
|
|
910
911
|
- lib/late-sdk/models/boost_post_request_schedule.rb
|
|
911
912
|
- lib/late-sdk/models/boost_post_request_targeting.rb
|
|
913
|
+
- lib/late-sdk/models/boost_post_request_tracking.rb
|
|
912
914
|
- lib/late-sdk/models/bulk_create_contacts200_response.rb
|
|
913
915
|
- lib/late-sdk/models/bulk_create_contacts_request.rb
|
|
914
916
|
- lib/late-sdk/models/bulk_create_contacts_request_contacts_inner.rb
|
|
@@ -1675,6 +1677,7 @@ files:
|
|
|
1675
1677
|
- spec/models/boost_post_request_schedule_spec.rb
|
|
1676
1678
|
- spec/models/boost_post_request_spec.rb
|
|
1677
1679
|
- spec/models/boost_post_request_targeting_spec.rb
|
|
1680
|
+
- spec/models/boost_post_request_tracking_spec.rb
|
|
1678
1681
|
- spec/models/bulk_create_contacts200_response_spec.rb
|
|
1679
1682
|
- spec/models/bulk_create_contacts_request_contacts_inner_spec.rb
|
|
1680
1683
|
- spec/models/bulk_create_contacts_request_spec.rb
|
|
@@ -2723,6 +2726,7 @@ test_files:
|
|
|
2723
2726
|
- spec/models/get_google_business_attributes200_response_spec.rb
|
|
2724
2727
|
- spec/models/get_post_timeline400_response_spec.rb
|
|
2725
2728
|
- spec/models/update_google_business_location_details_request_service_items_inner_structured_service_item_spec.rb
|
|
2729
|
+
- spec/models/boost_post_request_tracking_spec.rb
|
|
2726
2730
|
- spec/models/webhook_payload_message_conversation_spec.rb
|
|
2727
2731
|
- spec/models/create_post_request_platforms_inner_spec.rb
|
|
2728
2732
|
- spec/models/instagram_demographics_response_demographics_value_inner_spec.rb
|