late-sdk 0.0.544 → 0.0.545

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 (127) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +52 -3
  3. data/docs/AdAudiencesApi.md +5 -5
  4. data/docs/AdCampaignsApi.md +142 -0
  5. data/docs/AdsApi.md +795 -37
  6. data/docs/CreateAdCampaign201Response.md +24 -0
  7. data/docs/CreateAdCampaignRequest.md +32 -0
  8. data/docs/CreateAdCreative201Response.md +20 -0
  9. data/docs/CreateAdCreativeRequest.md +40 -0
  10. data/docs/CreateAdCreativeRequestCarouselCardsInner.md +26 -0
  11. data/docs/CreateSmsSenderId200Response.md +22 -0
  12. data/docs/CreateSmsSenderIdRequest.md +18 -0
  13. data/docs/CreateStandaloneAd200Response.md +22 -0
  14. data/docs/CreateStandaloneAd200ResponseResultsInner.md +22 -0
  15. data/docs/CreateStandaloneAdRequest.md +4 -0
  16. data/docs/DeleteAdCreative200Response.md +20 -0
  17. data/docs/DeleteSmsSenderId200Response.md +18 -0
  18. data/docs/DiscordApi.md +153 -1
  19. data/docs/{ListDiscordGuildMembers200ResponseDataInner.md → DiscordGuildMember.md} +3 -3
  20. data/docs/{ListDiscordGuildMembers200ResponseDataInnerUser.md → DiscordGuildMemberUser.md} +2 -2
  21. data/docs/DuplicateAd200Response.md +22 -0
  22. data/docs/DuplicateAdRequest.md +28 -0
  23. data/docs/DuplicateAdSet200Response.md +22 -0
  24. data/docs/DuplicateAdSetRequest.md +36 -0
  25. data/docs/GetAdCreative200Response.md +18 -0
  26. data/docs/GetDiscordGuildMember200Response.md +18 -0
  27. data/docs/ListAdCreatives200Response.md +22 -0
  28. data/docs/ListAdImages200Response.md +22 -0
  29. data/docs/ListAdLabels200Response.md +22 -0
  30. data/docs/ListDiscordGuildMembers200Response.md +1 -1
  31. data/docs/ListHighDemandPeriods200Response.md +22 -0
  32. data/docs/ListMetaBusinesses200Response.md +20 -0
  33. data/docs/ListSmsSenderIds200Response.md +20 -0
  34. data/docs/ListSmsSenderIds200ResponseBudget.md +24 -0
  35. data/docs/ListSmsSenderIds200ResponseBudgetPendingRequest.md +22 -0
  36. data/docs/ListSmsSenderIds200ResponseSenderIdsInner.md +24 -0
  37. data/docs/RequestSmsSenderIdLimitIncrease200Response.md +20 -0
  38. data/docs/RequestSmsSenderIdLimitIncreaseRequest.md +20 -0
  39. data/docs/SMSApi.md +275 -0
  40. data/docs/SearchDiscordGuildMembers200Response.md +18 -0
  41. data/docs/UpdateAdCreative200Response.md +22 -0
  42. data/docs/UpdateAdCreativeRequest.md +20 -0
  43. data/lib/zernio-sdk/api/ad_audiences_api.rb +4 -4
  44. data/lib/zernio-sdk/api/ad_campaigns_api.rb +142 -0
  45. data/lib/zernio-sdk/api/ads_api.rb +829 -51
  46. data/lib/zernio-sdk/api/discord_api.rb +174 -2
  47. data/lib/zernio-sdk/api/sms_api.rb +254 -0
  48. data/lib/zernio-sdk/models/create_ad_campaign201_response.rb +210 -0
  49. data/lib/zernio-sdk/models/create_ad_campaign_request.rb +343 -0
  50. data/lib/zernio-sdk/models/create_ad_creative201_response.rb +157 -0
  51. data/lib/zernio-sdk/models/create_ad_creative_request.rb +424 -0
  52. data/lib/zernio-sdk/models/create_ad_creative_request_carousel_cards_inner.rb +255 -0
  53. data/lib/zernio-sdk/models/create_sms_sender_id200_response.rb +166 -0
  54. data/lib/zernio-sdk/models/create_sms_sender_id_request.rb +183 -0
  55. data/lib/zernio-sdk/models/create_standalone_ad200_response.rb +201 -0
  56. data/lib/zernio-sdk/models/create_standalone_ad200_response_results_inner.rb +212 -0
  57. data/lib/zernio-sdk/models/create_standalone_ad_request.rb +23 -1
  58. data/lib/zernio-sdk/models/delete_ad_creative200_response.rb +156 -0
  59. data/lib/zernio-sdk/models/delete_sms_sender_id200_response.rb +147 -0
  60. data/lib/zernio-sdk/models/{list_discord_guild_members200_response_data_inner.rb → discord_guild_member.rb} +5 -4
  61. data/lib/zernio-sdk/models/{list_discord_guild_members200_response_data_inner_user.rb → discord_guild_member_user.rb} +3 -3
  62. data/lib/zernio-sdk/models/duplicate_ad200_response.rb +200 -0
  63. data/lib/zernio-sdk/models/duplicate_ad_request.rb +243 -0
  64. data/lib/zernio-sdk/models/duplicate_ad_set200_response.rb +201 -0
  65. data/lib/zernio-sdk/models/duplicate_ad_set_request.rb +302 -0
  66. data/lib/zernio-sdk/models/get_ad_creative200_response.rb +148 -0
  67. data/lib/zernio-sdk/models/get_discord_guild_member200_response.rb +147 -0
  68. data/lib/zernio-sdk/models/list_ad_creatives200_response.rb +167 -0
  69. data/lib/zernio-sdk/models/list_ad_images200_response.rb +167 -0
  70. data/lib/zernio-sdk/models/list_ad_labels200_response.rb +167 -0
  71. data/lib/zernio-sdk/models/list_discord_guild_members200_response.rb +1 -1
  72. data/lib/zernio-sdk/models/list_high_demand_periods200_response.rb +168 -0
  73. data/lib/zernio-sdk/models/list_meta_businesses200_response.rb +158 -0
  74. data/lib/zernio-sdk/models/list_sms_sender_ids200_response.rb +158 -0
  75. data/lib/zernio-sdk/models/list_sms_sender_ids200_response_budget.rb +178 -0
  76. data/lib/zernio-sdk/models/list_sms_sender_ids200_response_budget_pending_request.rb +167 -0
  77. data/lib/zernio-sdk/models/list_sms_sender_ids200_response_sender_ids_inner.rb +175 -0
  78. data/lib/zernio-sdk/models/request_sms_sender_id_limit_increase200_response.rb +156 -0
  79. data/lib/zernio-sdk/models/request_sms_sender_id_limit_increase_request.rb +210 -0
  80. data/lib/zernio-sdk/models/search_discord_guild_members200_response.rb +149 -0
  81. data/lib/zernio-sdk/models/update_ad_creative200_response.rb +165 -0
  82. data/lib/zernio-sdk/models/update_ad_creative_request.rb +200 -0
  83. data/lib/zernio-sdk/version.rb +1 -1
  84. data/lib/zernio-sdk.rb +33 -2
  85. data/openapi.yaml +740 -27
  86. data/spec/api/ad_audiences_api_spec.rb +2 -2
  87. data/spec/api/ad_campaigns_api_spec.rb +25 -0
  88. data/spec/api/ads_api_spec.rb +143 -1
  89. data/spec/api/discord_api_spec.rb +30 -1
  90. data/spec/api/sms_api_spec.rb +46 -0
  91. data/spec/models/create_ad_campaign201_response_spec.rb +58 -0
  92. data/spec/models/create_ad_campaign_request_spec.rb +94 -0
  93. data/spec/models/create_ad_creative201_response_spec.rb +42 -0
  94. data/spec/models/create_ad_creative_request_carousel_cards_inner_spec.rb +60 -0
  95. data/spec/models/create_ad_creative_request_spec.rb +106 -0
  96. data/spec/models/create_sms_sender_id200_response_spec.rb +48 -0
  97. data/spec/models/create_sms_sender_id_request_spec.rb +36 -0
  98. data/spec/models/create_standalone_ad200_response_results_inner_spec.rb +56 -0
  99. data/spec/models/create_standalone_ad200_response_spec.rb +52 -0
  100. data/spec/models/create_standalone_ad_request_spec.rb +16 -0
  101. data/spec/models/delete_ad_creative200_response_spec.rb +42 -0
  102. data/spec/models/delete_sms_sender_id200_response_spec.rb +36 -0
  103. data/spec/models/{list_discord_guild_members200_response_data_inner_spec.rb → discord_guild_member_spec.rb} +6 -6
  104. data/spec/models/{list_discord_guild_members200_response_data_inner_user_spec.rb → discord_guild_member_user_spec.rb} +6 -6
  105. data/spec/models/duplicate_ad200_response_spec.rb +52 -0
  106. data/spec/models/duplicate_ad_request_spec.rb +74 -0
  107. data/spec/models/duplicate_ad_set200_response_spec.rb +52 -0
  108. data/spec/models/duplicate_ad_set_request_spec.rb +102 -0
  109. data/spec/models/get_ad_creative200_response_spec.rb +36 -0
  110. data/spec/models/get_discord_guild_member200_response_spec.rb +36 -0
  111. data/spec/models/list_ad_creatives200_response_spec.rb +48 -0
  112. data/spec/models/list_ad_images200_response_spec.rb +48 -0
  113. data/spec/models/list_ad_labels200_response_spec.rb +48 -0
  114. data/spec/models/list_high_demand_periods200_response_spec.rb +48 -0
  115. data/spec/models/list_meta_businesses200_response_spec.rb +42 -0
  116. data/spec/models/list_sms_sender_ids200_response_budget_pending_request_spec.rb +48 -0
  117. data/spec/models/list_sms_sender_ids200_response_budget_spec.rb +54 -0
  118. data/spec/models/list_sms_sender_ids200_response_sender_ids_inner_spec.rb +54 -0
  119. data/spec/models/list_sms_sender_ids200_response_spec.rb +42 -0
  120. data/spec/models/request_sms_sender_id_limit_increase200_response_spec.rb +42 -0
  121. data/spec/models/request_sms_sender_id_limit_increase_request_spec.rb +42 -0
  122. data/spec/models/search_discord_guild_members200_response_spec.rb +36 -0
  123. data/spec/models/update_ad_creative200_response_spec.rb +48 -0
  124. data/spec/models/update_ad_creative_request_spec.rb +42 -0
  125. data/zernio-sdk-0.0.545.gem +0 -0
  126. metadata +134 -10
  127. data/zernio-sdk-0.0.544.gem +0 -0
@@ -97,8 +97,8 @@ describe 'AdAudiencesApi' do
97
97
  end
98
98
 
99
99
  # unit tests for update_ad_audience
100
- # Update saved targeting audience
101
- # Update a `saved_targeting` audience's name, description, or spec. Only `saved_targeting` audiences are updatable (they exist only on Zernio); uploaded/derived audiences return 422, delete and recreate those instead. `spec` replaces the stored spec wholesale (no merge). Ads already created from this audience are unaffected, they snapshot the targeting at creation.
100
+ # Update an audience
101
+ # Update an audience. `saved_targeting` audiences accept `name`, `description`, and `spec` (full replacement, no merge, Zernio-only, no platform call). Platform audiences (uploaded/website/lookalike) accept `name` and `description` only, updated on the platform first and then mirrored locally; their rules are immutable, so `spec` returns 400 for them. Platform audience updates are Meta-only for now (other platforms return 501). Ads already created from a saved_targeting audience are unaffected, they snapshot the targeting at creation.
102
102
  # @param audience_id
103
103
  # @param update_ad_audience_request
104
104
  # @param [Hash] opts the optional parameters
@@ -44,6 +44,18 @@ describe 'AdCampaignsApi' do
44
44
  end
45
45
  end
46
46
 
47
+ # unit tests for create_ad_campaign
48
+ # Create a standalone campaign (Meta)
49
+ # Creates a campaign WITHOUT its first ad set / ad (the ODAX shell only). Ad sets join it later via `existingCampaignId` on the create endpoints. A budget here is campaign-level (CBO) by definition; omit it for ABO (each ad set carries its own budget). Created `PAUSED` unless `status: ACTIVE`. The campaign materializes in `/v1/ads/tree` via the next sync discovery pass. Meta only.
50
+ # @param create_ad_campaign_request
51
+ # @param [Hash] opts the optional parameters
52
+ # @return [CreateAdCampaign201Response]
53
+ describe 'create_ad_campaign test' do
54
+ it 'should work' do
55
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
56
+ end
57
+ end
58
+
47
59
  # unit tests for delete_ad_campaign
48
60
  # Delete a campaign
49
61
  # Deletes the whole campaign on the platform, cascading to its ad sets and ads. Locally, all Ad documents for this campaign are marked `status: cancelled`. Meta-only for now. Other platforms return 501 Not Implemented — fall back to DELETE /v1/ads/{adId} per ad in the meantime.
@@ -70,6 +82,19 @@ describe 'AdCampaignsApi' do
70
82
  end
71
83
  end
72
84
 
85
+ # unit tests for duplicate_ad_set
86
+ # Duplicate an ad set (Meta)
87
+ # Duplicates an ad set, including its ads and creatives by default (`deepCopy: true`), via Meta's native `POST /{adset-id}/copies`. The copy is created paused so callers can review before launching. `campaignId` retargets the copy into another campaign; omitted = the source's own campaign. The new hierarchy materializes asynchronously — sync discovery is triggered automatically (`syncAfter: false` to skip). Meta only.
88
+ # @param ad_set_id Source platform ad set ID
89
+ # @param duplicate_ad_set_request
90
+ # @param [Hash] opts the optional parameters
91
+ # @return [DuplicateAdSet200Response]
92
+ describe 'duplicate_ad_set test' do
93
+ it 'should work' do
94
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
95
+ end
96
+ end
97
+
73
98
  # unit tests for get_ad_set_details
74
99
  # Live ad-set details incl. learning phase (Meta)
75
100
  # Reads the ad set live from Meta, returned verbatim. The default projection includes `learning_stage_info` (learning-phase status: LEARNING / SUCCESS / FAIL / WAIVING — Meta omits its `status` key on paused ad sets), delivery settings, budgets, schedule and targeting. `fields` is a raw-passthrough override; unknown fields return Meta's 400 verbatim. Meta only.
@@ -97,6 +97,18 @@ describe 'AdsApi' do
97
97
  end
98
98
  end
99
99
 
100
+ # unit tests for create_ad_creative
101
+ # Create a standalone creative (Meta)
102
+ # Creates a creative in the library WITHOUT an ad, reusable on the create endpoints via `existingCreativeId`. Provide exactly one of `imageUrl` (uploaded server-side), `imageHash` (from POST /v1/ads/images or the library list), or `carouselCards` (2-10 hand-built cards). The Page (and linked Instagram account, when present) is resolved from `accountId` as the story actor. Meta only.
103
+ # @param create_ad_creative_request
104
+ # @param [Hash] opts the optional parameters
105
+ # @return [CreateAdCreative201Response]
106
+ describe 'create_ad_creative test' do
107
+ it 'should work' do
108
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
109
+ end
110
+ end
111
+
100
112
  # unit tests for create_ad_insights_report
101
113
  # Submit an async insights report run (Meta)
102
114
  # Submits an asynchronous Meta insights report. Same query surface as GET /v1/ads/insights, but in the JSON body; Meta processes the report server-side, which is the right choice for long ranges or large accounts where the sync query is slow or rate-limited. Returns a `reportRunId` to poll via GET /v1/ads/insights/reports/{reportRunId}. Meta only.
@@ -188,7 +200,7 @@ describe 'AdsApi' do
188
200
  # @param create_standalone_ad_request
189
201
  # @param [Hash] opts the optional parameters
190
202
  # @option opts [String] :idempotency_key Optional client-generated unique key (e.g. a UUID) that makes create retries safe. Same key + same body replays the original response; same key + different body → 422; key still processing → 409.
191
- # @return [CreateStandaloneAd201Response]
203
+ # @return [CreateStandaloneAd200Response]
192
204
  describe 'create_standalone_ad test' do
193
205
  it 'should work' do
194
206
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
@@ -220,6 +232,19 @@ describe 'AdsApi' do
220
232
  end
221
233
  end
222
234
 
235
+ # unit tests for delete_ad_creative
236
+ # Delete a creative (Meta)
237
+ # Deletes a creative from the library. Meta only allows deleting creatives not referenced by any ad — otherwise its 400 surfaces verbatim.
238
+ # @param creative_id Platform creative id
239
+ # @param account_id Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token.
240
+ # @param [Hash] opts the optional parameters
241
+ # @return [DeleteAdCreative200Response]
242
+ describe 'delete_ad_creative test' do
243
+ it 'should work' do
244
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
245
+ end
246
+ end
247
+
223
248
  # unit tests for delete_conversion_destination
224
249
  # Delete a conversion destination
225
250
  # LinkedIn-only today. LinkedIn does not expose hard-delete on conversion rules — what their UI calls \"delete\" is the same `enabled: false` flip we apply here. The rule remains fetchable via GET with `status: 'inactive'`; the unified discovery endpoint hides it by default. `adAccountId` may be passed as a query parameter (recommended) or as a JSON body field for clients that can send DELETE bodies.
@@ -234,6 +259,19 @@ describe 'AdsApi' do
234
259
  end
235
260
  end
236
261
 
262
+ # unit tests for duplicate_ad
263
+ # Duplicate an ad (Meta)
264
+ # Duplicates a single ad via Meta's native `POST /{ad-id}/copies`. The copy is created paused. `adSetId` retargets the copy into another ad set; omitted = the source's own ad set. Accepts the Zernio ad id or the platform ad id. Sync discovery is triggered automatically (`syncAfter: false` to skip). Meta only.
265
+ # @param ad_id Zernio ad ID or platform ad ID
266
+ # @param [Hash] opts the optional parameters
267
+ # @option opts [DuplicateAdRequest] :duplicate_ad_request
268
+ # @return [DuplicateAd200Response]
269
+ describe 'duplicate_ad test' do
270
+ it 'should work' do
271
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
272
+ end
273
+ end
274
+
237
275
  # unit tests for estimate_ad_reach
238
276
  # Estimate audience reach
239
277
  # Returns a normalized pre-flight audience-size estimate for a targeting spec, before any campaign is created. Backed by each platform's native reach API (Meta `delivery_estimate`, LinkedIn `audienceCounts`, X `audience_summary`, Pinterest `audience_sizing`). Platforms without a usable pre-flight reach API (Google Search/Display, TikTok) return `available: false` with no bounds, so clients can hide or grey out the estimate rather than treat the absence as an error.
@@ -313,6 +351,20 @@ describe 'AdsApi' do
313
351
  end
314
352
  end
315
353
 
354
+ # unit tests for get_ad_creative
355
+ # Creative details (Meta)
356
+ # One creative's details, verbatim from Meta. `fields` is a raw-passthrough override of the default projection. Meta only.
357
+ # @param creative_id Platform creative id
358
+ # @param account_id Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token.
359
+ # @param [Hash] opts the optional parameters
360
+ # @option opts [String] :fields Comma-separated Graph field override (supports nested {} projections).
361
+ # @return [GetAdCreative200Response]
362
+ describe 'get_ad_creative test' do
363
+ it 'should work' do
364
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
365
+ end
366
+ end
367
+
316
368
  # unit tests for get_ad_insights_report
317
369
  # Poll an async insights report run (Meta)
318
370
  # Status and results for a report run created via POST /v1/ads/insights/reports. While the job runs, returns `status` and `percentCompletion`. Once `status` is \"Job Completed\" the response also carries a `data` page, cursor-paginated via `limit` / `after`.
@@ -546,6 +598,53 @@ describe 'AdsApi' do
546
598
  end
547
599
  end
548
600
 
601
+ # unit tests for list_ad_creatives
602
+ # Creative library (Meta)
603
+ # Lists the ad account's creative library (Meta's `/act_X/adcreatives`), rows returned verbatim. The default projection covers id, name, status, object type, thumbnail, object_story_spec / asset_feed_spec and url_tags; `fields` is a raw-passthrough override. Any creative id here is reusable on the create endpoints via `existingCreativeId`. Meta only.
604
+ # @param account_id Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token.
605
+ # @param ad_account_id Meta ad account id (act_<n>).
606
+ # @param [Hash] opts the optional parameters
607
+ # @option opts [String] :fields Comma-separated Graph field override (supports nested {} projections).
608
+ # @option opts [Integer] :limit Rows per page
609
+ # @option opts [String] :after Cursor from paging.after of the previous page.
610
+ # @return [ListAdCreatives200Response]
611
+ describe 'list_ad_creatives test' do
612
+ it 'should work' do
613
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
614
+ end
615
+ end
616
+
617
+ # unit tests for list_ad_images
618
+ # Ad image library (Meta)
619
+ # Lists the ad account's image library (Meta's `/act_X/adimages`), rows returned verbatim. The default projection covers hash, url, name, dimensions and status; `fields` is a raw-passthrough override. Any `hash` here is reusable wherever Meta accepts `image_hash` (e.g. `imageHash` on POST /v1/ads/creatives). Meta only.
620
+ # @param account_id Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token.
621
+ # @param ad_account_id Meta ad account id (act_<n>).
622
+ # @param [Hash] opts the optional parameters
623
+ # @option opts [String] :fields Comma-separated Graph field override (supports nested {} projections).
624
+ # @option opts [Integer] :limit Rows per page
625
+ # @option opts [String] :after Cursor from paging.after of the previous page.
626
+ # @return [ListAdImages200Response]
627
+ describe 'list_ad_images test' do
628
+ it 'should work' do
629
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
630
+ end
631
+ end
632
+
633
+ # unit tests for list_ad_labels
634
+ # Ad labels (Meta)
635
+ # Lists the ad account's organizational labels (Meta's `/act_X/adlabels`), rows returned verbatim (id, name, created/updated time). Meta only.
636
+ # @param account_id Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token.
637
+ # @param ad_account_id Meta ad account id (act_<n>).
638
+ # @param [Hash] opts the optional parameters
639
+ # @option opts [Integer] :limit Rows per page
640
+ # @option opts [String] :after Cursor from paging.after of the previous page.
641
+ # @return [ListAdLabels200Response]
642
+ describe 'list_ad_labels test' do
643
+ it 'should work' do
644
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
645
+ end
646
+ end
647
+
549
648
  # unit tests for list_ad_studies
550
649
  # A/B tests and lift studies (Meta)
551
650
  # Lists the ad account's A/B tests and lift studies (Meta's `/act_X/ad_studies`), rows returned verbatim. The default projection covers id, name, type, timing and cells with split percentages; `fields` is a raw-passthrough override. Meta only.
@@ -641,6 +740,22 @@ describe 'AdsApi' do
641
740
  end
642
741
  end
643
742
 
743
+ # unit tests for list_high_demand_periods
744
+ # High demand periods / budget schedules (Meta)
745
+ # Scheduled budget increases (Meta's budget-scheduling API). The Graph edge lives on the campaign and ad-set nodes only, so exactly one of `campaignId` / `adSetId` (platform ids) is required. Rows returned verbatim (budget_value, budget_value_type, time window, recurrence). Meta only.
746
+ # @param account_id Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token.
747
+ # @param [Hash] opts the optional parameters
748
+ # @option opts [String] :campaign_id Platform campaign id. Exactly one of campaignId / adSetId.
749
+ # @option opts [String] :ad_set_id Platform ad set id. Exactly one of campaignId / adSetId.
750
+ # @option opts [Integer] :limit Rows per page
751
+ # @option opts [String] :after Cursor from paging.after of the previous page.
752
+ # @return [ListHighDemandPeriods200Response]
753
+ describe 'list_high_demand_periods test' do
754
+ it 'should work' do
755
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
756
+ end
757
+ end
758
+
644
759
  # unit tests for list_lead_forms
645
760
  # List lead forms
646
761
  # Lists the Lead Gen forms owned by the connected Facebook Page. Requires the Ads add-on.
@@ -671,6 +786,20 @@ describe 'AdsApi' do
671
786
  end
672
787
  end
673
788
 
789
+ # unit tests for list_meta_businesses
790
+ # Businesses list (Meta)
791
+ # Business Manager portfolios the connected Meta user belongs to (Meta's `/me/businesses`), rows returned verbatim (id, name, verification_status, created_time). Token-scoped, so no `adAccountId` is needed. Meta only; for TikTok Business Centers use `GET /v1/ads/business-centers`.
792
+ # @param account_id Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token.
793
+ # @param [Hash] opts the optional parameters
794
+ # @option opts [Integer] :limit Rows per page
795
+ # @option opts [String] :after Cursor from paging.after of the previous page.
796
+ # @return [ListMetaBusinesses200Response]
797
+ describe 'list_meta_businesses test' do
798
+ it 'should work' do
799
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
800
+ end
801
+ end
802
+
674
803
  # unit tests for list_whats_app_conversions
675
804
  # List conversion events
676
805
  # Returns the most recent conversion events sent through `POST /v1/whatsapp/conversions` for the given WhatsApp account. Sourced from delivery logs (Axiom `late` dataset), so the visible window is bounded by log retention (about 30 days). Useful for rendering a \"recent activity\" panel on the conversions setup tab without standing up a parallel persistence layer. Per-event payload mirrors the structured log we write on every successful send: `eventName`, `conversationId`, `eventsReceived`, `eventsFailed`, `traceId`, `durationMs`, and the wall-clock `timestamp`.
@@ -818,6 +947,19 @@ describe 'AdsApi' do
818
947
  end
819
948
  end
820
949
 
950
+ # unit tests for update_ad_creative
951
+ # Rename a creative (Meta)
952
+ # Renames a creative. Creatives are immutable on Meta beyond `name` — for content changes create a new creative (POST /v1/ads/creatives) and swap it onto the ad (PUT /v1/ads/{adId} with `creative`). Meta only.
953
+ # @param creative_id Platform creative id
954
+ # @param update_ad_creative_request
955
+ # @param [Hash] opts the optional parameters
956
+ # @return [UpdateAdCreative200Response]
957
+ describe 'update_ad_creative test' do
958
+ it 'should work' do
959
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
960
+ end
961
+ end
962
+
821
963
  # unit tests for update_ad_status
822
964
  # Pause or resume a single ad
823
965
  # Ad-scoped pause/resume — touches ONLY this ad, never its parent ad set or campaign (so sibling ads keep running). Thin wrapper over the `status` field of PUT /v1/ads/{adId}, for callers that want a URL symmetric to /v1/ads/campaigns/{campaignId}/status and /v1/ads/ad-sets/{adSetId}/status. `{adId}` accepts the same identifier dialects as GET/PUT /v1/ads/{adId} (Zernio hex `_id`, Meta numeric `platformAdId`, or the creative's effective story/media IDs). `platform` is inferred from the ad, so it's not required in the body. Ads in terminal statuses (rejected, completed, cancelled) and no-op flips (already in the target state) are skipped.
@@ -171,6 +171,20 @@ describe 'DiscordApi' do
171
171
  end
172
172
  end
173
173
 
174
+ # unit tests for get_discord_guild_member
175
+ # Get a Discord guild member
176
+ # Fetch a single guild member by Discord user id. Does not require the privileged Server Members Intent, so this works even where the full member listing returns 403.
177
+ # @param guild_id
178
+ # @param user_id Discord user snowflake.
179
+ # @param account_id
180
+ # @param [Hash] opts the optional parameters
181
+ # @return [GetDiscordGuildMember200Response]
182
+ describe 'get_discord_guild_member test' do
183
+ it 'should work' do
184
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
185
+ end
186
+ end
187
+
174
188
  # unit tests for get_discord_scheduled_event
175
189
  # Get a Discord scheduled event
176
190
  # @param guild_id
@@ -198,7 +212,7 @@ describe 'DiscordApi' do
198
212
 
199
213
  # unit tests for list_discord_guild_members
200
214
  # List Discord guild members
201
- # Cursor-paginated list of guild members. Returns Discord's raw member objects so callers can build community-ops automation (e.g. \"add role to all members joined in the last 7 days\") on the actual platform shape. **Important:** this endpoint requires the privileged \"Server Members Intent\" enabled on the Discord app (Developer Portal Bot tab toggle \"Server Members Intent\" ON, then Save). Without it, Discord returns an empty array with no error. Verify the intent is enabled before relying on this endpoint. Pagination: pass `after` = the last `user.id` from the previous page. Omit on the first call. Response includes a `nextCursor` and `hasMore` flag so callers don't need to know Discord's pagination shape.
215
+ # Cursor-paginated list of guild members. Returns Discord's raw member objects so callers can build community-ops automation (e.g. \"add role to all members joined in the last 7 days\") on the actual platform shape. **Important:** this endpoint requires the privileged \"Server Members Intent\" on the Discord application. If the intent is not enabled, Discord rejects the call and this endpoint returns **403**. Single member lookup and prefix search (see the sibling endpoints) do not need the intent. Pagination: pass `after` = the last `user.id` from the previous page. Omit on the first call. Response includes a `nextCursor` and `hasMore` flag so callers don't need to know Discord's pagination shape.
202
216
  # @param guild_id
203
217
  # @param account_id
204
218
  # @param [Hash] opts the optional parameters
@@ -280,6 +294,21 @@ describe 'DiscordApi' do
280
294
  end
281
295
  end
282
296
 
297
+ # unit tests for search_discord_guild_members
298
+ # Search Discord guild members
299
+ # Search guild members whose username or nickname **starts with** the query (Discord matches prefixes only, not substrings). Does not require the privileged Server Members Intent, so this works even where the full member listing returns 403.
300
+ # @param guild_id
301
+ # @param account_id
302
+ # @param query Username or nickname prefix to match.
303
+ # @param [Hash] opts the optional parameters
304
+ # @option opts [Integer] :limit
305
+ # @return [SearchDiscordGuildMembers200Response]
306
+ describe 'search_discord_guild_members test' do
307
+ it 'should work' do
308
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
309
+ end
310
+ end
311
+
283
312
  # unit tests for send_discord_direct_message
284
313
  # Send a Discord Direct Message
285
314
  # Send a 1:1 Direct Message from the bot to a Discord user (by snowflake ID). Supports the same payload shape as channel posts — content, embeds, media attachments, and TTS. Constraints (Discord platform limits): - The bot can only DM users it shares at least one guild with. - If the recipient has DMs disabled for non-friends, Discord returns 403 (surfaces as a 502 platform error). - `content` capped at 2,000 chars. - At least one of `content`, `embeds`, or `attachments` is required. - The recipient must be identified by Discord snowflake ID (not username). This is a dedicated endpoint rather than a `POST /v1/posts` variant because DMs are 1:1 operational messages (onboarding, billing reminders, support pings) with a different lifecycle than scheduled channel posts. DMs are not persisted to `Post` / `ExternalPost` and are always sent immediately.
@@ -45,6 +45,18 @@ describe 'SMSApi' do
45
45
  end
46
46
  end
47
47
 
48
+ # unit tests for create_sms_sender_id
49
+ # Create an alphanumeric sender ID
50
+ # Registers an alphanumeric sender ID (e.g. `ZERNIO`) — a branded `from` for one-way international SMS. No phone number purchase or carrier registration is needed; once created, pass it as `from` on `POST /v1/sms/messages`. Constraints: 3-11 characters (letters, digits, spaces; at least one letter). Sends cannot reach the US, Canada, or Puerto Rico, are text-only, and recipients cannot reply. Sender IDs that impersonate well-known brands or institutions are rejected, and an ID already registered by another workspace returns 409 (active sender IDs are globally unique, first-come-first-served). Creating the same sender ID again is a no-op (re-activates it after a delete).
51
+ # @param create_sms_sender_id_request
52
+ # @param [Hash] opts the optional parameters
53
+ # @return [CreateSmsSenderId200Response]
54
+ describe 'create_sms_sender_id test' 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
+
48
60
  # unit tests for deactivate_sms_registration
49
61
  # Deactivate a brand/campaign registration
50
62
  # Terminates the campaign with the carrier registry so the recurring monthly campaign fee stops (carriers bill the first 3 months of a campaign regardless). Numbers covered by it can no longer SEND texts — receiving is unaffected — until they're registered under a new brand. Irreversible: a deactivated campaign cannot be restored; texting again later requires a new registration (new one-time and review fees). Idempotent.
@@ -57,6 +69,18 @@ describe 'SMSApi' do
57
69
  end
58
70
  end
59
71
 
72
+ # unit tests for delete_sms_sender_id
73
+ # Delete an alphanumeric sender ID
74
+ # Deactivates the sender ID so it can no longer send. Re-creating the same sender ID via `POST /v1/sms/sender-ids` re-activates it.
75
+ # @param id Sender ID resource id.
76
+ # @param [Hash] opts the optional parameters
77
+ # @return [DeleteSmsSenderId200Response]
78
+ describe 'delete_sms_sender_id test' 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
+
60
84
  # unit tests for disable_sms_on_number
61
85
  # Disable SMS on a number
62
86
  # Turns off SMS for the number (deactivates its SMS account). The carrier registration is untouched, so re-enabling later just reactivates it, with no re-registration.
@@ -117,6 +141,16 @@ describe 'SMSApi' do
117
141
  end
118
142
  end
119
143
 
144
+ # unit tests for list_sms_sender_ids
145
+ # List alphanumeric sender IDs
146
+ # @param [Hash] opts the optional parameters
147
+ # @return [ListSmsSenderIds200Response]
148
+ describe 'list_sms_sender_ids test' do
149
+ it 'should work' do
150
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
151
+ end
152
+ end
153
+
120
154
  # unit tests for lookup_sms_number
121
155
  # Look up carrier + line type
122
156
  # Carrier name and line type (mobile / landline / voip / toll-free) for a number, plus `smsReachable` (landlines can't receive SMS). Use it to validate recipients before sending. Each lookup is billed by the carrier-data provider, so call it explicitly (e.g. pre-validating an opt-in list), not on every send.
@@ -129,6 +163,18 @@ describe 'SMSApi' do
129
163
  end
130
164
  end
131
165
 
166
+ # unit tests for request_sms_sender_id_limit_increase
167
+ # Request a higher sender ID daily limit
168
+ # Asks support to raise the workspace's daily sender-ID message cap. There is no self-serve raise: the request (desired cap + use case) is reviewed manually, usually within a business day.
169
+ # @param request_sms_sender_id_limit_increase_request
170
+ # @param [Hash] opts the optional parameters
171
+ # @return [RequestSmsSenderIdLimitIncrease200Response]
172
+ describe 'request_sms_sender_id_limit_increase test' do
173
+ it 'should work' do
174
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
175
+ end
176
+ end
177
+
132
178
  # unit tests for resend_sms_registration_otp
133
179
  # Re-send the sole-prop OTP
134
180
  # Re-sends the sole-proprietor verification PIN to the brand's mobile number — use it when the original code expired or never arrived. Only valid while the registration is pending and awaiting its OTP; rate limited to one send per minute.
@@ -0,0 +1,58 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
5
+
6
+ The version of the OpenAPI document: 1.0.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::CreateAdCampaign201Response
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe Zernio::CreateAdCampaign201Response do
21
+ #let(:instance) { Zernio::CreateAdCampaign201Response.new }
22
+
23
+ describe 'test an instance of CreateAdCampaign201Response' do
24
+ it 'should create an instance of CreateAdCampaign201Response' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(Zernio::CreateAdCampaign201Response)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "ad_account_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 "campaign_id"' 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 "objective"' 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 "status"' do
49
+ it 'should work' do
50
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
51
+ # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["ACTIVE", "PAUSED"])
52
+ # validator.allowable_values.each do |value|
53
+ # expect { instance.status = value }.not_to raise_error
54
+ # end
55
+ end
56
+ end
57
+
58
+ end
@@ -0,0 +1,94 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
5
+
6
+ The version of the OpenAPI document: 1.0.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::CreateAdCampaignRequest
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe Zernio::CreateAdCampaignRequest do
21
+ #let(:instance) { Zernio::CreateAdCampaignRequest.new }
22
+
23
+ describe 'test an instance of CreateAdCampaignRequest' do
24
+ it 'should create an instance of CreateAdCampaignRequest' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(Zernio::CreateAdCampaignRequest)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "account_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 "ad_account_id"' 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 "name"' 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 "goal"' do
49
+ it 'should work' do
50
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
51
+ # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["engagement", "traffic", "awareness", "video_views", "lead_generation", "lead_conversion", "job_applicants", "conversions", "app_promotion", "catalog_sales"])
52
+ # validator.allowable_values.each do |value|
53
+ # expect { instance.goal = value }.not_to raise_error
54
+ # end
55
+ end
56
+ end
57
+
58
+ describe 'test attribute "special_ad_categories"' do
59
+ it 'should work' do
60
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
61
+ # validator = Petstore::EnumTest::EnumAttributeValidator.new('Array<String>', ["HOUSING", "EMPLOYMENT", "CREDIT", "ISSUES_ELECTIONS_POLITICS", "FINANCIAL_PRODUCTS_SERVICES", "ONLINE_GAMBLING_AND_GAMING"])
62
+ # validator.allowable_values.each do |value|
63
+ # expect { instance.special_ad_categories = value }.not_to raise_error
64
+ # end
65
+ end
66
+ end
67
+
68
+ describe 'test attribute "budget_amount"' do
69
+ it 'should work' do
70
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
71
+ end
72
+ end
73
+
74
+ describe 'test attribute "budget_type"' do
75
+ it 'should work' do
76
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
77
+ # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["daily", "lifetime"])
78
+ # validator.allowable_values.each do |value|
79
+ # expect { instance.budget_type = value }.not_to raise_error
80
+ # end
81
+ end
82
+ end
83
+
84
+ describe 'test attribute "status"' do
85
+ it 'should work' do
86
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
87
+ # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["ACTIVE", "PAUSED"])
88
+ # validator.allowable_values.each do |value|
89
+ # expect { instance.status = value }.not_to raise_error
90
+ # end
91
+ end
92
+ end
93
+
94
+ 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
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::CreateAdCreative201Response
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe Zernio::CreateAdCreative201Response do
21
+ #let(:instance) { Zernio::CreateAdCreative201Response.new }
22
+
23
+ describe 'test an instance of CreateAdCreative201Response' do
24
+ it 'should create an instance of CreateAdCreative201Response' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(Zernio::CreateAdCreative201Response)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "ad_account_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 "creative_id"' 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,60 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
5
+
6
+ The version of the OpenAPI document: 1.0.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::CreateAdCreativeRequestCarouselCardsInner
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe Zernio::CreateAdCreativeRequestCarouselCardsInner do
21
+ #let(:instance) { Zernio::CreateAdCreativeRequestCarouselCardsInner.new }
22
+
23
+ describe 'test an instance of CreateAdCreativeRequestCarouselCardsInner' do
24
+ it 'should create an instance of CreateAdCreativeRequestCarouselCardsInner' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(Zernio::CreateAdCreativeRequestCarouselCardsInner)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "image_url"' do
31
+ it 'should work' do
32
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
33
+ end
34
+ end
35
+
36
+ describe 'test attribute "link_url"' do
37
+ it 'should work' do
38
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
39
+ end
40
+ end
41
+
42
+ describe 'test attribute "headline"' 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 "description"' 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 "call_to_action"' 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
+ end