late-sdk 0.0.963 → 0.0.965
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/docs/CreateAdCampaignRequest.md +1 -1
- data/docs/ErrorResponseDetails.md +3 -1
- data/lib/zernio-sdk/models/create_ad_campaign_request.rb +1 -1
- data/lib/zernio-sdk/models/error_response_details.rb +27 -5
- data/lib/zernio-sdk/version.rb +1 -1
- data/openapi.yaml +12 -1
- data/spec/models/error_response_details_spec.rb +10 -0
- data/zernio-sdk-0.0.965.gem +0 -0
- metadata +3 -3
- data/zernio-sdk-0.0.963.gem +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3280b1ffc563dc233526871dce64603f6fe226f1cc85ae2dce7f583986e85dcc
|
|
4
|
+
data.tar.gz: 8c0aeed88eab8508000f7508c95e1b73caa2c76b3727e3405c7e4bd11a504714
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 80f07ca93fa1a98c6218d85d39d5092c446a1af57f377b261c8f7ca74898bc3013bd33601958b6ed27a7bfc6e86e57df69c02eadaaf5a0c8f40961c5a44ca141
|
|
7
|
+
data.tar.gz: 1fff85eb8a632db8de52d2bc2a7ede7f43f369274a22e7ca53e20061fd3442b4d772d31b5a97c3b557625381a6316fbfaeb2c84ec693e2f00223e2b5571c63a1
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
| **goal** | **String** | Mapped to the ODAX objective (same mapping as POST /v1/ads/create). | |
|
|
11
11
|
| **is_skadnetwork_attribution** | **Boolean** | Meta app promotion only. Immutable campaign flag. Set true for iOS 14+ SKAdNetwork campaigns and supply promotedObject.applicationId plus promotedObject.objectStoreUrl. The campaign receives promotedObject only when this flag is true. Cannot be changed on an existing campaign. | [optional] |
|
|
12
12
|
| **promoted_object** | [**AdPromotedObject**](AdPromotedObject.md) | | [optional] |
|
|
13
|
-
| **buying_type** | **String** |
|
|
13
|
+
| **buying_type** | **String** | Every platform buys at auction by default, so this only needs sending on Meta, and only to choose RESERVED. `AUCTION` is accepted on every platform and changes nothing. `RESERVED` (Reach & Frequency) is Meta-only and is rejected with a 400 elsewhere. SKAdNetwork app promotion requires AUCTION. | [optional] |
|
|
14
14
|
| **validate_only** | **Boolean** | Meta only. Runs campaign validation without creating or persisting a campaign; Idempotency-Key storage is bypassed. Returns HTTP 200 with validateOnly true and status VALIDATED. | [optional] |
|
|
15
15
|
| **special_ad_categories** | **Array<String>** | | [optional] |
|
|
16
16
|
| **budget_amount** | **Float** | Campaign-level (CBO) budget in WHOLE currency units (USD: 50 = $50.00), NOT cents. Meta's own Marketing API takes this same number in minor units, so it is an easy and expensive mix-up. Requires budgetType. | [optional] |
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **quota_exhausted** | **Boolean** | Google Ads 429 only. True when the upstream Google Ads quota is spent rather than a Zernio limit. | [optional] |
|
|
8
8
|
| **quota_scope** | **String** | Google Ads 429 only, when Google names the scope. DEVELOPER is the shared developer-token budget; ACCOUNT is your ad account. | [optional] |
|
|
9
|
+
| **budget_scope** | **String** | Zernio Google Ads operations-budget 429 only (never set alongside `quotaExhausted`). `user` is your own burst/daily allowance; `platform` is the fleet-wide daily budget shared across customers. | [optional] |
|
|
9
10
|
|
|
10
11
|
## Example
|
|
11
12
|
|
|
@@ -14,7 +15,8 @@ require 'zernio-sdk'
|
|
|
14
15
|
|
|
15
16
|
instance = Zernio::ErrorResponseDetails.new(
|
|
16
17
|
quota_exhausted: null,
|
|
17
|
-
quota_scope: null
|
|
18
|
+
quota_scope: null,
|
|
19
|
+
budget_scope: null
|
|
18
20
|
)
|
|
19
21
|
```
|
|
20
22
|
|
|
@@ -31,7 +31,7 @@ module Zernio
|
|
|
31
31
|
|
|
32
32
|
attr_accessor :promoted_object
|
|
33
33
|
|
|
34
|
-
#
|
|
34
|
+
# Every platform buys at auction by default, so this only needs sending on Meta, and only to choose RESERVED. `AUCTION` is accepted on every platform and changes nothing. `RESERVED` (Reach & Frequency) is Meta-only and is rejected with a 400 elsewhere. SKAdNetwork app promotion requires AUCTION.
|
|
35
35
|
attr_accessor :buying_type
|
|
36
36
|
|
|
37
37
|
# Meta only. Runs campaign validation without creating or persisting a campaign; Idempotency-Key storage is bypassed. Returns HTTP 200 with validateOnly true and status VALIDATED.
|
|
@@ -14,7 +14,7 @@ require 'date'
|
|
|
14
14
|
require 'time'
|
|
15
15
|
|
|
16
16
|
module Zernio
|
|
17
|
-
# Additional structured context (e.g. field-level validation errors), for example `privateReplyConsumed` on the private-reply endpoint's 400 when the comment's single reply is already spent. On a Google Ads 429 it carries `quotaExhausted: true`, which marks the failure as Google's own ads quota rather than a Zernio rate limit, so you can keep calling other platforms instead of backing off everywhere. When Google names the scope it also carries `quotaScope`: `DEVELOPER` means the shared developer-token budget (every Google account is affected and there is nothing to change on your side), `ACCOUNT` means your own ad account. A Meta 429 carries neither field.
|
|
17
|
+
# Additional structured context (e.g. field-level validation errors), for example `privateReplyConsumed` on the private-reply endpoint's 400 when the comment's single reply is already spent. On a Google Ads 429 it carries `quotaExhausted: true`, which marks the failure as Google's own ads quota rather than a Zernio rate limit, so you can keep calling other platforms instead of backing off everywhere. When Google names the scope it also carries `quotaScope`: `DEVELOPER` means the shared developer-token budget (every Google account is affected and there is nothing to change on your side), `ACCOUNT` means your own ad account. A Meta 429 carries neither field. A Zernio Google Ads budget 429 carries `budgetScope` instead, and never `quotaExhausted`: these are Zernio's own limits, applied before the call reaches Google. `user` is your own burst or daily allowance, so the work is yours to reschedule; `platform` is the fleet-wide daily budget shared with every other customer, so only waiting for the reset clears it. The two scopes are separate axes from `quotaScope`, not the same pool named twice.
|
|
18
18
|
class ErrorResponseDetails < ApiModelBase
|
|
19
19
|
# Google Ads 429 only. True when the upstream Google Ads quota is spent rather than a Zernio limit.
|
|
20
20
|
attr_accessor :quota_exhausted
|
|
@@ -22,6 +22,9 @@ module Zernio
|
|
|
22
22
|
# Google Ads 429 only, when Google names the scope. DEVELOPER is the shared developer-token budget; ACCOUNT is your ad account.
|
|
23
23
|
attr_accessor :quota_scope
|
|
24
24
|
|
|
25
|
+
# Zernio Google Ads operations-budget 429 only (never set alongside `quotaExhausted`). `user` is your own burst/daily allowance; `platform` is the fleet-wide daily budget shared across customers.
|
|
26
|
+
attr_accessor :budget_scope
|
|
27
|
+
|
|
25
28
|
class EnumAttributeValidator
|
|
26
29
|
attr_reader :datatype
|
|
27
30
|
attr_reader :allowable_values
|
|
@@ -48,7 +51,8 @@ module Zernio
|
|
|
48
51
|
def self.attribute_map
|
|
49
52
|
{
|
|
50
53
|
:'quota_exhausted' => :'quotaExhausted',
|
|
51
|
-
:'quota_scope' => :'quotaScope'
|
|
54
|
+
:'quota_scope' => :'quotaScope',
|
|
55
|
+
:'budget_scope' => :'budgetScope'
|
|
52
56
|
}
|
|
53
57
|
end
|
|
54
58
|
|
|
@@ -66,7 +70,8 @@ module Zernio
|
|
|
66
70
|
def self.openapi_types
|
|
67
71
|
{
|
|
68
72
|
:'quota_exhausted' => :'Boolean',
|
|
69
|
-
:'quota_scope' => :'String'
|
|
73
|
+
:'quota_scope' => :'String',
|
|
74
|
+
:'budget_scope' => :'String'
|
|
70
75
|
}
|
|
71
76
|
end
|
|
72
77
|
|
|
@@ -99,6 +104,10 @@ module Zernio
|
|
|
99
104
|
if attributes.key?(:'quota_scope')
|
|
100
105
|
self.quota_scope = attributes[:'quota_scope']
|
|
101
106
|
end
|
|
107
|
+
|
|
108
|
+
if attributes.key?(:'budget_scope')
|
|
109
|
+
self.budget_scope = attributes[:'budget_scope']
|
|
110
|
+
end
|
|
102
111
|
end
|
|
103
112
|
|
|
104
113
|
# Show invalid properties with the reasons. Usually used together with valid?
|
|
@@ -115,6 +124,8 @@ module Zernio
|
|
|
115
124
|
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
116
125
|
quota_scope_validator = EnumAttributeValidator.new('String', ["DEVELOPER", "ACCOUNT"])
|
|
117
126
|
return false unless quota_scope_validator.valid?(@quota_scope)
|
|
127
|
+
budget_scope_validator = EnumAttributeValidator.new('String', ["user", "platform"])
|
|
128
|
+
return false unless budget_scope_validator.valid?(@budget_scope)
|
|
118
129
|
true
|
|
119
130
|
end
|
|
120
131
|
|
|
@@ -128,13 +139,24 @@ module Zernio
|
|
|
128
139
|
@quota_scope = quota_scope
|
|
129
140
|
end
|
|
130
141
|
|
|
142
|
+
# Custom attribute writer method checking allowed values (enum).
|
|
143
|
+
# @param [Object] budget_scope Object to be assigned
|
|
144
|
+
def budget_scope=(budget_scope)
|
|
145
|
+
validator = EnumAttributeValidator.new('String', ["user", "platform"])
|
|
146
|
+
unless validator.valid?(budget_scope)
|
|
147
|
+
fail ArgumentError, "invalid value for \"budget_scope\", must be one of #{validator.allowable_values}."
|
|
148
|
+
end
|
|
149
|
+
@budget_scope = budget_scope
|
|
150
|
+
end
|
|
151
|
+
|
|
131
152
|
# Checks equality by comparing each attribute.
|
|
132
153
|
# @param [Object] Object to be compared
|
|
133
154
|
def ==(o)
|
|
134
155
|
return true if self.equal?(o)
|
|
135
156
|
self.class == o.class &&
|
|
136
157
|
quota_exhausted == o.quota_exhausted &&
|
|
137
|
-
quota_scope == o.quota_scope
|
|
158
|
+
quota_scope == o.quota_scope &&
|
|
159
|
+
budget_scope == o.budget_scope
|
|
138
160
|
end
|
|
139
161
|
|
|
140
162
|
# @see the `==` method
|
|
@@ -146,7 +168,7 @@ module Zernio
|
|
|
146
168
|
# Calculates hash code according to all attributes.
|
|
147
169
|
# @return [Integer] Hash code
|
|
148
170
|
def hash
|
|
149
|
-
[quota_exhausted, quota_scope].hash
|
|
171
|
+
[quota_exhausted, quota_scope, budget_scope].hash
|
|
150
172
|
end
|
|
151
173
|
|
|
152
174
|
# Builds the object from hash
|
data/lib/zernio-sdk/version.rb
CHANGED
data/openapi.yaml
CHANGED
|
@@ -1844,6 +1844,13 @@ components:
|
|
|
1844
1844
|
also carries `quotaScope`: `DEVELOPER` means the shared developer-token budget
|
|
1845
1845
|
(every Google account is affected and there is nothing to change on your side),
|
|
1846
1846
|
`ACCOUNT` means your own ad account. A Meta 429 carries neither field.
|
|
1847
|
+
|
|
1848
|
+
A Zernio Google Ads budget 429 carries `budgetScope` instead, and never
|
|
1849
|
+
`quotaExhausted`: these are Zernio's own limits, applied before the call
|
|
1850
|
+
reaches Google. `user` is your own burst or daily allowance, so the work is
|
|
1851
|
+
yours to reschedule; `platform` is the fleet-wide daily budget shared with
|
|
1852
|
+
every other customer, so only waiting for the reset clears it. The two
|
|
1853
|
+
scopes are separate axes from `quotaScope`, not the same pool named twice.
|
|
1847
1854
|
properties:
|
|
1848
1855
|
quotaExhausted:
|
|
1849
1856
|
type: boolean
|
|
@@ -1852,6 +1859,10 @@ components:
|
|
|
1852
1859
|
type: string
|
|
1853
1860
|
enum: [DEVELOPER, ACCOUNT]
|
|
1854
1861
|
description: 'Google Ads 429 only, when Google names the scope. DEVELOPER is the shared developer-token budget; ACCOUNT is your ad account.'
|
|
1862
|
+
budgetScope:
|
|
1863
|
+
type: string
|
|
1864
|
+
enum: [user, platform]
|
|
1865
|
+
description: "Zernio Google Ads operations-budget 429 only (never set alongside `quotaExhausted`). `user` is your own burst/daily allowance; `platform` is the fleet-wide daily budget shared across customers."
|
|
1855
1866
|
CommentAutomationAudience:
|
|
1856
1867
|
type: object
|
|
1857
1868
|
description: |
|
|
@@ -44435,7 +44446,7 @@ paths:
|
|
|
44435
44446
|
buyingType:
|
|
44436
44447
|
type: string
|
|
44437
44448
|
enum: [AUCTION, RESERVED]
|
|
44438
|
-
description: '
|
|
44449
|
+
description: 'Every platform buys at auction by default, so this only needs sending on Meta, and only to choose RESERVED. `AUCTION` is accepted on every platform and changes nothing. `RESERVED` (Reach & Frequency) is Meta-only and is rejected with a 400 elsewhere. SKAdNetwork app promotion requires AUCTION.'
|
|
44439
44450
|
validateOnly:
|
|
44440
44451
|
type: boolean
|
|
44441
44452
|
description: 'Meta only. Runs campaign validation without creating or persisting a campaign; Idempotency-Key storage is bypassed. Returns HTTP 200 with validateOnly true and status VALIDATED.'
|
|
@@ -43,4 +43,14 @@ describe Zernio::ErrorResponseDetails do
|
|
|
43
43
|
end
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
+
describe 'test attribute "budget_scope"' do
|
|
47
|
+
it 'should work' do
|
|
48
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
49
|
+
# validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["user", "platform"])
|
|
50
|
+
# validator.allowable_values.each do |value|
|
|
51
|
+
# expect { instance.budget_scope = value }.not_to raise_error
|
|
52
|
+
# end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
46
56
|
end
|
|
Binary file
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: late-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.965
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- OpenAPI-Generator
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-09-
|
|
11
|
+
date: 2026-09-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: typhoeus
|
|
@@ -6487,7 +6487,7 @@ files:
|
|
|
6487
6487
|
- spec/models/you_tube_video_retention_response_retention_curve_inner_spec.rb
|
|
6488
6488
|
- spec/models/you_tube_video_retention_response_spec.rb
|
|
6489
6489
|
- spec/spec_helper.rb
|
|
6490
|
-
- zernio-sdk-0.0.
|
|
6490
|
+
- zernio-sdk-0.0.965.gem
|
|
6491
6491
|
- zernio-sdk.gemspec
|
|
6492
6492
|
homepage: https://openapi-generator.tech
|
|
6493
6493
|
licenses:
|
data/zernio-sdk-0.0.963.gem
DELETED
|
Binary file
|