post-for-me 0.1.0.pre.alpha.3

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 (158) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +32 -0
  4. data/README.md +265 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/post_for_me/client.rb +86 -0
  7. data/lib/post_for_me/errors.rb +214 -0
  8. data/lib/post_for_me/file_part.rb +55 -0
  9. data/lib/post_for_me/internal/transport/base_client.rb +563 -0
  10. data/lib/post_for_me/internal/transport/pooled_net_requester.rb +209 -0
  11. data/lib/post_for_me/internal/type/array_of.rb +168 -0
  12. data/lib/post_for_me/internal/type/base_model.rb +537 -0
  13. data/lib/post_for_me/internal/type/base_page.rb +55 -0
  14. data/lib/post_for_me/internal/type/boolean.rb +77 -0
  15. data/lib/post_for_me/internal/type/converter.rb +327 -0
  16. data/lib/post_for_me/internal/type/enum.rb +131 -0
  17. data/lib/post_for_me/internal/type/file_input.rb +108 -0
  18. data/lib/post_for_me/internal/type/hash_of.rb +188 -0
  19. data/lib/post_for_me/internal/type/request_parameters.rb +42 -0
  20. data/lib/post_for_me/internal/type/union.rb +237 -0
  21. data/lib/post_for_me/internal/type/unknown.rb +81 -0
  22. data/lib/post_for_me/internal/util.rb +914 -0
  23. data/lib/post_for_me/internal.rb +20 -0
  24. data/lib/post_for_me/models/create_social_post.rb +558 -0
  25. data/lib/post_for_me/models/media_create_upload_url_params.rb +14 -0
  26. data/lib/post_for_me/models/media_create_upload_url_response.rb +25 -0
  27. data/lib/post_for_me/models/social_account.rb +110 -0
  28. data/lib/post_for_me/models/social_account_create_auth_url_params.rb +109 -0
  29. data/lib/post_for_me/models/social_account_create_auth_url_response.rb +25 -0
  30. data/lib/post_for_me/models/social_account_disconnect_params.rb +14 -0
  31. data/lib/post_for_me/models/social_account_disconnect_response.rb +109 -0
  32. data/lib/post_for_me/models/social_account_list_params.rb +69 -0
  33. data/lib/post_for_me/models/social_account_list_response.rb +58 -0
  34. data/lib/post_for_me/models/social_account_retrieve_params.rb +14 -0
  35. data/lib/post_for_me/models/social_account_update_params.rb +30 -0
  36. data/lib/post_for_me/models/social_post.rb +114 -0
  37. data/lib/post_for_me/models/social_post_create_params.rb +14 -0
  38. data/lib/post_for_me/models/social_post_delete_params.rb +14 -0
  39. data/lib/post_for_me/models/social_post_delete_response.rb +17 -0
  40. data/lib/post_for_me/models/social_post_list_params.rb +87 -0
  41. data/lib/post_for_me/models/social_post_list_response.rb +58 -0
  42. data/lib/post_for_me/models/social_post_result.rb +87 -0
  43. data/lib/post_for_me/models/social_post_result_list_params.rb +51 -0
  44. data/lib/post_for_me/models/social_post_result_list_response.rb +58 -0
  45. data/lib/post_for_me/models/social_post_result_retrieve_params.rb +14 -0
  46. data/lib/post_for_me/models/social_post_retrieve_params.rb +14 -0
  47. data/lib/post_for_me/models/social_post_update_params.rb +14 -0
  48. data/lib/post_for_me/models/tiktok_configuration.rb +88 -0
  49. data/lib/post_for_me/models.rb +77 -0
  50. data/lib/post_for_me/request_options.rb +77 -0
  51. data/lib/post_for_me/resources/media.rb +94 -0
  52. data/lib/post_for_me/resources/social_accounts.rb +143 -0
  53. data/lib/post_for_me/resources/social_post_results.rb +65 -0
  54. data/lib/post_for_me/resources/social_posts.rb +164 -0
  55. data/lib/post_for_me/version.rb +5 -0
  56. data/lib/post_for_me.rb +82 -0
  57. data/manifest.yaml +15 -0
  58. data/rbi/post_for_me/client.rbi +58 -0
  59. data/rbi/post_for_me/errors.rbi +178 -0
  60. data/rbi/post_for_me/file_part.rbi +37 -0
  61. data/rbi/post_for_me/internal/transport/base_client.rbi +294 -0
  62. data/rbi/post_for_me/internal/transport/pooled_net_requester.rbi +79 -0
  63. data/rbi/post_for_me/internal/type/array_of.rbi +104 -0
  64. data/rbi/post_for_me/internal/type/base_model.rbi +304 -0
  65. data/rbi/post_for_me/internal/type/base_page.rbi +42 -0
  66. data/rbi/post_for_me/internal/type/boolean.rbi +58 -0
  67. data/rbi/post_for_me/internal/type/converter.rbi +216 -0
  68. data/rbi/post_for_me/internal/type/enum.rbi +82 -0
  69. data/rbi/post_for_me/internal/type/file_input.rbi +59 -0
  70. data/rbi/post_for_me/internal/type/hash_of.rbi +104 -0
  71. data/rbi/post_for_me/internal/type/request_parameters.rbi +29 -0
  72. data/rbi/post_for_me/internal/type/union.rbi +128 -0
  73. data/rbi/post_for_me/internal/type/unknown.rbi +58 -0
  74. data/rbi/post_for_me/internal/util.rbi +487 -0
  75. data/rbi/post_for_me/internal.rbi +18 -0
  76. data/rbi/post_for_me/models/create_social_post.rbi +1128 -0
  77. data/rbi/post_for_me/models/media_create_upload_url_params.rbi +30 -0
  78. data/rbi/post_for_me/models/media_create_upload_url_response.rbi +38 -0
  79. data/rbi/post_for_me/models/social_account.rbi +139 -0
  80. data/rbi/post_for_me/models/social_account_create_auth_url_params.rbi +260 -0
  81. data/rbi/post_for_me/models/social_account_create_auth_url_response.rbi +36 -0
  82. data/rbi/post_for_me/models/social_account_disconnect_params.rbi +30 -0
  83. data/rbi/post_for_me/models/social_account_disconnect_response.rbi +156 -0
  84. data/rbi/post_for_me/models/social_account_list_params.rbi +112 -0
  85. data/rbi/post_for_me/models/social_account_list_response.rbi +107 -0
  86. data/rbi/post_for_me/models/social_account_retrieve_params.rbi +30 -0
  87. data/rbi/post_for_me/models/social_account_update_params.rbi +60 -0
  88. data/rbi/post_for_me/models/social_post.rbi +142 -0
  89. data/rbi/post_for_me/models/social_post_create_params.rbi +27 -0
  90. data/rbi/post_for_me/models/social_post_delete_params.rbi +27 -0
  91. data/rbi/post_for_me/models/social_post_delete_response.rbi +30 -0
  92. data/rbi/post_for_me/models/social_post_list_params.rbi +207 -0
  93. data/rbi/post_for_me/models/social_post_list_response.rbi +107 -0
  94. data/rbi/post_for_me/models/social_post_result.rbi +130 -0
  95. data/rbi/post_for_me/models/social_post_result_list_params.rbi +86 -0
  96. data/rbi/post_for_me/models/social_post_result_list_response.rbi +107 -0
  97. data/rbi/post_for_me/models/social_post_result_retrieve_params.rbi +30 -0
  98. data/rbi/post_for_me/models/social_post_retrieve_params.rbi +30 -0
  99. data/rbi/post_for_me/models/social_post_update_params.rbi +27 -0
  100. data/rbi/post_for_me/models/tiktok_configuration.rbi +109 -0
  101. data/rbi/post_for_me/models.rbi +42 -0
  102. data/rbi/post_for_me/request_options.rbi +59 -0
  103. data/rbi/post_for_me/resources/media.rbi +83 -0
  104. data/rbi/post_for_me/resources/social_accounts.rbi +112 -0
  105. data/rbi/post_for_me/resources/social_post_results.rbi +51 -0
  106. data/rbi/post_for_me/resources/social_posts.rbi +160 -0
  107. data/rbi/post_for_me/version.rbi +5 -0
  108. data/sig/post_for_me/client.rbs +32 -0
  109. data/sig/post_for_me/errors.rbs +110 -0
  110. data/sig/post_for_me/file_part.rbs +21 -0
  111. data/sig/post_for_me/internal/transport/base_client.rbs +131 -0
  112. data/sig/post_for_me/internal/transport/pooled_net_requester.rbs +45 -0
  113. data/sig/post_for_me/internal/type/array_of.rbs +48 -0
  114. data/sig/post_for_me/internal/type/base_model.rbs +102 -0
  115. data/sig/post_for_me/internal/type/base_page.rbs +24 -0
  116. data/sig/post_for_me/internal/type/boolean.rbs +26 -0
  117. data/sig/post_for_me/internal/type/converter.rbs +79 -0
  118. data/sig/post_for_me/internal/type/enum.rbs +32 -0
  119. data/sig/post_for_me/internal/type/file_input.rbs +25 -0
  120. data/sig/post_for_me/internal/type/hash_of.rbs +48 -0
  121. data/sig/post_for_me/internal/type/request_parameters.rbs +19 -0
  122. data/sig/post_for_me/internal/type/union.rbs +52 -0
  123. data/sig/post_for_me/internal/type/unknown.rbs +26 -0
  124. data/sig/post_for_me/internal/util.rbs +185 -0
  125. data/sig/post_for_me/internal.rbs +9 -0
  126. data/sig/post_for_me/models/create_social_post.rbs +398 -0
  127. data/sig/post_for_me/models/media_create_upload_url_params.rbs +15 -0
  128. data/sig/post_for_me/models/media_create_upload_url_response.rbs +16 -0
  129. data/sig/post_for_me/models/social_account.rbs +81 -0
  130. data/sig/post_for_me/models/social_account_create_auth_url_params.rbs +105 -0
  131. data/sig/post_for_me/models/social_account_create_auth_url_response.rbs +16 -0
  132. data/sig/post_for_me/models/social_account_disconnect_params.rbs +15 -0
  133. data/sig/post_for_me/models/social_account_disconnect_response.rbs +80 -0
  134. data/sig/post_for_me/models/social_account_list_params.rbs +63 -0
  135. data/sig/post_for_me/models/social_account_list_response.rbs +51 -0
  136. data/sig/post_for_me/models/social_account_retrieve_params.rbs +15 -0
  137. data/sig/post_for_me/models/social_account_update_params.rbs +32 -0
  138. data/sig/post_for_me/models/social_post.rbs +83 -0
  139. data/sig/post_for_me/models/social_post_create_params.rbs +15 -0
  140. data/sig/post_for_me/models/social_post_delete_params.rbs +15 -0
  141. data/sig/post_for_me/models/social_post_delete_response.rbs +13 -0
  142. data/sig/post_for_me/models/social_post_list_params.rbs +100 -0
  143. data/sig/post_for_me/models/social_post_list_response.rbs +51 -0
  144. data/sig/post_for_me/models/social_post_result.rbs +66 -0
  145. data/sig/post_for_me/models/social_post_result_list_params.rbs +49 -0
  146. data/sig/post_for_me/models/social_post_result_list_response.rbs +51 -0
  147. data/sig/post_for_me/models/social_post_result_retrieve_params.rbs +15 -0
  148. data/sig/post_for_me/models/social_post_retrieve_params.rbs +15 -0
  149. data/sig/post_for_me/models/social_post_update_params.rbs +15 -0
  150. data/sig/post_for_me/models/tiktok_configuration.rbs +65 -0
  151. data/sig/post_for_me/models.rbs +37 -0
  152. data/sig/post_for_me/request_options.rbs +34 -0
  153. data/sig/post_for_me/resources/media.rbs +11 -0
  154. data/sig/post_for_me/resources/social_accounts.rbs +40 -0
  155. data/sig/post_for_me/resources/social_post_results.rbs +20 -0
  156. data/sig/post_for_me/resources/social_posts.rbs +51 -0
  157. data/sig/post_for_me/version.rbs +3 -0
  158. metadata +215 -0
@@ -0,0 +1,1128 @@
1
+ # typed: strong
2
+
3
+ module PostForMe
4
+ module Models
5
+ class CreateSocialPost < PostForMe::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(PostForMe::CreateSocialPost, PostForMe::Internal::AnyHash)
9
+ end
10
+
11
+ # Caption text for the post
12
+ sig { returns(String) }
13
+ attr_accessor :caption
14
+
15
+ # Array of social account IDs for posting
16
+ sig { returns(T::Array[String]) }
17
+ attr_accessor :social_accounts
18
+
19
+ # Account-specific configurations for the post
20
+ sig do
21
+ returns(
22
+ T.nilable(T::Array[PostForMe::CreateSocialPost::AccountConfiguration])
23
+ )
24
+ end
25
+ attr_accessor :account_configurations
26
+
27
+ # Array of social account IDs for posting
28
+ sig { returns(T.nilable(String)) }
29
+ attr_accessor :external_id
30
+
31
+ # If isDraft is set then the post will not be processed
32
+ sig { returns(T.nilable(T::Boolean)) }
33
+ attr_accessor :is_draft
34
+
35
+ # Array of media URLs associated with the post
36
+ sig { returns(T.nilable(T::Array[PostForMe::CreateSocialPost::Media])) }
37
+ attr_accessor :media
38
+
39
+ # Platform-specific configurations for the post
40
+ sig do
41
+ returns(T.nilable(PostForMe::CreateSocialPost::PlatformConfigurations))
42
+ end
43
+ attr_reader :platform_configurations
44
+
45
+ sig do
46
+ params(
47
+ platform_configurations:
48
+ T.nilable(
49
+ PostForMe::CreateSocialPost::PlatformConfigurations::OrHash
50
+ )
51
+ ).void
52
+ end
53
+ attr_writer :platform_configurations
54
+
55
+ # Scheduled date and time for the post, setting to null or undefined will post
56
+ # instantly
57
+ sig { returns(T.nilable(Time)) }
58
+ attr_accessor :scheduled_at
59
+
60
+ sig do
61
+ params(
62
+ caption: String,
63
+ social_accounts: T::Array[String],
64
+ account_configurations:
65
+ T.nilable(
66
+ T::Array[
67
+ PostForMe::CreateSocialPost::AccountConfiguration::OrHash
68
+ ]
69
+ ),
70
+ external_id: T.nilable(String),
71
+ is_draft: T.nilable(T::Boolean),
72
+ media:
73
+ T.nilable(T::Array[PostForMe::CreateSocialPost::Media::OrHash]),
74
+ platform_configurations:
75
+ T.nilable(
76
+ PostForMe::CreateSocialPost::PlatformConfigurations::OrHash
77
+ ),
78
+ scheduled_at: T.nilable(Time)
79
+ ).returns(T.attached_class)
80
+ end
81
+ def self.new(
82
+ # Caption text for the post
83
+ caption:,
84
+ # Array of social account IDs for posting
85
+ social_accounts:,
86
+ # Account-specific configurations for the post
87
+ account_configurations: nil,
88
+ # Array of social account IDs for posting
89
+ external_id: nil,
90
+ # If isDraft is set then the post will not be processed
91
+ is_draft: nil,
92
+ # Array of media URLs associated with the post
93
+ media: nil,
94
+ # Platform-specific configurations for the post
95
+ platform_configurations: nil,
96
+ # Scheduled date and time for the post, setting to null or undefined will post
97
+ # instantly
98
+ scheduled_at: nil
99
+ )
100
+ end
101
+
102
+ sig do
103
+ override.returns(
104
+ {
105
+ caption: String,
106
+ social_accounts: T::Array[String],
107
+ account_configurations:
108
+ T.nilable(
109
+ T::Array[PostForMe::CreateSocialPost::AccountConfiguration]
110
+ ),
111
+ external_id: T.nilable(String),
112
+ is_draft: T.nilable(T::Boolean),
113
+ media: T.nilable(T::Array[PostForMe::CreateSocialPost::Media]),
114
+ platform_configurations:
115
+ T.nilable(PostForMe::CreateSocialPost::PlatformConfigurations),
116
+ scheduled_at: T.nilable(Time)
117
+ }
118
+ )
119
+ end
120
+ def to_hash
121
+ end
122
+
123
+ class AccountConfiguration < PostForMe::Internal::Type::BaseModel
124
+ OrHash =
125
+ T.type_alias do
126
+ T.any(
127
+ PostForMe::CreateSocialPost::AccountConfiguration,
128
+ PostForMe::Internal::AnyHash
129
+ )
130
+ end
131
+
132
+ # Configuration for the social account
133
+ sig do
134
+ returns(
135
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration
136
+ )
137
+ end
138
+ attr_reader :configuration
139
+
140
+ sig do
141
+ params(
142
+ configuration:
143
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::OrHash
144
+ ).void
145
+ end
146
+ attr_writer :configuration
147
+
148
+ # ID of the social account, you want to apply the configuration to
149
+ sig { returns(String) }
150
+ attr_accessor :social_account_id
151
+
152
+ sig do
153
+ params(
154
+ configuration:
155
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::OrHash,
156
+ social_account_id: String
157
+ ).returns(T.attached_class)
158
+ end
159
+ def self.new(
160
+ # Configuration for the social account
161
+ configuration:,
162
+ # ID of the social account, you want to apply the configuration to
163
+ social_account_id:
164
+ )
165
+ end
166
+
167
+ sig do
168
+ override.returns(
169
+ {
170
+ configuration:
171
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration,
172
+ social_account_id: String
173
+ }
174
+ )
175
+ end
176
+ def to_hash
177
+ end
178
+
179
+ class Configuration < PostForMe::Internal::Type::BaseModel
180
+ OrHash =
181
+ T.type_alias do
182
+ T.any(
183
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration,
184
+ PostForMe::Internal::AnyHash
185
+ )
186
+ end
187
+
188
+ # Allow comments on TikTok
189
+ sig { returns(T.nilable(T::Boolean)) }
190
+ attr_accessor :allow_comment
191
+
192
+ # Allow duets on TikTok
193
+ sig { returns(T.nilable(T::Boolean)) }
194
+ attr_accessor :allow_duet
195
+
196
+ # Allow stitch on TikTok
197
+ sig { returns(T.nilable(T::Boolean)) }
198
+ attr_accessor :allow_stitch
199
+
200
+ # Pinterest board IDs
201
+ sig { returns(T.nilable(T::Array[String])) }
202
+ attr_accessor :board_ids
203
+
204
+ # Overrides the `caption` from the post
205
+ sig { returns(T.nilable(T.anything)) }
206
+ attr_accessor :caption
207
+
208
+ # Disclose branded content on TikTok
209
+ sig { returns(T.nilable(T::Boolean)) }
210
+ attr_accessor :disclose_branded_content
211
+
212
+ # Disclose your brand on TikTok
213
+ sig { returns(T.nilable(T::Boolean)) }
214
+ attr_accessor :disclose_your_brand
215
+
216
+ # Pinterest post link
217
+ sig { returns(T.nilable(String)) }
218
+ attr_accessor :link
219
+
220
+ # Threads post location
221
+ sig do
222
+ returns(
223
+ T.nilable(
224
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Location::OrSymbol
225
+ )
226
+ )
227
+ end
228
+ attr_accessor :location
229
+
230
+ # Overrides the `media` from the post
231
+ sig { returns(T.nilable(T::Array[String])) }
232
+ attr_accessor :media
233
+
234
+ # Sets the privacy status for TikTok (private, public)
235
+ sig { returns(T.nilable(String)) }
236
+ attr_accessor :privacy_status
237
+
238
+ # Overrides the `title` from the post
239
+ sig { returns(T.nilable(String)) }
240
+ attr_accessor :title
241
+
242
+ # Configuration for the social account
243
+ sig do
244
+ params(
245
+ allow_comment: T.nilable(T::Boolean),
246
+ allow_duet: T.nilable(T::Boolean),
247
+ allow_stitch: T.nilable(T::Boolean),
248
+ board_ids: T.nilable(T::Array[String]),
249
+ caption: T.nilable(T.anything),
250
+ disclose_branded_content: T.nilable(T::Boolean),
251
+ disclose_your_brand: T.nilable(T::Boolean),
252
+ link: T.nilable(String),
253
+ location:
254
+ T.nilable(
255
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Location::OrSymbol
256
+ ),
257
+ media: T.nilable(T::Array[String]),
258
+ privacy_status: T.nilable(String),
259
+ title: T.nilable(String)
260
+ ).returns(T.attached_class)
261
+ end
262
+ def self.new(
263
+ # Allow comments on TikTok
264
+ allow_comment: nil,
265
+ # Allow duets on TikTok
266
+ allow_duet: nil,
267
+ # Allow stitch on TikTok
268
+ allow_stitch: nil,
269
+ # Pinterest board IDs
270
+ board_ids: nil,
271
+ # Overrides the `caption` from the post
272
+ caption: nil,
273
+ # Disclose branded content on TikTok
274
+ disclose_branded_content: nil,
275
+ # Disclose your brand on TikTok
276
+ disclose_your_brand: nil,
277
+ # Pinterest post link
278
+ link: nil,
279
+ # Threads post location
280
+ location: nil,
281
+ # Overrides the `media` from the post
282
+ media: nil,
283
+ # Sets the privacy status for TikTok (private, public)
284
+ privacy_status: nil,
285
+ # Overrides the `title` from the post
286
+ title: nil
287
+ )
288
+ end
289
+
290
+ sig do
291
+ override.returns(
292
+ {
293
+ allow_comment: T.nilable(T::Boolean),
294
+ allow_duet: T.nilable(T::Boolean),
295
+ allow_stitch: T.nilable(T::Boolean),
296
+ board_ids: T.nilable(T::Array[String]),
297
+ caption: T.nilable(T.anything),
298
+ disclose_branded_content: T.nilable(T::Boolean),
299
+ disclose_your_brand: T.nilable(T::Boolean),
300
+ link: T.nilable(String),
301
+ location:
302
+ T.nilable(
303
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Location::OrSymbol
304
+ ),
305
+ media: T.nilable(T::Array[String]),
306
+ privacy_status: T.nilable(String),
307
+ title: T.nilable(String)
308
+ }
309
+ )
310
+ end
311
+ def to_hash
312
+ end
313
+
314
+ # Threads post location
315
+ module Location
316
+ extend PostForMe::Internal::Type::Enum
317
+
318
+ TaggedSymbol =
319
+ T.type_alias do
320
+ T.all(
321
+ Symbol,
322
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Location
323
+ )
324
+ end
325
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
326
+
327
+ REELS =
328
+ T.let(
329
+ :reels,
330
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Location::TaggedSymbol
331
+ )
332
+ TIMELINE =
333
+ T.let(
334
+ :timeline,
335
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Location::TaggedSymbol
336
+ )
337
+
338
+ sig do
339
+ override.returns(
340
+ T::Array[
341
+ PostForMe::CreateSocialPost::AccountConfiguration::Configuration::Location::TaggedSymbol
342
+ ]
343
+ )
344
+ end
345
+ def self.values
346
+ end
347
+ end
348
+ end
349
+ end
350
+
351
+ class Media < PostForMe::Internal::Type::BaseModel
352
+ OrHash =
353
+ T.type_alias do
354
+ T.any(
355
+ PostForMe::CreateSocialPost::Media,
356
+ PostForMe::Internal::AnyHash
357
+ )
358
+ end
359
+
360
+ # Public URL of the media
361
+ sig { returns(String) }
362
+ attr_accessor :url
363
+
364
+ # Timestamp in milliseconds of frame to use as thumbnail for the media
365
+ sig { returns(T.nilable(T.anything)) }
366
+ attr_accessor :thumbnail_timestamp_ms
367
+
368
+ # Public URL of the thumbnail for the media
369
+ sig { returns(T.nilable(T.anything)) }
370
+ attr_accessor :thumbnail_url
371
+
372
+ sig do
373
+ params(
374
+ url: String,
375
+ thumbnail_timestamp_ms: T.nilable(T.anything),
376
+ thumbnail_url: T.nilable(T.anything)
377
+ ).returns(T.attached_class)
378
+ end
379
+ def self.new(
380
+ # Public URL of the media
381
+ url:,
382
+ # Timestamp in milliseconds of frame to use as thumbnail for the media
383
+ thumbnail_timestamp_ms: nil,
384
+ # Public URL of the thumbnail for the media
385
+ thumbnail_url: nil
386
+ )
387
+ end
388
+
389
+ sig do
390
+ override.returns(
391
+ {
392
+ url: String,
393
+ thumbnail_timestamp_ms: T.nilable(T.anything),
394
+ thumbnail_url: T.nilable(T.anything)
395
+ }
396
+ )
397
+ end
398
+ def to_hash
399
+ end
400
+ end
401
+
402
+ class PlatformConfigurations < PostForMe::Internal::Type::BaseModel
403
+ OrHash =
404
+ T.type_alias do
405
+ T.any(
406
+ PostForMe::CreateSocialPost::PlatformConfigurations,
407
+ PostForMe::Internal::AnyHash
408
+ )
409
+ end
410
+
411
+ # Bluesky configuration
412
+ sig do
413
+ returns(
414
+ T.nilable(
415
+ PostForMe::CreateSocialPost::PlatformConfigurations::Bluesky
416
+ )
417
+ )
418
+ end
419
+ attr_reader :bluesky
420
+
421
+ sig do
422
+ params(
423
+ bluesky:
424
+ T.nilable(
425
+ PostForMe::CreateSocialPost::PlatformConfigurations::Bluesky::OrHash
426
+ )
427
+ ).void
428
+ end
429
+ attr_writer :bluesky
430
+
431
+ # Facebook configuration
432
+ sig do
433
+ returns(
434
+ T.nilable(
435
+ PostForMe::CreateSocialPost::PlatformConfigurations::Facebook
436
+ )
437
+ )
438
+ end
439
+ attr_reader :facebook
440
+
441
+ sig do
442
+ params(
443
+ facebook:
444
+ T.nilable(
445
+ PostForMe::CreateSocialPost::PlatformConfigurations::Facebook::OrHash
446
+ )
447
+ ).void
448
+ end
449
+ attr_writer :facebook
450
+
451
+ # Instagram configuration
452
+ sig do
453
+ returns(
454
+ T.nilable(
455
+ PostForMe::CreateSocialPost::PlatformConfigurations::Instagram
456
+ )
457
+ )
458
+ end
459
+ attr_reader :instagram
460
+
461
+ sig do
462
+ params(
463
+ instagram:
464
+ T.nilable(
465
+ PostForMe::CreateSocialPost::PlatformConfigurations::Instagram::OrHash
466
+ )
467
+ ).void
468
+ end
469
+ attr_writer :instagram
470
+
471
+ # LinkedIn configuration
472
+ sig do
473
+ returns(
474
+ T.nilable(
475
+ PostForMe::CreateSocialPost::PlatformConfigurations::Linkedin
476
+ )
477
+ )
478
+ end
479
+ attr_reader :linkedin
480
+
481
+ sig do
482
+ params(
483
+ linkedin:
484
+ T.nilable(
485
+ PostForMe::CreateSocialPost::PlatformConfigurations::Linkedin::OrHash
486
+ )
487
+ ).void
488
+ end
489
+ attr_writer :linkedin
490
+
491
+ # Pinterest configuration
492
+ sig do
493
+ returns(
494
+ T.nilable(
495
+ PostForMe::CreateSocialPost::PlatformConfigurations::Pinterest
496
+ )
497
+ )
498
+ end
499
+ attr_reader :pinterest
500
+
501
+ sig do
502
+ params(
503
+ pinterest:
504
+ T.nilable(
505
+ PostForMe::CreateSocialPost::PlatformConfigurations::Pinterest::OrHash
506
+ )
507
+ ).void
508
+ end
509
+ attr_writer :pinterest
510
+
511
+ # Threads configuration
512
+ sig do
513
+ returns(
514
+ T.nilable(
515
+ PostForMe::CreateSocialPost::PlatformConfigurations::Threads
516
+ )
517
+ )
518
+ end
519
+ attr_reader :threads
520
+
521
+ sig do
522
+ params(
523
+ threads:
524
+ T.nilable(
525
+ PostForMe::CreateSocialPost::PlatformConfigurations::Threads::OrHash
526
+ )
527
+ ).void
528
+ end
529
+ attr_writer :threads
530
+
531
+ # TikTok configuration
532
+ sig { returns(T.nilable(PostForMe::TiktokConfiguration)) }
533
+ attr_reader :tiktok
534
+
535
+ sig do
536
+ params(tiktok: T.nilable(PostForMe::TiktokConfiguration::OrHash)).void
537
+ end
538
+ attr_writer :tiktok
539
+
540
+ # TikTok configuration
541
+ sig { returns(T.nilable(PostForMe::TiktokConfiguration)) }
542
+ attr_reader :tiktok_business
543
+
544
+ sig do
545
+ params(
546
+ tiktok_business: T.nilable(PostForMe::TiktokConfiguration::OrHash)
547
+ ).void
548
+ end
549
+ attr_writer :tiktok_business
550
+
551
+ # Twitter configuration
552
+ sig do
553
+ returns(
554
+ T.nilable(PostForMe::CreateSocialPost::PlatformConfigurations::X)
555
+ )
556
+ end
557
+ attr_reader :x
558
+
559
+ sig do
560
+ params(
561
+ x:
562
+ T.nilable(
563
+ PostForMe::CreateSocialPost::PlatformConfigurations::X::OrHash
564
+ )
565
+ ).void
566
+ end
567
+ attr_writer :x
568
+
569
+ # YouTube configuration
570
+ sig do
571
+ returns(
572
+ T.nilable(
573
+ PostForMe::CreateSocialPost::PlatformConfigurations::Youtube
574
+ )
575
+ )
576
+ end
577
+ attr_reader :youtube
578
+
579
+ sig do
580
+ params(
581
+ youtube:
582
+ T.nilable(
583
+ PostForMe::CreateSocialPost::PlatformConfigurations::Youtube::OrHash
584
+ )
585
+ ).void
586
+ end
587
+ attr_writer :youtube
588
+
589
+ # Platform-specific configurations for the post
590
+ sig do
591
+ params(
592
+ bluesky:
593
+ T.nilable(
594
+ PostForMe::CreateSocialPost::PlatformConfigurations::Bluesky::OrHash
595
+ ),
596
+ facebook:
597
+ T.nilable(
598
+ PostForMe::CreateSocialPost::PlatformConfigurations::Facebook::OrHash
599
+ ),
600
+ instagram:
601
+ T.nilable(
602
+ PostForMe::CreateSocialPost::PlatformConfigurations::Instagram::OrHash
603
+ ),
604
+ linkedin:
605
+ T.nilable(
606
+ PostForMe::CreateSocialPost::PlatformConfigurations::Linkedin::OrHash
607
+ ),
608
+ pinterest:
609
+ T.nilable(
610
+ PostForMe::CreateSocialPost::PlatformConfigurations::Pinterest::OrHash
611
+ ),
612
+ threads:
613
+ T.nilable(
614
+ PostForMe::CreateSocialPost::PlatformConfigurations::Threads::OrHash
615
+ ),
616
+ tiktok: T.nilable(PostForMe::TiktokConfiguration::OrHash),
617
+ tiktok_business: T.nilable(PostForMe::TiktokConfiguration::OrHash),
618
+ x:
619
+ T.nilable(
620
+ PostForMe::CreateSocialPost::PlatformConfigurations::X::OrHash
621
+ ),
622
+ youtube:
623
+ T.nilable(
624
+ PostForMe::CreateSocialPost::PlatformConfigurations::Youtube::OrHash
625
+ )
626
+ ).returns(T.attached_class)
627
+ end
628
+ def self.new(
629
+ # Bluesky configuration
630
+ bluesky: nil,
631
+ # Facebook configuration
632
+ facebook: nil,
633
+ # Instagram configuration
634
+ instagram: nil,
635
+ # LinkedIn configuration
636
+ linkedin: nil,
637
+ # Pinterest configuration
638
+ pinterest: nil,
639
+ # Threads configuration
640
+ threads: nil,
641
+ # TikTok configuration
642
+ tiktok: nil,
643
+ # TikTok configuration
644
+ tiktok_business: nil,
645
+ # Twitter configuration
646
+ x: nil,
647
+ # YouTube configuration
648
+ youtube: nil
649
+ )
650
+ end
651
+
652
+ sig do
653
+ override.returns(
654
+ {
655
+ bluesky:
656
+ T.nilable(
657
+ PostForMe::CreateSocialPost::PlatformConfigurations::Bluesky
658
+ ),
659
+ facebook:
660
+ T.nilable(
661
+ PostForMe::CreateSocialPost::PlatformConfigurations::Facebook
662
+ ),
663
+ instagram:
664
+ T.nilable(
665
+ PostForMe::CreateSocialPost::PlatformConfigurations::Instagram
666
+ ),
667
+ linkedin:
668
+ T.nilable(
669
+ PostForMe::CreateSocialPost::PlatformConfigurations::Linkedin
670
+ ),
671
+ pinterest:
672
+ T.nilable(
673
+ PostForMe::CreateSocialPost::PlatformConfigurations::Pinterest
674
+ ),
675
+ threads:
676
+ T.nilable(
677
+ PostForMe::CreateSocialPost::PlatformConfigurations::Threads
678
+ ),
679
+ tiktok: T.nilable(PostForMe::TiktokConfiguration),
680
+ tiktok_business: T.nilable(PostForMe::TiktokConfiguration),
681
+ x:
682
+ T.nilable(
683
+ PostForMe::CreateSocialPost::PlatformConfigurations::X
684
+ ),
685
+ youtube:
686
+ T.nilable(
687
+ PostForMe::CreateSocialPost::PlatformConfigurations::Youtube
688
+ )
689
+ }
690
+ )
691
+ end
692
+ def to_hash
693
+ end
694
+
695
+ class Bluesky < PostForMe::Internal::Type::BaseModel
696
+ OrHash =
697
+ T.type_alias do
698
+ T.any(
699
+ PostForMe::CreateSocialPost::PlatformConfigurations::Bluesky,
700
+ PostForMe::Internal::AnyHash
701
+ )
702
+ end
703
+
704
+ # Overrides the `caption` from the post
705
+ sig { returns(T.nilable(T.anything)) }
706
+ attr_accessor :caption
707
+
708
+ # Overrides the `media` from the post
709
+ sig { returns(T.nilable(T::Array[String])) }
710
+ attr_accessor :media
711
+
712
+ # Bluesky configuration
713
+ sig do
714
+ params(
715
+ caption: T.nilable(T.anything),
716
+ media: T.nilable(T::Array[String])
717
+ ).returns(T.attached_class)
718
+ end
719
+ def self.new(
720
+ # Overrides the `caption` from the post
721
+ caption: nil,
722
+ # Overrides the `media` from the post
723
+ media: nil
724
+ )
725
+ end
726
+
727
+ sig do
728
+ override.returns(
729
+ {
730
+ caption: T.nilable(T.anything),
731
+ media: T.nilable(T::Array[String])
732
+ }
733
+ )
734
+ end
735
+ def to_hash
736
+ end
737
+ end
738
+
739
+ class Facebook < PostForMe::Internal::Type::BaseModel
740
+ OrHash =
741
+ T.type_alias do
742
+ T.any(
743
+ PostForMe::CreateSocialPost::PlatformConfigurations::Facebook,
744
+ PostForMe::Internal::AnyHash
745
+ )
746
+ end
747
+
748
+ # Overrides the `caption` from the post
749
+ sig { returns(T.nilable(T.anything)) }
750
+ attr_accessor :caption
751
+
752
+ # Overrides the `media` from the post
753
+ sig { returns(T.nilable(T::Array[String])) }
754
+ attr_accessor :media
755
+
756
+ # Facebook configuration
757
+ sig do
758
+ params(
759
+ caption: T.nilable(T.anything),
760
+ media: T.nilable(T::Array[String])
761
+ ).returns(T.attached_class)
762
+ end
763
+ def self.new(
764
+ # Overrides the `caption` from the post
765
+ caption: nil,
766
+ # Overrides the `media` from the post
767
+ media: nil
768
+ )
769
+ end
770
+
771
+ sig do
772
+ override.returns(
773
+ {
774
+ caption: T.nilable(T.anything),
775
+ media: T.nilable(T::Array[String])
776
+ }
777
+ )
778
+ end
779
+ def to_hash
780
+ end
781
+ end
782
+
783
+ class Instagram < PostForMe::Internal::Type::BaseModel
784
+ OrHash =
785
+ T.type_alias do
786
+ T.any(
787
+ PostForMe::CreateSocialPost::PlatformConfigurations::Instagram,
788
+ PostForMe::Internal::AnyHash
789
+ )
790
+ end
791
+
792
+ # Overrides the `caption` from the post
793
+ sig { returns(T.nilable(T.anything)) }
794
+ attr_accessor :caption
795
+
796
+ # Overrides the `media` from the post
797
+ sig { returns(T.nilable(T::Array[String])) }
798
+ attr_accessor :media
799
+
800
+ # Instagram configuration
801
+ sig do
802
+ params(
803
+ caption: T.nilable(T.anything),
804
+ media: T.nilable(T::Array[String])
805
+ ).returns(T.attached_class)
806
+ end
807
+ def self.new(
808
+ # Overrides the `caption` from the post
809
+ caption: nil,
810
+ # Overrides the `media` from the post
811
+ media: nil
812
+ )
813
+ end
814
+
815
+ sig do
816
+ override.returns(
817
+ {
818
+ caption: T.nilable(T.anything),
819
+ media: T.nilable(T::Array[String])
820
+ }
821
+ )
822
+ end
823
+ def to_hash
824
+ end
825
+ end
826
+
827
+ class Linkedin < PostForMe::Internal::Type::BaseModel
828
+ OrHash =
829
+ T.type_alias do
830
+ T.any(
831
+ PostForMe::CreateSocialPost::PlatformConfigurations::Linkedin,
832
+ PostForMe::Internal::AnyHash
833
+ )
834
+ end
835
+
836
+ # Overrides the `caption` from the post
837
+ sig { returns(T.nilable(T.anything)) }
838
+ attr_accessor :caption
839
+
840
+ # Overrides the `media` from the post
841
+ sig { returns(T.nilable(T::Array[String])) }
842
+ attr_accessor :media
843
+
844
+ # LinkedIn configuration
845
+ sig do
846
+ params(
847
+ caption: T.nilable(T.anything),
848
+ media: T.nilable(T::Array[String])
849
+ ).returns(T.attached_class)
850
+ end
851
+ def self.new(
852
+ # Overrides the `caption` from the post
853
+ caption: nil,
854
+ # Overrides the `media` from the post
855
+ media: nil
856
+ )
857
+ end
858
+
859
+ sig do
860
+ override.returns(
861
+ {
862
+ caption: T.nilable(T.anything),
863
+ media: T.nilable(T::Array[String])
864
+ }
865
+ )
866
+ end
867
+ def to_hash
868
+ end
869
+ end
870
+
871
+ class Pinterest < PostForMe::Internal::Type::BaseModel
872
+ OrHash =
873
+ T.type_alias do
874
+ T.any(
875
+ PostForMe::CreateSocialPost::PlatformConfigurations::Pinterest,
876
+ PostForMe::Internal::AnyHash
877
+ )
878
+ end
879
+
880
+ # Pinterest board IDs
881
+ sig { returns(T.nilable(T::Array[String])) }
882
+ attr_accessor :board_ids
883
+
884
+ # Overrides the `caption` from the post
885
+ sig { returns(T.nilable(T.anything)) }
886
+ attr_accessor :caption
887
+
888
+ # Pinterest post link
889
+ sig { returns(T.nilable(String)) }
890
+ attr_accessor :link
891
+
892
+ # Overrides the `media` from the post
893
+ sig { returns(T.nilable(T::Array[String])) }
894
+ attr_accessor :media
895
+
896
+ # Pinterest configuration
897
+ sig do
898
+ params(
899
+ board_ids: T.nilable(T::Array[String]),
900
+ caption: T.nilable(T.anything),
901
+ link: T.nilable(String),
902
+ media: T.nilable(T::Array[String])
903
+ ).returns(T.attached_class)
904
+ end
905
+ def self.new(
906
+ # Pinterest board IDs
907
+ board_ids: nil,
908
+ # Overrides the `caption` from the post
909
+ caption: nil,
910
+ # Pinterest post link
911
+ link: nil,
912
+ # Overrides the `media` from the post
913
+ media: nil
914
+ )
915
+ end
916
+
917
+ sig do
918
+ override.returns(
919
+ {
920
+ board_ids: T.nilable(T::Array[String]),
921
+ caption: T.nilable(T.anything),
922
+ link: T.nilable(String),
923
+ media: T.nilable(T::Array[String])
924
+ }
925
+ )
926
+ end
927
+ def to_hash
928
+ end
929
+ end
930
+
931
+ class Threads < PostForMe::Internal::Type::BaseModel
932
+ OrHash =
933
+ T.type_alias do
934
+ T.any(
935
+ PostForMe::CreateSocialPost::PlatformConfigurations::Threads,
936
+ PostForMe::Internal::AnyHash
937
+ )
938
+ end
939
+
940
+ # Overrides the `caption` from the post
941
+ sig { returns(T.nilable(T.anything)) }
942
+ attr_accessor :caption
943
+
944
+ # Threads post location
945
+ sig do
946
+ returns(
947
+ T.nilable(
948
+ PostForMe::CreateSocialPost::PlatformConfigurations::Threads::Location::OrSymbol
949
+ )
950
+ )
951
+ end
952
+ attr_accessor :location
953
+
954
+ # Overrides the `media` from the post
955
+ sig { returns(T.nilable(T::Array[String])) }
956
+ attr_accessor :media
957
+
958
+ # Threads configuration
959
+ sig do
960
+ params(
961
+ caption: T.nilable(T.anything),
962
+ location:
963
+ T.nilable(
964
+ PostForMe::CreateSocialPost::PlatformConfigurations::Threads::Location::OrSymbol
965
+ ),
966
+ media: T.nilable(T::Array[String])
967
+ ).returns(T.attached_class)
968
+ end
969
+ def self.new(
970
+ # Overrides the `caption` from the post
971
+ caption: nil,
972
+ # Threads post location
973
+ location: nil,
974
+ # Overrides the `media` from the post
975
+ media: nil
976
+ )
977
+ end
978
+
979
+ sig do
980
+ override.returns(
981
+ {
982
+ caption: T.nilable(T.anything),
983
+ location:
984
+ T.nilable(
985
+ PostForMe::CreateSocialPost::PlatformConfigurations::Threads::Location::OrSymbol
986
+ ),
987
+ media: T.nilable(T::Array[String])
988
+ }
989
+ )
990
+ end
991
+ def to_hash
992
+ end
993
+
994
+ # Threads post location
995
+ module Location
996
+ extend PostForMe::Internal::Type::Enum
997
+
998
+ TaggedSymbol =
999
+ T.type_alias do
1000
+ T.all(
1001
+ Symbol,
1002
+ PostForMe::CreateSocialPost::PlatformConfigurations::Threads::Location
1003
+ )
1004
+ end
1005
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1006
+
1007
+ REELS =
1008
+ T.let(
1009
+ :reels,
1010
+ PostForMe::CreateSocialPost::PlatformConfigurations::Threads::Location::TaggedSymbol
1011
+ )
1012
+ TIMELINE =
1013
+ T.let(
1014
+ :timeline,
1015
+ PostForMe::CreateSocialPost::PlatformConfigurations::Threads::Location::TaggedSymbol
1016
+ )
1017
+
1018
+ sig do
1019
+ override.returns(
1020
+ T::Array[
1021
+ PostForMe::CreateSocialPost::PlatformConfigurations::Threads::Location::TaggedSymbol
1022
+ ]
1023
+ )
1024
+ end
1025
+ def self.values
1026
+ end
1027
+ end
1028
+ end
1029
+
1030
+ class X < PostForMe::Internal::Type::BaseModel
1031
+ OrHash =
1032
+ T.type_alias do
1033
+ T.any(
1034
+ PostForMe::CreateSocialPost::PlatformConfigurations::X,
1035
+ PostForMe::Internal::AnyHash
1036
+ )
1037
+ end
1038
+
1039
+ # Overrides the `caption` from the post
1040
+ sig { returns(T.nilable(T.anything)) }
1041
+ attr_accessor :caption
1042
+
1043
+ # Overrides the `media` from the post
1044
+ sig { returns(T.nilable(T::Array[String])) }
1045
+ attr_accessor :media
1046
+
1047
+ # Twitter configuration
1048
+ sig do
1049
+ params(
1050
+ caption: T.nilable(T.anything),
1051
+ media: T.nilable(T::Array[String])
1052
+ ).returns(T.attached_class)
1053
+ end
1054
+ def self.new(
1055
+ # Overrides the `caption` from the post
1056
+ caption: nil,
1057
+ # Overrides the `media` from the post
1058
+ media: nil
1059
+ )
1060
+ end
1061
+
1062
+ sig do
1063
+ override.returns(
1064
+ {
1065
+ caption: T.nilable(T.anything),
1066
+ media: T.nilable(T::Array[String])
1067
+ }
1068
+ )
1069
+ end
1070
+ def to_hash
1071
+ end
1072
+ end
1073
+
1074
+ class Youtube < PostForMe::Internal::Type::BaseModel
1075
+ OrHash =
1076
+ T.type_alias do
1077
+ T.any(
1078
+ PostForMe::CreateSocialPost::PlatformConfigurations::Youtube,
1079
+ PostForMe::Internal::AnyHash
1080
+ )
1081
+ end
1082
+
1083
+ # Overrides the `caption` from the post
1084
+ sig { returns(T.nilable(T.anything)) }
1085
+ attr_accessor :caption
1086
+
1087
+ # Overrides the `media` from the post
1088
+ sig { returns(T.nilable(T::Array[String])) }
1089
+ attr_accessor :media
1090
+
1091
+ # Overrides the `title` from the post
1092
+ sig { returns(T.nilable(String)) }
1093
+ attr_accessor :title
1094
+
1095
+ # YouTube configuration
1096
+ sig do
1097
+ params(
1098
+ caption: T.nilable(T.anything),
1099
+ media: T.nilable(T::Array[String]),
1100
+ title: T.nilable(String)
1101
+ ).returns(T.attached_class)
1102
+ end
1103
+ def self.new(
1104
+ # Overrides the `caption` from the post
1105
+ caption: nil,
1106
+ # Overrides the `media` from the post
1107
+ media: nil,
1108
+ # Overrides the `title` from the post
1109
+ title: nil
1110
+ )
1111
+ end
1112
+
1113
+ sig do
1114
+ override.returns(
1115
+ {
1116
+ caption: T.nilable(T.anything),
1117
+ media: T.nilable(T::Array[String]),
1118
+ title: T.nilable(String)
1119
+ }
1120
+ )
1121
+ end
1122
+ def to_hash
1123
+ end
1124
+ end
1125
+ end
1126
+ end
1127
+ end
1128
+ end