late-sdk 0.0.899 → 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 (223) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +81 -8
  3. data/docs/AdAccountsApi.md +1375 -277
  4. data/docs/AdCampaignsApi.md +525 -13
  5. data/docs/AdCreative.md +6 -0
  6. data/docs/AdTracking.md +20 -0
  7. data/docs/AddAccountCalloutsRequest.md +3 -3
  8. data/docs/AddAccountSitelinks201Response.md +20 -0
  9. data/docs/AddAccountSitelinks201ResponseSitelinksInner.md +26 -0
  10. data/docs/AddAccountSitelinksRequest.md +22 -0
  11. data/docs/AddAccountStructuredSnippets201Response.md +20 -0
  12. data/docs/AddAccountStructuredSnippets201ResponseStructuredSnippetsInner.md +22 -0
  13. data/docs/AddAccountStructuredSnippetsRequest.md +22 -0
  14. data/docs/AttachAdGroupAssets201Response.md +24 -0
  15. data/docs/AttachCampaignAssetsRequest.md +4 -4
  16. data/docs/CreateAdCampaign200Response.md +26 -0
  17. data/docs/CreateAdCampaignRequest.md +8 -0
  18. data/docs/CreateCallAdRequest.md +2 -0
  19. data/docs/CreateMessagingAdRequest.md +2 -0
  20. data/docs/CreateStandaloneAdRequest.md +15 -7
  21. data/docs/CreateStandaloneAdRequestAdditionalDescriptionsInner.md +49 -0
  22. data/docs/CreateStandaloneAdRequestAdditionalHeadlinesInner.md +49 -0
  23. data/docs/CtwaAdRequestBody.md +2 -0
  24. data/docs/GetAd200Response.md +5 -1
  25. data/docs/GetAdComments200ResponseMeta.md +10 -4
  26. data/docs/GetIosFourteenCampaignLimits200Response.md +18 -0
  27. data/docs/GetIosFourteenCampaignLimits200ResponseLimits.md +22 -0
  28. data/docs/GoogleAssetUpdate.md +26 -0
  29. data/docs/GoogleRsaDescription.md +20 -0
  30. data/docs/GoogleRsaHeadline.md +20 -0
  31. data/docs/{AttachCampaignAssetsRequestSitelinksInner.md → GoogleSitelink.md} +2 -2
  32. data/docs/{AttachCampaignAssetsRequestStructuredSnippetsInner.md → GoogleStructuredSnippet.md} +2 -2
  33. data/docs/HideAdComment200Response.md +22 -0
  34. data/docs/HideAdCommentRequest.md +18 -0
  35. data/docs/ListAccountCallouts200Response.md +2 -2
  36. data/docs/ListAccountCallouts200ResponseCalloutsInner.md +3 -3
  37. data/docs/ListAccountSitelinks200Response.md +24 -0
  38. data/docs/ListAccountSitelinks200ResponseSitelinksInner.md +32 -0
  39. data/docs/ListAccountStructuredSnippets200Response.md +24 -0
  40. data/docs/ListAccountStructuredSnippets200ResponseStructuredSnippetsInner.md +28 -0
  41. data/docs/ListAdGroupAssets200Response.md +28 -0
  42. data/docs/ListAdGroupAssets200ResponseCalloutsInner.md +22 -0
  43. data/docs/ListAdGroupAssets200ResponseSitelinksInner.md +28 -0
  44. data/docs/ListAdGroupAssets200ResponseStructuredSnippetsInner.md +24 -0
  45. data/docs/ListAdsInstagramAccounts200Response.md +22 -0
  46. data/docs/ListAdsInstagramAccounts200ResponseAccountsInner.md +26 -0
  47. data/docs/ListAdsInstagramAccounts200ResponsePagesInner.md +24 -0
  48. data/docs/ListAdsInstagramAccounts200ResponseResolved.md +22 -0
  49. data/docs/ListAdvertisableApplications200Response.md +18 -0
  50. data/docs/ListAdvertisableApplications200ResponseApplicationsInner.md +24 -0
  51. data/docs/ListCampaignAssets200Response.md +28 -0
  52. data/docs/ListCampaignAssets200ResponseCalloutsInner.md +22 -0
  53. data/docs/ListCampaignAssets200ResponseSitelinksInner.md +28 -0
  54. data/docs/ListCampaignAssets200ResponseStructuredSnippetsInner.md +24 -0
  55. data/docs/MetaInstagramIdentityRef.md +22 -0
  56. data/docs/RemoveAccountCalloutRequest.md +3 -3
  57. data/docs/RemoveAdGroupAssetsRequest.md +24 -0
  58. data/docs/RemoveCampaignAssets200Response.md +18 -0
  59. data/docs/RemoveCampaignAssetsRequest.md +24 -0
  60. data/docs/ReplyToAdComment200Response.md +20 -0
  61. data/docs/ReplyToAdCommentRequest.md +18 -0
  62. data/docs/TargetingSpec.md +4 -0
  63. data/docs/UpdateAccountCallouts200Response.md +20 -0
  64. data/docs/UpdateAccountCalloutsRequest.md +22 -0
  65. data/docs/UpdateAccountCalloutsRequestUpdatesInner.md +20 -0
  66. data/docs/UpdateAccountCalloutsRequestUpdatesInnerCalloutAsset.md +18 -0
  67. data/docs/UpdateAccountSitelinksRequest.md +22 -0
  68. data/docs/UpdateAccountSitelinksRequestUpdatesInner.md +22 -0
  69. data/docs/UpdateAccountSitelinksRequestUpdatesInnerSitelinkAsset.md +24 -0
  70. data/docs/UpdateAccountStructuredSnippetsRequest.md +22 -0
  71. data/docs/UpdateAccountStructuredSnippetsRequestUpdatesInner.md +20 -0
  72. data/docs/UpdateAdRequest.md +6 -0
  73. data/docs/UpdateCampaignAssets200Response.md +18 -0
  74. data/docs/UpdateCampaignAssetsRequest.md +22 -0
  75. data/lib/zernio-sdk/api/ad_accounts_api.rb +1511 -363
  76. data/lib/zernio-sdk/api/ad_campaigns_api.rb +589 -13
  77. data/lib/zernio-sdk/models/ad_creative.rb +112 -1
  78. data/lib/zernio-sdk/models/{create_standalone_ad_request_tracking.rb → ad_tracking.rb} +5 -5
  79. data/lib/zernio-sdk/models/add_account_callouts_request.rb +34 -3
  80. data/lib/zernio-sdk/models/add_account_sitelinks201_response.rb +158 -0
  81. data/lib/zernio-sdk/models/add_account_sitelinks201_response_sitelinks_inner.rb +267 -0
  82. data/lib/zernio-sdk/models/add_account_sitelinks_request.rb +253 -0
  83. data/lib/zernio-sdk/models/add_account_structured_snippets201_response.rb +158 -0
  84. data/lib/zernio-sdk/models/add_account_structured_snippets201_response_structured_snippets_inner.rb +229 -0
  85. data/lib/zernio-sdk/models/add_account_structured_snippets_request.rb +253 -0
  86. data/lib/zernio-sdk/models/attach_ad_group_assets201_response.rb +180 -0
  87. data/lib/zernio-sdk/models/attach_campaign_assets_request.rb +37 -5
  88. data/lib/zernio-sdk/models/create_ad_campaign200_response.rb +231 -0
  89. data/lib/zernio-sdk/models/create_ad_campaign_request.rb +52 -1
  90. data/lib/zernio-sdk/models/create_call_ad_request.rb +10 -1
  91. data/lib/zernio-sdk/models/create_messaging_ad_request.rb +10 -1
  92. data/lib/zernio-sdk/models/create_standalone_ad_request.rb +102 -8
  93. data/lib/zernio-sdk/models/create_standalone_ad_request_additional_descriptions_inner.rb +104 -0
  94. data/lib/zernio-sdk/models/create_standalone_ad_request_additional_headlines_inner.rb +104 -0
  95. data/lib/zernio-sdk/models/ctwa_ad_request_body.rb +10 -1
  96. data/lib/zernio-sdk/models/get_ad200_response.rb +25 -4
  97. data/lib/zernio-sdk/models/get_ad_comments200_response_meta.rb +36 -46
  98. data/lib/zernio-sdk/models/get_ios_fourteen_campaign_limits200_response.rb +164 -0
  99. data/lib/zernio-sdk/models/get_ios_fourteen_campaign_limits200_response_limits.rb +172 -0
  100. data/lib/zernio-sdk/models/google_asset_update.rb +234 -0
  101. data/lib/zernio-sdk/models/google_rsa_description.rb +226 -0
  102. data/lib/zernio-sdk/models/google_rsa_headline.rb +226 -0
  103. data/lib/zernio-sdk/models/{attach_campaign_assets_request_sitelinks_inner.rb → google_sitelink.rb} +3 -3
  104. data/lib/zernio-sdk/models/{attach_campaign_assets_request_structured_snippets_inner.rb → google_structured_snippet.rb} +3 -3
  105. data/lib/zernio-sdk/models/hide_ad_comment200_response.rb +225 -0
  106. data/lib/zernio-sdk/models/hide_ad_comment_request.rb +165 -0
  107. data/lib/zernio-sdk/models/list_account_callouts200_response.rb +2 -2
  108. data/lib/zernio-sdk/models/list_account_callouts200_response_callouts_inner.rb +13 -14
  109. data/lib/zernio-sdk/models/list_account_sitelinks200_response.rb +179 -0
  110. data/lib/zernio-sdk/models/list_account_sitelinks200_response_sitelinks_inner.rb +210 -0
  111. data/lib/zernio-sdk/models/list_account_structured_snippets200_response.rb +179 -0
  112. data/lib/zernio-sdk/models/list_account_structured_snippets200_response_structured_snippets_inner.rb +194 -0
  113. data/lib/zernio-sdk/models/list_ad_group_assets200_response.rb +201 -0
  114. data/lib/zernio-sdk/models/list_ad_group_assets200_response_callouts_inner.rb +165 -0
  115. data/lib/zernio-sdk/models/list_ad_group_assets200_response_sitelinks_inner.rb +192 -0
  116. data/lib/zernio-sdk/models/list_ad_group_assets200_response_structured_snippets_inner.rb +176 -0
  117. data/lib/zernio-sdk/models/list_ads_instagram_accounts200_response.rb +220 -0
  118. data/lib/zernio-sdk/models/list_ads_instagram_accounts200_response_accounts_inner.rb +287 -0
  119. data/lib/zernio-sdk/models/list_ads_instagram_accounts200_response_pages_inner.rb +210 -0
  120. data/lib/zernio-sdk/models/list_ads_instagram_accounts200_response_resolved.rb +211 -0
  121. data/lib/zernio-sdk/models/list_advertisable_applications200_response.rb +166 -0
  122. data/lib/zernio-sdk/models/list_advertisable_applications200_response_applications_inner.rb +250 -0
  123. data/lib/zernio-sdk/models/list_campaign_assets200_response.rb +201 -0
  124. data/lib/zernio-sdk/models/list_campaign_assets200_response_callouts_inner.rb +165 -0
  125. data/lib/zernio-sdk/models/list_campaign_assets200_response_sitelinks_inner.rb +192 -0
  126. data/lib/zernio-sdk/models/list_campaign_assets200_response_structured_snippets_inner.rb +176 -0
  127. data/lib/zernio-sdk/models/meta_instagram_identity_ref.rb +202 -0
  128. data/lib/zernio-sdk/models/remove_account_callout_request.rb +45 -3
  129. data/lib/zernio-sdk/models/remove_ad_group_assets_request.rb +281 -0
  130. data/lib/zernio-sdk/models/remove_campaign_assets200_response.rb +147 -0
  131. data/lib/zernio-sdk/models/remove_campaign_assets_request.rb +281 -0
  132. data/lib/zernio-sdk/models/reply_to_ad_comment200_response.rb +215 -0
  133. data/lib/zernio-sdk/models/reply_to_ad_comment_request.rb +174 -0
  134. data/lib/zernio-sdk/models/targeting_spec.rb +63 -1
  135. data/lib/zernio-sdk/models/update_account_callouts200_response.rb +156 -0
  136. data/lib/zernio-sdk/models/update_account_callouts_request.rb +253 -0
  137. data/lib/zernio-sdk/models/update_account_callouts_request_updates_inner.rb +186 -0
  138. data/lib/zernio-sdk/models/update_account_callouts_request_updates_inner_callout_asset.rb +182 -0
  139. data/lib/zernio-sdk/models/update_account_sitelinks_request.rb +253 -0
  140. data/lib/zernio-sdk/models/update_account_sitelinks_request_updates_inner.rb +216 -0
  141. data/lib/zernio-sdk/models/update_account_sitelinks_request_updates_inner_sitelink_asset.rb +241 -0
  142. data/lib/zernio-sdk/models/update_account_structured_snippets_request.rb +253 -0
  143. data/lib/zernio-sdk/models/update_account_structured_snippets_request_updates_inner.rb +186 -0
  144. data/lib/zernio-sdk/models/update_ad_request.rb +112 -1
  145. data/lib/zernio-sdk/models/update_campaign_assets200_response.rb +147 -0
  146. data/lib/zernio-sdk/models/update_campaign_assets_request.rb +253 -0
  147. data/lib/zernio-sdk/version.rb +1 -1
  148. data/lib/zernio-sdk.rb +55 -4
  149. data/openapi.yaml +2898 -733
  150. data/spec/api/ad_accounts_api_spec.rb +209 -10
  151. data/spec/api/ad_campaigns_api_spec.rb +99 -6
  152. data/spec/models/ad_creative_spec.rb +18 -0
  153. data/spec/models/{create_standalone_ad_request_tracking_spec.rb → ad_tracking_spec.rb} +6 -6
  154. data/spec/models/add_account_sitelinks201_response_sitelinks_inner_spec.rb +60 -0
  155. data/spec/models/add_account_sitelinks201_response_spec.rb +42 -0
  156. data/spec/models/add_account_sitelinks_request_spec.rb +48 -0
  157. data/spec/models/add_account_structured_snippets201_response_spec.rb +42 -0
  158. data/spec/models/add_account_structured_snippets201_response_structured_snippets_inner_spec.rb +52 -0
  159. data/spec/models/add_account_structured_snippets_request_spec.rb +48 -0
  160. data/spec/models/attach_ad_group_assets201_response_spec.rb +54 -0
  161. data/spec/models/create_ad_campaign200_response_spec.rb +68 -0
  162. data/spec/models/create_ad_campaign_request_spec.rb +28 -0
  163. data/spec/models/create_call_ad_request_spec.rb +6 -0
  164. data/spec/models/create_messaging_ad_request_spec.rb +6 -0
  165. data/spec/models/create_standalone_ad_request_additional_descriptions_inner_spec.rb +32 -0
  166. data/spec/models/create_standalone_ad_request_additional_headlines_inner_spec.rb +32 -0
  167. data/spec/models/create_standalone_ad_request_spec.rb +28 -0
  168. data/spec/models/ctwa_ad_request_body_spec.rb +6 -0
  169. data/spec/models/get_ad200_response_spec.rb +12 -0
  170. data/spec/models/get_ad_comments200_response_meta_spec.rb +19 -1
  171. data/spec/models/get_ios_fourteen_campaign_limits200_response_limits_spec.rb +48 -0
  172. data/spec/models/get_ios_fourteen_campaign_limits200_response_spec.rb +36 -0
  173. data/spec/models/google_asset_update_spec.rb +60 -0
  174. data/spec/models/google_rsa_description_spec.rb +46 -0
  175. data/spec/models/google_rsa_headline_spec.rb +46 -0
  176. data/spec/models/{attach_campaign_assets_request_sitelinks_inner_spec.rb → google_sitelink_spec.rb} +6 -6
  177. data/spec/models/{attach_campaign_assets_request_structured_snippets_inner_spec.rb → google_structured_snippet_spec.rb} +6 -6
  178. data/spec/models/hide_ad_comment200_response_spec.rb +52 -0
  179. data/spec/models/hide_ad_comment_request_spec.rb +36 -0
  180. data/spec/models/list_account_callouts200_response_callouts_inner_spec.rb +2 -2
  181. data/spec/models/{create_standalone_ad_request_promoted_object_spec.rb → list_account_sitelinks200_response_sitelinks_inner_spec.rb} +14 -32
  182. data/spec/models/list_account_sitelinks200_response_spec.rb +54 -0
  183. data/spec/models/list_account_structured_snippets200_response_spec.rb +54 -0
  184. data/spec/models/list_account_structured_snippets200_response_structured_snippets_inner_spec.rb +66 -0
  185. data/spec/models/list_ad_group_assets200_response_callouts_inner_spec.rb +48 -0
  186. data/spec/models/list_ad_group_assets200_response_sitelinks_inner_spec.rb +66 -0
  187. data/spec/models/list_ad_group_assets200_response_spec.rb +66 -0
  188. data/spec/models/list_ad_group_assets200_response_structured_snippets_inner_spec.rb +54 -0
  189. data/spec/models/list_ads_instagram_accounts200_response_accounts_inner_spec.rb +64 -0
  190. data/spec/models/list_ads_instagram_accounts200_response_pages_inner_spec.rb +54 -0
  191. data/spec/models/list_ads_instagram_accounts200_response_resolved_spec.rb +52 -0
  192. data/spec/models/list_ads_instagram_accounts200_response_spec.rb +48 -0
  193. data/spec/models/list_advertisable_applications200_response_applications_inner_spec.rb +54 -0
  194. data/spec/models/list_advertisable_applications200_response_spec.rb +36 -0
  195. data/spec/models/list_campaign_assets200_response_callouts_inner_spec.rb +48 -0
  196. data/spec/models/list_campaign_assets200_response_sitelinks_inner_spec.rb +66 -0
  197. data/spec/models/list_campaign_assets200_response_spec.rb +66 -0
  198. data/spec/models/list_campaign_assets200_response_structured_snippets_inner_spec.rb +54 -0
  199. data/spec/models/meta_instagram_identity_ref_spec.rb +48 -0
  200. data/spec/models/remove_ad_group_assets_request_spec.rb +54 -0
  201. data/spec/models/remove_campaign_assets200_response_spec.rb +36 -0
  202. data/spec/models/remove_campaign_assets_request_spec.rb +54 -0
  203. data/spec/models/reply_to_ad_comment200_response_spec.rb +46 -0
  204. data/spec/models/reply_to_ad_comment_request_spec.rb +36 -0
  205. data/spec/models/targeting_spec_spec.rb +12 -0
  206. data/spec/models/update_account_callouts200_response_spec.rb +42 -0
  207. data/spec/models/update_account_callouts_request_spec.rb +48 -0
  208. data/spec/models/update_account_callouts_request_updates_inner_callout_asset_spec.rb +36 -0
  209. data/spec/models/update_account_callouts_request_updates_inner_spec.rb +42 -0
  210. data/spec/models/update_account_sitelinks_request_spec.rb +48 -0
  211. data/spec/models/update_account_sitelinks_request_updates_inner_sitelink_asset_spec.rb +54 -0
  212. data/spec/models/update_account_sitelinks_request_updates_inner_spec.rb +48 -0
  213. data/spec/models/update_account_structured_snippets_request_spec.rb +48 -0
  214. data/spec/models/update_account_structured_snippets_request_updates_inner_spec.rb +42 -0
  215. data/spec/models/update_ad_request_spec.rb +18 -0
  216. data/spec/models/update_campaign_assets200_response_spec.rb +36 -0
  217. data/spec/models/update_campaign_assets_request_spec.rb +48 -0
  218. data/zernio-sdk-0.0.901.gem +0 -0
  219. metadata +222 -18
  220. data/docs/CreateStandaloneAdRequestPromotedObject.md +0 -38
  221. data/docs/CreateStandaloneAdRequestTracking.md +0 -20
  222. data/lib/zernio-sdk/models/create_standalone_ad_request_promoted_object.rb +0 -249
  223. data/zernio-sdk-0.0.899.gem +0 -0
@@ -14,14 +14,14 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module Zernio
17
+ # Provide at least one of sitelinks, callouts or structuredSnippets. Sitelink description1 and description2 must be supplied together.
17
18
  class AttachCampaignAssetsRequest < ApiModelBase
18
- # Zernio Google Ads SocialAccount id. Resolves the customer id + refresh token.
19
+ # Zernio Google Ads connection id.
19
20
  attr_accessor :account_id
20
21
 
21
- # Numeric Google Ads customer id. Required when the connection has multiple Google Ads accounts; optional (and inferred) when it has only one.
22
+ # Google customer id without dashes. Required when the connection has multiple customers.
22
23
  attr_accessor :customer_id
23
24
 
24
- # See POST /v1/ads/create sitelinks, same shape.
25
25
  attr_accessor :sitelinks
26
26
 
27
27
  attr_accessor :callouts
@@ -54,9 +54,9 @@ module Zernio
54
54
  {
55
55
  :'account_id' => :'String',
56
56
  :'customer_id' => :'String',
57
- :'sitelinks' => :'Array<AttachCampaignAssetsRequestSitelinksInner>',
57
+ :'sitelinks' => :'Array<GoogleSitelink>',
58
58
  :'callouts' => :'Array<String>',
59
- :'structured_snippets' => :'Array<AttachCampaignAssetsRequestStructuredSnippetsInner>'
59
+ :'structured_snippets' => :'Array<GoogleStructuredSnippet>'
60
60
  }
61
61
  end
62
62
 
@@ -120,6 +120,16 @@ module Zernio
120
120
  invalid_properties.push('invalid value for "account_id", account_id cannot be nil.')
121
121
  end
122
122
 
123
+ pattern = Regexp.new(/^[a-fA-F0-9]{24}$/)
124
+ if @account_id !~ pattern
125
+ invalid_properties.push("invalid value for \"account_id\", must conform to the pattern #{pattern}.")
126
+ end
127
+
128
+ pattern = Regexp.new(/^\d+$/)
129
+ if !@customer_id.nil? && @customer_id !~ pattern
130
+ invalid_properties.push("invalid value for \"customer_id\", must conform to the pattern #{pattern}.")
131
+ end
132
+
123
133
  if !@sitelinks.nil? && @sitelinks.length > 20
124
134
  invalid_properties.push('invalid value for "sitelinks", number of items must be less than or equal to 20.')
125
135
  end
@@ -152,6 +162,8 @@ module Zernio
152
162
  def valid?
153
163
  warn '[DEPRECATED] the `valid?` method is obsolete'
154
164
  return false if @account_id.nil?
165
+ return false if @account_id !~ Regexp.new(/^[a-fA-F0-9]{24}$/)
166
+ return false if !@customer_id.nil? && @customer_id !~ Regexp.new(/^\d+$/)
155
167
  return false if !@sitelinks.nil? && @sitelinks.length > 20
156
168
  return false if !@sitelinks.nil? && @sitelinks.length < 2
157
169
  return false if !@callouts.nil? && @callouts.length > 20
@@ -168,9 +180,29 @@ module Zernio
168
180
  fail ArgumentError, 'account_id cannot be nil'
169
181
  end
170
182
 
183
+ pattern = Regexp.new(/^[a-fA-F0-9]{24}$/)
184
+ if account_id !~ pattern
185
+ fail ArgumentError, "invalid value for \"account_id\", must conform to the pattern #{pattern}."
186
+ end
187
+
171
188
  @account_id = account_id
172
189
  end
173
190
 
191
+ # Custom attribute writer method with validation
192
+ # @param [Object] customer_id Value to be assigned
193
+ def customer_id=(customer_id)
194
+ if customer_id.nil?
195
+ fail ArgumentError, 'customer_id cannot be nil'
196
+ end
197
+
198
+ pattern = Regexp.new(/^\d+$/)
199
+ if customer_id !~ pattern
200
+ fail ArgumentError, "invalid value for \"customer_id\", must conform to the pattern #{pattern}."
201
+ end
202
+
203
+ @customer_id = customer_id
204
+ end
205
+
174
206
  # Custom attribute writer method with validation
175
207
  # @param [Object] sitelinks Value to be assigned
176
208
  def sitelinks=(sitelinks)
@@ -0,0 +1,231 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Zernio
17
+ class CreateAdCampaign200Response < ApiModelBase
18
+ # Always true.
19
+ attr_accessor :validate_only
20
+
21
+ attr_accessor :ad_account_id
22
+
23
+ # Empty because no campaign was created.
24
+ attr_accessor :campaign_id
25
+
26
+ attr_accessor :objective
27
+
28
+ attr_accessor :status
29
+
30
+ class EnumAttributeValidator
31
+ attr_reader :datatype
32
+ attr_reader :allowable_values
33
+
34
+ def initialize(datatype, allowable_values)
35
+ @allowable_values = allowable_values.map do |value|
36
+ case datatype.to_s
37
+ when /Integer/i
38
+ value.to_i
39
+ when /Float/i
40
+ value.to_f
41
+ else
42
+ value
43
+ end
44
+ end
45
+ end
46
+
47
+ def valid?(value)
48
+ !value || allowable_values.include?(value)
49
+ end
50
+ end
51
+
52
+ # Attribute mapping from ruby-style variable name to JSON key.
53
+ def self.attribute_map
54
+ {
55
+ :'validate_only' => :'validateOnly',
56
+ :'ad_account_id' => :'adAccountId',
57
+ :'campaign_id' => :'campaignId',
58
+ :'objective' => :'objective',
59
+ :'status' => :'status'
60
+ }
61
+ end
62
+
63
+ # Returns attribute mapping this model knows about
64
+ def self.acceptable_attribute_map
65
+ attribute_map
66
+ end
67
+
68
+ # Returns all the JSON keys this model knows about
69
+ def self.acceptable_attributes
70
+ acceptable_attribute_map.values
71
+ end
72
+
73
+ # Attribute type mapping.
74
+ def self.openapi_types
75
+ {
76
+ :'validate_only' => :'Boolean',
77
+ :'ad_account_id' => :'String',
78
+ :'campaign_id' => :'String',
79
+ :'objective' => :'String',
80
+ :'status' => :'String'
81
+ }
82
+ end
83
+
84
+ # List of attributes with nullable: true
85
+ def self.openapi_nullable
86
+ Set.new([
87
+ ])
88
+ end
89
+
90
+ # Initializes the object
91
+ # @param [Hash] attributes Model attributes in the form of hash
92
+ def initialize(attributes = {})
93
+ if (!attributes.is_a?(Hash))
94
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::CreateAdCampaign200Response` initialize method"
95
+ end
96
+
97
+ # check to see if the attribute exists and convert string to symbol for hash key
98
+ acceptable_attribute_map = self.class.acceptable_attribute_map
99
+ attributes = attributes.each_with_object({}) { |(k, v), h|
100
+ if (!acceptable_attribute_map.key?(k.to_sym))
101
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::CreateAdCampaign200Response`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
102
+ end
103
+ h[k.to_sym] = v
104
+ }
105
+
106
+ if attributes.key?(:'validate_only')
107
+ self.validate_only = attributes[:'validate_only']
108
+ end
109
+
110
+ if attributes.key?(:'ad_account_id')
111
+ self.ad_account_id = attributes[:'ad_account_id']
112
+ end
113
+
114
+ if attributes.key?(:'campaign_id')
115
+ self.campaign_id = attributes[:'campaign_id']
116
+ end
117
+
118
+ if attributes.key?(:'objective')
119
+ self.objective = attributes[:'objective']
120
+ end
121
+
122
+ if attributes.key?(:'status')
123
+ self.status = attributes[:'status']
124
+ end
125
+ end
126
+
127
+ # Show invalid properties with the reasons. Usually used together with valid?
128
+ # @return Array for valid properties with the reasons
129
+ def list_invalid_properties
130
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
131
+ invalid_properties = Array.new
132
+ invalid_properties
133
+ end
134
+
135
+ # Check to see if the all the properties in the model are valid
136
+ # @return true if the model is valid
137
+ def valid?
138
+ warn '[DEPRECATED] the `valid?` method is obsolete'
139
+ campaign_id_validator = EnumAttributeValidator.new('String', [""])
140
+ return false unless campaign_id_validator.valid?(@campaign_id)
141
+ status_validator = EnumAttributeValidator.new('String', ["VALIDATED"])
142
+ return false unless status_validator.valid?(@status)
143
+ true
144
+ end
145
+
146
+ # Custom attribute writer method checking allowed values (enum).
147
+ # @param [Object] campaign_id Object to be assigned
148
+ def campaign_id=(campaign_id)
149
+ validator = EnumAttributeValidator.new('String', [""])
150
+ unless validator.valid?(campaign_id)
151
+ fail ArgumentError, "invalid value for \"campaign_id\", must be one of #{validator.allowable_values}."
152
+ end
153
+ @campaign_id = campaign_id
154
+ end
155
+
156
+ # Custom attribute writer method checking allowed values (enum).
157
+ # @param [Object] status Object to be assigned
158
+ def status=(status)
159
+ validator = EnumAttributeValidator.new('String', ["VALIDATED"])
160
+ unless validator.valid?(status)
161
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
162
+ end
163
+ @status = status
164
+ end
165
+
166
+ # Checks equality by comparing each attribute.
167
+ # @param [Object] Object to be compared
168
+ def ==(o)
169
+ return true if self.equal?(o)
170
+ self.class == o.class &&
171
+ validate_only == o.validate_only &&
172
+ ad_account_id == o.ad_account_id &&
173
+ campaign_id == o.campaign_id &&
174
+ objective == o.objective &&
175
+ status == o.status
176
+ end
177
+
178
+ # @see the `==` method
179
+ # @param [Object] Object to be compared
180
+ def eql?(o)
181
+ self == o
182
+ end
183
+
184
+ # Calculates hash code according to all attributes.
185
+ # @return [Integer] Hash code
186
+ def hash
187
+ [validate_only, ad_account_id, campaign_id, objective, status].hash
188
+ end
189
+
190
+ # Builds the object from hash
191
+ # @param [Hash] attributes Model attributes in the form of hash
192
+ # @return [Object] Returns the model itself
193
+ def self.build_from_hash(attributes)
194
+ return nil unless attributes.is_a?(Hash)
195
+ attributes = attributes.transform_keys(&:to_sym)
196
+ transformed_hash = {}
197
+ openapi_types.each_pair do |key, type|
198
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
199
+ transformed_hash["#{key}"] = nil
200
+ elsif type =~ /\AArray<(.*)>/i
201
+ # check to ensure the input is an array given that the attribute
202
+ # is documented as an array but the input is not
203
+ if attributes[attribute_map[key]].is_a?(Array)
204
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
205
+ end
206
+ elsif !attributes[attribute_map[key]].nil?
207
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
208
+ end
209
+ end
210
+ new(transformed_hash)
211
+ end
212
+
213
+ # Returns the object in the form of hash
214
+ # @return [Hash] Returns the object in the form of hash
215
+ def to_hash
216
+ hash = {}
217
+ self.class.attribute_map.each_pair do |attr, param|
218
+ value = self.send(attr)
219
+ if value.nil?
220
+ is_nullable = self.class.openapi_nullable.include?(attr)
221
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
222
+ end
223
+
224
+ hash[param] = _to_hash(value)
225
+ end
226
+ hash
227
+ end
228
+
229
+ end
230
+
231
+ end
@@ -26,6 +26,17 @@ module Zernio
26
26
  # Mapped to the ODAX objective (same mapping as POST /v1/ads/create).
27
27
  attr_accessor :goal
28
28
 
29
+ # Meta app promotion only. Immutable campaign flag. Set true for iOS 14+ SKAdNetwork campaigns and supply promotedObject.applicationId plus promotedObject.objectStoreUrl. The campaign receives promotedObject only when this flag is true. Cannot be changed on an existing campaign.
30
+ attr_accessor :is_skadnetwork_attribution
31
+
32
+ attr_accessor :promoted_object
33
+
34
+ # Meta only. SKAdNetwork app promotion requires AUCTION.
35
+ attr_accessor :buying_type
36
+
37
+ # Meta only. Runs campaign validation without creating or persisting a campaign; Idempotency-Key storage is bypassed. Returns HTTP 200 with validateOnly true and status VALIDATED.
38
+ attr_accessor :validate_only
39
+
29
40
  attr_accessor :special_ad_categories
30
41
 
31
42
  # Campaign-level (CBO) budget in WHOLE currency units (USD: 50 = $50.00), NOT cents. Meta's own Marketing API takes this same number in minor units, so it is an easy and expensive mix-up. Requires budgetType.
@@ -76,6 +87,10 @@ module Zernio
76
87
  :'ad_account_id' => :'adAccountId',
77
88
  :'name' => :'name',
78
89
  :'goal' => :'goal',
90
+ :'is_skadnetwork_attribution' => :'isSkadnetworkAttribution',
91
+ :'promoted_object' => :'promotedObject',
92
+ :'buying_type' => :'buyingType',
93
+ :'validate_only' => :'validateOnly',
79
94
  :'special_ad_categories' => :'specialAdCategories',
80
95
  :'budget_amount' => :'budgetAmount',
81
96
  :'budget_type' => :'budgetType',
@@ -104,6 +119,10 @@ module Zernio
104
119
  :'ad_account_id' => :'String',
105
120
  :'name' => :'String',
106
121
  :'goal' => :'String',
122
+ :'is_skadnetwork_attribution' => :'Boolean',
123
+ :'promoted_object' => :'AdPromotedObject',
124
+ :'buying_type' => :'String',
125
+ :'validate_only' => :'Boolean',
107
126
  :'special_ad_categories' => :'Array<String>',
108
127
  :'budget_amount' => :'Float',
109
128
  :'budget_type' => :'String',
@@ -161,6 +180,22 @@ module Zernio
161
180
  self.goal = nil
162
181
  end
163
182
 
183
+ if attributes.key?(:'is_skadnetwork_attribution')
184
+ self.is_skadnetwork_attribution = attributes[:'is_skadnetwork_attribution']
185
+ end
186
+
187
+ if attributes.key?(:'promoted_object')
188
+ self.promoted_object = attributes[:'promoted_object']
189
+ end
190
+
191
+ if attributes.key?(:'buying_type')
192
+ self.buying_type = attributes[:'buying_type']
193
+ end
194
+
195
+ if attributes.key?(:'validate_only')
196
+ self.validate_only = attributes[:'validate_only']
197
+ end
198
+
164
199
  if attributes.key?(:'special_ad_categories')
165
200
  if (value = attributes[:'special_ad_categories']).is_a?(Array)
166
201
  self.special_ad_categories = value
@@ -242,6 +277,8 @@ module Zernio
242
277
  return false if @goal.nil?
243
278
  goal_validator = EnumAttributeValidator.new('String', ["engagement", "traffic", "awareness", "video_views", "lead_generation", "lead_conversion", "job_applicants", "conversions", "app_promotion", "catalog_sales", "page_likes"])
244
279
  return false unless goal_validator.valid?(@goal)
280
+ buying_type_validator = EnumAttributeValidator.new('String', ["AUCTION", "RESERVED"])
281
+ return false unless buying_type_validator.valid?(@buying_type)
245
282
  budget_type_validator = EnumAttributeValidator.new('String', ["daily", "lifetime"])
246
283
  return false unless budget_type_validator.valid?(@budget_type)
247
284
  status_validator = EnumAttributeValidator.new('String', ["ACTIVE", "PAUSED"])
@@ -296,6 +333,16 @@ module Zernio
296
333
  @goal = goal
297
334
  end
298
335
 
336
+ # Custom attribute writer method checking allowed values (enum).
337
+ # @param [Object] buying_type Object to be assigned
338
+ def buying_type=(buying_type)
339
+ validator = EnumAttributeValidator.new('String', ["AUCTION", "RESERVED"])
340
+ unless validator.valid?(buying_type)
341
+ fail ArgumentError, "invalid value for \"buying_type\", must be one of #{validator.allowable_values}."
342
+ end
343
+ @buying_type = buying_type
344
+ end
345
+
299
346
  # Custom attribute writer method checking allowed values (enum).
300
347
  # @param [Object] budget_type Object to be assigned
301
348
  def budget_type=(budget_type)
@@ -350,6 +397,10 @@ module Zernio
350
397
  ad_account_id == o.ad_account_id &&
351
398
  name == o.name &&
352
399
  goal == o.goal &&
400
+ is_skadnetwork_attribution == o.is_skadnetwork_attribution &&
401
+ promoted_object == o.promoted_object &&
402
+ buying_type == o.buying_type &&
403
+ validate_only == o.validate_only &&
353
404
  special_ad_categories == o.special_ad_categories &&
354
405
  budget_amount == o.budget_amount &&
355
406
  budget_type == o.budget_type &&
@@ -369,7 +420,7 @@ module Zernio
369
420
  # Calculates hash code according to all attributes.
370
421
  # @return [Integer] Hash code
371
422
  def hash
372
- [account_id, ad_account_id, name, goal, special_ad_categories, budget_amount, budget_type, status, bid_strategy, bid_amount, roas_average_floor, portfolio_bid_strategy_id].hash
423
+ [account_id, ad_account_id, name, goal, is_skadnetwork_attribution, promoted_object, buying_type, validate_only, special_ad_categories, budget_amount, budget_type, status, bid_strategy, bid_amount, roas_average_floor, portfolio_bid_strategy_id].hash
373
424
  end
374
425
 
375
426
  # Builds the object from hash
@@ -18,6 +18,8 @@ module Zernio
18
18
  # Meta enhancement settings for single or attached ads, and defaults for creatives[]. An item replaces the entire map, including with an empty object.
19
19
  attr_accessor :creative_features
20
20
 
21
+ attr_accessor :tracking
22
+
21
23
  # Facebook or Instagram SocialAccount ID.
22
24
  attr_accessor :account_id
23
25
 
@@ -161,6 +163,7 @@ module Zernio
161
163
  def self.attribute_map
162
164
  {
163
165
  :'creative_features' => :'creativeFeatures',
166
+ :'tracking' => :'tracking',
164
167
  :'account_id' => :'accountId',
165
168
  :'ad_account_id' => :'adAccountId',
166
169
  :'name' => :'name',
@@ -219,6 +222,7 @@ module Zernio
219
222
  def self.openapi_types
220
223
  {
221
224
  :'creative_features' => :'Hash<String, String>',
225
+ :'tracking' => :'AdTracking',
222
226
  :'account_id' => :'String',
223
227
  :'ad_account_id' => :'String',
224
228
  :'name' => :'String',
@@ -298,6 +302,10 @@ module Zernio
298
302
  end
299
303
  end
300
304
 
305
+ if attributes.key?(:'tracking')
306
+ self.tracking = attributes[:'tracking']
307
+ end
308
+
301
309
  if attributes.key?(:'account_id')
302
310
  self.account_id = attributes[:'account_id']
303
311
  else
@@ -937,6 +945,7 @@ module Zernio
937
945
  return true if self.equal?(o)
938
946
  self.class == o.class &&
939
947
  creative_features == o.creative_features &&
948
+ tracking == o.tracking &&
940
949
  account_id == o.account_id &&
941
950
  ad_account_id == o.ad_account_id &&
942
951
  name == o.name &&
@@ -989,7 +998,7 @@ module Zernio
989
998
  # Calculates hash code according to all attributes.
990
999
  # @return [Integer] Hash code
991
1000
  def hash
992
- [creative_features, account_id, ad_account_id, name, existing_post_id, object_story_id, whatsapp_phone_number, headline, body, image_url, video, welcome_message, creatives, ad_set_id, budget_amount, budget_type, currency, end_date, countries, cities, regions, zips, metros, custom_locations, age_min, age_max, interests, audience_id, placements, advantage_audience, objective, status, campaign_status, bid_strategy, bid_amount, roas_average_floor, dsa_beneficiary, dsa_payor, regional_regulated_categories, regional_regulation_identities, phone_number, link_url].hash
1001
+ [creative_features, tracking, account_id, ad_account_id, name, existing_post_id, object_story_id, whatsapp_phone_number, headline, body, image_url, video, welcome_message, creatives, ad_set_id, budget_amount, budget_type, currency, end_date, countries, cities, regions, zips, metros, custom_locations, age_min, age_max, interests, audience_id, placements, advantage_audience, objective, status, campaign_status, bid_strategy, bid_amount, roas_average_floor, dsa_beneficiary, dsa_payor, regional_regulated_categories, regional_regulation_identities, phone_number, link_url].hash
993
1002
  end
994
1003
 
995
1004
  # Builds the object from hash
@@ -18,6 +18,8 @@ module Zernio
18
18
  # Meta enhancement settings for single or attached ads, and defaults for creatives[]. An item replaces the entire map, including with an empty object.
19
19
  attr_accessor :creative_features
20
20
 
21
+ attr_accessor :tracking
22
+
21
23
  # Facebook or Instagram SocialAccount ID.
22
24
  attr_accessor :account_id
23
25
 
@@ -158,6 +160,7 @@ module Zernio
158
160
  def self.attribute_map
159
161
  {
160
162
  :'creative_features' => :'creativeFeatures',
163
+ :'tracking' => :'tracking',
161
164
  :'account_id' => :'accountId',
162
165
  :'ad_account_id' => :'adAccountId',
163
166
  :'name' => :'name',
@@ -215,6 +218,7 @@ module Zernio
215
218
  def self.openapi_types
216
219
  {
217
220
  :'creative_features' => :'Hash<String, String>',
221
+ :'tracking' => :'AdTracking',
218
222
  :'account_id' => :'String',
219
223
  :'ad_account_id' => :'String',
220
224
  :'name' => :'String',
@@ -293,6 +297,10 @@ module Zernio
293
297
  end
294
298
  end
295
299
 
300
+ if attributes.key?(:'tracking')
301
+ self.tracking = attributes[:'tracking']
302
+ end
303
+
296
304
  if attributes.key?(:'account_id')
297
305
  self.account_id = attributes[:'account_id']
298
306
  else
@@ -913,6 +921,7 @@ module Zernio
913
921
  return true if self.equal?(o)
914
922
  self.class == o.class &&
915
923
  creative_features == o.creative_features &&
924
+ tracking == o.tracking &&
916
925
  account_id == o.account_id &&
917
926
  ad_account_id == o.ad_account_id &&
918
927
  name == o.name &&
@@ -964,7 +973,7 @@ module Zernio
964
973
  # Calculates hash code according to all attributes.
965
974
  # @return [Integer] Hash code
966
975
  def hash
967
- [creative_features, account_id, ad_account_id, name, existing_post_id, object_story_id, whatsapp_phone_number, headline, body, image_url, video, welcome_message, creatives, ad_set_id, budget_amount, budget_type, currency, end_date, countries, cities, regions, zips, metros, custom_locations, age_min, age_max, interests, audience_id, placements, advantage_audience, objective, status, campaign_status, bid_strategy, bid_amount, roas_average_floor, dsa_beneficiary, dsa_payor, regional_regulated_categories, regional_regulation_identities, destination].hash
976
+ [creative_features, tracking, account_id, ad_account_id, name, existing_post_id, object_story_id, whatsapp_phone_number, headline, body, image_url, video, welcome_message, creatives, ad_set_id, budget_amount, budget_type, currency, end_date, countries, cities, regions, zips, metros, custom_locations, age_min, age_max, interests, audience_id, placements, advantage_audience, objective, status, campaign_status, bid_strategy, bid_amount, roas_average_floor, dsa_beneficiary, dsa_payor, regional_regulated_categories, regional_regulation_identities, destination].hash
968
977
  end
969
978
 
970
979
  # Builds the object from hash