late-sdk 0.0.106 → 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: 5d525c5315bf345ea48403827e6b45bde14a11e7abe8869148134d6b53f657cd
4
- data.tar.gz: 7e80de72632c74c6a4eeefd03a10d541f4a1a0e2b8ebd691a35db46770c638eb
3
+ metadata.gz: b865b2c281e4712804587bdb517d1912a4f1031a96175f66a7f145b9351ca990
4
+ data.tar.gz: db92123f91e4e7c9cfbef9e8a75305b45c6a33b9f3121507acb4b1b6ee20659a
5
5
  SHA512:
6
- metadata.gz: eaec7d9f29c7284b30892d577c6e9af8b4aa6b191ffad150ecfb39afb482d5dc7a7f0261c7b13de833b1551935289ae0bd8aa4e597431962c7fc4449679d9a05
7
- data.tar.gz: 29f55b72828f81cea6dcd2ff8512928b97b361553eab728218d67c3d63ea50e08ffc0b8df6d95952b6fa801ea43f55f15173c7021c6eb531b2356a3d76b68fd8
6
+ metadata.gz: 334b01029da626dafbb0148a916942c2f513340cac631e5c84de28a1e37417b4ea73ac39d1dffa2876633b8209d17a116cf9c14f78bc861b1cc714f659f5984a
7
+ data.tar.gz: 3c69c97e45cf6c9e4aaaf40101dbb37e32f938aacc88e0a538e91f7f3c457c17b1b538247735ca2d75fff47f2e2f5ede6bcc33caf6a27ab4f23578c119dd17eb
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/AccountsApi.md CHANGED
@@ -384,7 +384,7 @@ end
384
384
 
385
385
  List accounts
386
386
 
387
- Returns connected social accounts. Only includes accounts within the plan limit by default. Follower data requires analytics add-on.
387
+ Returns connected social accounts. Only includes accounts within the plan limit by default. Follower data requires analytics add-on. Supports optional server-side pagination via page/limit params. When omitted, returns all accounts (backward-compatible).
388
388
 
389
389
  ### Examples
390
390
 
@@ -401,7 +401,9 @@ api_instance = Late::AccountsApi.new
401
401
  opts = {
402
402
  profile_id: 'profile_id_example', # String | Filter accounts by profile ID
403
403
  platform: 'platform_example', # String | Filter accounts by platform (e.g. \"instagram\", \"twitter\").
404
- include_over_limit: true # Boolean | When true, includes accounts from over-limit profiles.
404
+ include_over_limit: true, # Boolean | When true, includes accounts from over-limit profiles.
405
+ page: 56, # Integer | Page number (1-based). When provided with limit, enables server-side pagination. Omit for all accounts.
406
+ limit: 56 # Integer | Page size. Required alongside page for pagination.
405
407
  }
406
408
 
407
409
  begin
@@ -438,6 +440,8 @@ end
438
440
  | **profile_id** | **String** | Filter accounts by profile ID | [optional] |
439
441
  | **platform** | **String** | Filter accounts by platform (e.g. \"instagram\", \"twitter\"). | [optional] |
440
442
  | **include_over_limit** | **Boolean** | When true, includes accounts from over-limit profiles. | [optional][default to false] |
443
+ | **page** | **Integer** | Page number (1-based). When provided with limit, enables server-side pagination. Omit for all accounts. | [optional] |
444
+ | **limit** | **Integer** | Page size. Required alongside page for pagination. | [optional] |
441
445
 
442
446
  ### Return type
443
447
 
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
+
@@ -6,6 +6,7 @@
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **accounts** | [**Array<SocialAccount>**](SocialAccount.md) | | [optional] |
8
8
  | **has_analytics_access** | **Boolean** | Whether user has analytics add-on access | [optional] |
9
+ | **pagination** | [**Pagination**](Pagination.md) | Only present when page/limit params are provided | [optional] |
9
10
 
10
11
  ## Example
11
12
 
@@ -14,7 +15,8 @@ require 'late-sdk'
14
15
 
15
16
  instance = Late::ListAccounts200Response.new(
16
17
  accounts: null,
17
- has_analytics_access: null
18
+ has_analytics_access: null,
19
+ pagination: null
18
20
  )
19
21
  ```
20
22
 
@@ -366,11 +366,13 @@ module Late
366
366
  end
367
367
 
368
368
  # List accounts
369
- # Returns connected social accounts. Only includes accounts within the plan limit by default. Follower data requires analytics add-on.
369
+ # Returns connected social accounts. Only includes accounts within the plan limit by default. Follower data requires analytics add-on. Supports optional server-side pagination via page/limit params. When omitted, returns all accounts (backward-compatible).
370
370
  # @param [Hash] opts the optional parameters
371
371
  # @option opts [String] :profile_id Filter accounts by profile ID
372
372
  # @option opts [String] :platform Filter accounts by platform (e.g. \"instagram\", \"twitter\").
373
373
  # @option opts [Boolean] :include_over_limit When true, includes accounts from over-limit profiles. (default to false)
374
+ # @option opts [Integer] :page Page number (1-based). When provided with limit, enables server-side pagination. Omit for all accounts.
375
+ # @option opts [Integer] :limit Page size. Required alongside page for pagination.
374
376
  # @return [ListAccounts200Response]
375
377
  def list_accounts(opts = {})
376
378
  data, _status_code, _headers = list_accounts_with_http_info(opts)
@@ -378,16 +380,30 @@ module Late
378
380
  end
379
381
 
380
382
  # List accounts
381
- # Returns connected social accounts. Only includes accounts within the plan limit by default. Follower data requires analytics add-on.
383
+ # Returns connected social accounts. Only includes accounts within the plan limit by default. Follower data requires analytics add-on. Supports optional server-side pagination via page/limit params. When omitted, returns all accounts (backward-compatible).
382
384
  # @param [Hash] opts the optional parameters
383
385
  # @option opts [String] :profile_id Filter accounts by profile ID
384
386
  # @option opts [String] :platform Filter accounts by platform (e.g. \"instagram\", \"twitter\").
385
387
  # @option opts [Boolean] :include_over_limit When true, includes accounts from over-limit profiles. (default to false)
388
+ # @option opts [Integer] :page Page number (1-based). When provided with limit, enables server-side pagination. Omit for all accounts.
389
+ # @option opts [Integer] :limit Page size. Required alongside page for pagination.
386
390
  # @return [Array<(ListAccounts200Response, Integer, Hash)>] ListAccounts200Response data, response status code and response headers
387
391
  def list_accounts_with_http_info(opts = {})
388
392
  if @api_client.config.debugging
389
393
  @api_client.config.logger.debug 'Calling API: AccountsApi.list_accounts ...'
390
394
  end
395
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'] < 1
396
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling AccountsApi.list_accounts, must be greater than or equal to 1.'
397
+ end
398
+
399
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100
400
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling AccountsApi.list_accounts, must be smaller than or equal to 100.'
401
+ end
402
+
403
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
404
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling AccountsApi.list_accounts, must be greater than or equal to 1.'
405
+ end
406
+
391
407
  # resource path
392
408
  local_var_path = '/v1/accounts'
393
409
 
@@ -396,6 +412,8 @@ module Late
396
412
  query_params[:'profileId'] = opts[:'profile_id'] if !opts[:'profile_id'].nil?
397
413
  query_params[:'platform'] = opts[:'platform'] if !opts[:'platform'].nil?
398
414
  query_params[:'includeOverLimit'] = opts[:'include_over_limit'] if !opts[:'include_over_limit'].nil?
415
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
416
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
399
417
 
400
418
  # header parameters
401
419
  header_params = opts[:header_params] || {}
@@ -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
@@ -20,11 +20,15 @@ module Late
20
20
  # Whether user has analytics add-on access
21
21
  attr_accessor :has_analytics_access
22
22
 
23
+ # Only present when page/limit params are provided
24
+ attr_accessor :pagination
25
+
23
26
  # Attribute mapping from ruby-style variable name to JSON key.
24
27
  def self.attribute_map
25
28
  {
26
29
  :'accounts' => :'accounts',
27
- :'has_analytics_access' => :'hasAnalyticsAccess'
30
+ :'has_analytics_access' => :'hasAnalyticsAccess',
31
+ :'pagination' => :'pagination'
28
32
  }
29
33
  end
30
34
 
@@ -42,7 +46,8 @@ module Late
42
46
  def self.openapi_types
43
47
  {
44
48
  :'accounts' => :'Array<SocialAccount>',
45
- :'has_analytics_access' => :'Boolean'
49
+ :'has_analytics_access' => :'Boolean',
50
+ :'pagination' => :'Pagination'
46
51
  }
47
52
  end
48
53
 
@@ -77,6 +82,10 @@ module Late
77
82
  if attributes.key?(:'has_analytics_access')
78
83
  self.has_analytics_access = attributes[:'has_analytics_access']
79
84
  end
85
+
86
+ if attributes.key?(:'pagination')
87
+ self.pagination = attributes[:'pagination']
88
+ end
80
89
  end
81
90
 
82
91
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -100,7 +109,8 @@ module Late
100
109
  return true if self.equal?(o)
101
110
  self.class == o.class &&
102
111
  accounts == o.accounts &&
103
- has_analytics_access == o.has_analytics_access
112
+ has_analytics_access == o.has_analytics_access &&
113
+ pagination == o.pagination
104
114
  end
105
115
 
106
116
  # @see the `==` method
@@ -112,7 +122,7 @@ module Late
112
122
  # Calculates hash code according to all attributes.
113
123
  # @return [Integer] Hash code
114
124
  def hash
115
- [accounts, has_analytics_access].hash
125
+ [accounts, has_analytics_access, pagination].hash
116
126
  end
117
127
 
118
128
  # Builds the object from hash
@@ -11,5 +11,5 @@ Generator version: 7.19.0
11
11
  =end
12
12
 
13
13
  module Late
14
- VERSION = '0.0.106'
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
@@ -5760,7 +5777,9 @@ paths:
5760
5777
  operationId: listAccounts
5761
5778
  tags: [Accounts]
5762
5779
  summary: List accounts
5763
- description: Returns connected social accounts. Only includes accounts within the plan limit by default. Follower data requires analytics add-on.
5780
+ description: |
5781
+ Returns connected social accounts. Only includes accounts within the plan limit by default. Follower data requires analytics add-on.
5782
+ Supports optional server-side pagination via page/limit params. When omitted, returns all accounts (backward-compatible).
5764
5783
  parameters:
5765
5784
  - name: profileId
5766
5785
  in: query
@@ -5777,9 +5796,17 @@ paths:
5777
5796
  type: boolean
5778
5797
  default: false
5779
5798
  description: When true, includes accounts from over-limit profiles.
5799
+ - name: page
5800
+ in: query
5801
+ schema: { type: integer, minimum: 1 }
5802
+ description: Page number (1-based). When provided with limit, enables server-side pagination. Omit for all accounts.
5803
+ - name: limit
5804
+ in: query
5805
+ schema: { type: integer, minimum: 1, maximum: 100 }
5806
+ description: Page size. Required alongside page for pagination.
5780
5807
  responses:
5781
5808
  '200':
5782
- description: Accounts
5809
+ description: Accounts (with optional pagination)
5783
5810
  content:
5784
5811
  application/json:
5785
5812
  schema:
@@ -5791,6 +5818,9 @@ paths:
5791
5818
  hasAnalyticsAccess:
5792
5819
  type: boolean
5793
5820
  description: Whether user has analytics add-on access
5821
+ pagination:
5822
+ description: Only present when page/limit params are provided
5823
+ $ref: '#/components/schemas/Pagination'
5794
5824
  examples:
5795
5825
  example:
5796
5826
  value:
@@ -101,11 +101,13 @@ describe 'AccountsApi' do
101
101
 
102
102
  # unit tests for list_accounts
103
103
  # List accounts
104
- # Returns connected social accounts. Only includes accounts within the plan limit by default. Follower data requires analytics add-on.
104
+ # Returns connected social accounts. Only includes accounts within the plan limit by default. Follower data requires analytics add-on. Supports optional server-side pagination via page/limit params. When omitted, returns all accounts (backward-compatible).
105
105
  # @param [Hash] opts the optional parameters
106
106
  # @option opts [String] :profile_id Filter accounts by profile ID
107
107
  # @option opts [String] :platform Filter accounts by platform (e.g. \&quot;instagram\&quot;, \&quot;twitter\&quot;).
108
108
  # @option opts [Boolean] :include_over_limit When true, includes accounts from over-limit profiles.
109
+ # @option opts [Integer] :page Page number (1-based). When provided with limit, enables server-side pagination. Omit for all accounts.
110
+ # @option opts [Integer] :limit Page size. Required alongside page for pagination.
109
111
  # @return [ListAccounts200Response]
110
112
  describe 'list_accounts test' do
111
113
  it 'should work' do
@@ -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
@@ -39,4 +39,10 @@ describe Late::ListAccounts200Response do
39
39
  end
40
40
  end
41
41
 
42
+ describe 'test attribute "pagination"' 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
+
42
48
  end
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: late-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.106
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
@@ -864,6 +865,7 @@ files:
864
865
  - lib/late-sdk/models/ad.rb
865
866
  - lib/late-sdk/models/ad_budget.rb
866
867
  - lib/late-sdk/models/ad_campaign.rb
868
+ - lib/late-sdk/models/ad_creative.rb
867
869
  - lib/late-sdk/models/ad_metrics.rb
868
870
  - lib/late-sdk/models/ad_schedule.rb
869
871
  - lib/late-sdk/models/ad_tree_ad_set.rb
@@ -1612,6 +1614,7 @@ files:
1612
1614
  - spec/models/activate_sequence200_response_spec.rb
1613
1615
  - spec/models/ad_budget_spec.rb
1614
1616
  - spec/models/ad_campaign_spec.rb
1617
+ - spec/models/ad_creative_spec.rb
1615
1618
  - spec/models/ad_metrics_spec.rb
1616
1619
  - spec/models/ad_schedule_spec.rb
1617
1620
  - spec/models/ad_spec.rb
@@ -2313,7 +2316,7 @@ files:
2313
2316
  - spec/models/you_tube_scope_missing_response_scope_status_spec.rb
2314
2317
  - spec/models/you_tube_scope_missing_response_spec.rb
2315
2318
  - spec/spec_helper.rb
2316
- - zernio-sdk-0.0.106.gem
2319
+ - zernio-sdk-0.0.108.gem
2317
2320
  homepage: https://openapi-generator.tech
2318
2321
  licenses:
2319
2322
  - Unlicense
@@ -2944,6 +2947,7 @@ test_files:
2944
2947
  - spec/models/ad_campaign_spec.rb
2945
2948
  - spec/models/set_contact_field_value_request_spec.rb
2946
2949
  - spec/models/update_ad200_response_spec.rb
2950
+ - spec/models/ad_creative_spec.rb
2947
2951
  - spec/models/linked_in_aggregate_analytics_daily_response_analytics_spec.rb
2948
2952
  - spec/models/get_comment_automation200_response_automation_spec.rb
2949
2953
  - spec/models/get_linked_in_mentions200_response_spec.rb
Binary file