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
data/docs/WhatsAppApi.md CHANGED
@@ -20,6 +20,7 @@ All URIs are relative to *https://zernio.com/api*
20
20
  | [**get_whats_app_dataset**](WhatsAppApi.md#get_whats_app_dataset) | **GET** /v1/whatsapp/dataset | Get CTWA conversions dataset |
21
21
  | [**get_whats_app_display_name**](WhatsAppApi.md#get_whats_app_display_name) | **GET** /v1/whatsapp/business-profile/display-name | Get display name status |
22
22
  | [**get_whats_app_group_chat**](WhatsAppApi.md#get_whats_app_group_chat) | **GET** /v1/whatsapp/wa-groups/{groupId} | Get group info |
23
+ | [**get_whats_app_media**](WhatsAppApi.md#get_whats_app_media) | **GET** /v1/whatsapp/media/{mediaId} | Download WhatsApp media |
23
24
  | [**get_whats_app_template**](WhatsAppApi.md#get_whats_app_template) | **GET** /v1/whatsapp/templates/{templateName} | Get template |
24
25
  | [**get_whats_app_templates**](WhatsAppApi.md#get_whats_app_templates) | **GET** /v1/whatsapp/templates | List templates |
25
26
  | [**get_whatsapp_business_username**](WhatsAppApi.md#get_whatsapp_business_username) | **GET** /v1/whatsapp/business-profile/username | Get business username |
@@ -1167,6 +1168,77 @@ end
1167
1168
  - **Accept**: application/json
1168
1169
 
1169
1170
 
1171
+ ## get_whats_app_media
1172
+
1173
+ > File get_whats_app_media(media_id, account_id)
1174
+
1175
+ Download WhatsApp media
1176
+
1177
+ Streams the binary for a WhatsApp attachment. This is the endpoint the `url` on a WhatsApp `attachments[]` entry points at, in both the `message.received` webhook and the List messages response. **This is an authenticated endpoint, not a public link.** Send `Authorization: Bearer <your API key>` exactly as you would for any other call. Passing the URL straight to a browser, an LLM vision API, or a no-code \"download file\" step without the header returns `401`. This is the most common integration mistake on this endpoint, and it differs from Instagram, Facebook and Telegram, whose `attachments[].url` is a direct CDN link that needs no header. **Fetch on receipt, not lazily.** WhatsApp media lives in Meta's media store, not ours, and it is removed after a limited retention window (currently 7 days, and Meta has been dropping some inbound media sooner). Once Meta drops it the media is unrecoverable and this endpoint answers `400` permanently, so retrying will never succeed. Download and store the bytes when the webhook arrives.
1178
+
1179
+ ### Examples
1180
+
1181
+ ```ruby
1182
+ require 'time'
1183
+ require 'zernio-sdk'
1184
+ # setup authorization
1185
+ Zernio.configure do |config|
1186
+ # Configure Bearer authorization (JWT): bearerAuth
1187
+ config.access_token = 'YOUR_BEARER_TOKEN'
1188
+ end
1189
+
1190
+ api_instance = Zernio::WhatsAppApi.new
1191
+ media_id = 'media_id_example' # String | The media id from `attachments[].payload.id`.
1192
+ account_id = 'account_id_example' # String | The WhatsApp account that received the media.
1193
+
1194
+ begin
1195
+ # Download WhatsApp media
1196
+ result = api_instance.get_whats_app_media(media_id, account_id)
1197
+ p result
1198
+ rescue Zernio::ApiError => e
1199
+ puts "Error when calling WhatsAppApi->get_whats_app_media: #{e}"
1200
+ end
1201
+ ```
1202
+
1203
+ #### Using the get_whats_app_media_with_http_info variant
1204
+
1205
+ This returns an Array which contains the response data, status code and headers.
1206
+
1207
+ > <Array(File, Integer, Hash)> get_whats_app_media_with_http_info(media_id, account_id)
1208
+
1209
+ ```ruby
1210
+ begin
1211
+ # Download WhatsApp media
1212
+ data, status_code, headers = api_instance.get_whats_app_media_with_http_info(media_id, account_id)
1213
+ p status_code # => 2xx
1214
+ p headers # => { ... }
1215
+ p data # => File
1216
+ rescue Zernio::ApiError => e
1217
+ puts "Error when calling WhatsAppApi->get_whats_app_media_with_http_info: #{e}"
1218
+ end
1219
+ ```
1220
+
1221
+ ### Parameters
1222
+
1223
+ | Name | Type | Description | Notes |
1224
+ | ---- | ---- | ----------- | ----- |
1225
+ | **media_id** | **String** | The media id from &#x60;attachments[].payload.id&#x60;. | |
1226
+ | **account_id** | **String** | The WhatsApp account that received the media. | |
1227
+
1228
+ ### Return type
1229
+
1230
+ **File**
1231
+
1232
+ ### Authorization
1233
+
1234
+ [bearerAuth](../README.md#bearerAuth)
1235
+
1236
+ ### HTTP request headers
1237
+
1238
+ - **Content-Type**: Not defined
1239
+ - **Accept**: application/octet-stream, application/json
1240
+
1241
+
1170
1242
  ## get_whats_app_template
1171
1243
 
1172
1244
  > <GetWhatsAppTemplate200Response> get_whats_app_template(template_name, account_id)
@@ -372,8 +372,8 @@ module Zernio
372
372
  return data, status_code, headers
373
373
  end
374
374
 
375
- # Update saved targeting audience
376
- # 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.
375
+ # Update an audience
376
+ # 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.
377
377
  # @param audience_id [String]
378
378
  # @param update_ad_audience_request [UpdateAdAudienceRequest]
379
379
  # @param [Hash] opts the optional parameters
@@ -383,8 +383,8 @@ module Zernio
383
383
  data
384
384
  end
385
385
 
386
- # Update saved targeting audience
387
- # Update a &#x60;saved_targeting&#x60; audience&#39;s name, description, or spec. Only &#x60;saved_targeting&#x60; audiences are updatable (they exist only on Zernio); uploaded/derived audiences return 422, delete and recreate those instead. &#x60;spec&#x60; replaces the stored spec wholesale (no merge). Ads already created from this audience are unaffected, they snapshot the targeting at creation.
386
+ # Update an audience
387
+ # Update an audience. &#x60;saved_targeting&#x60; audiences accept &#x60;name&#x60;, &#x60;description&#x60;, and &#x60;spec&#x60; (full replacement, no merge, Zernio-only, no platform call). Platform audiences (uploaded/website/lookalike) accept &#x60;name&#x60; and &#x60;description&#x60; only, updated on the platform first and then mirrored locally; their rules are immutable, so &#x60;spec&#x60; 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.
388
388
  # @param audience_id [String]
389
389
  # @param update_ad_audience_request [UpdateAdAudienceRequest]
390
390
  # @param [Hash] opts the optional parameters
@@ -87,6 +87,74 @@ module Zernio
87
87
  return data, status_code, headers
88
88
  end
89
89
 
90
+ # Create a standalone campaign (Meta)
91
+ # 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.
92
+ # @param create_ad_campaign_request [CreateAdCampaignRequest]
93
+ # @param [Hash] opts the optional parameters
94
+ # @return [CreateAdCampaign201Response]
95
+ def create_ad_campaign(create_ad_campaign_request, opts = {})
96
+ data, _status_code, _headers = create_ad_campaign_with_http_info(create_ad_campaign_request, opts)
97
+ data
98
+ end
99
+
100
+ # Create a standalone campaign (Meta)
101
+ # Creates a campaign WITHOUT its first ad set / ad (the ODAX shell only). Ad sets join it later via &#x60;existingCampaignId&#x60; 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 &#x60;PAUSED&#x60; unless &#x60;status: ACTIVE&#x60;. The campaign materializes in &#x60;/v1/ads/tree&#x60; via the next sync discovery pass. Meta only.
102
+ # @param create_ad_campaign_request [CreateAdCampaignRequest]
103
+ # @param [Hash] opts the optional parameters
104
+ # @return [Array<(CreateAdCampaign201Response, Integer, Hash)>] CreateAdCampaign201Response data, response status code and response headers
105
+ def create_ad_campaign_with_http_info(create_ad_campaign_request, opts = {})
106
+ if @api_client.config.debugging
107
+ @api_client.config.logger.debug 'Calling API: AdCampaignsApi.create_ad_campaign ...'
108
+ end
109
+ # verify the required parameter 'create_ad_campaign_request' is set
110
+ if @api_client.config.client_side_validation && create_ad_campaign_request.nil?
111
+ fail ArgumentError, "Missing the required parameter 'create_ad_campaign_request' when calling AdCampaignsApi.create_ad_campaign"
112
+ end
113
+ # resource path
114
+ local_var_path = '/v1/ads/campaigns'
115
+
116
+ # query parameters
117
+ query_params = opts[:query_params] || {}
118
+
119
+ # header parameters
120
+ header_params = opts[:header_params] || {}
121
+ # HTTP header 'Accept' (if needed)
122
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
123
+ # HTTP header 'Content-Type'
124
+ content_type = @api_client.select_header_content_type(['application/json'])
125
+ if !content_type.nil?
126
+ header_params['Content-Type'] = content_type
127
+ end
128
+
129
+ # form parameters
130
+ form_params = opts[:form_params] || {}
131
+
132
+ # http body (model)
133
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(create_ad_campaign_request)
134
+
135
+ # return_type
136
+ return_type = opts[:debug_return_type] || 'CreateAdCampaign201Response'
137
+
138
+ # auth_names
139
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
140
+
141
+ new_options = opts.merge(
142
+ :operation => :"AdCampaignsApi.create_ad_campaign",
143
+ :header_params => header_params,
144
+ :query_params => query_params,
145
+ :form_params => form_params,
146
+ :body => post_body,
147
+ :auth_names => auth_names,
148
+ :return_type => return_type
149
+ )
150
+
151
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
152
+ if @api_client.config.debugging
153
+ @api_client.config.logger.debug "API called: AdCampaignsApi#create_ad_campaign\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
154
+ end
155
+ return data, status_code, headers
156
+ end
157
+
90
158
  # Delete a campaign
91
159
  # 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.
92
160
  # @param campaign_id [String] Platform campaign ID
@@ -235,6 +303,80 @@ module Zernio
235
303
  return data, status_code, headers
236
304
  end
237
305
 
306
+ # Duplicate an ad set (Meta)
307
+ # 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.
308
+ # @param ad_set_id [String] Source platform ad set ID
309
+ # @param duplicate_ad_set_request [DuplicateAdSetRequest]
310
+ # @param [Hash] opts the optional parameters
311
+ # @return [DuplicateAdSet200Response]
312
+ def duplicate_ad_set(ad_set_id, duplicate_ad_set_request, opts = {})
313
+ data, _status_code, _headers = duplicate_ad_set_with_http_info(ad_set_id, duplicate_ad_set_request, opts)
314
+ data
315
+ end
316
+
317
+ # Duplicate an ad set (Meta)
318
+ # Duplicates an ad set, including its ads and creatives by default (&#x60;deepCopy: true&#x60;), via Meta&#39;s native &#x60;POST /{adset-id}/copies&#x60;. The copy is created paused so callers can review before launching. &#x60;campaignId&#x60; retargets the copy into another campaign; omitted &#x3D; the source&#39;s own campaign. The new hierarchy materializes asynchronously — sync discovery is triggered automatically (&#x60;syncAfter: false&#x60; to skip). Meta only.
319
+ # @param ad_set_id [String] Source platform ad set ID
320
+ # @param duplicate_ad_set_request [DuplicateAdSetRequest]
321
+ # @param [Hash] opts the optional parameters
322
+ # @return [Array<(DuplicateAdSet200Response, Integer, Hash)>] DuplicateAdSet200Response data, response status code and response headers
323
+ def duplicate_ad_set_with_http_info(ad_set_id, duplicate_ad_set_request, opts = {})
324
+ if @api_client.config.debugging
325
+ @api_client.config.logger.debug 'Calling API: AdCampaignsApi.duplicate_ad_set ...'
326
+ end
327
+ # verify the required parameter 'ad_set_id' is set
328
+ if @api_client.config.client_side_validation && ad_set_id.nil?
329
+ fail ArgumentError, "Missing the required parameter 'ad_set_id' when calling AdCampaignsApi.duplicate_ad_set"
330
+ end
331
+ # verify the required parameter 'duplicate_ad_set_request' is set
332
+ if @api_client.config.client_side_validation && duplicate_ad_set_request.nil?
333
+ fail ArgumentError, "Missing the required parameter 'duplicate_ad_set_request' when calling AdCampaignsApi.duplicate_ad_set"
334
+ end
335
+ # resource path
336
+ local_var_path = '/v1/ads/ad-sets/{adSetId}/duplicate'.sub('{' + 'adSetId' + '}', CGI.escape(ad_set_id.to_s))
337
+
338
+ # query parameters
339
+ query_params = opts[:query_params] || {}
340
+
341
+ # header parameters
342
+ header_params = opts[:header_params] || {}
343
+ # HTTP header 'Accept' (if needed)
344
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
345
+ # HTTP header 'Content-Type'
346
+ content_type = @api_client.select_header_content_type(['application/json'])
347
+ if !content_type.nil?
348
+ header_params['Content-Type'] = content_type
349
+ end
350
+
351
+ # form parameters
352
+ form_params = opts[:form_params] || {}
353
+
354
+ # http body (model)
355
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(duplicate_ad_set_request)
356
+
357
+ # return_type
358
+ return_type = opts[:debug_return_type] || 'DuplicateAdSet200Response'
359
+
360
+ # auth_names
361
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
362
+
363
+ new_options = opts.merge(
364
+ :operation => :"AdCampaignsApi.duplicate_ad_set",
365
+ :header_params => header_params,
366
+ :query_params => query_params,
367
+ :form_params => form_params,
368
+ :body => post_body,
369
+ :auth_names => auth_names,
370
+ :return_type => return_type
371
+ )
372
+
373
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
374
+ if @api_client.config.debugging
375
+ @api_client.config.logger.debug "API called: AdCampaignsApi#duplicate_ad_set\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
376
+ end
377
+ return data, status_code, headers
378
+ end
379
+
238
380
  # Live ad-set details incl. learning phase (Meta)
239
381
  # 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.
240
382
  # @param ad_set_id [String] Meta ad set id (platformAdSetId).