@wix/auto_sdk_gbp_media-uploads 1.0.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 (52) hide show
  1. package/build/cjs/index.d.ts +126 -0
  2. package/build/cjs/index.js +362 -0
  3. package/build/cjs/index.js.map +1 -0
  4. package/build/cjs/index.typings.d.ts +448 -0
  5. package/build/cjs/index.typings.js +332 -0
  6. package/build/cjs/index.typings.js.map +1 -0
  7. package/build/cjs/meta.d.ts +338 -0
  8. package/build/cjs/meta.js +305 -0
  9. package/build/cjs/meta.js.map +1 -0
  10. package/build/cjs/schemas.d.ts +195 -0
  11. package/build/cjs/schemas.js +307 -0
  12. package/build/cjs/schemas.js.map +1 -0
  13. package/build/es/index.d.mts +126 -0
  14. package/build/es/index.mjs +331 -0
  15. package/build/es/index.mjs.map +1 -0
  16. package/build/es/index.typings.d.mts +448 -0
  17. package/build/es/index.typings.mjs +301 -0
  18. package/build/es/index.typings.mjs.map +1 -0
  19. package/build/es/meta.d.mts +338 -0
  20. package/build/es/meta.mjs +271 -0
  21. package/build/es/meta.mjs.map +1 -0
  22. package/build/es/package.json +3 -0
  23. package/build/es/schemas.d.mts +195 -0
  24. package/build/es/schemas.mjs +265 -0
  25. package/build/es/schemas.mjs.map +1 -0
  26. package/build/internal/cjs/index.d.ts +126 -0
  27. package/build/internal/cjs/index.js +362 -0
  28. package/build/internal/cjs/index.js.map +1 -0
  29. package/build/internal/cjs/index.typings.d.ts +462 -0
  30. package/build/internal/cjs/index.typings.js +332 -0
  31. package/build/internal/cjs/index.typings.js.map +1 -0
  32. package/build/internal/cjs/meta.d.ts +352 -0
  33. package/build/internal/cjs/meta.js +305 -0
  34. package/build/internal/cjs/meta.js.map +1 -0
  35. package/build/internal/cjs/schemas.d.ts +195 -0
  36. package/build/internal/cjs/schemas.js +307 -0
  37. package/build/internal/cjs/schemas.js.map +1 -0
  38. package/build/internal/es/index.d.mts +126 -0
  39. package/build/internal/es/index.mjs +331 -0
  40. package/build/internal/es/index.mjs.map +1 -0
  41. package/build/internal/es/index.typings.d.mts +462 -0
  42. package/build/internal/es/index.typings.mjs +301 -0
  43. package/build/internal/es/index.typings.mjs.map +1 -0
  44. package/build/internal/es/meta.d.mts +352 -0
  45. package/build/internal/es/meta.mjs +271 -0
  46. package/build/internal/es/meta.mjs.map +1 -0
  47. package/build/internal/es/schemas.d.mts +195 -0
  48. package/build/internal/es/schemas.mjs +265 -0
  49. package/build/internal/es/schemas.mjs.map +1 -0
  50. package/meta/package.json +3 -0
  51. package/package.json +61 -0
  52. package/schemas/package.json +3 -0
@@ -0,0 +1,448 @@
1
+ import { NonNullablePaths } from '@wix/sdk-types';
2
+
3
+ /**
4
+ * One queued photo change on a Google Business Profile location: either an
5
+ * addition or a removal.
6
+ *
7
+ * Photo changes are queued and applied gradually rather than immediately,
8
+ * because Google accepts only about 10 edits per minute per Business Profile.
9
+ *
10
+ * Anything you can read here is either still waiting to be applied or has
11
+ * failed. A change that succeeded leaves nothing behind, so an empty list means
12
+ * the queue finished and everything worked. See `state`.
13
+ */
14
+ interface MediaUpload {
15
+ /**
16
+ * Queued change ID.
17
+ * @format GUID
18
+ * @readonly
19
+ */
20
+ _id?: string;
21
+ /**
22
+ * ID of the location this change applies to. This is Google's location
23
+ * identifier.
24
+ * @immutable
25
+ * @minLength 1
26
+ * @maxLength 255
27
+ */
28
+ locationId?: string;
29
+ /**
30
+ * Groups the changes queued by one Bulk Create Media Uploads call. Useful for
31
+ * troubleshooting, since one save can produce more than one batch.
32
+ * @format GUID
33
+ * @readonly
34
+ */
35
+ batchId?: string;
36
+ /**
37
+ * Your own key for this photo: `logo`, `cover`, or `photo:<id>`.
38
+ *
39
+ * Set it to something stable and meaningful to you. It's how a failure is
40
+ * matched back to the photo that caused it, and it's part of what makes a
41
+ * repeated submission a duplicate rather than a second change.
42
+ * @maxLength 255
43
+ */
44
+ slotKey?: string;
45
+ /**
46
+ * Publicly reachable URL Google fetches the image from. Additions only.
47
+ *
48
+ * Keep it reachable well beyond the upload itself. A failure report renders
49
+ * this URL as a thumbnail, possibly weeks later.
50
+ * @maxLength 2048
51
+ */
52
+ sourceUrl?: string;
53
+ /** Where the photo appears on the profile. Additions only. */
54
+ category?: MediaCategoryWithLiterals;
55
+ /** Media type of the photo. Additions only. */
56
+ format?: MediaFormatWithLiterals;
57
+ /** Whether this change adds a photo to the profile or removes one. */
58
+ operation?: MediaUploadOperationWithLiterals;
59
+ /**
60
+ * Position in the order the queue applies changes, assigned by the server.
61
+ *
62
+ * Every removal comes before every addition, because Google rejects new photos
63
+ * on a profile that's already at its limit, so the old ones have to go first.
64
+ * Additions then follow as logo, cover, and gallery in the order given.
65
+ * @readonly
66
+ */
67
+ sequence?: number;
68
+ /**
69
+ * Whether this change is waiting, being applied, or has failed.
70
+ * @readonly
71
+ */
72
+ state?: MediaUploadStateWithLiterals;
73
+ /**
74
+ * How many times this change has been attempted.
75
+ * @readonly
76
+ */
77
+ attempts?: number;
78
+ /**
79
+ * Google's identifier for the photo to remove. Removals only.
80
+ * @maxLength 255
81
+ */
82
+ mediaKey?: string;
83
+ /**
84
+ * Why this change failed. Present only when `state` is `FAILED`.
85
+ * @readonly
86
+ */
87
+ failure?: MediaUploadFailure;
88
+ /**
89
+ * Date and time the change was queued.
90
+ * @readonly
91
+ */
92
+ _createdDate?: Date | null;
93
+ /**
94
+ * Date and time the change was last updated.
95
+ * @readonly
96
+ */
97
+ _updatedDate?: Date | null;
98
+ /**
99
+ * Revision number, incremented on every update.
100
+ * @readonly
101
+ */
102
+ revision?: string;
103
+ }
104
+ /**
105
+ * Where a media item is shown on the listing. Mirrors Google's mybusiness v4
106
+ * LocationAssociation.Category.
107
+ */
108
+ declare enum MediaCategory {
109
+ COVER = "COVER",
110
+ PROFILE = "PROFILE",
111
+ LOGO = "LOGO",
112
+ EXTERIOR = "EXTERIOR",
113
+ INTERIOR = "INTERIOR",
114
+ PRODUCT = "PRODUCT",
115
+ AT_WORK = "AT_WORK",
116
+ FOOD_AND_DRINK = "FOOD_AND_DRINK",
117
+ MENU = "MENU",
118
+ COMMON_AREA = "COMMON_AREA",
119
+ ROOMS = "ROOMS",
120
+ TEAMS = "TEAMS",
121
+ ADDITIONAL = "ADDITIONAL"
122
+ }
123
+ /** @enumType */
124
+ type MediaCategoryWithLiterals = MediaCategory | 'COVER' | 'PROFILE' | 'LOGO' | 'EXTERIOR' | 'INTERIOR' | 'PRODUCT' | 'AT_WORK' | 'FOOD_AND_DRINK' | 'MENU' | 'COMMON_AREA' | 'ROOMS' | 'TEAMS' | 'ADDITIONAL';
125
+ /** Format of a media item. Mirrors Google's mybusiness v4 MediaFormat. */
126
+ declare enum MediaFormat {
127
+ PHOTO = "PHOTO",
128
+ VIDEO = "VIDEO"
129
+ }
130
+ /** @enumType */
131
+ type MediaFormatWithLiterals = MediaFormat | 'PHOTO' | 'VIDEO';
132
+ /**
133
+ * Whether a queued change adds a photo to the profile or removes one.
134
+ *
135
+ * Removals are edits too and draw on the same per-minute budget as additions,
136
+ * which is why both go through the same queue.
137
+ */
138
+ declare enum MediaUploadOperation {
139
+ /** Add a photo to the profile. */
140
+ CREATE = "CREATE",
141
+ /** Remove a photo from the profile. */
142
+ DELETE = "DELETE"
143
+ }
144
+ /** @enumType */
145
+ type MediaUploadOperationWithLiterals = MediaUploadOperation | 'CREATE' | 'DELETE';
146
+ /**
147
+ * Where a queued photo change is in its lifecycle.
148
+ *
149
+ * There's no state for success. A change that succeeds is removed from the
150
+ * queue, because Google's own media list is the record of what's live. So an
151
+ * empty queue means everything worked, and failures stay until the next
152
+ * submission for that location replaces them or you dismiss them.
153
+ *
154
+ * One consequence is worth knowing: because success leaves nothing behind, an
155
+ * addition that succeeded and one that never ran look the same afterwards. When
156
+ * the queue can't confirm an addition reached Google, it fails the change as
157
+ * `UPLOAD_UNVERIFIED` instead of retrying it, so you don't end up with the same
158
+ * photo twice. Removals carry no such risk and are retried freely.
159
+ */
160
+ declare enum MediaUploadState {
161
+ /** Waiting its turn in the queue. */
162
+ PENDING = "PENDING",
163
+ /**
164
+ * Being applied to Google now. A change that stays here isn't one that never
165
+ * ran: its outcome isn't known yet.
166
+ */
167
+ UPLOADING = "UPLOADING",
168
+ /** Failed, and won't be retried. Kept until replaced or dismissed. */
169
+ FAILED = "FAILED"
170
+ }
171
+ /** @enumType */
172
+ type MediaUploadStateWithLiterals = MediaUploadState | 'PENDING' | 'UPLOADING' | 'FAILED';
173
+ /** Why a queued photo change failed. */
174
+ interface MediaUploadFailure {
175
+ /** Why the change failed, in terms you can show a site owner. */
176
+ reason?: MediaUploadFailureReasonWithLiterals;
177
+ }
178
+ /**
179
+ * Why a photo change failed, in terms you can show a site owner.
180
+ *
181
+ * This is often the only account of the upload they'll ever see, and they may
182
+ * read it long after the fact, so it's worth surfacing rather than logging.
183
+ */
184
+ declare enum MediaUploadFailureReason {
185
+ /** Below Google's minimum dimensions. */
186
+ IMAGE_TOO_SMALL = "IMAGE_TOO_SMALL",
187
+ /** Cover/logo ratio outside Google's accepted range. */
188
+ ASPECT_RATIO_REJECTED = "ASPECT_RATIO_REJECTED",
189
+ /** File type Google will not accept. */
190
+ FORMAT_UNSUPPORTED = "FORMAT_UNSUPPORTED",
191
+ /** Google could not fetch the image URL. */
192
+ SOURCE_UNREACHABLE = "SOURCE_UNREACHABLE",
193
+ /**
194
+ * Access to the Google account was lost. The site owner needs to connect
195
+ * again.
196
+ */
197
+ PERMISSION_REVOKED = "PERMISSION_REVOKED",
198
+ /** Google was still rate limiting after the queue used up its retries. */
199
+ RATE_LIMIT_EXHAUSTED = "RATE_LIMIT_EXHAUSTED",
200
+ /**
201
+ * The change may or may not have reached Google, and the queue chose not to
202
+ * risk a duplicate by trying again. Additions only.
203
+ *
204
+ * Unlike every other reason here, this doesn't say anything is wrong with the
205
+ * photo. It says the outcome couldn't be confirmed. Word it for the site owner
206
+ * that way: "we couldn't confirm this photo was added", not "this photo was
207
+ * rejected".
208
+ */
209
+ UPLOAD_UNVERIFIED = "UPLOAD_UNVERIFIED"
210
+ }
211
+ /** @enumType */
212
+ type MediaUploadFailureReasonWithLiterals = MediaUploadFailureReason | 'IMAGE_TOO_SMALL' | 'ASPECT_RATIO_REJECTED' | 'FORMAT_UNSUPPORTED' | 'SOURCE_UNREACHABLE' | 'PERMISSION_REVOKED' | 'RATE_LIMIT_EXHAUSTED' | 'UPLOAD_UNVERIFIED';
213
+ interface BulkCreateMediaUploadsRequest {
214
+ /**
215
+ * Photo changes to queue. All must share one `locationId` and one `operation`.
216
+ *
217
+ * Per item set `locationId`, `operation`, `slotKey`, and then either
218
+ * `sourceUrl`, `category` and `format` to add, or `mediaKey` to remove. Every
219
+ * other field is assigned by the server and ignored if you send it.
220
+ *
221
+ * Up to 52 items: 50 gallery photos plus a logo and a cover.
222
+ * @minSize 1
223
+ * @maxSize 52
224
+ */
225
+ mediaUploads: MediaUpload[];
226
+ /** Whether to return each queued item in `results.item`. */
227
+ returnEntity?: boolean;
228
+ }
229
+ interface BulkCreateMediaUploadsResponse {
230
+ /**
231
+ * Results in the order the items were sent. An item that was already queued is
232
+ * reported as a success carrying the existing item's `id`.
233
+ * @minSize 1
234
+ * @maxSize 52
235
+ */
236
+ results?: BulkCreateMediaUploadResult[];
237
+ /** How many items succeeded and failed. */
238
+ bulkActionMetadata?: BulkActionMetadata;
239
+ }
240
+ interface ItemMetadata {
241
+ /**
242
+ * Item ID. Provided only whenever possible. For example, `itemId` can't be provided when item creation has failed.
243
+ * @format GUID
244
+ */
245
+ _id?: string | null;
246
+ /** Index of the item within the request array. Allows for correlation between request and response items. */
247
+ originalIndex?: number;
248
+ /** Whether the requested action for this item was successful. When `false`, the `error` field is returned. */
249
+ success?: boolean;
250
+ /** Details about the error in case of failure. */
251
+ error?: ApplicationError;
252
+ }
253
+ interface ApplicationError {
254
+ /** Error code. */
255
+ code?: string;
256
+ /** Description of the error. */
257
+ description?: string;
258
+ /** Data related to the error. */
259
+ data?: Record<string, any> | null;
260
+ }
261
+ interface BulkCreateMediaUploadResult {
262
+ /** Whether this item was queued, and why not if it wasn't. */
263
+ itemMetadata?: ItemMetadata;
264
+ /** The queued item. Returned only when `returnEntity` is `true`. */
265
+ item?: MediaUpload;
266
+ }
267
+ interface BulkActionMetadata {
268
+ /** Number of items that were successfully processed. */
269
+ totalSuccesses?: number;
270
+ /** Number of items that couldn't be processed. */
271
+ totalFailures?: number;
272
+ /** Number of failures without details because detailed failure threshold was exceeded. */
273
+ undetailedFailures?: number;
274
+ }
275
+ interface ListMediaUploadsRequest {
276
+ /**
277
+ * ID of the location. This is Google's location identifier.
278
+ * @minLength 1
279
+ * @maxLength 255
280
+ */
281
+ locationId: string;
282
+ }
283
+ interface ListMediaUploadsResponse {
284
+ /**
285
+ * Every outstanding change for the location, in the order it will be applied.
286
+ * An empty list means the queue finished and nothing failed.
287
+ *
288
+ * Never paged and never truncated. If the set is somehow too large to return,
289
+ * the call fails with `FAILED_PRECONDITION` rather than returning part of it.
290
+ * @maxSize 500
291
+ */
292
+ mediaUploads?: MediaUpload[];
293
+ }
294
+ interface DismissMediaUploadFailuresRequest {
295
+ /**
296
+ * ID of the location. This is Google's location identifier.
297
+ * @minLength 1
298
+ * @maxLength 255
299
+ */
300
+ locationId: string;
301
+ }
302
+ interface DismissMediaUploadFailuresResponse {
303
+ /** How many failed changes were cleared. */
304
+ dismissedCount?: number;
305
+ }
306
+ /** @docsIgnore */
307
+ type BulkCreateMediaUploadsApplicationErrors = {
308
+ code?: 'MEDIA_UPLOAD_INVALID_SOURCE_URL';
309
+ description?: string;
310
+ data?: Record<string, any>;
311
+ };
312
+ /** @docsIgnore */
313
+ type ListMediaUploadsApplicationErrors = {
314
+ code?: 'MEDIA_UPLOAD_LIST_TOO_LARGE';
315
+ description?: string;
316
+ data?: Record<string, any>;
317
+ };
318
+ /**
319
+ * Queues photo changes for one location and returns without calling Google.
320
+ *
321
+ * Every item must target the same `locationId`, and one call has to be either
322
+ * all additions or all removals. Send two calls to do both.
323
+ *
324
+ * To add a photo, set `slotKey`, `sourceUrl`, `category` and `format`. To
325
+ * remove one, set `slotKey` and `mediaKey`. Everything else is assigned by the
326
+ * server.
327
+ *
328
+ * `sourceUrl` has to stay reachable well after this call returns, not just
329
+ * until it does. Google fetches the image when the queue reaches it, which may
330
+ * be minutes later, and a failure report renders the same URL as a thumbnail
331
+ * possibly weeks later.
332
+ *
333
+ * Queuing clears the location's previous failures. Every failed item for the
334
+ * location goes, not just the ones matching what you're sending, so a site
335
+ * owner only ever sees the most recent set and retrying failures is just
336
+ * another call to this method carrying those items.
337
+ *
338
+ * That clearing isn't scoped to you. If another app manages the same location,
339
+ * queuing here discards failures it may not have read yet, and vice versa. Read
340
+ * List Media Uploads before queuing if you need to preserve them.
341
+ *
342
+ * Duplicates are dropped rather than queued twice, so a double click or a
343
+ * client retry won't add the same photo twice. An item that's already queued
344
+ * comes back as a success carrying the existing item's `id`. Google doesn't
345
+ * deduplicate by URL itself, so this is what protects you from a double post.
346
+ *
347
+ * The server decides the order, not the order you send. Every removal is
348
+ * applied before any addition, because Google rejects new photos on a profile
349
+ * that's already at its limit. Additions then go logo, cover, and gallery in
350
+ * the order given.
351
+ *
352
+ * Errors, and in every case nothing is queued:
353
+ * - `NOT_FOUND`: the location isn't recorded for this site.
354
+ * - `INVALID_ARGUMENT`: items span more than one location, an item has no
355
+ * operation set, additions and removals are mixed in one call, an addition
356
+ * has no `sourceUrl`, or a removal has no `mediaKey`.
357
+ * - `MEDIA_UPLOAD_INVALID_SOURCE_URL`: an addition's `sourceUrl` isn't an
358
+ * absolute `http` or `https` URL with a host. Checked here rather than left
359
+ * to fail against Google minutes later.
360
+ * @param mediaUploads - Photo changes to queue. All must share one `locationId` and one `operation`.
361
+ *
362
+ * Per item set `locationId`, `operation`, `slotKey`, and then either
363
+ * `sourceUrl`, `category` and `format` to add, or `mediaKey` to remove. Every
364
+ * other field is assigned by the server and ignored if you send it.
365
+ *
366
+ * Up to 52 items: 50 gallery photos plus a logo and a cover.
367
+ * @public
368
+ * @documentationMaturity preview
369
+ * @requiredField mediaUploads
370
+ * @permissionId gbp:location:v1:media_upload:bulk_create_media_uploads
371
+ * @applicableIdentity APP
372
+ * @fqn wix.gbp.location.v1.MediaUploadService.BulkCreateMediaUploads
373
+ */
374
+ declare function bulkCreateMediaUploads(mediaUploads: MediaUpload[], options?: BulkCreateMediaUploadsOptions): Promise<NonNullablePaths<BulkCreateMediaUploadsResponse, `results` | `results.${number}.itemMetadata.originalIndex` | `results.${number}.itemMetadata.success` | `results.${number}.itemMetadata.error.code` | `results.${number}.itemMetadata.error.description` | `results.${number}.item._id` | `results.${number}.item.locationId` | `results.${number}.item.batchId` | `results.${number}.item.slotKey` | `results.${number}.item.sourceUrl` | `results.${number}.item.category` | `results.${number}.item.format` | `results.${number}.item.operation` | `results.${number}.item.sequence` | `results.${number}.item.state` | `results.${number}.item.attempts` | `results.${number}.item.mediaKey` | `results.${number}.item.failure.reason` | `results.${number}.item.revision` | `bulkActionMetadata.totalSuccesses` | `bulkActionMetadata.totalFailures` | `bulkActionMetadata.undetailedFailures`, 6> & {
375
+ __applicationErrorsType?: BulkCreateMediaUploadsApplicationErrors;
376
+ }>;
377
+ interface BulkCreateMediaUploadsOptions {
378
+ /** Whether to return each queued item in `results.item`. */
379
+ returnEntity?: boolean;
380
+ }
381
+ /**
382
+ * Retrieves the photo changes still queued or failed for a location.
383
+ *
384
+ * This is how you follow an asynchronous submission, since there's no
385
+ * completion callback. Read the response as a whole rather than item by item:
386
+ *
387
+ * - Anything `PENDING` or `UPLOADING` means the queue is still working. Don't
388
+ * report results yet.
389
+ * - Only `FAILED` items means the queue finished and those items didn't make
390
+ * it.
391
+ * - An empty response means nothing is outstanding for this location.
392
+ *
393
+ * Read that last one carefully, because it's weaker than it looks. It tells you
394
+ * the queue is empty, not that a particular submission succeeded. A successful
395
+ * change leaves nothing behind, and so does a failure that's been cleared, and
396
+ * the two are indistinguishable afterwards. Google's own media list is the
397
+ * record of what's actually live, so confirm against List Media rather than
398
+ * inferring success from an empty queue.
399
+ *
400
+ * Failures are cleared for the whole location by the next call to Bulk Create
401
+ * Media Uploads, whoever makes it. If more than one app manages the same
402
+ * location, one app queuing a change clears failures the other hasn't read yet.
403
+ * Read failures before queuing again, and don't treat an empty response as
404
+ * proof that your own submission worked.
405
+ *
406
+ * You can also use this to show a gallery matching what the site owner asked
407
+ * for while the queue is still working, because Google's list lags behind in
408
+ * both directions. Count only changes still on their way, since a `FAILED`
409
+ * addition never reached Google:
410
+ *
411
+ * ```
412
+ * gallery = Google's media list
413
+ * + additions still PENDING or UPLOADING
414
+ * - removals still PENDING or UPLOADING
415
+ * ```
416
+ *
417
+ * The response is never paged and never truncated. It returns the complete set
418
+ * or fails with `FAILED_PRECONDITION`.
419
+ * @param locationId - ID of the location. This is Google's location identifier.
420
+ * @public
421
+ * @documentationMaturity preview
422
+ * @requiredField locationId
423
+ * @permissionId gbp:location:v1:media_upload:list_media_uploads
424
+ * @applicableIdentity APP
425
+ * @fqn wix.gbp.location.v1.MediaUploadService.ListMediaUploads
426
+ */
427
+ declare function listMediaUploads(locationId: string): Promise<NonNullablePaths<ListMediaUploadsResponse, `mediaUploads` | `mediaUploads.${number}._id` | `mediaUploads.${number}.locationId` | `mediaUploads.${number}.batchId` | `mediaUploads.${number}.slotKey` | `mediaUploads.${number}.sourceUrl` | `mediaUploads.${number}.category` | `mediaUploads.${number}.format` | `mediaUploads.${number}.operation` | `mediaUploads.${number}.sequence` | `mediaUploads.${number}.state` | `mediaUploads.${number}.attempts` | `mediaUploads.${number}.mediaKey` | `mediaUploads.${number}.failure.reason` | `mediaUploads.${number}.revision`, 5> & {
428
+ __applicationErrorsType?: ListMediaUploadsApplicationErrors;
429
+ }>;
430
+ /**
431
+ * Clears a location's failed photo changes, leaving queued ones alone.
432
+ *
433
+ * Failures are otherwise kept until the next submission for that location
434
+ * replaces them, so this is how a site owner dismisses a photo that's never
435
+ * going to succeed.
436
+ *
437
+ * `dismissedCount` reports how many were cleared.
438
+ * @param locationId - ID of the location. This is Google's location identifier.
439
+ * @public
440
+ * @documentationMaturity preview
441
+ * @requiredField locationId
442
+ * @permissionId gbp:location:v1:media_upload:dismiss_media_upload_failures
443
+ * @applicableIdentity APP
444
+ * @fqn wix.gbp.location.v1.MediaUploadService.DismissMediaUploadFailures
445
+ */
446
+ declare function dismissMediaUploadFailures(locationId: string): Promise<NonNullablePaths<DismissMediaUploadFailuresResponse, `dismissedCount`, 2>>;
447
+
448
+ export { type ApplicationError, type BulkActionMetadata, type BulkCreateMediaUploadResult, type BulkCreateMediaUploadsApplicationErrors, type BulkCreateMediaUploadsOptions, type BulkCreateMediaUploadsRequest, type BulkCreateMediaUploadsResponse, type DismissMediaUploadFailuresRequest, type DismissMediaUploadFailuresResponse, type ItemMetadata, type ListMediaUploadsApplicationErrors, type ListMediaUploadsRequest, type ListMediaUploadsResponse, MediaCategory, type MediaCategoryWithLiterals, MediaFormat, type MediaFormatWithLiterals, type MediaUpload, type MediaUploadFailure, MediaUploadFailureReason, type MediaUploadFailureReasonWithLiterals, MediaUploadOperation, type MediaUploadOperationWithLiterals, MediaUploadState, type MediaUploadStateWithLiterals, bulkCreateMediaUploads, dismissMediaUploadFailures, listMediaUploads };