late-sdk 0.0.900 → 0.0.901

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 (156) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +60 -6
  3. data/docs/AdAccountsApi.md +657 -19
  4. data/docs/AdCampaignsApi.md +521 -9
  5. data/docs/AdCreative.md +6 -0
  6. data/docs/AddAccountCalloutsRequest.md +3 -3
  7. data/docs/AddAccountSitelinks201Response.md +20 -0
  8. data/docs/AddAccountSitelinks201ResponseSitelinksInner.md +26 -0
  9. data/docs/AddAccountSitelinksRequest.md +22 -0
  10. data/docs/AddAccountStructuredSnippets201Response.md +20 -0
  11. data/docs/AddAccountStructuredSnippets201ResponseStructuredSnippetsInner.md +22 -0
  12. data/docs/AddAccountStructuredSnippetsRequest.md +22 -0
  13. data/docs/AttachAdGroupAssets201Response.md +24 -0
  14. data/docs/AttachCampaignAssetsRequest.md +4 -4
  15. data/docs/CreateStandaloneAdRequest.md +4 -4
  16. data/docs/CreateStandaloneAdRequestAdditionalDescriptionsInner.md +49 -0
  17. data/docs/CreateStandaloneAdRequestAdditionalHeadlinesInner.md +49 -0
  18. data/docs/GetAd200Response.md +5 -1
  19. data/docs/GoogleAssetUpdate.md +26 -0
  20. data/docs/GoogleRsaDescription.md +20 -0
  21. data/docs/GoogleRsaHeadline.md +20 -0
  22. data/docs/{AttachCampaignAssetsRequestSitelinksInner.md → GoogleSitelink.md} +2 -2
  23. data/docs/{AttachCampaignAssetsRequestStructuredSnippetsInner.md → GoogleStructuredSnippet.md} +2 -2
  24. data/docs/ListAccountCallouts200Response.md +2 -2
  25. data/docs/ListAccountCallouts200ResponseCalloutsInner.md +3 -3
  26. data/docs/ListAccountSitelinks200Response.md +24 -0
  27. data/docs/ListAccountSitelinks200ResponseSitelinksInner.md +32 -0
  28. data/docs/ListAccountStructuredSnippets200Response.md +24 -0
  29. data/docs/ListAccountStructuredSnippets200ResponseStructuredSnippetsInner.md +28 -0
  30. data/docs/ListAdGroupAssets200Response.md +28 -0
  31. data/docs/ListAdGroupAssets200ResponseCalloutsInner.md +22 -0
  32. data/docs/ListAdGroupAssets200ResponseSitelinksInner.md +28 -0
  33. data/docs/ListAdGroupAssets200ResponseStructuredSnippetsInner.md +24 -0
  34. data/docs/ListCampaignAssets200Response.md +28 -0
  35. data/docs/ListCampaignAssets200ResponseCalloutsInner.md +22 -0
  36. data/docs/ListCampaignAssets200ResponseSitelinksInner.md +28 -0
  37. data/docs/ListCampaignAssets200ResponseStructuredSnippetsInner.md +24 -0
  38. data/docs/RemoveAccountCalloutRequest.md +3 -3
  39. data/docs/RemoveAdGroupAssetsRequest.md +24 -0
  40. data/docs/RemoveCampaignAssets200Response.md +18 -0
  41. data/docs/RemoveCampaignAssetsRequest.md +24 -0
  42. data/docs/UpdateAccountCallouts200Response.md +20 -0
  43. data/docs/UpdateAccountCalloutsRequest.md +22 -0
  44. data/docs/UpdateAccountCalloutsRequestUpdatesInner.md +20 -0
  45. data/docs/UpdateAccountCalloutsRequestUpdatesInnerCalloutAsset.md +18 -0
  46. data/docs/UpdateAccountSitelinksRequest.md +22 -0
  47. data/docs/UpdateAccountSitelinksRequestUpdatesInner.md +22 -0
  48. data/docs/UpdateAccountSitelinksRequestUpdatesInnerSitelinkAsset.md +24 -0
  49. data/docs/UpdateAccountStructuredSnippetsRequest.md +22 -0
  50. data/docs/UpdateAccountStructuredSnippetsRequestUpdatesInner.md +20 -0
  51. data/docs/UpdateAdRequest.md +6 -0
  52. data/docs/UpdateCampaignAssets200Response.md +18 -0
  53. data/docs/UpdateCampaignAssetsRequest.md +22 -0
  54. data/lib/zernio-sdk/api/ad_accounts_api.rb +656 -16
  55. data/lib/zernio-sdk/api/ad_campaigns_api.rb +586 -10
  56. data/lib/zernio-sdk/models/ad_creative.rb +112 -1
  57. data/lib/zernio-sdk/models/add_account_callouts_request.rb +34 -3
  58. data/lib/zernio-sdk/models/add_account_sitelinks201_response.rb +158 -0
  59. data/lib/zernio-sdk/models/add_account_sitelinks201_response_sitelinks_inner.rb +267 -0
  60. data/lib/zernio-sdk/models/add_account_sitelinks_request.rb +253 -0
  61. data/lib/zernio-sdk/models/add_account_structured_snippets201_response.rb +158 -0
  62. data/lib/zernio-sdk/models/add_account_structured_snippets201_response_structured_snippets_inner.rb +229 -0
  63. data/lib/zernio-sdk/models/add_account_structured_snippets_request.rb +253 -0
  64. data/lib/zernio-sdk/models/attach_ad_group_assets201_response.rb +180 -0
  65. data/lib/zernio-sdk/models/attach_campaign_assets_request.rb +37 -5
  66. data/lib/zernio-sdk/models/create_standalone_ad_request.rb +4 -4
  67. data/lib/zernio-sdk/models/create_standalone_ad_request_additional_descriptions_inner.rb +104 -0
  68. data/lib/zernio-sdk/models/create_standalone_ad_request_additional_headlines_inner.rb +104 -0
  69. data/lib/zernio-sdk/models/get_ad200_response.rb +25 -4
  70. data/lib/zernio-sdk/models/google_asset_update.rb +234 -0
  71. data/lib/zernio-sdk/models/google_rsa_description.rb +226 -0
  72. data/lib/zernio-sdk/models/google_rsa_headline.rb +226 -0
  73. data/lib/zernio-sdk/models/{attach_campaign_assets_request_sitelinks_inner.rb → google_sitelink.rb} +3 -3
  74. data/lib/zernio-sdk/models/{attach_campaign_assets_request_structured_snippets_inner.rb → google_structured_snippet.rb} +3 -3
  75. data/lib/zernio-sdk/models/list_account_callouts200_response.rb +2 -2
  76. data/lib/zernio-sdk/models/list_account_callouts200_response_callouts_inner.rb +13 -14
  77. data/lib/zernio-sdk/models/list_account_sitelinks200_response.rb +179 -0
  78. data/lib/zernio-sdk/models/list_account_sitelinks200_response_sitelinks_inner.rb +210 -0
  79. data/lib/zernio-sdk/models/list_account_structured_snippets200_response.rb +179 -0
  80. data/lib/zernio-sdk/models/list_account_structured_snippets200_response_structured_snippets_inner.rb +194 -0
  81. data/lib/zernio-sdk/models/list_ad_group_assets200_response.rb +201 -0
  82. data/lib/zernio-sdk/models/list_ad_group_assets200_response_callouts_inner.rb +165 -0
  83. data/lib/zernio-sdk/models/list_ad_group_assets200_response_sitelinks_inner.rb +192 -0
  84. data/lib/zernio-sdk/models/list_ad_group_assets200_response_structured_snippets_inner.rb +176 -0
  85. data/lib/zernio-sdk/models/list_campaign_assets200_response.rb +201 -0
  86. data/lib/zernio-sdk/models/list_campaign_assets200_response_callouts_inner.rb +165 -0
  87. data/lib/zernio-sdk/models/list_campaign_assets200_response_sitelinks_inner.rb +192 -0
  88. data/lib/zernio-sdk/models/list_campaign_assets200_response_structured_snippets_inner.rb +176 -0
  89. data/lib/zernio-sdk/models/remove_account_callout_request.rb +45 -3
  90. data/lib/zernio-sdk/models/remove_ad_group_assets_request.rb +281 -0
  91. data/lib/zernio-sdk/models/remove_campaign_assets200_response.rb +147 -0
  92. data/lib/zernio-sdk/models/remove_campaign_assets_request.rb +281 -0
  93. data/lib/zernio-sdk/models/update_account_callouts200_response.rb +156 -0
  94. data/lib/zernio-sdk/models/update_account_callouts_request.rb +253 -0
  95. data/lib/zernio-sdk/models/update_account_callouts_request_updates_inner.rb +186 -0
  96. data/lib/zernio-sdk/models/update_account_callouts_request_updates_inner_callout_asset.rb +182 -0
  97. data/lib/zernio-sdk/models/update_account_sitelinks_request.rb +253 -0
  98. data/lib/zernio-sdk/models/update_account_sitelinks_request_updates_inner.rb +216 -0
  99. data/lib/zernio-sdk/models/update_account_sitelinks_request_updates_inner_sitelink_asset.rb +241 -0
  100. data/lib/zernio-sdk/models/update_account_structured_snippets_request.rb +253 -0
  101. data/lib/zernio-sdk/models/update_account_structured_snippets_request_updates_inner.rb +186 -0
  102. data/lib/zernio-sdk/models/update_ad_request.rb +112 -1
  103. data/lib/zernio-sdk/models/update_campaign_assets200_response.rb +147 -0
  104. data/lib/zernio-sdk/models/update_campaign_assets_request.rb +253 -0
  105. data/lib/zernio-sdk/version.rb +1 -1
  106. data/lib/zernio-sdk.rb +40 -2
  107. data/openapi.yaml +2010 -320
  108. data/spec/api/ad_accounts_api_spec.rb +118 -8
  109. data/spec/api/ad_campaigns_api_spec.rb +98 -5
  110. data/spec/models/ad_creative_spec.rb +18 -0
  111. data/spec/models/add_account_sitelinks201_response_sitelinks_inner_spec.rb +60 -0
  112. data/spec/models/add_account_sitelinks201_response_spec.rb +42 -0
  113. data/spec/models/add_account_sitelinks_request_spec.rb +48 -0
  114. data/spec/models/add_account_structured_snippets201_response_spec.rb +42 -0
  115. data/spec/models/add_account_structured_snippets201_response_structured_snippets_inner_spec.rb +52 -0
  116. data/spec/models/add_account_structured_snippets_request_spec.rb +48 -0
  117. data/spec/models/attach_ad_group_assets201_response_spec.rb +54 -0
  118. data/spec/models/create_standalone_ad_request_additional_descriptions_inner_spec.rb +32 -0
  119. data/spec/models/create_standalone_ad_request_additional_headlines_inner_spec.rb +32 -0
  120. data/spec/models/get_ad200_response_spec.rb +12 -0
  121. data/spec/models/google_asset_update_spec.rb +60 -0
  122. data/spec/models/google_rsa_description_spec.rb +46 -0
  123. data/spec/models/google_rsa_headline_spec.rb +46 -0
  124. data/spec/models/{attach_campaign_assets_request_sitelinks_inner_spec.rb → google_sitelink_spec.rb} +6 -6
  125. data/spec/models/{attach_campaign_assets_request_structured_snippets_inner_spec.rb → google_structured_snippet_spec.rb} +6 -6
  126. data/spec/models/list_account_callouts200_response_callouts_inner_spec.rb +2 -2
  127. data/spec/models/list_account_sitelinks200_response_sitelinks_inner_spec.rb +78 -0
  128. data/spec/models/list_account_sitelinks200_response_spec.rb +54 -0
  129. data/spec/models/list_account_structured_snippets200_response_spec.rb +54 -0
  130. data/spec/models/list_account_structured_snippets200_response_structured_snippets_inner_spec.rb +66 -0
  131. data/spec/models/list_ad_group_assets200_response_callouts_inner_spec.rb +48 -0
  132. data/spec/models/list_ad_group_assets200_response_sitelinks_inner_spec.rb +66 -0
  133. data/spec/models/list_ad_group_assets200_response_spec.rb +66 -0
  134. data/spec/models/list_ad_group_assets200_response_structured_snippets_inner_spec.rb +54 -0
  135. data/spec/models/list_campaign_assets200_response_callouts_inner_spec.rb +48 -0
  136. data/spec/models/list_campaign_assets200_response_sitelinks_inner_spec.rb +66 -0
  137. data/spec/models/list_campaign_assets200_response_spec.rb +66 -0
  138. data/spec/models/list_campaign_assets200_response_structured_snippets_inner_spec.rb +54 -0
  139. data/spec/models/remove_ad_group_assets_request_spec.rb +54 -0
  140. data/spec/models/remove_campaign_assets200_response_spec.rb +36 -0
  141. data/spec/models/remove_campaign_assets_request_spec.rb +54 -0
  142. data/spec/models/update_account_callouts200_response_spec.rb +42 -0
  143. data/spec/models/update_account_callouts_request_spec.rb +48 -0
  144. data/spec/models/update_account_callouts_request_updates_inner_callout_asset_spec.rb +36 -0
  145. data/spec/models/update_account_callouts_request_updates_inner_spec.rb +42 -0
  146. data/spec/models/update_account_sitelinks_request_spec.rb +48 -0
  147. data/spec/models/update_account_sitelinks_request_updates_inner_sitelink_asset_spec.rb +54 -0
  148. data/spec/models/update_account_sitelinks_request_updates_inner_spec.rb +48 -0
  149. data/spec/models/update_account_structured_snippets_request_spec.rb +48 -0
  150. data/spec/models/update_account_structured_snippets_request_updates_inner_spec.rb +42 -0
  151. data/spec/models/update_ad_request_spec.rb +18 -0
  152. data/spec/models/update_campaign_assets200_response_spec.rb +36 -0
  153. data/spec/models/update_campaign_assets_request_spec.rb +48 -0
  154. data/zernio-sdk-0.0.901.gem +0 -0
  155. metadata +162 -10
  156. data/zernio-sdk-0.0.900.gem +0 -0
@@ -19,8 +19,8 @@ module Zernio
19
19
  def initialize(api_client = ApiClient.default)
20
20
  @api_client = api_client
21
21
  end
22
- # Add account-level callout extensions
23
- # Creates one asset plus one `customerAsset` link (field type CALLOUT) per callout text, in a single mutate. Google only; every other platform returns 501.
22
+ # Add account callouts
23
+ # Creates assets and customer_asset links for this Google customer. Links apply at account level.
24
24
  # @param add_account_callouts_request [AddAccountCalloutsRequest]
25
25
  # @param [Hash] opts the optional parameters
26
26
  # @return [AddAccountCallouts201Response]
@@ -29,8 +29,8 @@ module Zernio
29
29
  data
30
30
  end
31
31
 
32
- # Add account-level callout extensions
33
- # Creates one asset plus one `customerAsset` link (field type CALLOUT) per callout text, in a single mutate. Google only; every other platform returns 501.
32
+ # Add account callouts
33
+ # Creates assets and customer_asset links for this Google customer. Links apply at account level.
34
34
  # @param add_account_callouts_request [AddAccountCalloutsRequest]
35
35
  # @param [Hash] opts the optional parameters
36
36
  # @return [Array<(AddAccountCallouts201Response, Integer, Hash)>] AddAccountCallouts201Response data, response status code and response headers
@@ -87,6 +87,142 @@ module Zernio
87
87
  return data, status_code, headers
88
88
  end
89
89
 
90
+ # Add account sitelinks
91
+ # Creates assets and customer_asset links for this Google customer. Links apply at account level.
92
+ # @param add_account_sitelinks_request [AddAccountSitelinksRequest]
93
+ # @param [Hash] opts the optional parameters
94
+ # @return [AddAccountSitelinks201Response]
95
+ def add_account_sitelinks(add_account_sitelinks_request, opts = {})
96
+ data, _status_code, _headers = add_account_sitelinks_with_http_info(add_account_sitelinks_request, opts)
97
+ data
98
+ end
99
+
100
+ # Add account sitelinks
101
+ # Creates assets and customer_asset links for this Google customer. Links apply at account level.
102
+ # @param add_account_sitelinks_request [AddAccountSitelinksRequest]
103
+ # @param [Hash] opts the optional parameters
104
+ # @return [Array<(AddAccountSitelinks201Response, Integer, Hash)>] AddAccountSitelinks201Response data, response status code and response headers
105
+ def add_account_sitelinks_with_http_info(add_account_sitelinks_request, opts = {})
106
+ if @api_client.config.debugging
107
+ @api_client.config.logger.debug 'Calling API: AdAccountsApi.add_account_sitelinks ...'
108
+ end
109
+ # verify the required parameter 'add_account_sitelinks_request' is set
110
+ if @api_client.config.client_side_validation && add_account_sitelinks_request.nil?
111
+ fail ArgumentError, "Missing the required parameter 'add_account_sitelinks_request' when calling AdAccountsApi.add_account_sitelinks"
112
+ end
113
+ # resource path
114
+ local_var_path = '/v1/ads/accounts/sitelinks'
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(add_account_sitelinks_request)
134
+
135
+ # return_type
136
+ return_type = opts[:debug_return_type] || 'AddAccountSitelinks201Response'
137
+
138
+ # auth_names
139
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
140
+
141
+ new_options = opts.merge(
142
+ :operation => :"AdAccountsApi.add_account_sitelinks",
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: AdAccountsApi#add_account_sitelinks\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
154
+ end
155
+ return data, status_code, headers
156
+ end
157
+
158
+ # Add account snippets
159
+ # Creates assets and customer_asset links for this Google customer. Links apply at account level.
160
+ # @param add_account_structured_snippets_request [AddAccountStructuredSnippetsRequest]
161
+ # @param [Hash] opts the optional parameters
162
+ # @return [AddAccountStructuredSnippets201Response]
163
+ def add_account_structured_snippets(add_account_structured_snippets_request, opts = {})
164
+ data, _status_code, _headers = add_account_structured_snippets_with_http_info(add_account_structured_snippets_request, opts)
165
+ data
166
+ end
167
+
168
+ # Add account snippets
169
+ # Creates assets and customer_asset links for this Google customer. Links apply at account level.
170
+ # @param add_account_structured_snippets_request [AddAccountStructuredSnippetsRequest]
171
+ # @param [Hash] opts the optional parameters
172
+ # @return [Array<(AddAccountStructuredSnippets201Response, Integer, Hash)>] AddAccountStructuredSnippets201Response data, response status code and response headers
173
+ def add_account_structured_snippets_with_http_info(add_account_structured_snippets_request, opts = {})
174
+ if @api_client.config.debugging
175
+ @api_client.config.logger.debug 'Calling API: AdAccountsApi.add_account_structured_snippets ...'
176
+ end
177
+ # verify the required parameter 'add_account_structured_snippets_request' is set
178
+ if @api_client.config.client_side_validation && add_account_structured_snippets_request.nil?
179
+ fail ArgumentError, "Missing the required parameter 'add_account_structured_snippets_request' when calling AdAccountsApi.add_account_structured_snippets"
180
+ end
181
+ # resource path
182
+ local_var_path = '/v1/ads/accounts/structured-snippets'
183
+
184
+ # query parameters
185
+ query_params = opts[:query_params] || {}
186
+
187
+ # header parameters
188
+ header_params = opts[:header_params] || {}
189
+ # HTTP header 'Accept' (if needed)
190
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
191
+ # HTTP header 'Content-Type'
192
+ content_type = @api_client.select_header_content_type(['application/json'])
193
+ if !content_type.nil?
194
+ header_params['Content-Type'] = content_type
195
+ end
196
+
197
+ # form parameters
198
+ form_params = opts[:form_params] || {}
199
+
200
+ # http body (model)
201
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(add_account_structured_snippets_request)
202
+
203
+ # return_type
204
+ return_type = opts[:debug_return_type] || 'AddAccountStructuredSnippets201Response'
205
+
206
+ # auth_names
207
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
208
+
209
+ new_options = opts.merge(
210
+ :operation => :"AdAccountsApi.add_account_structured_snippets",
211
+ :header_params => header_params,
212
+ :query_params => query_params,
213
+ :form_params => form_params,
214
+ :body => post_body,
215
+ :auth_names => auth_names,
216
+ :return_type => return_type
217
+ )
218
+
219
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
220
+ if @api_client.config.debugging
221
+ @api_client.config.logger.debug "API called: AdAccountsApi#add_account_structured_snippets\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
222
+ end
223
+ return data, status_code, headers
224
+ end
225
+
90
226
  # Create a negative keyword list
91
227
  # Creates one Google Ads shared negative keyword list with optional initial keywords in a single atomic mutation. Daily quota is reserved for every mutate item, so large batches may return 429 before any change. This operation is not idempotent. The list is not attached to any campaign.
92
228
  # @param create_ad_negative_keyword_list_request [CreateAdNegativeKeywordListRequest]
@@ -1351,22 +1487,22 @@ module Zernio
1351
1487
  return data, status_code, headers
1352
1488
  end
1353
1489
 
1354
- # List account-level callout extensions
1355
- # Google Ads compliance row C.75: callout assets linked at the CUSTOMER level via `customer_asset` (not a campaign or ad group), so they serve fleet-wide across the account. Google only; every other platform returns 501. Cached for the quota window (10 minutes fresh, up to 7 days last-good), and gated by the shared Google Ads operations budget on a cache miss. The response carries `cachedAt` and `stale`, set when a quota-exhausted call falls back to the last-good copy instead of a live read.
1356
- # @param account_id [String] Google ads SocialAccount id.
1490
+ # List account callouts
1491
+ # Lists directly attached Google assets. Fresh reads are cached for 10 minutes; exhausted quota may return the last successful read with stale=true. Inherited assets are not included. Preserves Google RMF C.75 account-level callouts.
1492
+ # @param account_id [String]
1357
1493
  # @param [Hash] opts the optional parameters
1358
- # @option opts [String] :customer_id Numeric Google Ads customer id (no dashes). Defaults to the account&#39;s connected customer.
1494
+ # @option opts [String] :customer_id
1359
1495
  # @return [ListAccountCallouts200Response]
1360
1496
  def list_account_callouts(account_id, opts = {})
1361
1497
  data, _status_code, _headers = list_account_callouts_with_http_info(account_id, opts)
1362
1498
  data
1363
1499
  end
1364
1500
 
1365
- # List account-level callout extensions
1366
- # Google Ads compliance row C.75: callout assets linked at the CUSTOMER level via &#x60;customer_asset&#x60; (not a campaign or ad group), so they serve fleet-wide across the account. Google only; every other platform returns 501. Cached for the quota window (10 minutes fresh, up to 7 days last-good), and gated by the shared Google Ads operations budget on a cache miss. The response carries &#x60;cachedAt&#x60; and &#x60;stale&#x60;, set when a quota-exhausted call falls back to the last-good copy instead of a live read.
1367
- # @param account_id [String] Google ads SocialAccount id.
1501
+ # List account callouts
1502
+ # Lists directly attached Google assets. Fresh reads are cached for 10 minutes; exhausted quota may return the last successful read with stale&#x3D;true. Inherited assets are not included. Preserves Google RMF C.75 account-level callouts.
1503
+ # @param account_id [String]
1368
1504
  # @param [Hash] opts the optional parameters
1369
- # @option opts [String] :customer_id Numeric Google Ads customer id (no dashes). Defaults to the account&#39;s connected customer.
1505
+ # @option opts [String] :customer_id
1370
1506
  # @return [Array<(ListAccountCallouts200Response, Integer, Hash)>] ListAccountCallouts200Response data, response status code and response headers
1371
1507
  def list_account_callouts_with_http_info(account_id, opts = {})
1372
1508
  if @api_client.config.debugging
@@ -1376,6 +1512,16 @@ module Zernio
1376
1512
  if @api_client.config.client_side_validation && account_id.nil?
1377
1513
  fail ArgumentError, "Missing the required parameter 'account_id' when calling AdAccountsApi.list_account_callouts"
1378
1514
  end
1515
+ pattern = Regexp.new(/^[a-fA-F0-9]{24}$/)
1516
+ if @api_client.config.client_side_validation && account_id !~ pattern
1517
+ fail ArgumentError, "invalid value for 'account_id' when calling AdAccountsApi.list_account_callouts, must conform to the pattern #{pattern}."
1518
+ end
1519
+
1520
+ pattern = Regexp.new(/^\d+$/)
1521
+ if @api_client.config.client_side_validation && !opts[:'customer_id'].nil? && opts[:'customer_id'] !~ pattern
1522
+ fail ArgumentError, "invalid value for 'opts[:\"customer_id\"]' when calling AdAccountsApi.list_account_callouts, must conform to the pattern #{pattern}."
1523
+ end
1524
+
1379
1525
  # resource path
1380
1526
  local_var_path = '/v1/ads/accounts/callouts'
1381
1527
 
@@ -1418,6 +1564,160 @@ module Zernio
1418
1564
  return data, status_code, headers
1419
1565
  end
1420
1566
 
1567
+ # List account sitelinks
1568
+ # Lists directly attached Google assets. Fresh reads are cached for 10 minutes; exhausted quota may return the last successful read with stale=true. Inherited assets are not included.
1569
+ # @param account_id [String]
1570
+ # @param [Hash] opts the optional parameters
1571
+ # @option opts [String] :customer_id
1572
+ # @return [ListAccountSitelinks200Response]
1573
+ def list_account_sitelinks(account_id, opts = {})
1574
+ data, _status_code, _headers = list_account_sitelinks_with_http_info(account_id, opts)
1575
+ data
1576
+ end
1577
+
1578
+ # List account sitelinks
1579
+ # Lists directly attached Google assets. Fresh reads are cached for 10 minutes; exhausted quota may return the last successful read with stale&#x3D;true. Inherited assets are not included.
1580
+ # @param account_id [String]
1581
+ # @param [Hash] opts the optional parameters
1582
+ # @option opts [String] :customer_id
1583
+ # @return [Array<(ListAccountSitelinks200Response, Integer, Hash)>] ListAccountSitelinks200Response data, response status code and response headers
1584
+ def list_account_sitelinks_with_http_info(account_id, opts = {})
1585
+ if @api_client.config.debugging
1586
+ @api_client.config.logger.debug 'Calling API: AdAccountsApi.list_account_sitelinks ...'
1587
+ end
1588
+ # verify the required parameter 'account_id' is set
1589
+ if @api_client.config.client_side_validation && account_id.nil?
1590
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling AdAccountsApi.list_account_sitelinks"
1591
+ end
1592
+ pattern = Regexp.new(/^[a-fA-F0-9]{24}$/)
1593
+ if @api_client.config.client_side_validation && account_id !~ pattern
1594
+ fail ArgumentError, "invalid value for 'account_id' when calling AdAccountsApi.list_account_sitelinks, must conform to the pattern #{pattern}."
1595
+ end
1596
+
1597
+ pattern = Regexp.new(/^\d+$/)
1598
+ if @api_client.config.client_side_validation && !opts[:'customer_id'].nil? && opts[:'customer_id'] !~ pattern
1599
+ fail ArgumentError, "invalid value for 'opts[:\"customer_id\"]' when calling AdAccountsApi.list_account_sitelinks, must conform to the pattern #{pattern}."
1600
+ end
1601
+
1602
+ # resource path
1603
+ local_var_path = '/v1/ads/accounts/sitelinks'
1604
+
1605
+ # query parameters
1606
+ query_params = opts[:query_params] || {}
1607
+ query_params[:'accountId'] = account_id
1608
+ query_params[:'customerId'] = opts[:'customer_id'] if !opts[:'customer_id'].nil?
1609
+
1610
+ # header parameters
1611
+ header_params = opts[:header_params] || {}
1612
+ # HTTP header 'Accept' (if needed)
1613
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1614
+
1615
+ # form parameters
1616
+ form_params = opts[:form_params] || {}
1617
+
1618
+ # http body (model)
1619
+ post_body = opts[:debug_body]
1620
+
1621
+ # return_type
1622
+ return_type = opts[:debug_return_type] || 'ListAccountSitelinks200Response'
1623
+
1624
+ # auth_names
1625
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
1626
+
1627
+ new_options = opts.merge(
1628
+ :operation => :"AdAccountsApi.list_account_sitelinks",
1629
+ :header_params => header_params,
1630
+ :query_params => query_params,
1631
+ :form_params => form_params,
1632
+ :body => post_body,
1633
+ :auth_names => auth_names,
1634
+ :return_type => return_type
1635
+ )
1636
+
1637
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1638
+ if @api_client.config.debugging
1639
+ @api_client.config.logger.debug "API called: AdAccountsApi#list_account_sitelinks\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1640
+ end
1641
+ return data, status_code, headers
1642
+ end
1643
+
1644
+ # List account snippets
1645
+ # Lists directly attached Google assets. Fresh reads are cached for 10 minutes; exhausted quota may return the last successful read with stale=true. Inherited assets are not included.
1646
+ # @param account_id [String]
1647
+ # @param [Hash] opts the optional parameters
1648
+ # @option opts [String] :customer_id
1649
+ # @return [ListAccountStructuredSnippets200Response]
1650
+ def list_account_structured_snippets(account_id, opts = {})
1651
+ data, _status_code, _headers = list_account_structured_snippets_with_http_info(account_id, opts)
1652
+ data
1653
+ end
1654
+
1655
+ # List account snippets
1656
+ # Lists directly attached Google assets. Fresh reads are cached for 10 minutes; exhausted quota may return the last successful read with stale&#x3D;true. Inherited assets are not included.
1657
+ # @param account_id [String]
1658
+ # @param [Hash] opts the optional parameters
1659
+ # @option opts [String] :customer_id
1660
+ # @return [Array<(ListAccountStructuredSnippets200Response, Integer, Hash)>] ListAccountStructuredSnippets200Response data, response status code and response headers
1661
+ def list_account_structured_snippets_with_http_info(account_id, opts = {})
1662
+ if @api_client.config.debugging
1663
+ @api_client.config.logger.debug 'Calling API: AdAccountsApi.list_account_structured_snippets ...'
1664
+ end
1665
+ # verify the required parameter 'account_id' is set
1666
+ if @api_client.config.client_side_validation && account_id.nil?
1667
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling AdAccountsApi.list_account_structured_snippets"
1668
+ end
1669
+ pattern = Regexp.new(/^[a-fA-F0-9]{24}$/)
1670
+ if @api_client.config.client_side_validation && account_id !~ pattern
1671
+ fail ArgumentError, "invalid value for 'account_id' when calling AdAccountsApi.list_account_structured_snippets, must conform to the pattern #{pattern}."
1672
+ end
1673
+
1674
+ pattern = Regexp.new(/^\d+$/)
1675
+ if @api_client.config.client_side_validation && !opts[:'customer_id'].nil? && opts[:'customer_id'] !~ pattern
1676
+ fail ArgumentError, "invalid value for 'opts[:\"customer_id\"]' when calling AdAccountsApi.list_account_structured_snippets, must conform to the pattern #{pattern}."
1677
+ end
1678
+
1679
+ # resource path
1680
+ local_var_path = '/v1/ads/accounts/structured-snippets'
1681
+
1682
+ # query parameters
1683
+ query_params = opts[:query_params] || {}
1684
+ query_params[:'accountId'] = account_id
1685
+ query_params[:'customerId'] = opts[:'customer_id'] if !opts[:'customer_id'].nil?
1686
+
1687
+ # header parameters
1688
+ header_params = opts[:header_params] || {}
1689
+ # HTTP header 'Accept' (if needed)
1690
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1691
+
1692
+ # form parameters
1693
+ form_params = opts[:form_params] || {}
1694
+
1695
+ # http body (model)
1696
+ post_body = opts[:debug_body]
1697
+
1698
+ # return_type
1699
+ return_type = opts[:debug_return_type] || 'ListAccountStructuredSnippets200Response'
1700
+
1701
+ # auth_names
1702
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
1703
+
1704
+ new_options = opts.merge(
1705
+ :operation => :"AdAccountsApi.list_account_structured_snippets",
1706
+ :header_params => header_params,
1707
+ :query_params => query_params,
1708
+ :form_params => form_params,
1709
+ :body => post_body,
1710
+ :auth_names => auth_names,
1711
+ :return_type => return_type
1712
+ )
1713
+
1714
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1715
+ if @api_client.config.debugging
1716
+ @api_client.config.logger.debug "API called: AdAccountsApi#list_account_structured_snippets\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1717
+ end
1718
+ return data, status_code, headers
1719
+ end
1720
+
1421
1721
  # List ad accounts
1422
1722
  # Returns the platform ad accounts available for the given account (e.g. Meta ad accounts, TikTok advertiser IDs, Google Ads customer IDs). For TikTok agencies: enumerates every advertiser under every Business Center the token can read (paginated server-side), then chunks the lookup against TikTok's `/advertiser/info/` endpoint (which has a per-call cap of ≤100 IDs). Solo advertisers without a BC fall back to the OAuth-time `advertiser_ids` list. Cached for 1h on the SocialAccount; lazy-refreshed on first call after expiry. For Google Ads: responds `429` when Google's API quota is temporarily exhausted (instead of an empty list). Retry after a delay.
1423
1723
  # @param account_id [String] Account ID
@@ -2286,8 +2586,8 @@ module Zernio
2286
2586
  return data, status_code, headers
2287
2587
  end
2288
2588
 
2289
- # Remove an account-level callout extension
2290
- # Removes the `customerAsset` link (`customers/{cid}/customerAssets/{assetId}~CALLOUT`). Google only; every other platform returns 501.
2589
+ # Remove account callout
2590
+ # Removes the customer_asset attachment only. The underlying shared asset and its campaign or ad-group attachments remain.
2291
2591
  # @param remove_account_callout_request [RemoveAccountCalloutRequest]
2292
2592
  # @param [Hash] opts the optional parameters
2293
2593
  # @return [RemoveAccountCallout200Response]
@@ -2296,8 +2596,8 @@ module Zernio
2296
2596
  data
2297
2597
  end
2298
2598
 
2299
- # Remove an account-level callout extension
2300
- # Removes the &#x60;customerAsset&#x60; link (&#x60;customers/{cid}/customerAssets/{assetId}~CALLOUT&#x60;). Google only; every other platform returns 501.
2599
+ # Remove account callout
2600
+ # Removes the customer_asset attachment only. The underlying shared asset and its campaign or ad-group attachments remain.
2301
2601
  # @param remove_account_callout_request [RemoveAccountCalloutRequest]
2302
2602
  # @param [Hash] opts the optional parameters
2303
2603
  # @return [Array<(RemoveAccountCallout200Response, Integer, Hash)>] RemoveAccountCallout200Response data, response status code and response headers
@@ -2354,6 +2654,142 @@ module Zernio
2354
2654
  return data, status_code, headers
2355
2655
  end
2356
2656
 
2657
+ # Remove account sitelink
2658
+ # Removes the customer_asset attachment only. The underlying shared asset and its campaign or ad-group attachments remain.
2659
+ # @param remove_account_callout_request [RemoveAccountCalloutRequest]
2660
+ # @param [Hash] opts the optional parameters
2661
+ # @return [RemoveAccountCallout200Response]
2662
+ def remove_account_sitelink(remove_account_callout_request, opts = {})
2663
+ data, _status_code, _headers = remove_account_sitelink_with_http_info(remove_account_callout_request, opts)
2664
+ data
2665
+ end
2666
+
2667
+ # Remove account sitelink
2668
+ # Removes the customer_asset attachment only. The underlying shared asset and its campaign or ad-group attachments remain.
2669
+ # @param remove_account_callout_request [RemoveAccountCalloutRequest]
2670
+ # @param [Hash] opts the optional parameters
2671
+ # @return [Array<(RemoveAccountCallout200Response, Integer, Hash)>] RemoveAccountCallout200Response data, response status code and response headers
2672
+ def remove_account_sitelink_with_http_info(remove_account_callout_request, opts = {})
2673
+ if @api_client.config.debugging
2674
+ @api_client.config.logger.debug 'Calling API: AdAccountsApi.remove_account_sitelink ...'
2675
+ end
2676
+ # verify the required parameter 'remove_account_callout_request' is set
2677
+ if @api_client.config.client_side_validation && remove_account_callout_request.nil?
2678
+ fail ArgumentError, "Missing the required parameter 'remove_account_callout_request' when calling AdAccountsApi.remove_account_sitelink"
2679
+ end
2680
+ # resource path
2681
+ local_var_path = '/v1/ads/accounts/sitelinks'
2682
+
2683
+ # query parameters
2684
+ query_params = opts[:query_params] || {}
2685
+
2686
+ # header parameters
2687
+ header_params = opts[:header_params] || {}
2688
+ # HTTP header 'Accept' (if needed)
2689
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
2690
+ # HTTP header 'Content-Type'
2691
+ content_type = @api_client.select_header_content_type(['application/json'])
2692
+ if !content_type.nil?
2693
+ header_params['Content-Type'] = content_type
2694
+ end
2695
+
2696
+ # form parameters
2697
+ form_params = opts[:form_params] || {}
2698
+
2699
+ # http body (model)
2700
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(remove_account_callout_request)
2701
+
2702
+ # return_type
2703
+ return_type = opts[:debug_return_type] || 'RemoveAccountCallout200Response'
2704
+
2705
+ # auth_names
2706
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
2707
+
2708
+ new_options = opts.merge(
2709
+ :operation => :"AdAccountsApi.remove_account_sitelink",
2710
+ :header_params => header_params,
2711
+ :query_params => query_params,
2712
+ :form_params => form_params,
2713
+ :body => post_body,
2714
+ :auth_names => auth_names,
2715
+ :return_type => return_type
2716
+ )
2717
+
2718
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
2719
+ if @api_client.config.debugging
2720
+ @api_client.config.logger.debug "API called: AdAccountsApi#remove_account_sitelink\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2721
+ end
2722
+ return data, status_code, headers
2723
+ end
2724
+
2725
+ # Remove account snippet
2726
+ # Removes the customer_asset attachment only. The underlying shared asset and its campaign or ad-group attachments remain.
2727
+ # @param remove_account_callout_request [RemoveAccountCalloutRequest]
2728
+ # @param [Hash] opts the optional parameters
2729
+ # @return [RemoveAccountCallout200Response]
2730
+ def remove_account_structured_snippet(remove_account_callout_request, opts = {})
2731
+ data, _status_code, _headers = remove_account_structured_snippet_with_http_info(remove_account_callout_request, opts)
2732
+ data
2733
+ end
2734
+
2735
+ # Remove account snippet
2736
+ # Removes the customer_asset attachment only. The underlying shared asset and its campaign or ad-group attachments remain.
2737
+ # @param remove_account_callout_request [RemoveAccountCalloutRequest]
2738
+ # @param [Hash] opts the optional parameters
2739
+ # @return [Array<(RemoveAccountCallout200Response, Integer, Hash)>] RemoveAccountCallout200Response data, response status code and response headers
2740
+ def remove_account_structured_snippet_with_http_info(remove_account_callout_request, opts = {})
2741
+ if @api_client.config.debugging
2742
+ @api_client.config.logger.debug 'Calling API: AdAccountsApi.remove_account_structured_snippet ...'
2743
+ end
2744
+ # verify the required parameter 'remove_account_callout_request' is set
2745
+ if @api_client.config.client_side_validation && remove_account_callout_request.nil?
2746
+ fail ArgumentError, "Missing the required parameter 'remove_account_callout_request' when calling AdAccountsApi.remove_account_structured_snippet"
2747
+ end
2748
+ # resource path
2749
+ local_var_path = '/v1/ads/accounts/structured-snippets'
2750
+
2751
+ # query parameters
2752
+ query_params = opts[:query_params] || {}
2753
+
2754
+ # header parameters
2755
+ header_params = opts[:header_params] || {}
2756
+ # HTTP header 'Accept' (if needed)
2757
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
2758
+ # HTTP header 'Content-Type'
2759
+ content_type = @api_client.select_header_content_type(['application/json'])
2760
+ if !content_type.nil?
2761
+ header_params['Content-Type'] = content_type
2762
+ end
2763
+
2764
+ # form parameters
2765
+ form_params = opts[:form_params] || {}
2766
+
2767
+ # http body (model)
2768
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(remove_account_callout_request)
2769
+
2770
+ # return_type
2771
+ return_type = opts[:debug_return_type] || 'RemoveAccountCallout200Response'
2772
+
2773
+ # auth_names
2774
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
2775
+
2776
+ new_options = opts.merge(
2777
+ :operation => :"AdAccountsApi.remove_account_structured_snippet",
2778
+ :header_params => header_params,
2779
+ :query_params => query_params,
2780
+ :form_params => form_params,
2781
+ :body => post_body,
2782
+ :auth_names => auth_names,
2783
+ :return_type => return_type
2784
+ )
2785
+
2786
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
2787
+ if @api_client.config.debugging
2788
+ @api_client.config.logger.debug "API called: AdAccountsApi#remove_account_structured_snippet\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2789
+ end
2790
+ return data, status_code, headers
2791
+ end
2792
+
2357
2793
  # Replace negative list keywords
2358
2794
  # Replaces the full desired keyword set. Existing keywords are diffed by normalized text and match type; creates and removals are applied atomically in one mutation. Unchanged criteria retain their ids. Send an empty keywords array to clear the list. Changes affect every campaign using this list. Each create or removal consumes one daily operation; the entire batch must fit the remaining quota.
2359
2795
  # @param list_id [String]
@@ -2524,6 +2960,210 @@ module Zernio
2524
2960
  return data, status_code, headers
2525
2961
  end
2526
2962
 
2963
+ # Update account callouts
2964
+ # Edits existing Google assets in place. Send updates with assetResourceName and the fields to change. An asset is shared: changes affect every attachment using it. Omitted fields stay unchanged. The operation consumes the Google operations budget and invalidates affected cached lists.
2965
+ # @param update_account_callouts_request [UpdateAccountCalloutsRequest]
2966
+ # @param [Hash] opts the optional parameters
2967
+ # @return [UpdateAccountCallouts200Response]
2968
+ def update_account_callouts(update_account_callouts_request, opts = {})
2969
+ data, _status_code, _headers = update_account_callouts_with_http_info(update_account_callouts_request, opts)
2970
+ data
2971
+ end
2972
+
2973
+ # Update account callouts
2974
+ # Edits existing Google assets in place. Send updates with assetResourceName and the fields to change. An asset is shared: changes affect every attachment using it. Omitted fields stay unchanged. The operation consumes the Google operations budget and invalidates affected cached lists.
2975
+ # @param update_account_callouts_request [UpdateAccountCalloutsRequest]
2976
+ # @param [Hash] opts the optional parameters
2977
+ # @return [Array<(UpdateAccountCallouts200Response, Integer, Hash)>] UpdateAccountCallouts200Response data, response status code and response headers
2978
+ def update_account_callouts_with_http_info(update_account_callouts_request, opts = {})
2979
+ if @api_client.config.debugging
2980
+ @api_client.config.logger.debug 'Calling API: AdAccountsApi.update_account_callouts ...'
2981
+ end
2982
+ # verify the required parameter 'update_account_callouts_request' is set
2983
+ if @api_client.config.client_side_validation && update_account_callouts_request.nil?
2984
+ fail ArgumentError, "Missing the required parameter 'update_account_callouts_request' when calling AdAccountsApi.update_account_callouts"
2985
+ end
2986
+ # resource path
2987
+ local_var_path = '/v1/ads/accounts/callouts'
2988
+
2989
+ # query parameters
2990
+ query_params = opts[:query_params] || {}
2991
+
2992
+ # header parameters
2993
+ header_params = opts[:header_params] || {}
2994
+ # HTTP header 'Accept' (if needed)
2995
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
2996
+ # HTTP header 'Content-Type'
2997
+ content_type = @api_client.select_header_content_type(['application/json'])
2998
+ if !content_type.nil?
2999
+ header_params['Content-Type'] = content_type
3000
+ end
3001
+
3002
+ # form parameters
3003
+ form_params = opts[:form_params] || {}
3004
+
3005
+ # http body (model)
3006
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(update_account_callouts_request)
3007
+
3008
+ # return_type
3009
+ return_type = opts[:debug_return_type] || 'UpdateAccountCallouts200Response'
3010
+
3011
+ # auth_names
3012
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
3013
+
3014
+ new_options = opts.merge(
3015
+ :operation => :"AdAccountsApi.update_account_callouts",
3016
+ :header_params => header_params,
3017
+ :query_params => query_params,
3018
+ :form_params => form_params,
3019
+ :body => post_body,
3020
+ :auth_names => auth_names,
3021
+ :return_type => return_type
3022
+ )
3023
+
3024
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
3025
+ if @api_client.config.debugging
3026
+ @api_client.config.logger.debug "API called: AdAccountsApi#update_account_callouts\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
3027
+ end
3028
+ return data, status_code, headers
3029
+ end
3030
+
3031
+ # Update account sitelinks
3032
+ # Edits existing Google assets in place. Send updates with assetResourceName and the fields to change. An asset is shared: changes affect every attachment using it. Omitted fields stay unchanged. The operation consumes the Google operations budget and invalidates affected cached lists.
3033
+ # @param update_account_sitelinks_request [UpdateAccountSitelinksRequest]
3034
+ # @param [Hash] opts the optional parameters
3035
+ # @return [UpdateAccountCallouts200Response]
3036
+ def update_account_sitelinks(update_account_sitelinks_request, opts = {})
3037
+ data, _status_code, _headers = update_account_sitelinks_with_http_info(update_account_sitelinks_request, opts)
3038
+ data
3039
+ end
3040
+
3041
+ # Update account sitelinks
3042
+ # Edits existing Google assets in place. Send updates with assetResourceName and the fields to change. An asset is shared: changes affect every attachment using it. Omitted fields stay unchanged. The operation consumes the Google operations budget and invalidates affected cached lists.
3043
+ # @param update_account_sitelinks_request [UpdateAccountSitelinksRequest]
3044
+ # @param [Hash] opts the optional parameters
3045
+ # @return [Array<(UpdateAccountCallouts200Response, Integer, Hash)>] UpdateAccountCallouts200Response data, response status code and response headers
3046
+ def update_account_sitelinks_with_http_info(update_account_sitelinks_request, opts = {})
3047
+ if @api_client.config.debugging
3048
+ @api_client.config.logger.debug 'Calling API: AdAccountsApi.update_account_sitelinks ...'
3049
+ end
3050
+ # verify the required parameter 'update_account_sitelinks_request' is set
3051
+ if @api_client.config.client_side_validation && update_account_sitelinks_request.nil?
3052
+ fail ArgumentError, "Missing the required parameter 'update_account_sitelinks_request' when calling AdAccountsApi.update_account_sitelinks"
3053
+ end
3054
+ # resource path
3055
+ local_var_path = '/v1/ads/accounts/sitelinks'
3056
+
3057
+ # query parameters
3058
+ query_params = opts[:query_params] || {}
3059
+
3060
+ # header parameters
3061
+ header_params = opts[:header_params] || {}
3062
+ # HTTP header 'Accept' (if needed)
3063
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
3064
+ # HTTP header 'Content-Type'
3065
+ content_type = @api_client.select_header_content_type(['application/json'])
3066
+ if !content_type.nil?
3067
+ header_params['Content-Type'] = content_type
3068
+ end
3069
+
3070
+ # form parameters
3071
+ form_params = opts[:form_params] || {}
3072
+
3073
+ # http body (model)
3074
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(update_account_sitelinks_request)
3075
+
3076
+ # return_type
3077
+ return_type = opts[:debug_return_type] || 'UpdateAccountCallouts200Response'
3078
+
3079
+ # auth_names
3080
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
3081
+
3082
+ new_options = opts.merge(
3083
+ :operation => :"AdAccountsApi.update_account_sitelinks",
3084
+ :header_params => header_params,
3085
+ :query_params => query_params,
3086
+ :form_params => form_params,
3087
+ :body => post_body,
3088
+ :auth_names => auth_names,
3089
+ :return_type => return_type
3090
+ )
3091
+
3092
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
3093
+ if @api_client.config.debugging
3094
+ @api_client.config.logger.debug "API called: AdAccountsApi#update_account_sitelinks\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
3095
+ end
3096
+ return data, status_code, headers
3097
+ end
3098
+
3099
+ # Update account snippets
3100
+ # Edits existing Google assets in place. Send updates with assetResourceName and the fields to change. An asset is shared: changes affect every attachment using it. Omitted fields stay unchanged. The operation consumes the Google operations budget and invalidates affected cached lists.
3101
+ # @param update_account_structured_snippets_request [UpdateAccountStructuredSnippetsRequest]
3102
+ # @param [Hash] opts the optional parameters
3103
+ # @return [UpdateAccountCallouts200Response]
3104
+ def update_account_structured_snippets(update_account_structured_snippets_request, opts = {})
3105
+ data, _status_code, _headers = update_account_structured_snippets_with_http_info(update_account_structured_snippets_request, opts)
3106
+ data
3107
+ end
3108
+
3109
+ # Update account snippets
3110
+ # Edits existing Google assets in place. Send updates with assetResourceName and the fields to change. An asset is shared: changes affect every attachment using it. Omitted fields stay unchanged. The operation consumes the Google operations budget and invalidates affected cached lists.
3111
+ # @param update_account_structured_snippets_request [UpdateAccountStructuredSnippetsRequest]
3112
+ # @param [Hash] opts the optional parameters
3113
+ # @return [Array<(UpdateAccountCallouts200Response, Integer, Hash)>] UpdateAccountCallouts200Response data, response status code and response headers
3114
+ def update_account_structured_snippets_with_http_info(update_account_structured_snippets_request, opts = {})
3115
+ if @api_client.config.debugging
3116
+ @api_client.config.logger.debug 'Calling API: AdAccountsApi.update_account_structured_snippets ...'
3117
+ end
3118
+ # verify the required parameter 'update_account_structured_snippets_request' is set
3119
+ if @api_client.config.client_side_validation && update_account_structured_snippets_request.nil?
3120
+ fail ArgumentError, "Missing the required parameter 'update_account_structured_snippets_request' when calling AdAccountsApi.update_account_structured_snippets"
3121
+ end
3122
+ # resource path
3123
+ local_var_path = '/v1/ads/accounts/structured-snippets'
3124
+
3125
+ # query parameters
3126
+ query_params = opts[:query_params] || {}
3127
+
3128
+ # header parameters
3129
+ header_params = opts[:header_params] || {}
3130
+ # HTTP header 'Accept' (if needed)
3131
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
3132
+ # HTTP header 'Content-Type'
3133
+ content_type = @api_client.select_header_content_type(['application/json'])
3134
+ if !content_type.nil?
3135
+ header_params['Content-Type'] = content_type
3136
+ end
3137
+
3138
+ # form parameters
3139
+ form_params = opts[:form_params] || {}
3140
+
3141
+ # http body (model)
3142
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(update_account_structured_snippets_request)
3143
+
3144
+ # return_type
3145
+ return_type = opts[:debug_return_type] || 'UpdateAccountCallouts200Response'
3146
+
3147
+ # auth_names
3148
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
3149
+
3150
+ new_options = opts.merge(
3151
+ :operation => :"AdAccountsApi.update_account_structured_snippets",
3152
+ :header_params => header_params,
3153
+ :query_params => query_params,
3154
+ :form_params => form_params,
3155
+ :body => post_body,
3156
+ :auth_names => auth_names,
3157
+ :return_type => return_type
3158
+ )
3159
+
3160
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
3161
+ if @api_client.config.debugging
3162
+ @api_client.config.logger.debug "API called: AdAccountsApi#update_account_structured_snippets\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
3163
+ end
3164
+ return data, status_code, headers
3165
+ end
3166
+
2527
3167
  # Update ad account settings
2528
3168
  # Sets the default DSA beneficiary and payor on a Meta ad account (EU DSA, Article 26). Set them once and every EU-targeted call to `/v1/ads/create`, `/v1/ads/boost` and `/v1/ads/ctwa` on that ad account can omit `dsaBeneficiary`/`dsaPayor`: Meta applies the defaults automatically. The values are written to the ad account on Meta, the same setting Ads Manager edits. Nothing is stored in Zernio, and defaults already set in Ads Manager work identically. Zernio never guesses these values for you. Beneficiary and payor are legal disclosures shown to EU users, so you must provide the entity names explicitly. Use `GET /v1/ads/dsa-recommendations` to offer suggestions in your UI. If `defaultDsaPayor` is omitted, the beneficiary is also set as the payor, which covers the common case where the same entity benefits from and pays for the ads. Read the current values back with `GET /v1/ads/dsa-defaults`. Currently supported for Meta accounts only; other platforms return 400.
2529
3169
  # @param update_ad_account_request [UpdateAdAccountRequest]