late-sdk 0.0.945 → 0.0.947

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.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -0
  3. data/docs/AccountsApi.md +74 -0
  4. data/docs/GetCommentAutomation200ResponseLogsInner.md +4 -0
  5. data/docs/GetCommentAutomation200ResponseLogsInnerPlatformError.md +20 -0
  6. data/docs/ListTikTokCommercialMusic200Response.md +18 -0
  7. data/docs/ListTikTokCommercialMusic200ResponseTracksInner.md +34 -0
  8. data/docs/ListTikTokCommercialMusic200ResponseTracksInnerClip.md +20 -0
  9. data/docs/TikTokPlatformData.md +5 -1
  10. data/docs/TikTokPlatformDataMusicSoundInfo.md +24 -0
  11. data/lib/zernio-sdk/api/accounts_api.rb +74 -0
  12. data/lib/zernio-sdk/models/get_comment_automation200_response_logs_inner.rb +20 -1
  13. data/lib/zernio-sdk/models/get_comment_automation200_response_logs_inner_platform_error.rb +157 -0
  14. data/lib/zernio-sdk/models/list_tik_tok_commercial_music200_response.rb +149 -0
  15. data/lib/zernio-sdk/models/list_tik_tok_commercial_music200_response_tracks_inner.rb +224 -0
  16. data/lib/zernio-sdk/models/list_tik_tok_commercial_music200_response_tracks_inner_clip.rb +157 -0
  17. data/lib/zernio-sdk/models/tik_tok_platform_data.rb +49 -2
  18. data/lib/zernio-sdk/models/tik_tok_platform_data_music_sound_info.rb +264 -0
  19. data/lib/zernio-sdk/version.rb +1 -1
  20. data/lib/zernio-sdk.rb +5 -0
  21. data/openapi.yaml +88 -1
  22. data/spec/api/accounts_api_spec.rb +13 -0
  23. data/spec/models/get_comment_automation200_response_logs_inner_platform_error_spec.rb +42 -0
  24. data/spec/models/get_comment_automation200_response_logs_inner_spec.rb +12 -0
  25. data/spec/models/list_tik_tok_commercial_music200_response_spec.rb +36 -0
  26. data/spec/models/list_tik_tok_commercial_music200_response_tracks_inner_clip_spec.rb +42 -0
  27. data/spec/models/list_tik_tok_commercial_music200_response_tracks_inner_spec.rb +84 -0
  28. data/spec/models/tik_tok_platform_data_music_sound_info_spec.rb +54 -0
  29. data/spec/models/tik_tok_platform_data_spec.rb +12 -0
  30. data/zernio-sdk-0.0.947.gem +0 -0
  31. metadata +22 -2
  32. data/zernio-sdk-0.0.945.gem +0 -0
@@ -0,0 +1,264 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Zernio
17
+ # Commercial Music Library track to attach. Accounts connected through the TikTok for Business app only: a developer-app account rejects the post at publish time with a message that says so. Pick musicSoundId from GET /v1/accounts/{accountId}/tiktok/commercial-music. Ignored on drafts, where TikTok ignores every post_info field.
18
+ class TikTokPlatformDataMusicSoundInfo < ApiModelBase
19
+ # The commercial_music_id of the track.
20
+ attr_accessor :music_sound_id
21
+
22
+ # Track volume. TikTok defaults an omitted volume to 0, which publishes the track silently, so we default to the app's 50. Video posts only.
23
+ attr_accessor :music_sound_volume
24
+
25
+ # Start point of the track in milliseconds (default 0). Video posts only.
26
+ attr_accessor :music_sound_start
27
+
28
+ # End point of the track in milliseconds (default: the video length). Must be greater than musicSoundStart. Video posts only.
29
+ attr_accessor :music_sound_end
30
+
31
+ # Attribute mapping from ruby-style variable name to JSON key.
32
+ def self.attribute_map
33
+ {
34
+ :'music_sound_id' => :'musicSoundId',
35
+ :'music_sound_volume' => :'musicSoundVolume',
36
+ :'music_sound_start' => :'musicSoundStart',
37
+ :'music_sound_end' => :'musicSoundEnd'
38
+ }
39
+ end
40
+
41
+ # Returns attribute mapping this model knows about
42
+ def self.acceptable_attribute_map
43
+ attribute_map
44
+ end
45
+
46
+ # Returns all the JSON keys this model knows about
47
+ def self.acceptable_attributes
48
+ acceptable_attribute_map.values
49
+ end
50
+
51
+ # Attribute type mapping.
52
+ def self.openapi_types
53
+ {
54
+ :'music_sound_id' => :'String',
55
+ :'music_sound_volume' => :'Integer',
56
+ :'music_sound_start' => :'Integer',
57
+ :'music_sound_end' => :'Integer'
58
+ }
59
+ end
60
+
61
+ # List of attributes with nullable: true
62
+ def self.openapi_nullable
63
+ Set.new([
64
+ ])
65
+ end
66
+
67
+ # Initializes the object
68
+ # @param [Hash] attributes Model attributes in the form of hash
69
+ def initialize(attributes = {})
70
+ if (!attributes.is_a?(Hash))
71
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::TikTokPlatformDataMusicSoundInfo` initialize method"
72
+ end
73
+
74
+ # check to see if the attribute exists and convert string to symbol for hash key
75
+ acceptable_attribute_map = self.class.acceptable_attribute_map
76
+ attributes = attributes.each_with_object({}) { |(k, v), h|
77
+ if (!acceptable_attribute_map.key?(k.to_sym))
78
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::TikTokPlatformDataMusicSoundInfo`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
79
+ end
80
+ h[k.to_sym] = v
81
+ }
82
+
83
+ if attributes.key?(:'music_sound_id')
84
+ self.music_sound_id = attributes[:'music_sound_id']
85
+ else
86
+ self.music_sound_id = nil
87
+ end
88
+
89
+ if attributes.key?(:'music_sound_volume')
90
+ self.music_sound_volume = attributes[:'music_sound_volume']
91
+ else
92
+ self.music_sound_volume = 50
93
+ end
94
+
95
+ if attributes.key?(:'music_sound_start')
96
+ self.music_sound_start = attributes[:'music_sound_start']
97
+ end
98
+
99
+ if attributes.key?(:'music_sound_end')
100
+ self.music_sound_end = attributes[:'music_sound_end']
101
+ end
102
+ end
103
+
104
+ # Show invalid properties with the reasons. Usually used together with valid?
105
+ # @return Array for valid properties with the reasons
106
+ def list_invalid_properties
107
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
108
+ invalid_properties = Array.new
109
+ if @music_sound_id.nil?
110
+ invalid_properties.push('invalid value for "music_sound_id", music_sound_id cannot be nil.')
111
+ end
112
+
113
+ if !@music_sound_volume.nil? && @music_sound_volume > 100
114
+ invalid_properties.push('invalid value for "music_sound_volume", must be smaller than or equal to 100.')
115
+ end
116
+
117
+ if !@music_sound_volume.nil? && @music_sound_volume < 0
118
+ invalid_properties.push('invalid value for "music_sound_volume", must be greater than or equal to 0.')
119
+ end
120
+
121
+ if !@music_sound_start.nil? && @music_sound_start < 0
122
+ invalid_properties.push('invalid value for "music_sound_start", must be greater than or equal to 0.')
123
+ end
124
+
125
+ if !@music_sound_end.nil? && @music_sound_end < 0
126
+ invalid_properties.push('invalid value for "music_sound_end", must be greater than or equal to 0.')
127
+ end
128
+
129
+ invalid_properties
130
+ end
131
+
132
+ # Check to see if the all the properties in the model are valid
133
+ # @return true if the model is valid
134
+ def valid?
135
+ warn '[DEPRECATED] the `valid?` method is obsolete'
136
+ return false if @music_sound_id.nil?
137
+ return false if !@music_sound_volume.nil? && @music_sound_volume > 100
138
+ return false if !@music_sound_volume.nil? && @music_sound_volume < 0
139
+ return false if !@music_sound_start.nil? && @music_sound_start < 0
140
+ return false if !@music_sound_end.nil? && @music_sound_end < 0
141
+ true
142
+ end
143
+
144
+ # Custom attribute writer method with validation
145
+ # @param [Object] music_sound_id Value to be assigned
146
+ def music_sound_id=(music_sound_id)
147
+ if music_sound_id.nil?
148
+ fail ArgumentError, 'music_sound_id cannot be nil'
149
+ end
150
+
151
+ @music_sound_id = music_sound_id
152
+ end
153
+
154
+ # Custom attribute writer method with validation
155
+ # @param [Object] music_sound_volume Value to be assigned
156
+ def music_sound_volume=(music_sound_volume)
157
+ if music_sound_volume.nil?
158
+ fail ArgumentError, 'music_sound_volume cannot be nil'
159
+ end
160
+
161
+ if music_sound_volume > 100
162
+ fail ArgumentError, 'invalid value for "music_sound_volume", must be smaller than or equal to 100.'
163
+ end
164
+
165
+ if music_sound_volume < 0
166
+ fail ArgumentError, 'invalid value for "music_sound_volume", must be greater than or equal to 0.'
167
+ end
168
+
169
+ @music_sound_volume = music_sound_volume
170
+ end
171
+
172
+ # Custom attribute writer method with validation
173
+ # @param [Object] music_sound_start Value to be assigned
174
+ def music_sound_start=(music_sound_start)
175
+ if music_sound_start.nil?
176
+ fail ArgumentError, 'music_sound_start cannot be nil'
177
+ end
178
+
179
+ if music_sound_start < 0
180
+ fail ArgumentError, 'invalid value for "music_sound_start", must be greater than or equal to 0.'
181
+ end
182
+
183
+ @music_sound_start = music_sound_start
184
+ end
185
+
186
+ # Custom attribute writer method with validation
187
+ # @param [Object] music_sound_end Value to be assigned
188
+ def music_sound_end=(music_sound_end)
189
+ if music_sound_end.nil?
190
+ fail ArgumentError, 'music_sound_end cannot be nil'
191
+ end
192
+
193
+ if music_sound_end < 0
194
+ fail ArgumentError, 'invalid value for "music_sound_end", must be greater than or equal to 0.'
195
+ end
196
+
197
+ @music_sound_end = music_sound_end
198
+ end
199
+
200
+ # Checks equality by comparing each attribute.
201
+ # @param [Object] Object to be compared
202
+ def ==(o)
203
+ return true if self.equal?(o)
204
+ self.class == o.class &&
205
+ music_sound_id == o.music_sound_id &&
206
+ music_sound_volume == o.music_sound_volume &&
207
+ music_sound_start == o.music_sound_start &&
208
+ music_sound_end == o.music_sound_end
209
+ end
210
+
211
+ # @see the `==` method
212
+ # @param [Object] Object to be compared
213
+ def eql?(o)
214
+ self == o
215
+ end
216
+
217
+ # Calculates hash code according to all attributes.
218
+ # @return [Integer] Hash code
219
+ def hash
220
+ [music_sound_id, music_sound_volume, music_sound_start, music_sound_end].hash
221
+ end
222
+
223
+ # Builds the object from hash
224
+ # @param [Hash] attributes Model attributes in the form of hash
225
+ # @return [Object] Returns the model itself
226
+ def self.build_from_hash(attributes)
227
+ return nil unless attributes.is_a?(Hash)
228
+ attributes = attributes.transform_keys(&:to_sym)
229
+ transformed_hash = {}
230
+ openapi_types.each_pair do |key, type|
231
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
232
+ transformed_hash["#{key}"] = nil
233
+ elsif type =~ /\AArray<(.*)>/i
234
+ # check to ensure the input is an array given that the attribute
235
+ # is documented as an array but the input is not
236
+ if attributes[attribute_map[key]].is_a?(Array)
237
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
238
+ end
239
+ elsif !attributes[attribute_map[key]].nil?
240
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
241
+ end
242
+ end
243
+ new(transformed_hash)
244
+ end
245
+
246
+ # Returns the object in the form of hash
247
+ # @return [Hash] Returns the object in the form of hash
248
+ def to_hash
249
+ hash = {}
250
+ self.class.attribute_map.each_pair do |attr, param|
251
+ value = self.send(attr)
252
+ if value.nil?
253
+ is_nullable = self.class.openapi_nullable.include?(attr)
254
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
255
+ end
256
+
257
+ hash[param] = _to_hash(value)
258
+ end
259
+ hash
260
+ end
261
+
262
+ end
263
+
264
+ end
@@ -11,5 +11,5 @@ Generator version: 7.19.0
11
11
  =end
12
12
 
13
13
  module Zernio
14
- VERSION = '0.0.945'
14
+ VERSION = '0.0.947'
15
15
  end
data/lib/zernio-sdk.rb CHANGED
@@ -643,6 +643,7 @@ require 'zernio-sdk/models/get_campaign_targeting200_response_locations_inner'
643
643
  require 'zernio-sdk/models/get_comment_automation200_response'
644
644
  require 'zernio-sdk/models/get_comment_automation200_response_automation'
645
645
  require 'zernio-sdk/models/get_comment_automation200_response_logs_inner'
646
+ require 'zernio-sdk/models/get_comment_automation200_response_logs_inner_platform_error'
646
647
  require 'zernio-sdk/models/get_connect_url200_response'
647
648
  require 'zernio-sdk/models/get_contact200_response'
648
649
  require 'zernio-sdk/models/get_contact200_response_channels_inner'
@@ -1213,6 +1214,9 @@ require 'zernio-sdk/models/list_snapchat_profiles200_response_public_profiles_in
1213
1214
  require 'zernio-sdk/models/list_tik_tok_ad_pixels200_response'
1214
1215
  require 'zernio-sdk/models/list_tik_tok_ad_pixels200_response_pixels_inner'
1215
1216
  require 'zernio-sdk/models/list_tik_tok_ad_pixels200_response_pixels_inner_event_details_inner'
1217
+ require 'zernio-sdk/models/list_tik_tok_commercial_music200_response'
1218
+ require 'zernio-sdk/models/list_tik_tok_commercial_music200_response_tracks_inner'
1219
+ require 'zernio-sdk/models/list_tik_tok_commercial_music200_response_tracks_inner_clip'
1216
1220
  require 'zernio-sdk/models/list_tracking_tag_shared_accounts200_response'
1217
1221
  require 'zernio-sdk/models/list_tracking_tags200_response'
1218
1222
  require 'zernio-sdk/models/list_users200_response'
@@ -1624,6 +1628,7 @@ require 'zernio-sdk/models/threads_platform_data'
1624
1628
  require 'zernio-sdk/models/tik_tok_dry_run_verdict'
1625
1629
  require 'zernio-sdk/models/tik_tok_dry_run_verdict_tiktok_inner'
1626
1630
  require 'zernio-sdk/models/tik_tok_platform_data'
1631
+ require 'zernio-sdk/models/tik_tok_platform_data_music_sound_info'
1627
1632
  require 'zernio-sdk/models/tracking_tag'
1628
1633
  require 'zernio-sdk/models/transfer_voice_call200_response'
1629
1634
  require 'zernio-sdk/models/transfer_voice_call_request'
data/openapi.yaml CHANGED
@@ -6929,7 +6929,34 @@ components:
6929
6929
  minimum: 0
6930
6930
  autoAddMusic:
6931
6931
  type: boolean
6932
- description: When true, TikTok may add recommended music (photos only)
6932
+ description: 'When true, TikTok may add recommended music (photos only). With the brand-organic or branded-content toggle on, TikTok allows Commercial Music Library tracks only, so this attaches nothing there; use musicSoundInfo instead.'
6933
+ musicSoundInfo:
6934
+ type: object
6935
+ description: 'Commercial Music Library track to attach. Accounts connected through the TikTok for Business app only: a developer-app account rejects the post at publish time with a message that says so. Pick musicSoundId from GET /v1/accounts/{accountId}/tiktok/commercial-music. Ignored on drafts, where TikTok ignores every post_info field.'
6936
+ required: [musicSoundId]
6937
+ properties:
6938
+ musicSoundId:
6939
+ type: string
6940
+ description: 'The commercial_music_id of the track.'
6941
+ musicSoundVolume:
6942
+ type: integer
6943
+ minimum: 0
6944
+ maximum: 100
6945
+ default: 50
6946
+ description: 'Track volume. TikTok defaults an omitted volume to 0, which publishes the track silently, so we default to the app''s 50. Video posts only.'
6947
+ musicSoundStart:
6948
+ type: integer
6949
+ minimum: 0
6950
+ description: 'Start point of the track in milliseconds (default 0). Video posts only.'
6951
+ musicSoundEnd:
6952
+ type: integer
6953
+ minimum: 0
6954
+ description: 'End point of the track in milliseconds (default: the video length). Must be greater than musicSoundStart. Video posts only.'
6955
+ videoOriginalSoundVolume:
6956
+ type: integer
6957
+ minimum: 0
6958
+ maximum: 100
6959
+ description: 'Volume of the video''s own sound when a commercial track is attached (0 to 100). Requires musicSoundInfo. Video posts only.'
6933
6960
  videoMadeWithAi:
6934
6961
  type: boolean
6935
6962
  description: 'Set true to disclose AI-generated content. Accounts connected through the TikTok for Business app carry the disclosure on video posts only: the business photo endpoint has no AI disclosure field, so true on a direct photo post is rejected at creation rather than published undisclosed. Send draft true to publish such a photo post and set the disclosure in the TikTok app.'
@@ -19084,6 +19111,56 @@ paths:
19084
19111
  '400': { $ref: '#/components/responses/BadRequest' }
19085
19112
  '401': { $ref: '#/components/responses/Unauthorized' }
19086
19113
  '404': { $ref: '#/components/responses/NotFound' }
19114
+ /v1/accounts/{accountId}/tiktok/commercial-music:
19115
+ get:
19116
+ x-resource-group: "accounts"
19117
+ operationId: listTikTokCommercialMusic
19118
+ tags: [Accounts]
19119
+ summary: List trending commercial music
19120
+ description: 'Returns the 100 currently trending tracks of TikTok''s Commercial Music Library for a TikTok account connected through the TikTok for Business app. Use a track id as tiktokSettings.musicSoundInfo.musicSoundId when creating a post. The list is not paged; countryCode selects the country chart.'
19121
+ parameters:
19122
+ - name: accountId
19123
+ in: path
19124
+ required: true
19125
+ schema: { type: string }
19126
+ description: The TikTok account ID
19127
+ - name: countryCode
19128
+ in: query
19129
+ required: false
19130
+ schema: { type: string, minLength: 2, maxLength: 2 }
19131
+ description: 'Two-letter ISO 3166-1 country code of the chart to read (for example ES). Defaults to TikTok''s global chart.'
19132
+ responses:
19133
+ '200':
19134
+ description: The trending tracks, rank 1 first
19135
+ content:
19136
+ application/json:
19137
+ schema:
19138
+ type: object
19139
+ properties:
19140
+ tracks:
19141
+ type: array
19142
+ items:
19143
+ type: object
19144
+ properties:
19145
+ id: { type: string, description: 'The commercial_music_id to send as musicSoundId' }
19146
+ name: { type: string }
19147
+ artist: { type: string }
19148
+ durationSec: { type: integer }
19149
+ genres: { type: array, items: { type: string } }
19150
+ previewUrl: { type: string, description: 'Preview audio of the full track' }
19151
+ thumbnailUrl: { type: string }
19152
+ rank: { type: integer, description: 'Position in the trending chart, 1 first' }
19153
+ clip:
19154
+ type: object
19155
+ description: 'The trending excerpt of the track, when TikTok provides one'
19156
+ properties:
19157
+ durationSec: { type: integer }
19158
+ previewUrl: { type: string }
19159
+ '400':
19160
+ $ref: '#/components/responses/BadRequest'
19161
+ '404':
19162
+ description: Account not found
19163
+
19087
19164
  /v1/accounts/{accountId}/tiktok/creator-info:
19088
19165
  get:
19089
19166
  x-resource-group: "accounts"
@@ -43246,6 +43323,11 @@ paths:
43246
43323
  commenterIsFollower: { type: boolean, description: "Follow relationship at decision time. Absent when Instagram would not tell us (the commenter never messaged the account)." }
43247
43324
  commenterFollowerCount: { type: integer }
43248
43325
  error: { type: string, description: DM error message if status is failed }
43326
+ platformError:
43327
+ type: object
43328
+ description: "Platform error codes of the failed DM (Meta `code` and `error_subcode`), when the platform sent them. Absent on successful rows and on rows written before this field existed."
43329
+ properties: { code: { type: integer }, subcode: { type: integer } }
43330
+ privateReplyConsumed: { type: boolean, description: "True when the failed send spent the comment's single Instagram private reply (subcode 1545133 or 2534023), the same rule as `details.privateReplyConsumed` on the private-reply endpoint. Absent on direct DMs, on Facebook, and on rows written before this field existed." }
43249
43331
  commentReplyStatus: { type: string, enum: [sent, failed, skipped], description: "Outcome of the optional public reply on the triggering comment. 'skipped' if no commentReply was configured or if the DM failed (the public reply is not attempted in that case)." }
43250
43332
  commentReplyError: { type: string, description: Public-reply error message if commentReplyStatus is failed }
43251
43333
  nextDueAt: { type: string, format: date-time, description: "When the next queued send fires. Present only while something is still pending." }
@@ -43396,6 +43478,11 @@ paths:
43396
43478
  commenterIsFollower: { type: boolean, description: "Follow relationship at decision time. Absent when Instagram would not tell us (the commenter never messaged the account)." }
43397
43479
  commenterFollowerCount: { type: integer }
43398
43480
  error: { type: string, description: DM error message if status is failed }
43481
+ platformError:
43482
+ type: object
43483
+ description: "Platform error codes of the failed DM (Meta `code` and `error_subcode`), when the platform sent them. Absent on successful rows and on rows written before this field existed."
43484
+ properties: { code: { type: integer }, subcode: { type: integer } }
43485
+ privateReplyConsumed: { type: boolean, description: "True when the failed send spent the comment's single Instagram private reply (subcode 1545133 or 2534023), the same rule as `details.privateReplyConsumed` on the private-reply endpoint. Absent on direct DMs, on Facebook, and on rows written before this field existed." }
43399
43486
  commentReplyStatus: { type: string, enum: [sent, failed, skipped], description: "Outcome of the optional public reply on the triggering comment. 'skipped' if no commentReply was configured or if the DM failed (the public reply is not attempted in that case)." }
43400
43487
  commentReplyError: { type: string, description: Public-reply error message if commentReplyStatus is failed }
43401
43488
  nextDueAt: { type: string, format: date-time, description: "When the next queued send fires. Present only while something is still pending." }
@@ -166,6 +166,19 @@ describe 'AccountsApi' do
166
166
  end
167
167
  end
168
168
 
169
+ # unit tests for list_tik_tok_commercial_music
170
+ # List trending commercial music
171
+ # Returns the 100 currently trending tracks of TikTok&#39;s Commercial Music Library for a TikTok account connected through the TikTok for Business app. Use a track id as tiktokSettings.musicSoundInfo.musicSoundId when creating a post. The list is not paged; countryCode selects the country chart.
172
+ # @param account_id The TikTok account ID
173
+ # @param [Hash] opts the optional parameters
174
+ # @option opts [String] :country_code Two-letter ISO 3166-1 country code of the chart to read (for example ES). Defaults to TikTok&#39;s global chart.
175
+ # @return [ListTikTokCommercialMusic200Response]
176
+ describe 'list_tik_tok_commercial_music test' do
177
+ it 'should work' do
178
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
179
+ end
180
+ end
181
+
169
182
  # unit tests for move_account_to_profile
170
183
  # Move account to another profile
171
184
  # Moves a connected account to a different profile owned by the same user. The target profile must belong to the same user as the account. For API keys restricted to specific profiles, BOTH the source account&#39;s current profile AND the target profile must be in the key&#39;s allowed set. Calls with a target profile outside the key&#39;s scope return 403.
@@ -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 Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+ require 'date'
16
+
17
+ # Unit tests for Zernio::GetCommentAutomation200ResponseLogsInnerPlatformError
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe Zernio::GetCommentAutomation200ResponseLogsInnerPlatformError do
21
+ #let(:instance) { Zernio::GetCommentAutomation200ResponseLogsInnerPlatformError.new }
22
+
23
+ describe 'test an instance of GetCommentAutomation200ResponseLogsInnerPlatformError' do
24
+ it 'should create an instance of GetCommentAutomation200ResponseLogsInnerPlatformError' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(Zernio::GetCommentAutomation200ResponseLogsInnerPlatformError)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "code"' 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 "subcode"' 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
@@ -105,6 +105,18 @@ describe Zernio::GetCommentAutomation200ResponseLogsInner do
105
105
  end
106
106
  end
107
107
 
108
+ describe 'test attribute "platform_error"' do
109
+ it 'should work' do
110
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
111
+ end
112
+ end
113
+
114
+ describe 'test attribute "private_reply_consumed"' do
115
+ it 'should work' do
116
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
117
+ end
118
+ end
119
+
108
120
  describe 'test attribute "comment_reply_status"' do
109
121
  it 'should work' do
110
122
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
@@ -0,0 +1,36 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+ require 'date'
16
+
17
+ # Unit tests for Zernio::ListTikTokCommercialMusic200Response
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe Zernio::ListTikTokCommercialMusic200Response do
21
+ #let(:instance) { Zernio::ListTikTokCommercialMusic200Response.new }
22
+
23
+ describe 'test an instance of ListTikTokCommercialMusic200Response' do
24
+ it 'should create an instance of ListTikTokCommercialMusic200Response' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(Zernio::ListTikTokCommercialMusic200Response)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "tracks"' 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
+ 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 Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+ require 'date'
16
+
17
+ # Unit tests for Zernio::ListTikTokCommercialMusic200ResponseTracksInnerClip
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe Zernio::ListTikTokCommercialMusic200ResponseTracksInnerClip do
21
+ #let(:instance) { Zernio::ListTikTokCommercialMusic200ResponseTracksInnerClip.new }
22
+
23
+ describe 'test an instance of ListTikTokCommercialMusic200ResponseTracksInnerClip' do
24
+ it 'should create an instance of ListTikTokCommercialMusic200ResponseTracksInnerClip' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(Zernio::ListTikTokCommercialMusic200ResponseTracksInnerClip)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "duration_sec"' 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 "preview_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
+ end
@@ -0,0 +1,84 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+ require 'date'
16
+
17
+ # Unit tests for Zernio::ListTikTokCommercialMusic200ResponseTracksInner
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe Zernio::ListTikTokCommercialMusic200ResponseTracksInner do
21
+ #let(:instance) { Zernio::ListTikTokCommercialMusic200ResponseTracksInner.new }
22
+
23
+ describe 'test an instance of ListTikTokCommercialMusic200ResponseTracksInner' do
24
+ it 'should create an instance of ListTikTokCommercialMusic200ResponseTracksInner' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(Zernio::ListTikTokCommercialMusic200ResponseTracksInner)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "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 "name"' 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 "artist"' 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 "duration_sec"' 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 "genres"' 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 "preview_url"' 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 "thumbnail_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 "rank"' 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 "clip"' 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
+ end