> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

# Resource: Media Upload V1

# Type: Media Upload Object

# Link: https://dev.wix.com/docs/api-reference/business-management/google-business-profile/media-upload-v1/media-upload-object.md

## Description: One queued photo change on a Google Business Profile location: either an
addition or a removal.

Photo changes are queued and applied gradually rather than immediately,
because Google accepts only about 10 edits per minute per Business Profile.

Anything you can read here is either still waiting to be applied or has
failed. A change that succeeded leaves nothing behind, so an empty list means
the queue finished and everything worked. See `state`.

## Schema:

```json
 Type: Media Upload Object | type: MediaUpload
 Description: One queued photo change on a Google Business Profile location: either an
addition or a removal.

Photo changes are queued and applied gradually rather than immediately,
because Google accepts only about 10 edits per minute per Business Profile.

Anything you can read here is either still waiting to be applied or has
failed. A change that succeeded leaves nothing behind, so an empty list means
the queue finished and everything worked. See `state`.
       - name: id  | type: string | description: Queued change ID.
       - name: locationId  | type: string | description: ID of the location this change applies to. This is Google's location identifier.
       - name: batchId  | type: string | description: Groups the changes queued by one Bulk Create Media Uploads call. Useful for troubleshooting, since one save can produce more than one batch.
       - name: slotKey  | type: string | description: Your own key for this photo: `logo`, `cover`, or `photo:<id>`.  Set it to something stable and meaningful to you. It's how a failure is matched back to the photo that caused it, and it's part of what makes a repeated submission a duplicate rather than a second change.
       - name: sourceUrl  | type: string | description: Publicly reachable URL Google fetches the image from. Additions only.  Keep it reachable well beyond the upload itself. A failure report renders this URL as a thumbnail, possibly weeks later.
       - name: category  | type: string | description: Where the photo appears on the profile. Additions only.
           enum: COVER, PROFILE, LOGO, EXTERIOR, INTERIOR, PRODUCT, AT_WORK, FOOD_AND_DRINK, MENU, COMMON_AREA, ROOMS, TEAMS, ADDITIONAL
       - name: format  | type: string | description: Media type of the photo. Additions only.
           enum: PHOTO, VIDEO
       - name: operation  | type: string | description: Whether this change adds a photo to the profile or removes one.
           enum: CREATE, DELETE
       - name: sequence  | type: number | description: Position in the order the queue applies changes, assigned by the server.  Every removal comes before every addition, because Google rejects new photos on a profile that's already at its limit, so the old ones have to go first. Additions then follow as logo, cover, and gallery in the order given.
       - name: state  | type: string | description: Whether this change is waiting, being applied, or has failed.
           enum: PENDING, UPLOADING, FAILED
       - name: attempts  | type: number | description: How many times this change has been attempted.
       - name: mediaKey  | type: string | description: Google's identifier for the photo to remove. Removals only.
       - name: failure  | type: MediaUploadFailure | description: Why this change failed. Present only when `state` is `FAILED`.
           - name: reason  | type: string | description: Why the change failed, in terms you can show a site owner.
               enum: IMAGE_TOO_SMALL, ASPECT_RATIO_REJECTED, FORMAT_UNSUPPORTED, SOURCE_UNREACHABLE, PERMISSION_REVOKED, RATE_LIMIT_EXHAUSTED, UPLOAD_UNVERIFIED
       - name: createdDate  | type: string | description: Date and time the change was queued.
           - name: seconds  | type: string | description: 
           - name: nanos  | type: number | description: 
       - name: updatedDate  | type: string | description: Date and time the change was last updated.
       - name: revision  | type: string | description: Revision number, incremented on every update.

```