@defoai/ads-client 1.4.0

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 (188) hide show
  1. package/README.md +88 -0
  2. package/dist/generated/apis/AdAssetsApi.d.ts +140 -0
  3. package/dist/generated/apis/AdAssetsApi.js +173 -0
  4. package/dist/generated/apis/AdGroupsApi.d.ts +165 -0
  5. package/dist/generated/apis/AdGroupsApi.js +205 -0
  6. package/dist/generated/apis/AdsApi.d.ts +160 -0
  7. package/dist/generated/apis/AdsApi.js +200 -0
  8. package/dist/generated/apis/AssetsApi.d.ts +162 -0
  9. package/dist/generated/apis/AssetsApi.js +203 -0
  10. package/dist/generated/apis/CampaignAssetsApi.d.ts +136 -0
  11. package/dist/generated/apis/CampaignAssetsApi.js +167 -0
  12. package/dist/generated/apis/CampaignsApi.d.ts +169 -0
  13. package/dist/generated/apis/CampaignsApi.js +206 -0
  14. package/dist/generated/apis/KeywordsApi.d.ts +160 -0
  15. package/dist/generated/apis/KeywordsApi.js +200 -0
  16. package/dist/generated/apis/MediaApi.d.ts +50 -0
  17. package/dist/generated/apis/MediaApi.js +51 -0
  18. package/dist/generated/apis/MetaApi.d.ts +86 -0
  19. package/dist/generated/apis/MetaApi.js +104 -0
  20. package/dist/generated/apis/ReportsApi.d.ts +50 -0
  21. package/dist/generated/apis/ReportsApi.js +51 -0
  22. package/dist/generated/apis/SitesApi.d.ts +163 -0
  23. package/dist/generated/apis/SitesApi.js +202 -0
  24. package/dist/generated/apis/SyncApi.d.ts +199 -0
  25. package/dist/generated/apis/SyncApi.js +241 -0
  26. package/dist/generated/apis/index.d.ts +12 -0
  27. package/dist/generated/apis/index.js +14 -0
  28. package/dist/generated/index.d.ts +3 -0
  29. package/dist/generated/index.js +5 -0
  30. package/dist/generated/models/AdAssetCreate.d.ts +83 -0
  31. package/dist/generated/models/AdAssetCreate.js +76 -0
  32. package/dist/generated/models/AdCreate.d.ts +147 -0
  33. package/dist/generated/models/AdCreate.js +97 -0
  34. package/dist/generated/models/AdGroupAudience.d.ts +44 -0
  35. package/dist/generated/models/AdGroupAudience.js +49 -0
  36. package/dist/generated/models/AdGroupCreate.d.ts +104 -0
  37. package/dist/generated/models/AdGroupCreate.js +74 -0
  38. package/dist/generated/models/AdGroupUpdate.d.ts +104 -0
  39. package/dist/generated/models/AdGroupUpdate.js +70 -0
  40. package/dist/generated/models/AdUpdate.d.ts +147 -0
  41. package/dist/generated/models/AdUpdate.js +85 -0
  42. package/dist/generated/models/AssetCreate.d.ts +117 -0
  43. package/dist/generated/models/AssetCreate.js +80 -0
  44. package/dist/generated/models/AssetUpdate.d.ts +79 -0
  45. package/dist/generated/models/AssetUpdate.js +61 -0
  46. package/dist/generated/models/BiddingStrategy.d.ts +70 -0
  47. package/dist/generated/models/BiddingStrategy.js +62 -0
  48. package/dist/generated/models/CampaignAdScheduleField.d.ts +12 -0
  49. package/dist/generated/models/CampaignAdScheduleField.js +4 -0
  50. package/dist/generated/models/CampaignAssetCreate.d.ts +57 -0
  51. package/dist/generated/models/CampaignAssetCreate.js +63 -0
  52. package/dist/generated/models/CampaignCreate.d.ts +161 -0
  53. package/dist/generated/models/CampaignCreate.js +102 -0
  54. package/dist/generated/models/CampaignTargeting.d.ts +50 -0
  55. package/dist/generated/models/CampaignTargeting.js +47 -0
  56. package/dist/generated/models/CampaignUpdate.d.ts +161 -0
  57. package/dist/generated/models/CampaignUpdate.js +98 -0
  58. package/dist/generated/models/CampaignsListCursorParameter.d.ts +26 -0
  59. package/dist/generated/models/CampaignsListCursorParameter.js +31 -0
  60. package/dist/generated/models/ErrorEnvelope.d.ts +33 -0
  61. package/dist/generated/models/ErrorEnvelope.js +44 -0
  62. package/dist/generated/models/ErrorEnvelopeError.d.ts +44 -0
  63. package/dist/generated/models/ErrorEnvelopeError.js +49 -0
  64. package/dist/generated/models/KeywordCreate.d.ts +86 -0
  65. package/dist/generated/models/KeywordCreate.js +73 -0
  66. package/dist/generated/models/KeywordUpdate.d.ts +86 -0
  67. package/dist/generated/models/KeywordUpdate.js +69 -0
  68. package/dist/generated/models/Location.d.ts +61 -0
  69. package/dist/generated/models/Location.js +61 -0
  70. package/dist/generated/models/NegativeKeywordEntry.d.ts +47 -0
  71. package/dist/generated/models/NegativeKeywordEntry.js +55 -0
  72. package/dist/generated/models/ScheduleWindow.d.ts +95 -0
  73. package/dist/generated/models/ScheduleWindow.js +87 -0
  74. package/dist/generated/models/SiteCreate.d.ts +99 -0
  75. package/dist/generated/models/SiteCreate.js +78 -0
  76. package/dist/generated/models/SiteCreateSeoKeywords.d.ts +11 -0
  77. package/dist/generated/models/SiteCreateSeoKeywords.js +12 -0
  78. package/dist/generated/models/SiteCreateTargetGroups.d.ts +11 -0
  79. package/dist/generated/models/SiteCreateTargetGroups.js +12 -0
  80. package/dist/generated/models/SiteLinkEntry.d.ts +50 -0
  81. package/dist/generated/models/SiteLinkEntry.js +47 -0
  82. package/dist/generated/models/SiteUpdate.d.ts +99 -0
  83. package/dist/generated/models/SiteUpdate.js +74 -0
  84. package/dist/generated/models/Sitelink.d.ts +64 -0
  85. package/dist/generated/models/Sitelink.js +51 -0
  86. package/dist/generated/models/StructuredSchedule.d.ts +39 -0
  87. package/dist/generated/models/StructuredSchedule.js +46 -0
  88. package/dist/generated/models/StructuredSnippet.d.ts +38 -0
  89. package/dist/generated/models/StructuredSnippet.js +47 -0
  90. package/dist/generated/models/SuccessEnvelope.d.ts +39 -0
  91. package/dist/generated/models/SuccessEnvelope.js +46 -0
  92. package/dist/generated/models/SuccessEnvelopeMeta.d.ts +39 -0
  93. package/dist/generated/models/SuccessEnvelopeMeta.js +44 -0
  94. package/dist/generated/models/SuccessEnvelopeMetaNextCursor.d.ts +26 -0
  95. package/dist/generated/models/SuccessEnvelopeMetaNextCursor.js +31 -0
  96. package/dist/generated/models/SyncCampaignDetail.d.ts +88 -0
  97. package/dist/generated/models/SyncCampaignDetail.js +71 -0
  98. package/dist/generated/models/SyncPlan.d.ts +35 -0
  99. package/dist/generated/models/SyncPlan.js +43 -0
  100. package/dist/generated/models/SyncPlanPlatformsValue.d.ts +33 -0
  101. package/dist/generated/models/SyncPlanPlatformsValue.js +42 -0
  102. package/dist/generated/models/SyncPlanPlatformsValueTotals.d.ts +44 -0
  103. package/dist/generated/models/SyncPlanPlatformsValueTotals.js +45 -0
  104. package/dist/generated/models/SyncProgress.d.ts +57 -0
  105. package/dist/generated/models/SyncProgress.js +50 -0
  106. package/dist/generated/models/SyncRecord.d.ts +103 -0
  107. package/dist/generated/models/SyncRecord.js +73 -0
  108. package/dist/generated/models/SyncRecordErrorsInner.d.ts +38 -0
  109. package/dist/generated/models/SyncRecordErrorsInner.js +43 -0
  110. package/dist/generated/models/SyncTotals.d.ts +68 -0
  111. package/dist/generated/models/SyncTotals.js +53 -0
  112. package/dist/generated/models/SyncTriggerRequest.d.ts +39 -0
  113. package/dist/generated/models/SyncTriggerRequest.js +44 -0
  114. package/dist/generated/models/SyncTriggerRequestOptions.d.ts +56 -0
  115. package/dist/generated/models/SyncTriggerRequestOptions.js +49 -0
  116. package/dist/generated/models/SyncTriggerResponse.d.ts +59 -0
  117. package/dist/generated/models/SyncTriggerResponse.js +55 -0
  118. package/dist/generated/models/SyncUnlinkRequest.d.ts +44 -0
  119. package/dist/generated/models/SyncUnlinkRequest.js +47 -0
  120. package/dist/generated/models/index.d.ts +45 -0
  121. package/dist/generated/models/index.js +47 -0
  122. package/dist/generated/runtime.d.ts +182 -0
  123. package/dist/generated/runtime.js +318 -0
  124. package/dist/index.d.ts +177 -0
  125. package/dist/index.js +207 -0
  126. package/package.json +32 -0
  127. package/src/generated/apis/AdAssetsApi.ts +342 -0
  128. package/src/generated/apis/AdGroupsApi.ts +408 -0
  129. package/src/generated/apis/AdsApi.ts +399 -0
  130. package/src/generated/apis/AssetsApi.ts +405 -0
  131. package/src/generated/apis/CampaignAssetsApi.ts +330 -0
  132. package/src/generated/apis/CampaignsApi.ts +408 -0
  133. package/src/generated/apis/KeywordsApi.ts +399 -0
  134. package/src/generated/apis/MediaApi.ts +99 -0
  135. package/src/generated/apis/MetaApi.ts +186 -0
  136. package/src/generated/apis/ReportsApi.ts +99 -0
  137. package/src/generated/apis/SitesApi.ts +402 -0
  138. package/src/generated/apis/SyncApi.ts +468 -0
  139. package/src/generated/apis/index.ts +14 -0
  140. package/src/generated/index.ts +5 -0
  141. package/src/generated/models/AdAssetCreate.ts +133 -0
  142. package/src/generated/models/AdCreate.ts +234 -0
  143. package/src/generated/models/AdGroupAudience.ts +83 -0
  144. package/src/generated/models/AdGroupCreate.ts +167 -0
  145. package/src/generated/models/AdGroupUpdate.ts +165 -0
  146. package/src/generated/models/AdUpdate.ts +228 -0
  147. package/src/generated/models/AssetCreate.ts +175 -0
  148. package/src/generated/models/AssetUpdate.ts +125 -0
  149. package/src/generated/models/BiddingStrategy.ts +114 -0
  150. package/src/generated/models/CampaignAdScheduleField.ts +16 -0
  151. package/src/generated/models/CampaignAssetCreate.ts +100 -0
  152. package/src/generated/models/CampaignCreate.ts +263 -0
  153. package/src/generated/models/CampaignTargeting.ts +89 -0
  154. package/src/generated/models/CampaignUpdate.ts +261 -0
  155. package/src/generated/models/CampaignsListCursorParameter.ts +46 -0
  156. package/src/generated/models/ErrorEnvelope.ts +74 -0
  157. package/src/generated/models/ErrorEnvelopeError.ts +83 -0
  158. package/src/generated/models/KeywordCreate.ts +137 -0
  159. package/src/generated/models/KeywordUpdate.ts +135 -0
  160. package/src/generated/models/Location.ts +105 -0
  161. package/src/generated/models/NegativeKeywordEntry.ts +87 -0
  162. package/src/generated/models/ScheduleWindow.ts +146 -0
  163. package/src/generated/models/SiteCreate.ts +173 -0
  164. package/src/generated/models/SiteCreateSeoKeywords.ts +16 -0
  165. package/src/generated/models/SiteCreateTargetGroups.ts +16 -0
  166. package/src/generated/models/SiteLinkEntry.ts +89 -0
  167. package/src/generated/models/SiteUpdate.ts +171 -0
  168. package/src/generated/models/Sitelink.ts +105 -0
  169. package/src/generated/models/StructuredSchedule.ts +82 -0
  170. package/src/generated/models/StructuredSnippet.ts +75 -0
  171. package/src/generated/models/SuccessEnvelope.ts +82 -0
  172. package/src/generated/models/SuccessEnvelopeMeta.ts +81 -0
  173. package/src/generated/models/SuccessEnvelopeMetaNextCursor.ts +46 -0
  174. package/src/generated/models/SyncCampaignDetail.ts +137 -0
  175. package/src/generated/models/SyncPlan.ts +73 -0
  176. package/src/generated/models/SyncPlanPlatformsValue.ts +73 -0
  177. package/src/generated/models/SyncPlanPlatformsValueTotals.ts +81 -0
  178. package/src/generated/models/SyncProgress.ts +105 -0
  179. package/src/generated/models/SyncRecord.ts +174 -0
  180. package/src/generated/models/SyncRecordErrorsInner.ts +73 -0
  181. package/src/generated/models/SyncTotals.ts +113 -0
  182. package/src/generated/models/SyncTriggerRequest.ts +81 -0
  183. package/src/generated/models/SyncTriggerRequestOptions.ts +97 -0
  184. package/src/generated/models/SyncTriggerResponse.ts +108 -0
  185. package/src/generated/models/SyncUnlinkRequest.ts +82 -0
  186. package/src/generated/models/index.ts +47 -0
  187. package/src/generated/runtime.ts +431 -0
  188. package/src/index.ts +229 -0
@@ -0,0 +1,241 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Defo Ads Public API
5
+ * Stable public API for managing campaigns, ads, keywords, and sites.
6
+ *
7
+ * The version of the OpenAPI document: 1.4.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ import * as runtime from '../runtime';
15
+ import { SuccessEnvelopeFromJSON, SyncTriggerRequestToJSON, SyncUnlinkRequestToJSON, } from '../models/index';
16
+ /**
17
+ *
18
+ */
19
+ export class SyncApi extends runtime.BaseAPI {
20
+ /**
21
+ * Cancellation takes effect at the next campaign boundary.
22
+ * Request cancellation of a running sync
23
+ */
24
+ async syncCancelRaw(requestParameters, initOverrides) {
25
+ if (requestParameters['id'] == null) {
26
+ throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling syncCancel().');
27
+ }
28
+ const queryParameters = {};
29
+ const headerParameters = {};
30
+ if (requestParameters['xSpaceId'] != null) {
31
+ headerParameters['X-Space-Id'] = String(requestParameters['xSpaceId']);
32
+ }
33
+ if (this.configuration && this.configuration.accessToken) {
34
+ const token = this.configuration.accessToken;
35
+ const tokenString = await token("ApiToken", ["sync:write"]);
36
+ if (tokenString) {
37
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
38
+ }
39
+ }
40
+ const response = await this.request({
41
+ path: `/api/v1/sync/{id}/cancel`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
42
+ method: 'POST',
43
+ headers: headerParameters,
44
+ query: queryParameters,
45
+ }, initOverrides);
46
+ return new runtime.JSONApiResponse(response, (jsonValue) => SuccessEnvelopeFromJSON(jsonValue));
47
+ }
48
+ /**
49
+ * Cancellation takes effect at the next campaign boundary.
50
+ * Request cancellation of a running sync
51
+ */
52
+ async syncCancel(requestParameters, initOverrides) {
53
+ const response = await this.syncCancelRaw(requestParameters, initOverrides);
54
+ return await response.value();
55
+ }
56
+ /**
57
+ * Returns the full record including per-campaign progress and structured errors. 404 if the id is outside the caller\'s Space.
58
+ * Get a sync record (status, progress, totals, errors)
59
+ */
60
+ async syncGetRaw(requestParameters, initOverrides) {
61
+ if (requestParameters['id'] == null) {
62
+ throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling syncGet().');
63
+ }
64
+ const queryParameters = {};
65
+ const headerParameters = {};
66
+ if (requestParameters['xSpaceId'] != null) {
67
+ headerParameters['X-Space-Id'] = String(requestParameters['xSpaceId']);
68
+ }
69
+ if (this.configuration && this.configuration.accessToken) {
70
+ const token = this.configuration.accessToken;
71
+ const tokenString = await token("ApiToken", ["sync:read"]);
72
+ if (tokenString) {
73
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
74
+ }
75
+ }
76
+ const response = await this.request({
77
+ path: `/api/v1/sync/{id}`.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters['id']))),
78
+ method: 'GET',
79
+ headers: headerParameters,
80
+ query: queryParameters,
81
+ }, initOverrides);
82
+ return new runtime.JSONApiResponse(response, (jsonValue) => SuccessEnvelopeFromJSON(jsonValue));
83
+ }
84
+ /**
85
+ * Returns the full record including per-campaign progress and structured errors. 404 if the id is outside the caller\'s Space.
86
+ * Get a sync record (status, progress, totals, errors)
87
+ */
88
+ async syncGet(requestParameters, initOverrides) {
89
+ const response = await this.syncGetRaw(requestParameters, initOverrides);
90
+ return await response.value();
91
+ }
92
+ /**
93
+ * List recent syncs for the active Space
94
+ */
95
+ async syncListRaw(requestParameters, initOverrides) {
96
+ const queryParameters = {};
97
+ if (requestParameters['limit'] != null) {
98
+ queryParameters['limit'] = requestParameters['limit'];
99
+ }
100
+ if (requestParameters['cursor'] != null) {
101
+ queryParameters['cursor'] = requestParameters['cursor'];
102
+ }
103
+ const headerParameters = {};
104
+ if (requestParameters['xSpaceId'] != null) {
105
+ headerParameters['X-Space-Id'] = String(requestParameters['xSpaceId']);
106
+ }
107
+ if (this.configuration && this.configuration.accessToken) {
108
+ const token = this.configuration.accessToken;
109
+ const tokenString = await token("ApiToken", ["sync:read"]);
110
+ if (tokenString) {
111
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
112
+ }
113
+ }
114
+ const response = await this.request({
115
+ path: `/api/v1/sync`,
116
+ method: 'GET',
117
+ headers: headerParameters,
118
+ query: queryParameters,
119
+ }, initOverrides);
120
+ return new runtime.JSONApiResponse(response, (jsonValue) => SuccessEnvelopeFromJSON(jsonValue));
121
+ }
122
+ /**
123
+ * List recent syncs for the active Space
124
+ */
125
+ async syncList(requestParameters = {}, initOverrides) {
126
+ const response = await this.syncListRaw(requestParameters, initOverrides);
127
+ return await response.value();
128
+ }
129
+ /**
130
+ * Computes the import/export/remove plan for the active Space without executing.
131
+ * Preview what a sync would do (dry run)
132
+ */
133
+ async syncPlanRaw(requestParameters, initOverrides) {
134
+ const queryParameters = {};
135
+ if (requestParameters['platforms'] != null) {
136
+ queryParameters['platforms'] = requestParameters['platforms'];
137
+ }
138
+ const headerParameters = {};
139
+ if (requestParameters['xSpaceId'] != null) {
140
+ headerParameters['X-Space-Id'] = String(requestParameters['xSpaceId']);
141
+ }
142
+ if (this.configuration && this.configuration.accessToken) {
143
+ const token = this.configuration.accessToken;
144
+ const tokenString = await token("ApiToken", ["sync:read"]);
145
+ if (tokenString) {
146
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
147
+ }
148
+ }
149
+ const response = await this.request({
150
+ path: `/api/v1/sync/plan`,
151
+ method: 'GET',
152
+ headers: headerParameters,
153
+ query: queryParameters,
154
+ }, initOverrides);
155
+ return new runtime.JSONApiResponse(response, (jsonValue) => SuccessEnvelopeFromJSON(jsonValue));
156
+ }
157
+ /**
158
+ * Computes the import/export/remove plan for the active Space without executing.
159
+ * Preview what a sync would do (dry run)
160
+ */
161
+ async syncPlan(requestParameters = {}, initOverrides) {
162
+ const response = await this.syncPlanRaw(requestParameters, initOverrides);
163
+ return await response.value();
164
+ }
165
+ /**
166
+ * Pushes the active Space\'s campaign tree to the connected ad platforms (and imports remote changes). Asynchronous: returns a `syncId` immediately with status `started` (or `nothing_to_sync`). Poll `GET /api/v1/sync/{id}` for progress and errors. Returns 409 CONFLICT (details: { activeSyncId, startedAt }) if a sync is already running in this Space. The platform connection used is account-wide; the campaigns synced are the active Space\'s.
167
+ * Trigger a sync for the active Space
168
+ */
169
+ async syncTriggerRaw(requestParameters, initOverrides) {
170
+ if (requestParameters['syncTriggerRequest'] == null) {
171
+ throw new runtime.RequiredError('syncTriggerRequest', 'Required parameter "syncTriggerRequest" was null or undefined when calling syncTrigger().');
172
+ }
173
+ const queryParameters = {};
174
+ const headerParameters = {};
175
+ headerParameters['Content-Type'] = 'application/json';
176
+ if (requestParameters['xSpaceId'] != null) {
177
+ headerParameters['X-Space-Id'] = String(requestParameters['xSpaceId']);
178
+ }
179
+ if (this.configuration && this.configuration.accessToken) {
180
+ const token = this.configuration.accessToken;
181
+ const tokenString = await token("ApiToken", ["sync:write"]);
182
+ if (tokenString) {
183
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
184
+ }
185
+ }
186
+ const response = await this.request({
187
+ path: `/api/v1/sync`,
188
+ method: 'POST',
189
+ headers: headerParameters,
190
+ query: queryParameters,
191
+ body: SyncTriggerRequestToJSON(requestParameters['syncTriggerRequest']),
192
+ }, initOverrides);
193
+ return new runtime.JSONApiResponse(response, (jsonValue) => SuccessEnvelopeFromJSON(jsonValue));
194
+ }
195
+ /**
196
+ * Pushes the active Space\'s campaign tree to the connected ad platforms (and imports remote changes). Asynchronous: returns a `syncId` immediately with status `started` (or `nothing_to_sync`). Poll `GET /api/v1/sync/{id}` for progress and errors. Returns 409 CONFLICT (details: { activeSyncId, startedAt }) if a sync is already running in this Space. The platform connection used is account-wide; the campaigns synced are the active Space\'s.
197
+ * Trigger a sync for the active Space
198
+ */
199
+ async syncTrigger(requestParameters, initOverrides) {
200
+ const response = await this.syncTriggerRaw(requestParameters, initOverrides);
201
+ return await response.value();
202
+ }
203
+ /**
204
+ * Clears the platform link (and optionally removes the remote campaign) while keeping the local campaign. Returns a per-id result map; already-unlinked ids report `not_linked`. Unlink then sync to re-create campaigns cleanly on the platform.
205
+ * Unlink the active Space\'s campaigns from a platform
206
+ */
207
+ async syncUnlinkRaw(requestParameters, initOverrides) {
208
+ if (requestParameters['syncUnlinkRequest'] == null) {
209
+ throw new runtime.RequiredError('syncUnlinkRequest', 'Required parameter "syncUnlinkRequest" was null or undefined when calling syncUnlink().');
210
+ }
211
+ const queryParameters = {};
212
+ const headerParameters = {};
213
+ headerParameters['Content-Type'] = 'application/json';
214
+ if (requestParameters['xSpaceId'] != null) {
215
+ headerParameters['X-Space-Id'] = String(requestParameters['xSpaceId']);
216
+ }
217
+ if (this.configuration && this.configuration.accessToken) {
218
+ const token = this.configuration.accessToken;
219
+ const tokenString = await token("ApiToken", ["sync:write"]);
220
+ if (tokenString) {
221
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
222
+ }
223
+ }
224
+ const response = await this.request({
225
+ path: `/api/v1/sync/unlink`,
226
+ method: 'POST',
227
+ headers: headerParameters,
228
+ query: queryParameters,
229
+ body: SyncUnlinkRequestToJSON(requestParameters['syncUnlinkRequest']),
230
+ }, initOverrides);
231
+ return new runtime.JSONApiResponse(response, (jsonValue) => SuccessEnvelopeFromJSON(jsonValue));
232
+ }
233
+ /**
234
+ * Clears the platform link (and optionally removes the remote campaign) while keeping the local campaign. Returns a per-id result map; already-unlinked ids report `not_linked`. Unlink then sync to re-create campaigns cleanly on the platform.
235
+ * Unlink the active Space\'s campaigns from a platform
236
+ */
237
+ async syncUnlink(requestParameters, initOverrides) {
238
+ const response = await this.syncUnlinkRaw(requestParameters, initOverrides);
239
+ return await response.value();
240
+ }
241
+ }
@@ -0,0 +1,12 @@
1
+ export * from './AdAssetsApi';
2
+ export * from './AdGroupsApi';
3
+ export * from './AdsApi';
4
+ export * from './AssetsApi';
5
+ export * from './CampaignAssetsApi';
6
+ export * from './CampaignsApi';
7
+ export * from './KeywordsApi';
8
+ export * from './MediaApi';
9
+ export * from './MetaApi';
10
+ export * from './ReportsApi';
11
+ export * from './SitesApi';
12
+ export * from './SyncApi';
@@ -0,0 +1,14 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ export * from './AdAssetsApi';
4
+ export * from './AdGroupsApi';
5
+ export * from './AdsApi';
6
+ export * from './AssetsApi';
7
+ export * from './CampaignAssetsApi';
8
+ export * from './CampaignsApi';
9
+ export * from './KeywordsApi';
10
+ export * from './MediaApi';
11
+ export * from './MetaApi';
12
+ export * from './ReportsApi';
13
+ export * from './SitesApi';
14
+ export * from './SyncApi';
@@ -0,0 +1,3 @@
1
+ export * from './runtime';
2
+ export * from './apis/index';
3
+ export * from './models/index';
@@ -0,0 +1,5 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ export * from './runtime';
4
+ export * from './apis/index';
5
+ export * from './models/index';
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Defo Ads Public API
3
+ * Stable public API for managing campaigns, ads, keywords, and sites.
4
+ *
5
+ * The version of the OpenAPI document: 1.4.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ * Bind an asset to an ad (scope=AD, adId required) or ad group (scope=AD_GROUP, adGroupId required). campaignId is derived from the ad/ad group when omitted.
14
+ * @export
15
+ * @interface AdAssetCreate
16
+ */
17
+ export interface AdAssetCreate {
18
+ /**
19
+ *
20
+ * @type {string}
21
+ * @memberof AdAssetCreate
22
+ */
23
+ scope: AdAssetCreateScopeEnum;
24
+ /**
25
+ * Required when scope=AD.
26
+ * @type {string}
27
+ * @memberof AdAssetCreate
28
+ */
29
+ adId?: string;
30
+ /**
31
+ * Required when scope=AD_GROUP.
32
+ * @type {string}
33
+ * @memberof AdAssetCreate
34
+ */
35
+ adGroupId?: string;
36
+ /**
37
+ * Optional; derived from the ad/ad group when omitted.
38
+ * @type {string}
39
+ * @memberof AdAssetCreate
40
+ */
41
+ campaignId?: string;
42
+ /**
43
+ *
44
+ * @type {string}
45
+ * @memberof AdAssetCreate
46
+ */
47
+ assetId: string;
48
+ /**
49
+ *
50
+ * @type {string}
51
+ * @memberof AdAssetCreate
52
+ */
53
+ role: AdAssetCreateRoleEnum;
54
+ }
55
+ /**
56
+ * @export
57
+ */
58
+ export declare const AdAssetCreateScopeEnum: {
59
+ readonly AD: "AD";
60
+ readonly AD_GROUP: "AD_GROUP";
61
+ };
62
+ export type AdAssetCreateScopeEnum = typeof AdAssetCreateScopeEnum[keyof typeof AdAssetCreateScopeEnum];
63
+ /**
64
+ * @export
65
+ */
66
+ export declare const AdAssetCreateRoleEnum: {
67
+ readonly MARKETING_IMAGE: "MARKETING_IMAGE";
68
+ readonly SQUARE_MARKETING_IMAGE: "SQUARE_MARKETING_IMAGE";
69
+ readonly PORTRAIT_MARKETING_IMAGE: "PORTRAIT_MARKETING_IMAGE";
70
+ readonly LOGO: "LOGO";
71
+ readonly LANDSCAPE_LOGO: "LANDSCAPE_LOGO";
72
+ readonly YOUTUBE_VIDEO: "YOUTUBE_VIDEO";
73
+ readonly VIDEO: "VIDEO";
74
+ };
75
+ export type AdAssetCreateRoleEnum = typeof AdAssetCreateRoleEnum[keyof typeof AdAssetCreateRoleEnum];
76
+ /**
77
+ * Check if a given object implements the AdAssetCreate interface.
78
+ */
79
+ export declare function instanceOfAdAssetCreate(value: object): value is AdAssetCreate;
80
+ export declare function AdAssetCreateFromJSON(json: any): AdAssetCreate;
81
+ export declare function AdAssetCreateFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdAssetCreate;
82
+ export declare function AdAssetCreateToJSON(json: any): AdAssetCreate;
83
+ export declare function AdAssetCreateToJSONTyped(value?: AdAssetCreate | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,76 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Defo Ads Public API
5
+ * Stable public API for managing campaigns, ads, keywords, and sites.
6
+ *
7
+ * The version of the OpenAPI document: 1.4.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ /**
15
+ * @export
16
+ */
17
+ export const AdAssetCreateScopeEnum = {
18
+ AD: 'AD',
19
+ AD_GROUP: 'AD_GROUP'
20
+ };
21
+ /**
22
+ * @export
23
+ */
24
+ export const AdAssetCreateRoleEnum = {
25
+ MARKETING_IMAGE: 'MARKETING_IMAGE',
26
+ SQUARE_MARKETING_IMAGE: 'SQUARE_MARKETING_IMAGE',
27
+ PORTRAIT_MARKETING_IMAGE: 'PORTRAIT_MARKETING_IMAGE',
28
+ LOGO: 'LOGO',
29
+ LANDSCAPE_LOGO: 'LANDSCAPE_LOGO',
30
+ YOUTUBE_VIDEO: 'YOUTUBE_VIDEO',
31
+ VIDEO: 'VIDEO'
32
+ };
33
+ /**
34
+ * Check if a given object implements the AdAssetCreate interface.
35
+ */
36
+ export function instanceOfAdAssetCreate(value) {
37
+ if (!('scope' in value) || value['scope'] === undefined)
38
+ return false;
39
+ if (!('assetId' in value) || value['assetId'] === undefined)
40
+ return false;
41
+ if (!('role' in value) || value['role'] === undefined)
42
+ return false;
43
+ return true;
44
+ }
45
+ export function AdAssetCreateFromJSON(json) {
46
+ return AdAssetCreateFromJSONTyped(json, false);
47
+ }
48
+ export function AdAssetCreateFromJSONTyped(json, ignoreDiscriminator) {
49
+ if (json == null) {
50
+ return json;
51
+ }
52
+ return {
53
+ 'scope': json['scope'],
54
+ 'adId': json['adId'] == null ? undefined : json['adId'],
55
+ 'adGroupId': json['adGroupId'] == null ? undefined : json['adGroupId'],
56
+ 'campaignId': json['campaignId'] == null ? undefined : json['campaignId'],
57
+ 'assetId': json['assetId'],
58
+ 'role': json['role'],
59
+ };
60
+ }
61
+ export function AdAssetCreateToJSON(json) {
62
+ return AdAssetCreateToJSONTyped(json, false);
63
+ }
64
+ export function AdAssetCreateToJSONTyped(value, ignoreDiscriminator = false) {
65
+ if (value == null) {
66
+ return value;
67
+ }
68
+ return {
69
+ 'scope': value['scope'],
70
+ 'adId': value['adId'],
71
+ 'adGroupId': value['adGroupId'],
72
+ 'campaignId': value['campaignId'],
73
+ 'assetId': value['assetId'],
74
+ 'role': value['role'],
75
+ };
76
+ }
@@ -0,0 +1,147 @@
1
+ /**
2
+ * Defo Ads Public API
3
+ * Stable public API for managing campaigns, ads, keywords, and sites.
4
+ *
5
+ * The version of the OpenAPI document: 1.4.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import type { Sitelink } from './Sitelink';
13
+ import type { StructuredSnippet } from './StructuredSnippet';
14
+ /**
15
+ *
16
+ * @export
17
+ * @interface AdCreate
18
+ */
19
+ export interface AdCreate {
20
+ /**
21
+ *
22
+ * @type {string}
23
+ * @memberof AdCreate
24
+ */
25
+ adGroupId: string;
26
+ /**
27
+ *
28
+ * @type {string}
29
+ * @memberof AdCreate
30
+ */
31
+ campaignId: string;
32
+ /**
33
+ *
34
+ * @type {string}
35
+ * @memberof AdCreate
36
+ */
37
+ headlinePart1: string;
38
+ /**
39
+ *
40
+ * @type {string}
41
+ * @memberof AdCreate
42
+ */
43
+ headlinePart2: string;
44
+ /**
45
+ *
46
+ * @type {string}
47
+ * @memberof AdCreate
48
+ */
49
+ headlinePart3?: string;
50
+ /**
51
+ *
52
+ * @type {string}
53
+ * @memberof AdCreate
54
+ */
55
+ description: string;
56
+ /**
57
+ *
58
+ * @type {string}
59
+ * @memberof AdCreate
60
+ */
61
+ description2?: string;
62
+ /**
63
+ *
64
+ * @type {string}
65
+ * @memberof AdCreate
66
+ */
67
+ finalUrl: string;
68
+ /**
69
+ *
70
+ * @type {string}
71
+ * @memberof AdCreate
72
+ */
73
+ path1?: string;
74
+ /**
75
+ *
76
+ * @type {string}
77
+ * @memberof AdCreate
78
+ */
79
+ path2?: string;
80
+ /**
81
+ *
82
+ * @type {string}
83
+ * @memberof AdCreate
84
+ */
85
+ status?: AdCreateStatusEnum;
86
+ /**
87
+ *
88
+ * @type {Array<Sitelink>}
89
+ * @memberof AdCreate
90
+ */
91
+ sitelinks?: Array<Sitelink>;
92
+ /**
93
+ *
94
+ * @type {Array<string>}
95
+ * @memberof AdCreate
96
+ */
97
+ callouts?: Array<string>;
98
+ /**
99
+ *
100
+ * @type {Array<StructuredSnippet>}
101
+ * @memberof AdCreate
102
+ */
103
+ structuredSnippets?: Array<StructuredSnippet>;
104
+ /**
105
+ *
106
+ * @type {Array<string>}
107
+ * @memberof AdCreate
108
+ */
109
+ customLabels?: Array<string>;
110
+ /**
111
+ *
112
+ * @type {string}
113
+ * @memberof AdCreate
114
+ */
115
+ trackingUrlTemplate?: string;
116
+ /**
117
+ *
118
+ * @type {string}
119
+ * @memberof AdCreate
120
+ */
121
+ finalUrlSuffix?: string;
122
+ /**
123
+ *
124
+ * @type {{ [key: string]: string; }}
125
+ * @memberof AdCreate
126
+ */
127
+ urlCustomParameters?: {
128
+ [key: string]: string;
129
+ };
130
+ }
131
+ /**
132
+ * @export
133
+ */
134
+ export declare const AdCreateStatusEnum: {
135
+ readonly ENABLED: "ENABLED";
136
+ readonly PAUSED: "PAUSED";
137
+ readonly REMOVED: "REMOVED";
138
+ };
139
+ export type AdCreateStatusEnum = typeof AdCreateStatusEnum[keyof typeof AdCreateStatusEnum];
140
+ /**
141
+ * Check if a given object implements the AdCreate interface.
142
+ */
143
+ export declare function instanceOfAdCreate(value: object): value is AdCreate;
144
+ export declare function AdCreateFromJSON(json: any): AdCreate;
145
+ export declare function AdCreateFromJSONTyped(json: any, ignoreDiscriminator: boolean): AdCreate;
146
+ export declare function AdCreateToJSON(json: any): AdCreate;
147
+ export declare function AdCreateToJSONTyped(value?: AdCreate | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,97 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Defo Ads Public API
5
+ * Stable public API for managing campaigns, ads, keywords, and sites.
6
+ *
7
+ * The version of the OpenAPI document: 1.4.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ import { SitelinkFromJSON, SitelinkToJSON, } from './Sitelink';
15
+ import { StructuredSnippetFromJSON, StructuredSnippetToJSON, } from './StructuredSnippet';
16
+ /**
17
+ * @export
18
+ */
19
+ export const AdCreateStatusEnum = {
20
+ ENABLED: 'ENABLED',
21
+ PAUSED: 'PAUSED',
22
+ REMOVED: 'REMOVED'
23
+ };
24
+ /**
25
+ * Check if a given object implements the AdCreate interface.
26
+ */
27
+ export function instanceOfAdCreate(value) {
28
+ if (!('adGroupId' in value) || value['adGroupId'] === undefined)
29
+ return false;
30
+ if (!('campaignId' in value) || value['campaignId'] === undefined)
31
+ return false;
32
+ if (!('headlinePart1' in value) || value['headlinePart1'] === undefined)
33
+ return false;
34
+ if (!('headlinePart2' in value) || value['headlinePart2'] === undefined)
35
+ return false;
36
+ if (!('description' in value) || value['description'] === undefined)
37
+ return false;
38
+ if (!('finalUrl' in value) || value['finalUrl'] === undefined)
39
+ return false;
40
+ return true;
41
+ }
42
+ export function AdCreateFromJSON(json) {
43
+ return AdCreateFromJSONTyped(json, false);
44
+ }
45
+ export function AdCreateFromJSONTyped(json, ignoreDiscriminator) {
46
+ if (json == null) {
47
+ return json;
48
+ }
49
+ return {
50
+ 'adGroupId': json['adGroupId'],
51
+ 'campaignId': json['campaignId'],
52
+ 'headlinePart1': json['headlinePart1'],
53
+ 'headlinePart2': json['headlinePart2'],
54
+ 'headlinePart3': json['headlinePart3'] == null ? undefined : json['headlinePart3'],
55
+ 'description': json['description'],
56
+ 'description2': json['description2'] == null ? undefined : json['description2'],
57
+ 'finalUrl': json['finalUrl'],
58
+ 'path1': json['path1'] == null ? undefined : json['path1'],
59
+ 'path2': json['path2'] == null ? undefined : json['path2'],
60
+ 'status': json['status'] == null ? undefined : json['status'],
61
+ 'sitelinks': json['sitelinks'] == null ? undefined : (json['sitelinks'].map(SitelinkFromJSON)),
62
+ 'callouts': json['callouts'] == null ? undefined : json['callouts'],
63
+ 'structuredSnippets': json['structuredSnippets'] == null ? undefined : (json['structuredSnippets'].map(StructuredSnippetFromJSON)),
64
+ 'customLabels': json['customLabels'] == null ? undefined : json['customLabels'],
65
+ 'trackingUrlTemplate': json['trackingUrlTemplate'] == null ? undefined : json['trackingUrlTemplate'],
66
+ 'finalUrlSuffix': json['finalUrlSuffix'] == null ? undefined : json['finalUrlSuffix'],
67
+ 'urlCustomParameters': json['urlCustomParameters'] == null ? undefined : json['urlCustomParameters'],
68
+ };
69
+ }
70
+ export function AdCreateToJSON(json) {
71
+ return AdCreateToJSONTyped(json, false);
72
+ }
73
+ export function AdCreateToJSONTyped(value, ignoreDiscriminator = false) {
74
+ if (value == null) {
75
+ return value;
76
+ }
77
+ return {
78
+ 'adGroupId': value['adGroupId'],
79
+ 'campaignId': value['campaignId'],
80
+ 'headlinePart1': value['headlinePart1'],
81
+ 'headlinePart2': value['headlinePart2'],
82
+ 'headlinePart3': value['headlinePart3'],
83
+ 'description': value['description'],
84
+ 'description2': value['description2'],
85
+ 'finalUrl': value['finalUrl'],
86
+ 'path1': value['path1'],
87
+ 'path2': value['path2'],
88
+ 'status': value['status'],
89
+ 'sitelinks': value['sitelinks'] == null ? undefined : (value['sitelinks'].map(SitelinkToJSON)),
90
+ 'callouts': value['callouts'],
91
+ 'structuredSnippets': value['structuredSnippets'] == null ? undefined : (value['structuredSnippets'].map(StructuredSnippetToJSON)),
92
+ 'customLabels': value['customLabels'],
93
+ 'trackingUrlTemplate': value['trackingUrlTemplate'],
94
+ 'finalUrlSuffix': value['finalUrlSuffix'],
95
+ 'urlCustomParameters': value['urlCustomParameters'],
96
+ };
97
+ }