zernio-sdk 0.0.543 → 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 (131) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +53 -4
  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/docs/WhatsAppApi.md +72 -0
  44. data/lib/zernio-sdk/api/ad_audiences_api.rb +4 -4
  45. data/lib/zernio-sdk/api/ad_campaigns_api.rb +142 -0
  46. data/lib/zernio-sdk/api/ads_api.rb +829 -51
  47. data/lib/zernio-sdk/api/discord_api.rb +174 -2
  48. data/lib/zernio-sdk/api/sms_api.rb +254 -0
  49. data/lib/zernio-sdk/api/whats_app_api.rb +70 -0
  50. data/lib/zernio-sdk/models/create_ad_campaign201_response.rb +210 -0
  51. data/lib/zernio-sdk/models/create_ad_campaign_request.rb +343 -0
  52. data/lib/zernio-sdk/models/create_ad_creative201_response.rb +157 -0
  53. data/lib/zernio-sdk/models/create_ad_creative_request.rb +424 -0
  54. data/lib/zernio-sdk/models/create_ad_creative_request_carousel_cards_inner.rb +255 -0
  55. data/lib/zernio-sdk/models/create_sms_sender_id200_response.rb +166 -0
  56. data/lib/zernio-sdk/models/create_sms_sender_id_request.rb +183 -0
  57. data/lib/zernio-sdk/models/create_standalone_ad200_response.rb +201 -0
  58. data/lib/zernio-sdk/models/create_standalone_ad200_response_results_inner.rb +212 -0
  59. data/lib/zernio-sdk/models/create_standalone_ad_request.rb +23 -1
  60. data/lib/zernio-sdk/models/delete_ad_creative200_response.rb +156 -0
  61. data/lib/zernio-sdk/models/delete_sms_sender_id200_response.rb +147 -0
  62. data/lib/zernio-sdk/models/{list_discord_guild_members200_response_data_inner.rb → discord_guild_member.rb} +5 -4
  63. data/lib/zernio-sdk/models/{list_discord_guild_members200_response_data_inner_user.rb → discord_guild_member_user.rb} +3 -3
  64. data/lib/zernio-sdk/models/duplicate_ad200_response.rb +200 -0
  65. data/lib/zernio-sdk/models/duplicate_ad_request.rb +243 -0
  66. data/lib/zernio-sdk/models/duplicate_ad_set200_response.rb +201 -0
  67. data/lib/zernio-sdk/models/duplicate_ad_set_request.rb +302 -0
  68. data/lib/zernio-sdk/models/get_ad_creative200_response.rb +148 -0
  69. data/lib/zernio-sdk/models/get_discord_guild_member200_response.rb +147 -0
  70. data/lib/zernio-sdk/models/list_ad_creatives200_response.rb +167 -0
  71. data/lib/zernio-sdk/models/list_ad_images200_response.rb +167 -0
  72. data/lib/zernio-sdk/models/list_ad_labels200_response.rb +167 -0
  73. data/lib/zernio-sdk/models/list_discord_guild_members200_response.rb +1 -1
  74. data/lib/zernio-sdk/models/list_high_demand_periods200_response.rb +168 -0
  75. data/lib/zernio-sdk/models/list_meta_businesses200_response.rb +158 -0
  76. data/lib/zernio-sdk/models/list_sms_sender_ids200_response.rb +158 -0
  77. data/lib/zernio-sdk/models/list_sms_sender_ids200_response_budget.rb +178 -0
  78. data/lib/zernio-sdk/models/list_sms_sender_ids200_response_budget_pending_request.rb +167 -0
  79. data/lib/zernio-sdk/models/list_sms_sender_ids200_response_sender_ids_inner.rb +175 -0
  80. data/lib/zernio-sdk/models/request_sms_sender_id_limit_increase200_response.rb +156 -0
  81. data/lib/zernio-sdk/models/request_sms_sender_id_limit_increase_request.rb +210 -0
  82. data/lib/zernio-sdk/models/search_discord_guild_members200_response.rb +149 -0
  83. data/lib/zernio-sdk/models/update_ad_creative200_response.rb +165 -0
  84. data/lib/zernio-sdk/models/update_ad_creative_request.rb +200 -0
  85. data/lib/zernio-sdk/version.rb +1 -1
  86. data/lib/zernio-sdk.rb +33 -3
  87. data/openapi.yaml +741 -28
  88. data/spec/api/ad_audiences_api_spec.rb +2 -2
  89. data/spec/api/ad_campaigns_api_spec.rb +25 -0
  90. data/spec/api/ads_api_spec.rb +143 -1
  91. data/spec/api/discord_api_spec.rb +30 -1
  92. data/spec/api/sms_api_spec.rb +46 -0
  93. data/spec/api/whats_app_api_spec.rb +13 -0
  94. data/spec/models/create_ad_campaign201_response_spec.rb +58 -0
  95. data/spec/models/create_ad_campaign_request_spec.rb +94 -0
  96. data/spec/models/create_ad_creative201_response_spec.rb +42 -0
  97. data/spec/models/create_ad_creative_request_carousel_cards_inner_spec.rb +60 -0
  98. data/spec/models/create_ad_creative_request_spec.rb +106 -0
  99. data/spec/models/create_sms_sender_id200_response_spec.rb +48 -0
  100. data/spec/models/create_sms_sender_id_request_spec.rb +36 -0
  101. data/spec/models/create_standalone_ad200_response_results_inner_spec.rb +56 -0
  102. data/spec/models/create_standalone_ad200_response_spec.rb +52 -0
  103. data/spec/models/create_standalone_ad_request_spec.rb +16 -0
  104. data/spec/models/delete_ad_creative200_response_spec.rb +42 -0
  105. data/spec/models/delete_sms_sender_id200_response_spec.rb +36 -0
  106. data/spec/models/{list_discord_guild_members200_response_data_inner_spec.rb → discord_guild_member_spec.rb} +6 -6
  107. data/spec/models/{list_discord_guild_members200_response_data_inner_user_spec.rb → discord_guild_member_user_spec.rb} +6 -6
  108. data/spec/models/duplicate_ad200_response_spec.rb +52 -0
  109. data/spec/models/duplicate_ad_request_spec.rb +74 -0
  110. data/spec/models/duplicate_ad_set200_response_spec.rb +52 -0
  111. data/spec/models/duplicate_ad_set_request_spec.rb +102 -0
  112. data/spec/models/get_ad_creative200_response_spec.rb +36 -0
  113. data/spec/models/get_discord_guild_member200_response_spec.rb +36 -0
  114. data/spec/models/list_ad_creatives200_response_spec.rb +48 -0
  115. data/spec/models/list_ad_images200_response_spec.rb +48 -0
  116. data/spec/models/list_ad_labels200_response_spec.rb +48 -0
  117. data/spec/models/list_high_demand_periods200_response_spec.rb +48 -0
  118. data/spec/models/list_meta_businesses200_response_spec.rb +42 -0
  119. data/spec/models/list_sms_sender_ids200_response_budget_pending_request_spec.rb +48 -0
  120. data/spec/models/list_sms_sender_ids200_response_budget_spec.rb +54 -0
  121. data/spec/models/list_sms_sender_ids200_response_sender_ids_inner_spec.rb +54 -0
  122. data/spec/models/list_sms_sender_ids200_response_spec.rb +42 -0
  123. data/spec/models/request_sms_sender_id_limit_increase200_response_spec.rb +42 -0
  124. data/spec/models/request_sms_sender_id_limit_increase_request_spec.rb +42 -0
  125. data/spec/models/search_discord_guild_members200_response_spec.rb +36 -0
  126. data/spec/models/update_ad_creative200_response_spec.rb +48 -0
  127. data/spec/models/update_ad_creative_request_spec.rb +42 -0
  128. metadata +133 -13
  129. data/docs/InboxApi.md +0 -79
  130. data/lib/zernio-sdk/api/inbox_api.rb +0 -92
  131. data/spec/api/inbox_api_spec.rb +0 -48
@@ -0,0 +1,24 @@
1
+ # Zernio::CreateAdCampaign201Response
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **ad_account_id** | **String** | | [optional] |
8
+ | **campaign_id** | **String** | Platform id of the new campaign | [optional] |
9
+ | **objective** | **String** | Resolved ODAX objective (e.g. OUTCOME_SALES). | [optional] |
10
+ | **status** | **String** | | [optional] |
11
+
12
+ ## Example
13
+
14
+ ```ruby
15
+ require 'zernio-sdk'
16
+
17
+ instance = Zernio::CreateAdCampaign201Response.new(
18
+ ad_account_id: null,
19
+ campaign_id: null,
20
+ objective: null,
21
+ status: null
22
+ )
23
+ ```
24
+
@@ -0,0 +1,32 @@
1
+ # Zernio::CreateAdCampaignRequest
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **account_id** | **String** | Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token. | |
8
+ | **ad_account_id** | **String** | Meta ad account id (act_<n>). | |
9
+ | **name** | **String** | | |
10
+ | **goal** | **String** | Mapped to the ODAX objective (same mapping as POST /v1/ads/create). | |
11
+ | **special_ad_categories** | **Array<String>** | | [optional] |
12
+ | **budget_amount** | **Float** | Campaign-level (CBO) budget in whole currency units. Requires budgetType. | [optional] |
13
+ | **budget_type** | **String** | | [optional] |
14
+ | **status** | **String** | | [optional][default to 'PAUSED'] |
15
+
16
+ ## Example
17
+
18
+ ```ruby
19
+ require 'zernio-sdk'
20
+
21
+ instance = Zernio::CreateAdCampaignRequest.new(
22
+ account_id: null,
23
+ ad_account_id: null,
24
+ name: null,
25
+ goal: null,
26
+ special_ad_categories: null,
27
+ budget_amount: null,
28
+ budget_type: null,
29
+ status: null
30
+ )
31
+ ```
32
+
@@ -0,0 +1,20 @@
1
+ # Zernio::CreateAdCreative201Response
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **ad_account_id** | **String** | | [optional] |
8
+ | **creative_id** | **String** | Platform creative id, reusable via existingCreativeId. | [optional] |
9
+
10
+ ## Example
11
+
12
+ ```ruby
13
+ require 'zernio-sdk'
14
+
15
+ instance = Zernio::CreateAdCreative201Response.new(
16
+ ad_account_id: null,
17
+ creative_id: null
18
+ )
19
+ ```
20
+
@@ -0,0 +1,40 @@
1
+ # Zernio::CreateAdCreativeRequest
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **account_id** | **String** | Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token and Page. | |
8
+ | **ad_account_id** | **String** | Meta ad account id (act_<n>). | |
9
+ | **headline** | **String** | | |
10
+ | **body** | **String** | Primary text | |
11
+ | **description** | **String** | Link description below the headline; omitted = Meta scrapes the destination's OG description. | [optional] |
12
+ | **call_to_action** | **String** | CTA type (same whitelist as POST /v1/ads/create). | [optional][default to 'LEARN_MORE'] |
13
+ | **link_url** | **String** | | |
14
+ | **image_url** | **String** | Publicly reachable image; uploaded to the account's library server-side. | [optional] |
15
+ | **image_hash** | **String** | Existing library image hash (POST /v1/ads/images or GET /v1/ads/images). | [optional] |
16
+ | **carousel_cards** | [**Array<CreateAdCreativeRequestCarouselCardsInner>**](CreateAdCreativeRequestCarouselCardsInner.md) | | [optional] |
17
+ | **url_tags** | **String** | Appended to every outbound URL (e.g. utm_source=fb). | [optional] |
18
+ | **creative_features** | **Hash<String, String>** | Advantage+ creative enhancements: partial map of Meta creative feature keys (snake_case) to enroll status, forwarded as degrees_of_freedom_spec.creative_features_spec. Unspecified features default to OPT_OUT. | [optional] |
19
+
20
+ ## Example
21
+
22
+ ```ruby
23
+ require 'zernio-sdk'
24
+
25
+ instance = Zernio::CreateAdCreativeRequest.new(
26
+ account_id: null,
27
+ ad_account_id: null,
28
+ headline: null,
29
+ body: null,
30
+ description: null,
31
+ call_to_action: null,
32
+ link_url: null,
33
+ image_url: null,
34
+ image_hash: null,
35
+ carousel_cards: null,
36
+ url_tags: null,
37
+ creative_features: null
38
+ )
39
+ ```
40
+
@@ -0,0 +1,26 @@
1
+ # Zernio::CreateAdCreativeRequestCarouselCardsInner
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **image_url** | **String** | | |
8
+ | **link_url** | **String** | | |
9
+ | **headline** | **String** | | [optional] |
10
+ | **description** | **String** | | [optional] |
11
+ | **call_to_action** | **String** | | [optional] |
12
+
13
+ ## Example
14
+
15
+ ```ruby
16
+ require 'zernio-sdk'
17
+
18
+ instance = Zernio::CreateAdCreativeRequestCarouselCardsInner.new(
19
+ image_url: null,
20
+ link_url: null,
21
+ headline: null,
22
+ description: null,
23
+ call_to_action: null
24
+ )
25
+ ```
26
+
@@ -0,0 +1,22 @@
1
+ # Zernio::CreateSmsSenderId200Response
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **id** | **String** | Sender ID resource id. | [optional] |
8
+ | **sender_id** | **String** | | [optional] |
9
+ | **is_active** | **Boolean** | | [optional] |
10
+
11
+ ## Example
12
+
13
+ ```ruby
14
+ require 'zernio-sdk'
15
+
16
+ instance = Zernio::CreateSmsSenderId200Response.new(
17
+ id: null,
18
+ sender_id: null,
19
+ is_active: null
20
+ )
21
+ ```
22
+
@@ -0,0 +1,18 @@
1
+ # Zernio::CreateSmsSenderIdRequest
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **sender_id** | **String** | The sender ID recipients will see (3-11 letters/digits/spaces, at least one letter, no leading/trailing space). | |
8
+
9
+ ## Example
10
+
11
+ ```ruby
12
+ require 'zernio-sdk'
13
+
14
+ instance = Zernio::CreateSmsSenderIdRequest.new(
15
+ sender_id: null
16
+ )
17
+ ```
18
+
@@ -0,0 +1,22 @@
1
+ # Zernio::CreateStandaloneAd200Response
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **validate_only** | **Boolean** | | [optional] |
8
+ | **results** | [**Array<CreateStandaloneAd200ResponseResultsInner>**](CreateStandaloneAd200ResponseResultsInner.md) | | [optional] |
9
+ | **message** | **String** | | [optional] |
10
+
11
+ ## Example
12
+
13
+ ```ruby
14
+ require 'zernio-sdk'
15
+
16
+ instance = Zernio::CreateStandaloneAd200Response.new(
17
+ validate_only: null,
18
+ results: null,
19
+ message: null
20
+ )
21
+ ```
22
+
@@ -0,0 +1,22 @@
1
+ # Zernio::CreateStandaloneAd200ResponseResultsInner
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **node** | **String** | | [optional] |
8
+ | **status** | **String** | | [optional] |
9
+ | **reason** | **String** | Why the node could not be validated (only on skipped). | [optional] |
10
+
11
+ ## Example
12
+
13
+ ```ruby
14
+ require 'zernio-sdk'
15
+
16
+ instance = Zernio::CreateStandaloneAd200ResponseResultsInner.new(
17
+ node: null,
18
+ status: null,
19
+ reason: null
20
+ )
21
+ ```
22
+
@@ -16,6 +16,8 @@
16
16
  | **billing_event** | **String** | Meta only. Explicit ad-set `billing_event`. Defaults to `IMPRESSIONS`. Forwarded verbatim to Meta, which validates compatibility with the optimization goal. | [optional] |
17
17
  | **buying_type** | **String** | Meta only. RESERVED = Reach & Frequency: requires `rfPredictionId` (a RESERVED prediction from /v1/ads/rf-predictions + /reserve). Budget, schedule and pricing come from the reservation, so budgetAmount/budgetType are not required and bid fields are ignored. Only the plain single-ad shape (no creatives[], adSetId, existingCampaignId or dynamicCreative). | [optional] |
18
18
  | **rf_prediction_id** | **String** | Meta only. The RESERVED prediction id the R&F ad set runs on (reserving mints a new id — pass that one). Requires buyingType RESERVED. | [optional] |
19
+ | **creative_features** | **Hash<String, String>** | Meta only. Advantage+ creative enhancements: a partial map of Meta creative feature keys (snake_case, e.g. enhance_cta, image_brightness_and_contrast, text_optimizations) to enroll status, forwarded as degrees_of_freedom_spec.creative_features_spec. Meta validates the keys; unspecified features default to OPT_OUT. The legacy standard_enhancements bundle is deprecated by Meta and rejected. | [optional] |
20
+ | **validate_only** | **Boolean** | Meta only, single standalone shape only (no creatives[], adSetId, or RESERVED). Dry-run: each node runs Meta's execution_options validate_only and NOTHING is created or persisted. Children need real parents, so a fresh tree validates the campaign + creative (the ad set needs its campaign to exist — pass existingCampaignId to validate it too; the ad itself is never validatable pre-create). A Meta validation failure returns the 400 verbatim; success returns 200 with per-node results instead of an ad. | [optional] |
19
21
  | **budget_amount** | **Float** | Required on legacy + multi-creative shapes. Inherited on attach. | [optional] |
20
22
  | **budget_type** | **String** | Required on legacy + multi-creative shapes. Inherited on attach. | [optional] |
21
23
  | **status** | **String** | Meta and TikTok. Publish state of the created entities. Omitted or ACTIVE publishes live (default, back-compat); PAUSED creates them paused and skips activation, so you can review before they spend. On TikTok the whole campaign > ad group > ad hierarchy stays paused. | [optional] |
@@ -97,6 +99,8 @@ instance = Zernio::CreateStandaloneAdRequest.new(
97
99
  billing_event: null,
98
100
  buying_type: null,
99
101
  rf_prediction_id: null,
102
+ creative_features: null,
103
+ validate_only: null,
100
104
  budget_amount: null,
101
105
  budget_type: null,
102
106
  status: null,
@@ -0,0 +1,20 @@
1
+ # Zernio::DeleteAdCreative200Response
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **creative_id** | **String** | | [optional] |
8
+ | **message** | **String** | | [optional] |
9
+
10
+ ## Example
11
+
12
+ ```ruby
13
+ require 'zernio-sdk'
14
+
15
+ instance = Zernio::DeleteAdCreative200Response.new(
16
+ creative_id: null,
17
+ message: null
18
+ )
19
+ ```
20
+
@@ -0,0 +1,18 @@
1
+ # Zernio::DeleteSmsSenderId200Response
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **deleted** | **Boolean** | | [optional] |
8
+
9
+ ## Example
10
+
11
+ ```ruby
12
+ require 'zernio-sdk'
13
+
14
+ instance = Zernio::DeleteSmsSenderId200Response.new(
15
+ deleted: null
16
+ )
17
+ ```
18
+
data/docs/DiscordApi.md CHANGED
@@ -14,6 +14,7 @@ All URIs are relative to *https://zernio.com/api*
14
14
  | [**delete_discord_scheduled_event**](DiscordApi.md#delete_discord_scheduled_event) | **DELETE** /v1/discord/guilds/{guildId}/events/{eventId} | Delete a Discord scheduled event |
15
15
  | [**edit_discord_guild_role**](DiscordApi.md#edit_discord_guild_role) | **PATCH** /v1/discord/guilds/{guildId}/roles/{roleId} | Edit a Discord guild role |
16
16
  | [**get_discord_channels**](DiscordApi.md#get_discord_channels) | **GET** /v1/accounts/{accountId}/discord-channels | List Discord guild channels |
17
+ | [**get_discord_guild_member**](DiscordApi.md#get_discord_guild_member) | **GET** /v1/discord/guilds/{guildId}/members/{userId} | Get a Discord guild member |
17
18
  | [**get_discord_scheduled_event**](DiscordApi.md#get_discord_scheduled_event) | **GET** /v1/discord/guilds/{guildId}/events/{eventId} | Get a Discord scheduled event |
18
19
  | [**get_discord_settings**](DiscordApi.md#get_discord_settings) | **GET** /v1/accounts/{accountId}/discord-settings | Get Discord account settings |
19
20
  | [**list_discord_guild_members**](DiscordApi.md#list_discord_guild_members) | **GET** /v1/discord/guilds/{guildId}/members | List Discord guild members |
@@ -22,6 +23,7 @@ All URIs are relative to *https://zernio.com/api*
22
23
  | [**list_discord_scheduled_events**](DiscordApi.md#list_discord_scheduled_events) | **GET** /v1/discord/guilds/{guildId}/events | List Discord scheduled events |
23
24
  | [**pin_discord_message**](DiscordApi.md#pin_discord_message) | **PUT** /v1/discord/channels/{channelId}/pins/{messageId} | Pin a Discord message |
24
25
  | [**remove_discord_member_role**](DiscordApi.md#remove_discord_member_role) | **DELETE** /v1/discord/guilds/{guildId}/members/{userId}/roles/{roleId} | Remove a role from a guild member |
26
+ | [**search_discord_guild_members**](DiscordApi.md#search_discord_guild_members) | **GET** /v1/discord/guilds/{guildId}/members/search | Search Discord guild members |
25
27
  | [**send_discord_direct_message**](DiscordApi.md#send_discord_direct_message) | **POST** /v1/discord/dms | Send a Discord Direct Message |
26
28
  | [**unpin_discord_message**](DiscordApi.md#unpin_discord_message) | **DELETE** /v1/discord/channels/{channelId}/pins/{messageId} | Unpin a Discord message |
27
29
  | [**update_discord_scheduled_event**](DiscordApi.md#update_discord_scheduled_event) | **PATCH** /v1/discord/guilds/{guildId}/events/{eventId} | Update a Discord scheduled event |
@@ -756,6 +758,79 @@ end
756
758
  - **Accept**: application/json
757
759
 
758
760
 
761
+ ## get_discord_guild_member
762
+
763
+ > <GetDiscordGuildMember200Response> get_discord_guild_member(guild_id, user_id, account_id)
764
+
765
+ Get a Discord guild member
766
+
767
+ 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.
768
+
769
+ ### Examples
770
+
771
+ ```ruby
772
+ require 'time'
773
+ require 'zernio-sdk'
774
+ # setup authorization
775
+ Zernio.configure do |config|
776
+ # Configure Bearer authorization (JWT): bearerAuth
777
+ config.access_token = 'YOUR_BEARER_TOKEN'
778
+ end
779
+
780
+ api_instance = Zernio::DiscordApi.new
781
+ guild_id = 'guild_id_example' # String |
782
+ user_id = 'user_id_example' # String | Discord user snowflake.
783
+ account_id = 'account_id_example' # String |
784
+
785
+ begin
786
+ # Get a Discord guild member
787
+ result = api_instance.get_discord_guild_member(guild_id, user_id, account_id)
788
+ p result
789
+ rescue Zernio::ApiError => e
790
+ puts "Error when calling DiscordApi->get_discord_guild_member: #{e}"
791
+ end
792
+ ```
793
+
794
+ #### Using the get_discord_guild_member_with_http_info variant
795
+
796
+ This returns an Array which contains the response data, status code and headers.
797
+
798
+ > <Array(<GetDiscordGuildMember200Response>, Integer, Hash)> get_discord_guild_member_with_http_info(guild_id, user_id, account_id)
799
+
800
+ ```ruby
801
+ begin
802
+ # Get a Discord guild member
803
+ data, status_code, headers = api_instance.get_discord_guild_member_with_http_info(guild_id, user_id, account_id)
804
+ p status_code # => 2xx
805
+ p headers # => { ... }
806
+ p data # => <GetDiscordGuildMember200Response>
807
+ rescue Zernio::ApiError => e
808
+ puts "Error when calling DiscordApi->get_discord_guild_member_with_http_info: #{e}"
809
+ end
810
+ ```
811
+
812
+ ### Parameters
813
+
814
+ | Name | Type | Description | Notes |
815
+ | ---- | ---- | ----------- | ----- |
816
+ | **guild_id** | **String** | | |
817
+ | **user_id** | **String** | Discord user snowflake. | |
818
+ | **account_id** | **String** | | |
819
+
820
+ ### Return type
821
+
822
+ [**GetDiscordGuildMember200Response**](GetDiscordGuildMember200Response.md)
823
+
824
+ ### Authorization
825
+
826
+ [bearerAuth](../README.md#bearerAuth)
827
+
828
+ ### HTTP request headers
829
+
830
+ - **Content-Type**: Not defined
831
+ - **Accept**: application/json
832
+
833
+
759
834
  ## get_discord_scheduled_event
760
835
 
761
836
  > <CreateDiscordScheduledEvent200Response> get_discord_scheduled_event(guild_id, event_id, account_id)
@@ -902,7 +977,7 @@ end
902
977
 
903
978
  List Discord guild members
904
979
 
905
- 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.
980
+ 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.
906
981
 
907
982
  ### Examples
908
983
 
@@ -1338,6 +1413,83 @@ end
1338
1413
  - **Accept**: application/json
1339
1414
 
1340
1415
 
1416
+ ## search_discord_guild_members
1417
+
1418
+ > <SearchDiscordGuildMembers200Response> search_discord_guild_members(guild_id, account_id, query, opts)
1419
+
1420
+ Search Discord guild members
1421
+
1422
+ 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.
1423
+
1424
+ ### Examples
1425
+
1426
+ ```ruby
1427
+ require 'time'
1428
+ require 'zernio-sdk'
1429
+ # setup authorization
1430
+ Zernio.configure do |config|
1431
+ # Configure Bearer authorization (JWT): bearerAuth
1432
+ config.access_token = 'YOUR_BEARER_TOKEN'
1433
+ end
1434
+
1435
+ api_instance = Zernio::DiscordApi.new
1436
+ guild_id = 'guild_id_example' # String |
1437
+ account_id = 'account_id_example' # String |
1438
+ query = 'query_example' # String | Username or nickname prefix to match.
1439
+ opts = {
1440
+ limit: 56 # Integer |
1441
+ }
1442
+
1443
+ begin
1444
+ # Search Discord guild members
1445
+ result = api_instance.search_discord_guild_members(guild_id, account_id, query, opts)
1446
+ p result
1447
+ rescue Zernio::ApiError => e
1448
+ puts "Error when calling DiscordApi->search_discord_guild_members: #{e}"
1449
+ end
1450
+ ```
1451
+
1452
+ #### Using the search_discord_guild_members_with_http_info variant
1453
+
1454
+ This returns an Array which contains the response data, status code and headers.
1455
+
1456
+ > <Array(<SearchDiscordGuildMembers200Response>, Integer, Hash)> search_discord_guild_members_with_http_info(guild_id, account_id, query, opts)
1457
+
1458
+ ```ruby
1459
+ begin
1460
+ # Search Discord guild members
1461
+ data, status_code, headers = api_instance.search_discord_guild_members_with_http_info(guild_id, account_id, query, opts)
1462
+ p status_code # => 2xx
1463
+ p headers # => { ... }
1464
+ p data # => <SearchDiscordGuildMembers200Response>
1465
+ rescue Zernio::ApiError => e
1466
+ puts "Error when calling DiscordApi->search_discord_guild_members_with_http_info: #{e}"
1467
+ end
1468
+ ```
1469
+
1470
+ ### Parameters
1471
+
1472
+ | Name | Type | Description | Notes |
1473
+ | ---- | ---- | ----------- | ----- |
1474
+ | **guild_id** | **String** | | |
1475
+ | **account_id** | **String** | | |
1476
+ | **query** | **String** | Username or nickname prefix to match. | |
1477
+ | **limit** | **Integer** | | [optional][default to 25] |
1478
+
1479
+ ### Return type
1480
+
1481
+ [**SearchDiscordGuildMembers200Response**](SearchDiscordGuildMembers200Response.md)
1482
+
1483
+ ### Authorization
1484
+
1485
+ [bearerAuth](../README.md#bearerAuth)
1486
+
1487
+ ### HTTP request headers
1488
+
1489
+ - **Content-Type**: Not defined
1490
+ - **Accept**: application/json
1491
+
1492
+
1341
1493
  ## send_discord_direct_message
1342
1494
 
1343
1495
  > <SendDiscordDirectMessage200Response> send_discord_direct_message(send_discord_direct_message_request)
@@ -1,10 +1,10 @@
1
- # Zernio::ListDiscordGuildMembers200ResponseDataInner
1
+ # Zernio::DiscordGuildMember
2
2
 
3
3
  ## Properties
4
4
 
5
5
  | Name | Type | Description | Notes |
6
6
  | ---- | ---- | ----------- | ----- |
7
- | **user** | [**ListDiscordGuildMembers200ResponseDataInnerUser**](ListDiscordGuildMembers200ResponseDataInnerUser.md) | | [optional] |
7
+ | **user** | [**DiscordGuildMemberUser**](DiscordGuildMemberUser.md) | | [optional] |
8
8
  | **nick** | **String** | Guild-specific nickname | [optional] |
9
9
  | **roles** | **Array&lt;String&gt;** | Snowflake IDs of roles assigned to this member | [optional] |
10
10
  | **joined_at** | **Time** | | [optional] |
@@ -15,7 +15,7 @@
15
15
  ```ruby
16
16
  require 'zernio-sdk'
17
17
 
18
- instance = Zernio::ListDiscordGuildMembers200ResponseDataInner.new(
18
+ instance = Zernio::DiscordGuildMember.new(
19
19
  user: null,
20
20
  nick: null,
21
21
  roles: null,
@@ -1,4 +1,4 @@
1
- # Zernio::ListDiscordGuildMembers200ResponseDataInnerUser
1
+ # Zernio::DiscordGuildMemberUser
2
2
 
3
3
  ## Properties
4
4
 
@@ -15,7 +15,7 @@
15
15
  ```ruby
16
16
  require 'zernio-sdk'
17
17
 
18
- instance = Zernio::ListDiscordGuildMembers200ResponseDataInnerUser.new(
18
+ instance = Zernio::DiscordGuildMemberUser.new(
19
19
  id: null,
20
20
  username: null,
21
21
  discriminator: null,
@@ -0,0 +1,22 @@
1
+ # Zernio::DuplicateAd200Response
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **copied_ad_id** | **String** | Platform ID of the new ad | [optional] |
8
+ | **discovery** | **String** | | [optional] |
9
+ | **raw** | **Object** | | [optional] |
10
+
11
+ ## Example
12
+
13
+ ```ruby
14
+ require 'zernio-sdk'
15
+
16
+ instance = Zernio::DuplicateAd200Response.new(
17
+ copied_ad_id: null,
18
+ discovery: null,
19
+ raw: null
20
+ )
21
+ ```
22
+
@@ -0,0 +1,28 @@
1
+ # Zernio::DuplicateAdRequest
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **ad_set_id** | **String** | Destination platform ad set id (defaults to the source&#39;s ad set) | [optional] |
8
+ | **status_option** | **String** | | [optional][default to &#39;PAUSED&#39;] |
9
+ | **rename_strategy** | **String** | | [optional] |
10
+ | **rename_prefix** | **String** | | [optional] |
11
+ | **rename_suffix** | **String** | | [optional] |
12
+ | **sync_after** | **Boolean** | | [optional][default to true] |
13
+
14
+ ## Example
15
+
16
+ ```ruby
17
+ require 'zernio-sdk'
18
+
19
+ instance = Zernio::DuplicateAdRequest.new(
20
+ ad_set_id: null,
21
+ status_option: null,
22
+ rename_strategy: null,
23
+ rename_prefix: null,
24
+ rename_suffix: null,
25
+ sync_after: null
26
+ )
27
+ ```
28
+
@@ -0,0 +1,22 @@
1
+ # Zernio::DuplicateAdSet200Response
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **copied_ad_set_id** | **String** | Platform ID of the new ad set | [optional] |
8
+ | **discovery** | **String** | | [optional] |
9
+ | **raw** | **Object** | Meta&#39;s native copy response (includes ad_object_ids for child copies) | [optional] |
10
+
11
+ ## Example
12
+
13
+ ```ruby
14
+ require 'zernio-sdk'
15
+
16
+ instance = Zernio::DuplicateAdSet200Response.new(
17
+ copied_ad_set_id: null,
18
+ discovery: null,
19
+ raw: null
20
+ )
21
+ ```
22
+
@@ -0,0 +1,36 @@
1
+ # Zernio::DuplicateAdSetRequest
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **platform** | **String** | | |
8
+ | **campaign_id** | **String** | Destination platform campaign id (defaults to the source&#39;s campaign) | [optional] |
9
+ | **deep_copy** | **Boolean** | Copy child ads + creatives | [optional][default to true] |
10
+ | **status_option** | **String** | | [optional][default to &#39;PAUSED&#39;] |
11
+ | **start_time** | **Time** | Reschedule the copy&#39;s start time | [optional] |
12
+ | **end_time** | **Time** | | [optional] |
13
+ | **rename_strategy** | **String** | | [optional] |
14
+ | **rename_prefix** | **String** | | [optional] |
15
+ | **rename_suffix** | **String** | | [optional] |
16
+ | **sync_after** | **Boolean** | | [optional][default to true] |
17
+
18
+ ## Example
19
+
20
+ ```ruby
21
+ require 'zernio-sdk'
22
+
23
+ instance = Zernio::DuplicateAdSetRequest.new(
24
+ platform: null,
25
+ campaign_id: null,
26
+ deep_copy: null,
27
+ status_option: null,
28
+ start_time: null,
29
+ end_time: null,
30
+ rename_strategy: null,
31
+ rename_prefix: null,
32
+ rename_suffix: null,
33
+ sync_after: null
34
+ )
35
+ ```
36
+
@@ -0,0 +1,18 @@
1
+ # Zernio::GetAdCreative200Response
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **creative** | **Object** | Raw Meta creative node | [optional] |
8
+
9
+ ## Example
10
+
11
+ ```ruby
12
+ require 'zernio-sdk'
13
+
14
+ instance = Zernio::GetAdCreative200Response.new(
15
+ creative: null
16
+ )
17
+ ```
18
+
@@ -0,0 +1,18 @@
1
+ # Zernio::GetDiscordGuildMember200Response
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **data** | [**DiscordGuildMember**](DiscordGuildMember.md) | | [optional] |
8
+
9
+ ## Example
10
+
11
+ ```ruby
12
+ require 'zernio-sdk'
13
+
14
+ instance = Zernio::GetDiscordGuildMember200Response.new(
15
+ data: null
16
+ )
17
+ ```
18
+