{
  "service": "googlephotos",
  "displayName": "Google Photos",
  "categories": [
    "Storage",
    "Design"
  ],
  "authTypes": [
    "oauth2"
  ],
  "auth": [
    {
      "type": "oauth2",
      "authorizationUrl": "https://accounts.google.com/o/oauth2/v2/auth",
      "tokenUrl": "https://oauth2.googleapis.com/token",
      "scopes": [
        "https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata",
        "https://www.googleapis.com/auth/photoslibrary.appendonly",
        "https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata",
        "https://www.googleapis.com/auth/photospicker.mediaitems.readonly",
        "openid",
        "email",
        "profile"
      ],
      "tokenEndpointAuthMethod": "client_secret_post",
      "authorizationParams": {
        "access_type": "offline",
        "prompt": "consent"
      }
    }
  ],
  "homepageUrl": "https://www.google.com/photos/about/",
  "actions": [
    {
      "id": "googlephotos.add_enrichment",
      "service": "googlephotos",
      "name": "add_enrichment",
      "description": "Add an enrichment item to a Google Photos album.",
      "requiredScopes": [
        "https://www.googleapis.com/auth/photoslibrary.appendonly"
      ],
      "providerPermissions": [
        "https://www.googleapis.com/auth/photoslibrary.appendonly"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "albumId": {
            "type": "string",
            "minLength": 1,
            "description": "The ID of the album to add the enrichment to."
          },
          "albumPosition": {
            "type": "object",
            "properties": {
              "position": {
                "type": "string",
                "enum": [
                  "POSITION_TYPE_UNSPECIFIED",
                  "FIRST_IN_ALBUM",
                  "LAST_IN_ALBUM",
                  "AFTER_MEDIA_ITEM",
                  "AFTER_ENRICHMENT_ITEM"
                ],
                "description": "The position type within the album."
              },
              "relativeMediaItemId": {
                "type": "string",
                "minLength": 1,
                "description": "The media item ID to position after when position is AFTER_MEDIA_ITEM."
              },
              "relativeEnrichmentItemId": {
                "type": "string",
                "minLength": 1,
                "description": "The enrichment item ID to position after when position is AFTER_ENRICHMENT_ITEM."
              }
            },
            "additionalProperties": false,
            "required": [
              "position"
            ],
            "description": "The position type within the album."
          },
          "newEnrichmentItem": {
            "type": "object",
            "properties": {
              "textEnrichment": {
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "minLength": 1,
                    "description": "The text content of the enrichment item."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "text"
                ],
                "description": "A text enrichment item."
              },
              "locationEnrichment": {
                "type": "object",
                "properties": {
                  "location": {
                    "type": "object",
                    "properties": {
                      "locationName": {
                        "type": "string",
                        "minLength": 1,
                        "description": "The name of the location."
                      },
                      "latlng": {
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number",
                            "description": "The latitude in decimal degrees."
                          },
                          "longitude": {
                            "type": "number",
                            "description": "The longitude in decimal degrees."
                          }
                        },
                        "additionalProperties": false,
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "description": "A geographic coordinate."
                      }
                    },
                    "additionalProperties": false,
                    "required": [
                      "locationName",
                      "latlng"
                    ],
                    "description": "A named geographic location."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "location"
                ],
                "description": "A location enrichment item."
              },
              "mapEnrichment": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "object",
                    "properties": {
                      "locationName": {
                        "type": "string",
                        "minLength": 1,
                        "description": "The name of the location."
                      },
                      "latlng": {
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number",
                            "description": "The latitude in decimal degrees."
                          },
                          "longitude": {
                            "type": "number",
                            "description": "The longitude in decimal degrees."
                          }
                        },
                        "additionalProperties": false,
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "description": "A geographic coordinate."
                      }
                    },
                    "additionalProperties": false,
                    "required": [
                      "locationName",
                      "latlng"
                    ],
                    "description": "A named geographic location."
                  },
                  "destination": {
                    "type": "object",
                    "properties": {
                      "locationName": {
                        "type": "string",
                        "minLength": 1,
                        "description": "The name of the location."
                      },
                      "latlng": {
                        "type": "object",
                        "properties": {
                          "latitude": {
                            "type": "number",
                            "description": "The latitude in decimal degrees."
                          },
                          "longitude": {
                            "type": "number",
                            "description": "The longitude in decimal degrees."
                          }
                        },
                        "additionalProperties": false,
                        "required": [
                          "latitude",
                          "longitude"
                        ],
                        "description": "A geographic coordinate."
                      }
                    },
                    "additionalProperties": false,
                    "required": [
                      "locationName",
                      "latlng"
                    ],
                    "description": "A named geographic location."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "origin",
                  "destination"
                ],
                "description": "A map enrichment item showing a route between two locations."
              }
            },
            "additionalProperties": false,
            "description": "One Google Photos enrichment variant."
          }
        },
        "additionalProperties": false,
        "required": [
          "albumId",
          "albumPosition",
          "newEnrichmentItem"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "albumId": {
            "type": "string",
            "description": "The ID of the album to which the enrichment was added."
          },
          "enrichmentItem": {
            "type": "object",
            "additionalProperties": true,
            "description": "A JSON-like object with arbitrary string keys."
          }
        },
        "additionalProperties": false,
        "required": [
          "albumId"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "googlephotos.batch_add_media_items",
      "service": "googlephotos",
      "name": "batch_add_media_items",
      "description": "Add existing Google Photos media items to an album.",
      "requiredScopes": [
        "https://www.googleapis.com/auth/photoslibrary.appendonly"
      ],
      "providerPermissions": [
        "https://www.googleapis.com/auth/photoslibrary.appendonly"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "albumId": {
            "type": "string",
            "minLength": 1,
            "description": "The ID of the album to add the media items to."
          },
          "mediaItemIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "The list of media item IDs to add to the album (1-50).",
            "minItems": 1,
            "maxItems": 50
          }
        },
        "additionalProperties": false,
        "required": [
          "albumId",
          "mediaItemIds"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "albumId": {
            "type": "string",
            "description": "The ID of the album to which the items were added."
          },
          "mediaItemsAdded": {
            "type": "integer",
            "description": "The number of media items successfully added."
          },
          "message": {
            "type": "string",
            "description": "A human-readable summary of the operation result."
          }
        },
        "additionalProperties": false,
        "required": [
          "albumId",
          "mediaItemsAdded",
          "message"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "googlephotos.batch_create_media_items",
      "service": "googlephotos",
      "name": "batch_create_media_items",
      "description": "Batch create Google Photos media items from URLs or base64 payloads.",
      "requiredScopes": [
        "https://www.googleapis.com/auth/photoslibrary.appendonly"
      ],
      "providerPermissions": [
        "https://www.googleapis.com/auth/photoslibrary.appendonly"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "urls": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "The URL of a media file to upload.",
              "format": "uri"
            },
            "description": "A list of URLs of media files to upload (maximum 50).",
            "maxItems": 50
          },
          "mediaFiles": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "description": "The URL of the media file to upload.",
                  "format": "uri"
                },
                "contentBase64": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The base64-encoded content of the media file to upload."
                },
                "fileName": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The filename for the uploaded media item."
                },
                "mimeType": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The MIME type of the media file."
                },
                "description": {
                  "type": "string",
                  "maxLength": 1000,
                  "description": "A description for the uploaded media item."
                }
              },
              "additionalProperties": false,
              "description": "One media file input to upload."
            },
            "description": "A list of media file inputs to upload (maximum 50).",
            "maxItems": 50
          },
          "albumId": {
            "type": "string",
            "minLength": 1,
            "description": "The ID of the album to add the media items to."
          },
          "albumPosition": {
            "type": "object",
            "properties": {
              "position": {
                "type": "string",
                "enum": [
                  "POSITION_TYPE_UNSPECIFIED",
                  "FIRST_IN_ALBUM",
                  "LAST_IN_ALBUM",
                  "AFTER_MEDIA_ITEM",
                  "AFTER_ENRICHMENT_ITEM"
                ],
                "description": "The position type within the album."
              },
              "relativeMediaItemId": {
                "type": "string",
                "minLength": 1,
                "description": "The media item ID to position after when position is AFTER_MEDIA_ITEM."
              },
              "relativeEnrichmentItemId": {
                "type": "string",
                "minLength": 1,
                "description": "The enrichment item ID to position after when position is AFTER_ENRICHMENT_ITEM."
              }
            },
            "additionalProperties": false,
            "required": [
              "position"
            ],
            "description": "The position type within the album."
          }
        },
        "additionalProperties": false,
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "newMediaItemResults": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "A JSON-like object with arbitrary string keys."
            },
            "description": "The list of newly created media item results returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "newMediaItemResults"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "googlephotos.batch_get_media_items",
      "service": "googlephotos",
      "name": "batch_get_media_items",
      "description": "Fetch multiple Google Photos media items by ID.",
      "requiredScopes": [
        "https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"
      ],
      "providerPermissions": [
        "https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "mediaItemIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "The list of media item IDs to fetch (1-50).",
            "minItems": 1,
            "maxItems": 50
          }
        },
        "additionalProperties": false,
        "required": [
          "mediaItemIds"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "mediaItemResults": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "A JSON-like object with arbitrary string keys."
            },
            "description": "The list of media item results returned by the API."
          }
        },
        "additionalProperties": false,
        "required": [
          "mediaItemResults"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "googlephotos.create_album",
      "service": "googlephotos",
      "name": "create_album",
      "description": "Create a Google Photos album.",
      "requiredScopes": [
        "https://www.googleapis.com/auth/photoslibrary.appendonly"
      ],
      "providerPermissions": [
        "https://www.googleapis.com/auth/photoslibrary.appendonly"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "maxLength": 500,
            "description": "The title for the new album (maximum 500 characters)."
          }
        },
        "additionalProperties": false,
        "required": [
          "title"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "album": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier for the album."
              },
              "title": {
                "type": "string",
                "description": "The title of the album."
              },
              "productUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "mediaItemsCount": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "coverPhotoBaseUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "coverPhotoMediaItemId": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "isWriteable": {
                "type": "boolean",
                "description": "Whether the album is writable by the current user."
              },
              "shareInfo": {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "A JSON-like object with arbitrary string keys."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "title",
              "productUrl",
              "mediaItemsCount",
              "coverPhotoBaseUrl",
              "coverPhotoMediaItemId",
              "shareInfo"
            ],
            "description": "A Google Photos album."
          }
        },
        "additionalProperties": false,
        "required": [
          "album"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "googlephotos.create_picker_session",
      "service": "googlephotos",
      "name": "create_picker_session",
      "description": "Create a Google Photos Picker session for selecting items from the user's library.",
      "requiredScopes": [
        "https://www.googleapis.com/auth/photospicker.mediaitems.readonly"
      ],
      "providerPermissions": [
        "https://www.googleapis.com/auth/photospicker.mediaitems.readonly"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "maxItemCount": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of media items the user can pick."
          }
        },
        "additionalProperties": false,
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "session": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier for the picker session."
              },
              "expireTime": {
                "type": "string",
                "description": "The time at which the picker session expires."
              },
              "mediaItemsSet": {
                "type": "boolean",
                "description": "Whether the user has finished selecting media items for this session."
              },
              "pollingConfig": {
                "type": "object",
                "properties": {
                  "pollInterval": {
                    "type": "string",
                    "description": "The recommended polling interval duration."
                  },
                  "timeoutIn": {
                    "type": "string",
                    "description": "The recommended polling timeout duration."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "pollInterval",
                  "timeoutIn"
                ],
                "description": "Polling guidance for checking picker session readiness."
              },
              "pickerUri": {
                "type": "string",
                "description": "The Google Photos Picker URI for this session."
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "expireTime",
              "mediaItemsSet",
              "pickerUri"
            ],
            "description": "A Google Photos Picker session state."
          }
        },
        "additionalProperties": false,
        "required": [
          "session"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "googlephotos.delete_picker_session",
      "service": "googlephotos",
      "name": "delete_picker_session",
      "description": "Delete a Google Photos Picker session.",
      "requiredScopes": [
        "https://www.googleapis.com/auth/photospicker.mediaitems.readonly"
      ],
      "providerPermissions": [
        "https://www.googleapis.com/auth/photospicker.mediaitems.readonly"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "description": "The ID of the picker session to delete."
          }
        },
        "additionalProperties": false,
        "required": [
          "sessionId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "description": "The deleted picker session ID."
          },
          "deleted": {
            "const": true,
            "type": "boolean",
            "description": "Whether the picker session was deleted."
          }
        },
        "additionalProperties": false,
        "required": [
          "sessionId",
          "deleted"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "googlephotos.get_album",
      "service": "googlephotos",
      "name": "get_album",
      "description": "Fetch one Google Photos album by ID.",
      "requiredScopes": [
        "https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"
      ],
      "providerPermissions": [
        "https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "albumId": {
            "type": "string",
            "minLength": 1,
            "description": "The ID of the album to fetch."
          }
        },
        "additionalProperties": false,
        "required": [
          "albumId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "album": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier for the album."
              },
              "title": {
                "type": "string",
                "description": "The title of the album."
              },
              "productUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "mediaItemsCount": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "coverPhotoBaseUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "coverPhotoMediaItemId": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "isWriteable": {
                "type": "boolean",
                "description": "Whether the album is writable by the current user."
              },
              "shareInfo": {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "A JSON-like object with arbitrary string keys."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "title",
              "productUrl",
              "mediaItemsCount",
              "coverPhotoBaseUrl",
              "coverPhotoMediaItemId",
              "shareInfo"
            ],
            "description": "A Google Photos album."
          }
        },
        "additionalProperties": false,
        "required": [
          "album"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "googlephotos.get_media_item_download",
      "service": "googlephotos",
      "name": "get_media_item_download",
      "description": "Download a Google Photos Library API media item created by this application through local file transit.",
      "requiredScopes": [
        "https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"
      ],
      "providerPermissions": [
        "https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "mediaItemId": {
            "type": "string",
            "minLength": 1,
            "description": "The ID of the media item to download."
          }
        },
        "additionalProperties": false,
        "required": [
          "mediaItemId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "mediaItemId": {
            "type": "string",
            "description": "The ID of the downloaded media item."
          },
          "fileName": {
            "type": "string",
            "description": "The filename of the downloaded media item."
          },
          "mimeType": {
            "type": "string",
            "description": "The MIME type of the downloaded media item."
          },
          "transitUrl": {
            "type": "string",
            "description": "The local transit download URL for the media item."
          },
          "fileId": {
            "type": "string",
            "description": "The local transit file identifier."
          },
          "downloadUrl": {
            "type": "string",
            "description": "The local transit download URL for the media item."
          },
          "sizeBytes": {
            "type": "integer",
            "description": "The downloaded file size in bytes."
          }
        },
        "additionalProperties": false,
        "required": [
          "mediaItemId",
          "fileName",
          "mimeType",
          "transitUrl",
          "fileId",
          "downloadUrl",
          "sizeBytes"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "googlephotos.get_picked_media_item_download",
      "service": "googlephotos",
      "name": "get_picked_media_item_download",
      "description": "Download a picked Google Photos media item through local file transit using its trusted temporary base URL.",
      "requiredScopes": [
        "https://www.googleapis.com/auth/photospicker.mediaitems.readonly"
      ],
      "providerPermissions": [
        "https://www.googleapis.com/auth/photospicker.mediaitems.readonly"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "baseUrl": {
            "type": "string",
            "description": "The temporary download base URL for the picked media item."
          },
          "mimeType": {
            "type": "string",
            "description": "The MIME type of the picked media item."
          },
          "filename": {
            "type": "string",
            "description": "The filename of the picked media item."
          },
          "type": {
            "type": "string",
            "enum": [
              "TYPE_UNSPECIFIED",
              "PHOTO",
              "VIDEO"
            ],
            "description": "The type of the picked media item."
          },
          "mediaFileMetadata": {
            "type": "object",
            "properties": {
              "videoMetadata": {
                "type": "object",
                "properties": {
                  "processingStatus": {
                    "type": "string",
                    "enum": [
                      "UNSPECIFIED",
                      "PROCESSING",
                      "READY",
                      "FAILED"
                    ],
                    "description": "The video processing status returned by Google Photos Picker."
                  }
                },
                "additionalProperties": true,
                "description": "Video-specific metadata returned by Google Photos Picker."
              }
            },
            "additionalProperties": true,
            "description": "Metadata for the picked media file."
          }
        },
        "additionalProperties": false,
        "required": [
          "baseUrl",
          "mimeType",
          "filename",
          "type"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "fileName": {
            "type": "string",
            "description": "The filename of the downloaded media item."
          },
          "mimeType": {
            "type": "string",
            "description": "The MIME type of the downloaded media item."
          },
          "transitUrl": {
            "type": "string",
            "description": "The local transit download URL for the media item."
          },
          "fileId": {
            "type": "string",
            "description": "The local transit file identifier."
          },
          "downloadUrl": {
            "type": "string",
            "description": "The local transit download URL for the media item."
          },
          "sizeBytes": {
            "type": "integer",
            "description": "The downloaded file size in bytes."
          }
        },
        "additionalProperties": false,
        "required": [
          "fileName",
          "mimeType",
          "transitUrl",
          "fileId",
          "downloadUrl",
          "sizeBytes"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "googlephotos.get_picker_session",
      "service": "googlephotos",
      "name": "get_picker_session",
      "description": "Get the current state of a Google Photos Picker session.",
      "requiredScopes": [
        "https://www.googleapis.com/auth/photospicker.mediaitems.readonly"
      ],
      "providerPermissions": [
        "https://www.googleapis.com/auth/photospicker.mediaitems.readonly"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "description": "The ID of the picker session."
          }
        },
        "additionalProperties": false,
        "required": [
          "sessionId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "session": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier for the picker session."
              },
              "expireTime": {
                "type": "string",
                "description": "The time at which the picker session expires."
              },
              "mediaItemsSet": {
                "type": "boolean",
                "description": "Whether the user has finished selecting media items for this session."
              },
              "pollingConfig": {
                "type": "object",
                "properties": {
                  "pollInterval": {
                    "type": "string",
                    "description": "The recommended polling interval duration."
                  },
                  "timeoutIn": {
                    "type": "string",
                    "description": "The recommended polling timeout duration."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "pollInterval",
                  "timeoutIn"
                ],
                "description": "Polling guidance for checking picker session readiness."
              },
              "pickerUri": {
                "type": "string",
                "description": "The Google Photos Picker URI for this session."
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "expireTime",
              "mediaItemsSet"
            ],
            "description": "A Google Photos Picker session."
          }
        },
        "additionalProperties": false,
        "required": [
          "session"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "googlephotos.list_albums",
      "service": "googlephotos",
      "name": "list_albums",
      "description": "List Google Photos albums visible to the current application connection. If you need the user to choose from their existing Google Photos library, use the Picker actions instead.",
      "requiredScopes": [
        "https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"
      ],
      "providerPermissions": [
        "https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "The maximum number of albums to return per page (1-50)."
          },
          "pageToken": {
            "type": "string",
            "description": "A page token to retrieve the next page of results."
          }
        },
        "additionalProperties": false,
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "albums": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The unique identifier for the album."
                },
                "title": {
                  "type": "string",
                  "description": "The title of the album."
                },
                "productUrl": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A nullable string value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "mediaItemsCount": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A nullable string value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "coverPhotoBaseUrl": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A nullable string value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "coverPhotoMediaItemId": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A nullable string value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "isWriteable": {
                  "type": "boolean",
                  "description": "Whether the album is writable by the current user."
                },
                "shareInfo": {
                  "anyOf": [
                    {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "A JSON-like object with arbitrary string keys."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": false,
              "required": [
                "id",
                "title",
                "productUrl",
                "mediaItemsCount",
                "coverPhotoBaseUrl",
                "coverPhotoMediaItemId",
                "shareInfo"
              ],
              "description": "A Google Photos album."
            },
            "description": "The list of albums."
          },
          "nextPageToken": {
            "anyOf": [
              {
                "type": "string",
                "description": "A token to retrieve the next page of results, if any."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "type": "string",
            "description": "An optional hint explaining that empty results may reflect the Google Photos Library API app-created data boundary."
          }
        },
        "additionalProperties": false,
        "required": [
          "albums",
          "nextPageToken"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "googlephotos.list_media_items",
      "service": "googlephotos",
      "name": "list_media_items",
      "description": "List Google Photos Library API media items created by this application.",
      "requiredScopes": [
        "https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"
      ],
      "providerPermissions": [
        "https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of media items to return per page (1-100)."
          },
          "pageToken": {
            "type": "string",
            "description": "A page token to retrieve the next page of results."
          }
        },
        "additionalProperties": false,
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "mediaItems": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The unique identifier for the media item."
                },
                "description": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A nullable string value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "productUrl": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A nullable string value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "baseUrl": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A nullable string value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "mimeType": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A nullable string value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "filename": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A nullable string value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "mediaMetadata": {
                  "type": "object",
                  "properties": {
                    "creationTime": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "A nullable string value."
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "width": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "A nullable string value."
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "height": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "A nullable string value."
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "photo": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "A JSON-like object with arbitrary string keys."
                    },
                    "video": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "A JSON-like object with arbitrary string keys."
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "creationTime",
                    "width",
                    "height",
                    "photo",
                    "video"
                  ],
                  "description": "Google Photos media metadata."
                },
                "contributorInfo": {
                  "anyOf": [
                    {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "A JSON-like object with arbitrary string keys."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": false,
              "required": [
                "id",
                "description",
                "productUrl",
                "baseUrl",
                "mimeType",
                "filename",
                "mediaMetadata",
                "contributorInfo"
              ],
              "description": "A Google Photos media item."
            },
            "description": "The list of media items."
          },
          "nextPageToken": {
            "anyOf": [
              {
                "type": "string",
                "description": "A token to retrieve the next page of results, if any."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "mediaItems",
          "nextPageToken"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "googlephotos.list_picked_media_items",
      "service": "googlephotos",
      "name": "list_picked_media_items",
      "description": "List media items selected from the user's Google Photos library in a picker session.",
      "requiredScopes": [
        "https://www.googleapis.com/auth/photospicker.mediaitems.readonly"
      ],
      "providerPermissions": [
        "https://www.googleapis.com/auth/photospicker.mediaitems.readonly"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "description": "The ID of the picker session."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of picked media items to return per page."
          },
          "pageToken": {
            "type": "string",
            "description": "A page token to retrieve the next page of picked media items."
          }
        },
        "additionalProperties": false,
        "required": [
          "sessionId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "mediaItems": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The unique identifier for the picked media item."
                },
                "createTime": {
                  "type": "string",
                  "description": "The creation time of the picked media item."
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "TYPE_UNSPECIFIED",
                    "PHOTO",
                    "VIDEO"
                  ],
                  "description": "The type of the picked media item."
                },
                "baseUrl": {
                  "type": "string",
                  "description": "The temporary download base URL for the picked media item."
                },
                "mimeType": {
                  "type": "string",
                  "description": "The MIME type of the picked media item."
                },
                "filename": {
                  "type": "string",
                  "description": "The filename of the picked media item."
                },
                "mediaFileMetadata": {
                  "type": "object",
                  "properties": {
                    "videoMetadata": {
                      "type": "object",
                      "properties": {
                        "processingStatus": {
                          "type": "string",
                          "enum": [
                            "UNSPECIFIED",
                            "PROCESSING",
                            "READY",
                            "FAILED"
                          ],
                          "description": "The video processing status returned by Google Photos Picker."
                        }
                      },
                      "additionalProperties": true,
                      "description": "Video-specific metadata returned by Google Photos Picker."
                    }
                  },
                  "additionalProperties": true,
                  "description": "Metadata for the picked media file."
                }
              },
              "additionalProperties": false,
              "required": [
                "id",
                "createTime",
                "type",
                "baseUrl",
                "mimeType",
                "filename",
                "mediaFileMetadata"
              ],
              "description": "A media item selected from the user's Google Photos library through Picker."
            },
            "description": "The picked media items selected in this picker session."
          },
          "nextPageToken": {
            "anyOf": [
              {
                "type": "string",
                "description": "A token to retrieve the next page of picked media items, if any."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "mediaItems",
          "nextPageToken"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "googlephotos.search_media_items",
      "service": "googlephotos",
      "name": "search_media_items",
      "description": "Search Google Photos Library API media items created by this application.",
      "requiredScopes": [
        "https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"
      ],
      "providerPermissions": [
        "https://www.googleapis.com/auth/photoslibrary.readonly.appcreateddata"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "albumId": {
            "type": "string",
            "minLength": 1,
            "description": "The ID of the album to search within."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of media items to return per page (1-100)."
          },
          "pageToken": {
            "type": "string",
            "description": "A page token to retrieve the next page of results."
          },
          "orderBy": {
            "type": "string",
            "description": "The sort order for the results."
          },
          "filters": {
            "type": "object",
            "additionalProperties": true,
            "description": "A JSON-like object with arbitrary string keys."
          }
        },
        "additionalProperties": false,
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "mediaItems": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The unique identifier for the media item."
                },
                "description": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A nullable string value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "productUrl": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A nullable string value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "baseUrl": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A nullable string value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "mimeType": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A nullable string value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "filename": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "A nullable string value."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "mediaMetadata": {
                  "type": "object",
                  "properties": {
                    "creationTime": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "A nullable string value."
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "width": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "A nullable string value."
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "height": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "A nullable string value."
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "photo": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "A JSON-like object with arbitrary string keys."
                    },
                    "video": {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "A JSON-like object with arbitrary string keys."
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "creationTime",
                    "width",
                    "height",
                    "photo",
                    "video"
                  ],
                  "description": "Google Photos media metadata."
                },
                "contributorInfo": {
                  "anyOf": [
                    {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "A JSON-like object with arbitrary string keys."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": false,
              "required": [
                "id",
                "description",
                "productUrl",
                "baseUrl",
                "mimeType",
                "filename",
                "mediaMetadata",
                "contributorInfo"
              ],
              "description": "A Google Photos media item."
            },
            "description": "The list of matching media items."
          },
          "nextPageToken": {
            "anyOf": [
              {
                "type": "string",
                "description": "A token to retrieve the next page of results, if any."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "mediaItems",
          "nextPageToken"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "googlephotos.update_album",
      "service": "googlephotos",
      "name": "update_album",
      "description": "Update a Google Photos album title or cover photo.",
      "requiredScopes": [
        "https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata"
      ],
      "providerPermissions": [
        "https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "albumId": {
            "type": "string",
            "minLength": 1,
            "description": "The ID of the album to update."
          },
          "title": {
            "type": "string",
            "maxLength": 500,
            "description": "The new title for the album (maximum 500 characters)."
          },
          "coverPhotoMediaItemId": {
            "type": "string",
            "minLength": 1,
            "description": "The media item ID to set as the new album cover photo."
          }
        },
        "additionalProperties": false,
        "required": [
          "albumId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "album": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier for the album."
              },
              "title": {
                "type": "string",
                "description": "The title of the album."
              },
              "productUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "mediaItemsCount": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "coverPhotoBaseUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "coverPhotoMediaItemId": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "isWriteable": {
                "type": "boolean",
                "description": "Whether the album is writable by the current user."
              },
              "shareInfo": {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "A JSON-like object with arbitrary string keys."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "title",
              "productUrl",
              "mediaItemsCount",
              "coverPhotoBaseUrl",
              "coverPhotoMediaItemId",
              "shareInfo"
            ],
            "description": "A Google Photos album."
          }
        },
        "additionalProperties": false,
        "required": [
          "album"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "googlephotos.update_media_item",
      "service": "googlephotos",
      "name": "update_media_item",
      "description": "Update a Google Photos media item description.",
      "requiredScopes": [
        "https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata"
      ],
      "providerPermissions": [
        "https://www.googleapis.com/auth/photoslibrary.edit.appcreateddata"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "mediaItemId": {
            "type": "string",
            "minLength": 1,
            "description": "The ID of the media item to update."
          },
          "description": {
            "type": "string",
            "maxLength": 1000,
            "description": "The new description for the media item (maximum 1000 characters)."
          }
        },
        "additionalProperties": false,
        "required": [
          "mediaItemId",
          "description"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "mediaItem": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier for the media item."
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "productUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "baseUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "mimeType": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "filename": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "mediaMetadata": {
                "type": "object",
                "properties": {
                  "creationTime": {
                    "anyOf": [
                      {
                        "type": "string",
                        "description": "A nullable string value."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "width": {
                    "anyOf": [
                      {
                        "type": "string",
                        "description": "A nullable string value."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "height": {
                    "anyOf": [
                      {
                        "type": "string",
                        "description": "A nullable string value."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "photo": {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "A JSON-like object with arbitrary string keys."
                  },
                  "video": {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "A JSON-like object with arbitrary string keys."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "creationTime",
                  "width",
                  "height",
                  "photo",
                  "video"
                ],
                "description": "Google Photos media metadata."
              },
              "contributorInfo": {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "A JSON-like object with arbitrary string keys."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "description",
              "productUrl",
              "baseUrl",
              "mimeType",
              "filename",
              "mediaMetadata",
              "contributorInfo"
            ],
            "description": "A Google Photos media item."
          }
        },
        "additionalProperties": false,
        "required": [
          "mediaItem"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "googlephotos.upload_media",
      "service": "googlephotos",
      "name": "upload_media",
      "description": "Upload one media item into Google Photos from a URL or base64 payload.",
      "requiredScopes": [
        "https://www.googleapis.com/auth/photoslibrary.appendonly"
      ],
      "providerPermissions": [
        "https://www.googleapis.com/auth/photoslibrary.appendonly"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "The URL of the media file to upload.",
            "format": "uri"
          },
          "contentBase64": {
            "type": "string",
            "minLength": 1,
            "description": "The base64-encoded content of the media file to upload."
          },
          "fileName": {
            "type": "string",
            "minLength": 1,
            "description": "The filename for the uploaded media item."
          },
          "mimeType": {
            "type": "string",
            "minLength": 1,
            "description": "The MIME type of the media file."
          },
          "description": {
            "type": "string",
            "maxLength": 1000,
            "description": "A description for the uploaded media item."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for uploading one media item."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "mediaItem": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier for the media item."
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "productUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "baseUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "mimeType": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "filename": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "A nullable string value."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "mediaMetadata": {
                "type": "object",
                "properties": {
                  "creationTime": {
                    "anyOf": [
                      {
                        "type": "string",
                        "description": "A nullable string value."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "width": {
                    "anyOf": [
                      {
                        "type": "string",
                        "description": "A nullable string value."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "height": {
                    "anyOf": [
                      {
                        "type": "string",
                        "description": "A nullable string value."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "photo": {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "A JSON-like object with arbitrary string keys."
                  },
                  "video": {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "A JSON-like object with arbitrary string keys."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "creationTime",
                  "width",
                  "height",
                  "photo",
                  "video"
                ],
                "description": "Google Photos media metadata."
              },
              "contributorInfo": {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "A JSON-like object with arbitrary string keys."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "description",
              "productUrl",
              "baseUrl",
              "mimeType",
              "filename",
              "mediaMetadata",
              "contributorInfo"
            ],
            "description": "A Google Photos media item."
          }
        },
        "additionalProperties": false,
        "required": [
          "mediaItem"
        ],
        "description": "Action output."
      }
    }
  ]
}
