post-for-me 0.1.0.pre.alpha.10 → 0.1.0.pre.alpha.12

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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +42 -0
  3. data/README.md +10 -1
  4. data/lib/post_for_me/client.rb +4 -0
  5. data/lib/post_for_me/internal/transport/pooled_net_requester.rb +12 -10
  6. data/lib/post_for_me/internal/util.rb +7 -2
  7. data/lib/post_for_me/models/create_social_post.rb +158 -8
  8. data/lib/post_for_me/models/platform_post.rb +843 -0
  9. data/lib/post_for_me/models/social_account_create_auth_url_params.rb +245 -9
  10. data/lib/post_for_me/models/social_account_feed_list_params.rb +81 -0
  11. data/lib/post_for_me/models/social_account_feed_list_response.rb +58 -0
  12. data/lib/post_for_me/models/social_post.rb +155 -8
  13. data/lib/post_for_me/models/social_post_list_params.rb +9 -1
  14. data/lib/post_for_me/models/social_post_result_list_params.rb +10 -1
  15. data/lib/post_for_me/models/youtube_configuration_dto.rb +31 -1
  16. data/lib/post_for_me/models.rb +4 -0
  17. data/lib/post_for_me/resources/social_account_feeds.rb +51 -0
  18. data/lib/post_for_me/resources/social_accounts.rb +8 -1
  19. data/lib/post_for_me/resources/social_post_results.rb +3 -1
  20. data/lib/post_for_me/resources/social_posts.rb +3 -1
  21. data/lib/post_for_me/version.rb +1 -1
  22. data/lib/post_for_me.rb +5 -0
  23. data/manifest.yaml +1 -0
  24. data/rbi/post_for_me/client.rbi +3 -0
  25. data/rbi/post_for_me/models/create_social_post.rbi +328 -8
  26. data/rbi/post_for_me/models/platform_post.rbi +1287 -0
  27. data/rbi/post_for_me/models/social_account_create_auth_url_params.rbi +545 -15
  28. data/rbi/post_for_me/models/social_account_feed_list_params.rbi +157 -0
  29. data/rbi/post_for_me/models/social_account_feed_list_response.rbi +110 -0
  30. data/rbi/post_for_me/models/social_post.rbi +328 -8
  31. data/rbi/post_for_me/models/social_post_list_params.rbi +11 -0
  32. data/rbi/post_for_me/models/social_post_result_list_params.rbi +13 -0
  33. data/rbi/post_for_me/models/youtube_configuration_dto.rbi +63 -0
  34. data/rbi/post_for_me/models.rbi +4 -0
  35. data/rbi/post_for_me/resources/social_account_feeds.rbi +51 -0
  36. data/rbi/post_for_me/resources/social_accounts.rbi +13 -0
  37. data/rbi/post_for_me/resources/social_post_results.rbi +4 -0
  38. data/rbi/post_for_me/resources/social_posts.rbi +3 -0
  39. data/sig/post_for_me/client.rbs +2 -0
  40. data/sig/post_for_me/models/create_social_post.rbs +120 -8
  41. data/sig/post_for_me/models/platform_post.rbs +660 -0
  42. data/sig/post_for_me/models/social_account_create_auth_url_params.rbs +193 -10
  43. data/sig/post_for_me/models/social_account_feed_list_params.rbs +75 -0
  44. data/sig/post_for_me/models/social_account_feed_list_response.rbs +54 -0
  45. data/sig/post_for_me/models/social_post.rbs +120 -8
  46. data/sig/post_for_me/models/social_post_list_params.rbs +7 -0
  47. data/sig/post_for_me/models/social_post_result_list_params.rbs +8 -1
  48. data/sig/post_for_me/models/youtube_configuration_dto.rbs +22 -0
  49. data/sig/post_for_me/models.rbs +4 -0
  50. data/sig/post_for_me/resources/social_account_feeds.rbs +18 -0
  51. data/sig/post_for_me/resources/social_accounts.rbs +2 -0
  52. data/sig/post_for_me/resources/social_post_results.rbs +1 -0
  53. data/sig/post_for_me/resources/social_posts.rbs +1 -0
  54. metadata +28 -2
@@ -0,0 +1,157 @@
1
+ # typed: strong
2
+
3
+ module PostForMe
4
+ module Models
5
+ class SocialAccountFeedListParams < PostForMe::Internal::Type::BaseModel
6
+ extend PostForMe::Internal::Type::RequestParameters::Converter
7
+ include PostForMe::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ PostForMe::SocialAccountFeedListParams,
13
+ PostForMe::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ # Cursor identifying next page of results
18
+ sig { returns(T.nilable(String)) }
19
+ attr_reader :cursor
20
+
21
+ sig { params(cursor: String).void }
22
+ attr_writer :cursor
23
+
24
+ # Expand additional data in the response. Currently supports: "metrics" to include
25
+ # post analytics data.
26
+ sig do
27
+ returns(
28
+ T.nilable(
29
+ T::Array[PostForMe::SocialAccountFeedListParams::Expand::OrSymbol]
30
+ )
31
+ )
32
+ end
33
+ attr_reader :expand
34
+
35
+ sig do
36
+ params(
37
+ expand:
38
+ T::Array[PostForMe::SocialAccountFeedListParams::Expand::OrSymbol]
39
+ ).void
40
+ end
41
+ attr_writer :expand
42
+
43
+ # Filter by Post for Me Social Postexternal ID. Multiple values imply OR logic
44
+ # (e.g., ?external_post_id=xxxxxx&external_post_id=yyyyyy).
45
+ sig { returns(T.nilable(T::Array[String])) }
46
+ attr_reader :external_post_id
47
+
48
+ sig { params(external_post_id: T::Array[String]).void }
49
+ attr_writer :external_post_id
50
+
51
+ # Number of items to return; Note: some platforms will have different max limits,
52
+ # in the case the provided limit is over the platform's limit we will return the
53
+ # max allowed by the platform.
54
+ sig { returns(T.nilable(Float)) }
55
+ attr_reader :limit
56
+
57
+ sig { params(limit: Float).void }
58
+ attr_writer :limit
59
+
60
+ # Filter by the platform's id(s). Multiple values imply OR logic (e.g.,
61
+ # ?social_post_id=spr_xxxxxx&social_post_id=spr_yyyyyy).
62
+ sig { returns(T.nilable(T::Array[String])) }
63
+ attr_reader :platform_post_id
64
+
65
+ sig { params(platform_post_id: T::Array[String]).void }
66
+ attr_writer :platform_post_id
67
+
68
+ # Filter by Post for Me Social Post id(s). Multiple values imply OR logic (e.g.,
69
+ # ?social_post_id=sp_xxxxxx&social_post_id=sp_yyyyyy).
70
+ sig { returns(T.nilable(T::Array[String])) }
71
+ attr_reader :social_post_id
72
+
73
+ sig { params(social_post_id: T::Array[String]).void }
74
+ attr_writer :social_post_id
75
+
76
+ sig do
77
+ params(
78
+ cursor: String,
79
+ expand:
80
+ T::Array[PostForMe::SocialAccountFeedListParams::Expand::OrSymbol],
81
+ external_post_id: T::Array[String],
82
+ limit: Float,
83
+ platform_post_id: T::Array[String],
84
+ social_post_id: T::Array[String],
85
+ request_options: PostForMe::RequestOptions::OrHash
86
+ ).returns(T.attached_class)
87
+ end
88
+ def self.new(
89
+ # Cursor identifying next page of results
90
+ cursor: nil,
91
+ # Expand additional data in the response. Currently supports: "metrics" to include
92
+ # post analytics data.
93
+ expand: nil,
94
+ # Filter by Post for Me Social Postexternal ID. Multiple values imply OR logic
95
+ # (e.g., ?external_post_id=xxxxxx&external_post_id=yyyyyy).
96
+ external_post_id: nil,
97
+ # Number of items to return; Note: some platforms will have different max limits,
98
+ # in the case the provided limit is over the platform's limit we will return the
99
+ # max allowed by the platform.
100
+ limit: nil,
101
+ # Filter by the platform's id(s). Multiple values imply OR logic (e.g.,
102
+ # ?social_post_id=spr_xxxxxx&social_post_id=spr_yyyyyy).
103
+ platform_post_id: nil,
104
+ # Filter by Post for Me Social Post id(s). Multiple values imply OR logic (e.g.,
105
+ # ?social_post_id=sp_xxxxxx&social_post_id=sp_yyyyyy).
106
+ social_post_id: nil,
107
+ request_options: {}
108
+ )
109
+ end
110
+
111
+ sig do
112
+ override.returns(
113
+ {
114
+ cursor: String,
115
+ expand:
116
+ T::Array[
117
+ PostForMe::SocialAccountFeedListParams::Expand::OrSymbol
118
+ ],
119
+ external_post_id: T::Array[String],
120
+ limit: Float,
121
+ platform_post_id: T::Array[String],
122
+ social_post_id: T::Array[String],
123
+ request_options: PostForMe::RequestOptions
124
+ }
125
+ )
126
+ end
127
+ def to_hash
128
+ end
129
+
130
+ module Expand
131
+ extend PostForMe::Internal::Type::Enum
132
+
133
+ TaggedSymbol =
134
+ T.type_alias do
135
+ T.all(Symbol, PostForMe::SocialAccountFeedListParams::Expand)
136
+ end
137
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
138
+
139
+ METRICS =
140
+ T.let(
141
+ :metrics,
142
+ PostForMe::SocialAccountFeedListParams::Expand::TaggedSymbol
143
+ )
144
+
145
+ sig do
146
+ override.returns(
147
+ T::Array[
148
+ PostForMe::SocialAccountFeedListParams::Expand::TaggedSymbol
149
+ ]
150
+ )
151
+ end
152
+ def self.values
153
+ end
154
+ end
155
+ end
156
+ end
157
+ end
@@ -0,0 +1,110 @@
1
+ # typed: strong
2
+
3
+ module PostForMe
4
+ module Models
5
+ class SocialAccountFeedListResponse < PostForMe::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ PostForMe::Models::SocialAccountFeedListResponse,
10
+ PostForMe::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(T::Array[PostForMe::PlatformPost]) }
15
+ attr_accessor :data
16
+
17
+ sig { returns(PostForMe::Models::SocialAccountFeedListResponse::Meta) }
18
+ attr_reader :meta
19
+
20
+ sig do
21
+ params(
22
+ meta: PostForMe::Models::SocialAccountFeedListResponse::Meta::OrHash
23
+ ).void
24
+ end
25
+ attr_writer :meta
26
+
27
+ sig do
28
+ params(
29
+ data: T::Array[PostForMe::PlatformPost::OrHash],
30
+ meta: PostForMe::Models::SocialAccountFeedListResponse::Meta::OrHash
31
+ ).returns(T.attached_class)
32
+ end
33
+ def self.new(data:, meta:)
34
+ end
35
+
36
+ sig do
37
+ override.returns(
38
+ {
39
+ data: T::Array[PostForMe::PlatformPost],
40
+ meta: PostForMe::Models::SocialAccountFeedListResponse::Meta
41
+ }
42
+ )
43
+ end
44
+ def to_hash
45
+ end
46
+
47
+ class Meta < PostForMe::Internal::Type::BaseModel
48
+ OrHash =
49
+ T.type_alias do
50
+ T.any(
51
+ PostForMe::Models::SocialAccountFeedListResponse::Meta,
52
+ PostForMe::Internal::AnyHash
53
+ )
54
+ end
55
+
56
+ # Id representing the next page of items
57
+ sig { returns(String) }
58
+ attr_accessor :cursor
59
+
60
+ # Maximum number of items returned.
61
+ sig { returns(Float) }
62
+ attr_accessor :limit
63
+
64
+ # URL to the next page of results, or null if none.
65
+ sig { returns(T.nilable(String)) }
66
+ attr_accessor :next_
67
+
68
+ # Indicates if there are more results or not
69
+ sig { returns(T.nilable(T::Boolean)) }
70
+ attr_reader :has_more
71
+
72
+ sig { params(has_more: T::Boolean).void }
73
+ attr_writer :has_more
74
+
75
+ sig do
76
+ params(
77
+ cursor: String,
78
+ limit: Float,
79
+ next_: T.nilable(String),
80
+ has_more: T::Boolean
81
+ ).returns(T.attached_class)
82
+ end
83
+ def self.new(
84
+ # Id representing the next page of items
85
+ cursor:,
86
+ # Maximum number of items returned.
87
+ limit:,
88
+ # URL to the next page of results, or null if none.
89
+ next_:,
90
+ # Indicates if there are more results or not
91
+ has_more: nil
92
+ )
93
+ end
94
+
95
+ sig do
96
+ override.returns(
97
+ {
98
+ cursor: String,
99
+ limit: Float,
100
+ next_: T.nilable(String),
101
+ has_more: T::Boolean
102
+ }
103
+ )
104
+ end
105
+ def to_hash
106
+ end
107
+ end
108
+ end
109
+ end
110
+ end
@@ -256,8 +256,20 @@ module PostForMe
256
256
  sig { returns(T.nilable(String)) }
257
257
  attr_accessor :location
258
258
 
259
+ # If true will notify YouTube the video is intended for kids, defaults to false
260
+ sig { returns(T.nilable(T::Boolean)) }
261
+ attr_accessor :made_for_kids
262
+
259
263
  # Overrides the `media` from the post
260
- sig { returns(T.nilable(T::Array[String])) }
264
+ sig do
265
+ returns(
266
+ T.nilable(
267
+ T::Array[
268
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media
269
+ ]
270
+ )
271
+ )
272
+ end
261
273
  attr_accessor :media
262
274
 
263
275
  # Post placement for Facebook/Instagram/Threads
@@ -288,8 +300,15 @@ module PostForMe
288
300
  end
289
301
  attr_writer :poll
290
302
 
291
- # Sets the privacy status for TikTok (private, public)
292
- sig { returns(T.nilable(String)) }
303
+ # Sets the privacy status for TikTok (private, public), or YouTube (private,
304
+ # public, unlisted)
305
+ sig do
306
+ returns(
307
+ T.nilable(
308
+ PostForMe::SocialPost::AccountConfiguration::Configuration::PrivacyStatus::TaggedSymbol
309
+ )
310
+ )
311
+ end
293
312
  attr_accessor :privacy_status
294
313
 
295
314
  # Id of the tweet you want to quote
@@ -334,14 +353,23 @@ module PostForMe
334
353
  is_draft: T.nilable(T::Boolean),
335
354
  link: T.nilable(String),
336
355
  location: T.nilable(String),
337
- media: T.nilable(T::Array[String]),
356
+ made_for_kids: T.nilable(T::Boolean),
357
+ media:
358
+ T.nilable(
359
+ T::Array[
360
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media::OrHash
361
+ ]
362
+ ),
338
363
  placement:
339
364
  T.nilable(
340
365
  PostForMe::SocialPost::AccountConfiguration::Configuration::Placement::OrSymbol
341
366
  ),
342
367
  poll:
343
368
  PostForMe::SocialPost::AccountConfiguration::Configuration::Poll::OrHash,
344
- privacy_status: T.nilable(String),
369
+ privacy_status:
370
+ T.nilable(
371
+ PostForMe::SocialPost::AccountConfiguration::Configuration::PrivacyStatus::OrSymbol
372
+ ),
345
373
  quote_tweet_id: String,
346
374
  reply_settings:
347
375
  T.nilable(
@@ -383,13 +411,16 @@ module PostForMe
383
411
  # Page id with a location that you want to tag the image or video with (Instagram
384
412
  # and Facebook)
385
413
  location: nil,
414
+ # If true will notify YouTube the video is intended for kids, defaults to false
415
+ made_for_kids: nil,
386
416
  # Overrides the `media` from the post
387
417
  media: nil,
388
418
  # Post placement for Facebook/Instagram/Threads
389
419
  placement: nil,
390
420
  # Poll options for the twitter
391
421
  poll: nil,
392
- # Sets the privacy status for TikTok (private, public)
422
+ # Sets the privacy status for TikTok (private, public), or YouTube (private,
423
+ # public, unlisted)
393
424
  privacy_status: nil,
394
425
  # Id of the tweet you want to quote
395
426
  quote_tweet_id: nil,
@@ -419,14 +450,23 @@ module PostForMe
419
450
  is_draft: T.nilable(T::Boolean),
420
451
  link: T.nilable(String),
421
452
  location: T.nilable(String),
422
- media: T.nilable(T::Array[String]),
453
+ made_for_kids: T.nilable(T::Boolean),
454
+ media:
455
+ T.nilable(
456
+ T::Array[
457
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media
458
+ ]
459
+ ),
423
460
  placement:
424
461
  T.nilable(
425
462
  PostForMe::SocialPost::AccountConfiguration::Configuration::Placement::TaggedSymbol
426
463
  ),
427
464
  poll:
428
465
  PostForMe::SocialPost::AccountConfiguration::Configuration::Poll,
429
- privacy_status: T.nilable(String),
466
+ privacy_status:
467
+ T.nilable(
468
+ PostForMe::SocialPost::AccountConfiguration::Configuration::PrivacyStatus::TaggedSymbol
469
+ ),
430
470
  quote_tweet_id: String,
431
471
  reply_settings:
432
472
  T.nilable(
@@ -440,6 +480,245 @@ module PostForMe
440
480
  def to_hash
441
481
  end
442
482
 
483
+ class Media < PostForMe::Internal::Type::BaseModel
484
+ OrHash =
485
+ T.type_alias do
486
+ T.any(
487
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media,
488
+ PostForMe::Internal::AnyHash
489
+ )
490
+ end
491
+
492
+ # Public URL of the media
493
+ sig { returns(String) }
494
+ attr_accessor :url
495
+
496
+ # List of tags to attach to the media
497
+ sig do
498
+ returns(
499
+ T.nilable(
500
+ T::Array[
501
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media::Tag
502
+ ]
503
+ )
504
+ )
505
+ end
506
+ attr_accessor :tags
507
+
508
+ # Timestamp in milliseconds of frame to use as thumbnail for the media
509
+ sig { returns(T.nilable(T.anything)) }
510
+ attr_accessor :thumbnail_timestamp_ms
511
+
512
+ # Public URL of the thumbnail for the media
513
+ sig { returns(T.nilable(T.anything)) }
514
+ attr_accessor :thumbnail_url
515
+
516
+ sig do
517
+ params(
518
+ url: String,
519
+ tags:
520
+ T.nilable(
521
+ T::Array[
522
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media::Tag::OrHash
523
+ ]
524
+ ),
525
+ thumbnail_timestamp_ms: T.nilable(T.anything),
526
+ thumbnail_url: T.nilable(T.anything)
527
+ ).returns(T.attached_class)
528
+ end
529
+ def self.new(
530
+ # Public URL of the media
531
+ url:,
532
+ # List of tags to attach to the media
533
+ tags: nil,
534
+ # Timestamp in milliseconds of frame to use as thumbnail for the media
535
+ thumbnail_timestamp_ms: nil,
536
+ # Public URL of the thumbnail for the media
537
+ thumbnail_url: nil
538
+ )
539
+ end
540
+
541
+ sig do
542
+ override.returns(
543
+ {
544
+ url: String,
545
+ tags:
546
+ T.nilable(
547
+ T::Array[
548
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media::Tag
549
+ ]
550
+ ),
551
+ thumbnail_timestamp_ms: T.nilable(T.anything),
552
+ thumbnail_url: T.nilable(T.anything)
553
+ }
554
+ )
555
+ end
556
+ def to_hash
557
+ end
558
+
559
+ class Tag < PostForMe::Internal::Type::BaseModel
560
+ OrHash =
561
+ T.type_alias do
562
+ T.any(
563
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media::Tag,
564
+ PostForMe::Internal::AnyHash
565
+ )
566
+ end
567
+
568
+ # Facebook User ID, Instagram Username or Instagram product id to tag
569
+ sig { returns(String) }
570
+ attr_accessor :id
571
+
572
+ # The platform for the tags
573
+ sig do
574
+ returns(
575
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media::Tag::Platform::TaggedSymbol
576
+ )
577
+ end
578
+ attr_accessor :platform
579
+
580
+ # The type of tag, user to tag accounts, product to tag products (only supported
581
+ # for instagram)
582
+ sig do
583
+ returns(
584
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media::Tag::Type::TaggedSymbol
585
+ )
586
+ end
587
+ attr_accessor :type
588
+
589
+ # Percentage distance from left edge of the image, Not required for videos or
590
+ # stories
591
+ sig { returns(T.nilable(Float)) }
592
+ attr_reader :x
593
+
594
+ sig { params(x: Float).void }
595
+ attr_writer :x
596
+
597
+ # Percentage distance from top edge of the image, Not required for videos or
598
+ # stories
599
+ sig { returns(T.nilable(Float)) }
600
+ attr_reader :y_
601
+
602
+ sig { params(y_: Float).void }
603
+ attr_writer :y_
604
+
605
+ sig do
606
+ params(
607
+ id: String,
608
+ platform:
609
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media::Tag::Platform::OrSymbol,
610
+ type:
611
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media::Tag::Type::OrSymbol,
612
+ x: Float,
613
+ y_: Float
614
+ ).returns(T.attached_class)
615
+ end
616
+ def self.new(
617
+ # Facebook User ID, Instagram Username or Instagram product id to tag
618
+ id:,
619
+ # The platform for the tags
620
+ platform:,
621
+ # The type of tag, user to tag accounts, product to tag products (only supported
622
+ # for instagram)
623
+ type:,
624
+ # Percentage distance from left edge of the image, Not required for videos or
625
+ # stories
626
+ x: nil,
627
+ # Percentage distance from top edge of the image, Not required for videos or
628
+ # stories
629
+ y_: nil
630
+ )
631
+ end
632
+
633
+ sig do
634
+ override.returns(
635
+ {
636
+ id: String,
637
+ platform:
638
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media::Tag::Platform::TaggedSymbol,
639
+ type:
640
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media::Tag::Type::TaggedSymbol,
641
+ x: Float,
642
+ y_: Float
643
+ }
644
+ )
645
+ end
646
+ def to_hash
647
+ end
648
+
649
+ # The platform for the tags
650
+ module Platform
651
+ extend PostForMe::Internal::Type::Enum
652
+
653
+ TaggedSymbol =
654
+ T.type_alias do
655
+ T.all(
656
+ Symbol,
657
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media::Tag::Platform
658
+ )
659
+ end
660
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
661
+
662
+ FACEBOOK =
663
+ T.let(
664
+ :facebook,
665
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media::Tag::Platform::TaggedSymbol
666
+ )
667
+ INSTAGRAM =
668
+ T.let(
669
+ :instagram,
670
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media::Tag::Platform::TaggedSymbol
671
+ )
672
+
673
+ sig do
674
+ override.returns(
675
+ T::Array[
676
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media::Tag::Platform::TaggedSymbol
677
+ ]
678
+ )
679
+ end
680
+ def self.values
681
+ end
682
+ end
683
+
684
+ # The type of tag, user to tag accounts, product to tag products (only supported
685
+ # for instagram)
686
+ module Type
687
+ extend PostForMe::Internal::Type::Enum
688
+
689
+ TaggedSymbol =
690
+ T.type_alias do
691
+ T.all(
692
+ Symbol,
693
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media::Tag::Type
694
+ )
695
+ end
696
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
697
+
698
+ USER =
699
+ T.let(
700
+ :user,
701
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media::Tag::Type::TaggedSymbol
702
+ )
703
+ PRODUCT =
704
+ T.let(
705
+ :product,
706
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media::Tag::Type::TaggedSymbol
707
+ )
708
+
709
+ sig do
710
+ override.returns(
711
+ T::Array[
712
+ PostForMe::SocialPost::AccountConfiguration::Configuration::Media::Tag::Type::TaggedSymbol
713
+ ]
714
+ )
715
+ end
716
+ def self.values
717
+ end
718
+ end
719
+ end
720
+ end
721
+
443
722
  # Post placement for Facebook/Instagram/Threads
444
723
  module Placement
445
724
  extend PostForMe::Internal::Type::Enum
@@ -593,6 +872,47 @@ module PostForMe
593
872
  end
594
873
  end
595
874
 
875
+ # Sets the privacy status for TikTok (private, public), or YouTube (private,
876
+ # public, unlisted)
877
+ module PrivacyStatus
878
+ extend PostForMe::Internal::Type::Enum
879
+
880
+ TaggedSymbol =
881
+ T.type_alias do
882
+ T.all(
883
+ Symbol,
884
+ PostForMe::SocialPost::AccountConfiguration::Configuration::PrivacyStatus
885
+ )
886
+ end
887
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
888
+
889
+ PUBLIC =
890
+ T.let(
891
+ :public,
892
+ PostForMe::SocialPost::AccountConfiguration::Configuration::PrivacyStatus::TaggedSymbol
893
+ )
894
+ PRIVATE =
895
+ T.let(
896
+ :private,
897
+ PostForMe::SocialPost::AccountConfiguration::Configuration::PrivacyStatus::TaggedSymbol
898
+ )
899
+ UNLISTED =
900
+ T.let(
901
+ :unlisted,
902
+ PostForMe::SocialPost::AccountConfiguration::Configuration::PrivacyStatus::TaggedSymbol
903
+ )
904
+
905
+ sig do
906
+ override.returns(
907
+ T::Array[
908
+ PostForMe::SocialPost::AccountConfiguration::Configuration::PrivacyStatus::TaggedSymbol
909
+ ]
910
+ )
911
+ end
912
+ def self.values
913
+ end
914
+ end
915
+
596
916
  # Who can reply to the tweet
597
917
  module ReplySettings
598
918
  extend PostForMe::Internal::Type::Enum
@@ -50,6 +50,13 @@ module PostForMe
50
50
  end
51
51
  attr_writer :platform
52
52
 
53
+ # Filter by social account ID. Multiple values imply OR logic.
54
+ sig { returns(T.nilable(T::Array[String])) }
55
+ attr_reader :social_account_id
56
+
57
+ sig { params(social_account_id: T::Array[String]).void }
58
+ attr_writer :social_account_id
59
+
53
60
  # Filter by post status. Multiple values imply OR logic.
54
61
  sig do
55
62
  returns(
@@ -72,6 +79,7 @@ module PostForMe
72
79
  offset: Float,
73
80
  platform:
74
81
  T::Array[PostForMe::SocialPostListParams::Platform::OrSymbol],
82
+ social_account_id: T::Array[String],
75
83
  status: T::Array[PostForMe::SocialPostListParams::Status::OrSymbol],
76
84
  request_options: PostForMe::RequestOptions::OrHash
77
85
  ).returns(T.attached_class)
@@ -85,6 +93,8 @@ module PostForMe
85
93
  offset: nil,
86
94
  # Filter by platforms. Multiple values imply OR logic.
87
95
  platform: nil,
96
+ # Filter by social account ID. Multiple values imply OR logic.
97
+ social_account_id: nil,
88
98
  # Filter by post status. Multiple values imply OR logic.
89
99
  status: nil,
90
100
  request_options: {}
@@ -99,6 +109,7 @@ module PostForMe
99
109
  offset: Float,
100
110
  platform:
101
111
  T::Array[PostForMe::SocialPostListParams::Platform::OrSymbol],
112
+ social_account_id: T::Array[String],
102
113
  status: T::Array[PostForMe::SocialPostListParams::Status::OrSymbol],
103
114
  request_options: PostForMe::RequestOptions
104
115
  }